三层开发基本概念介绍<二>

来源:百度文库 编辑:神马文学网 时间:2024/04/29 02:36:13
[作者:coolriver    转贴自:CSDN - 文档中心    点击数:2129    更新时间:2004-8-26    文章录入:admin]
Microsoft的COM &DCOM(简介)
一:COM是一种定义对象服务器如何与对象客户进行交互的协议。对象服务器(object server)是实现COM类的模块。对象客户(object consumer)是使用COM对象的模块。
DCOM扩展了COM协议,使得对象服务器可以位于一台与客户不同的计算机。 通过RPC向对象服务器调用。(CORBA也是分布对象协议)
COM通过SSPI(Security Support Provider Interface,安全支持提供者接口)来管理对象的安全性。
二:应用服务器(中间层)应具备的特性:
n       远层启动,监视和中止的能力。
n       可扩展的能力。
n       易于配置的能力。
n       安全失效的能力。
远层启动功能:如果用户想在远程计算机上创建一个COM对象,远程机上的DCOM服务控制管理器(Service Control Manager  ,SCM)会自动启动COM服务器并使COM对象可用。具体信息可在开始菜单中运行DCOMCNFG命令。
易于配置的能力:在Windows资源管理器中右击一个COM DLL或EXE就可激活注册或撤销注册。
可扩展的能力:可扩展的第一等级和第二等级。DCOM提供的两种负载均衡。1),静态负载均衡(指定应用服务器的运行机器),可在DCOMCNFG中的应用程序的属性中指定。2):动态负载均衡,由调度程序进行分配。
Delphi提供的相关技术:
u       COM / DCOM / COM+企业对象。
u       CORBA企业对象。
u       XML / HTML
u       CGI / SAPI/NSAPI
u       ASP
u       Active X (Active Form)
u       ADO / OLE DB
u       BDE / IDAPI SQL Links
u       MTS对象
u       MIDAS服务器
u       CORBA服务器。
相关组件在1) File菜单\new\ Multitier和ActiveX页中。
2)在组件面板中的ADO, Midas, Internet Express, ActiveX等页中。
Corba简介
1:什么是corba(common object request broker architecture)?
Corba是由object manangement  group(OMG)定义的分布式对象标准结构。语言中立,使用了面向对象的设计结构,允许软件对象在不同的操作系统平台和应用程序中重复使用。
如果想实现一下功能,corba是较好的解决方案:
l         应用系统要整合异质平台和操作系统。
l         应用程序服务器必须执行在linux/unix机器中。
l         应用系统必须执行关键性任务,具备安全强固的容错能力,必须稳定,有效率。
l         想开发使用Web对象的Internet/Intranet解决方案。
l         应用系统未来想和Java整合。
2:corba的结构
corba对象是一个提供特定服务的组件,它通过定义一组输出接口来声明可以提供的服务。在这个输出接口中,corba对象定义了客户端可以调用的方法和存取属性。客户端只要指明提供服务的corba对象的名称以及要调用的方法或是要
存取的属性就可以通过ORB得到corba对象提供服务。
术语介绍:
ORB: object request broker.联结客户端和中介的corb对象。
Stub对象: 运行在客户端的corba对象的复制品,在客户端调用的是Stub对象,然后Stub对象通过ORB远程调用
CORBA对象,Stub对象用Marshaling(对象指针转换,使对方程序能够识别)自动为你传递参数和数据。
Skeleton对象:运行在服务器端的对象,将传递到服务器的数据还原成服务器端使用格式。然后根据自动根据客户端要求调用CORBA对象。
调用方式:
u       静态调用:客户端程序通过Stub对象将数据传递到corba对象,corba对象执行完毕后,通过Skeleton对象
把结果再Marshaling回客户端的Stub对象,经由Stub对象回复数据格式后,再回传给客户端的应用程序。
动态调用(Dynamic Interface  Invocation  DII):客户端不需要先有stub对象,也不需要知道远程corba对象提供的方法和属性,corba程序可以在执行时取得这些信息,然后动态的调用corba对象。
DII比静态调用有更大的弹性,但编程较难,且执行效率不如静态调用。
3:corba提供的核心服务
n         Event Service: 以“提供者—消费者(Supplier_consumer)“模型通过一个事件信道然提供者对象以异步的方式传递事件给消费者对象。
n         Naming Service: 允许程序员使用阶层式的方式为企业对象命名,然后在程序中可以使用这些有意义的名称来存取这些对象。
n         Transaction Service:提供分布式应用系统能够执行关键任务,允许企业对象在异质平台和数据库之间进行数据的Two-Phase Commit的交易管理。
n         Security Service :包括存取控制(Access control),稽查控制(Auding),认证控制(Authentication),存取政策控制(Plicy Control).
MIDAS介绍
一:MIDAS概念
MIDAS (Multi-tier  Distributed  Application Services Suite   (多层分布式应用程序服务器)) 是开发多层应用系统使用的中介透明引擎。通过MIDAS,程序员可以通过相同的组件存取不同的后端应用程序服务器(如,COM/DCOM应用程序服务器,CORBA应用程序服务器,MTS中介软件),MIDAS也提供容错能力,负载平衡以及高执行效率的能力。
中介者和功能:
u       远程数据中介者(Remote Data Broker):提供客户端存取远程数据的能力。
u       Constraint中介者:允许客户端应用程序下载远程数据库对数据设定的constraint。让数据在客户端被数据库的constraint检查。减少网络流量。
u       企业对象中介者(Business  Object  Broker):允许应用系统开发执行企业逻辑的企业对象。
u       容错能力:当一个客户端联结的应用程序服务器发生错误时,企业对象中介者就会在网络中寻找另一个提供相同功能的应用程序服务器,将客户端联结到该应用程序服务器上,客户并不知道发生的一切。这时必须使用无状态对象。
u       负载平衡:当客户端多于服务器数目时,企业对象中介者自动平衡服务器的连接数目。
二:数据处理
应用程序服务器从数据库取出客户端想要的数据,进行数据封包(data  packet),通过Iappserver接口以OleVariant的形式传递给客户端,到达后,通过客户端的MIDASServer整理,加入到ClientDataSet的数据快储内存中,这时,客户端于应用程序服务器的连接断开。
在客户端应用了TclientDataSet的ApplyUpdates方法要求更新时,MIDASServer把更新之前的数据封装在数据封包中,然后再封装被更新的数据(只含被改变的),当应用程序服务器收到这些Delta数据封包之后,Resolver先将其解析,
然后对于每一笔更新的数据,Resolver首先根据第一笔封装的原始数据到数据库中寻找纪录,如果纪录已经被其他用户改变了,MIDAS会把原来客户端传来的数据和数据库中最新的这笔数据一块传回客户端,要求用户决定如何处理。
如果数据更新失败,则MIDAS会把发生问题的数据封装在数据封包之中传回客户端
作者Blog:http://blog.csdn.net/coolriver/