《分布式数据对象的研究及应用.docx》由会员分享,可在线阅读,更多相关《分布式数据对象的研究及应用.docx(3页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、分布式数据对象的研究及应用摘要:Microsoft,NET远程构架为在不同的应用域(AppDomalns)、不同的进程和不同计算机中活动对象的交互提供了系统框架支持,使其相互之间能够进行畅通无阻的通信。分布式对象处理(Remoting)依托,NET远程处理框架运行库及编程模型的支持,使得分布式对象处理变得异常简洁透明。本文中探索可利用的,NET远程处理方案,并详细探讨了分布式对象处理实例。关键词:NET平台 Remoting组件DLL组装件Windows服务委托异步调用XMLO分布式编程分布式编程是使几个物理上独立的组件作为一个单独的系统协同工作。物理上独立的组件通常是指网络中的多台计算机,问
2、题就在于如何以并行方式使网络上多台计算机协同工作。通常,多数业务应用程序可分为:表示逻辑、业务逻辑和数据源逻辑三层,这给分布式编程带来契机,我们可按应用程序层次将业务逻辑和数据源逻辑分解为若干个可被分布处理的对象,分布在网络环境中的服务端,被客户的表示逻辑所访问。宏观而言,如果被处理的业务逻辑比较复杂,则分布式模型中应设置一台主业务逻辑服务器,除存储整体数据源逻辑之外,还向网络环境中的其他工作站提供业务逻辑,起到业务路由的作用。当然,工作站之间同样存在相互访问,索取信息可能性。因而,分布式模型中的服务端与客户端之间的角色只是瞬时性相对的,信息的流动导向受到主业务逻辑服务器的控制。一、分布式模型
3、与分布式应用程序分布式模型的选择主要涉及到网络平台的构建及业务逻辑的分布。网络平台的构建中主要涉及到两个问题:一是网络的拓扑结构是否满足业务逻辑分布的需求,二是主服务器与工作站之间的软件平台是同构还是异构组态、是否协调。对于应用范围广的企业内部互联网(intranet),其拓扑结构在满足企业业务逻辑要求的前提下,如果对安全性没有特殊的要求,尽量选择同构软硬件平台。构建分布式应用程序主要考虑下列因素:(1)不同进程或不同应用域的应用程序如何实现互访?即采用DCOM、Web Service还是Remoting方案;(2)应用程序如何与后台数据库户动?即采用ODBC、OLE DB还是ADO.NET方
4、案;(3)信息如何在应用程序之间传输?即采用CLR串行化还是采用IMarshal接口方案,分布对象是采用在客户端激活还是服务器端激活方式;(4)从安全的角度考虑,服务器端如何驻留分布式对象?即采用ASP.NET方式还是采用Windows Service方式驻留;(5)在网络环境下如何保证异步通信的传输?即采用Windows消息队列MSMQ方式还是采取Remoting中的异步委托回调方式?二、NET分布式应用方案采用,NET Remoting技术路线实施分布式编程方案;采用ADO.NET技术路线实现应用程序对后台数据库的访问;以Windows类库格式将业务逻辑驻留在服务器端,并以WindowsS
5、ervice方式自启动;服务器端应用程序以IMarshal为接口,如果信息流在企业内部网流动,则激活TCP通道,如果信息流要跨主干网段(跨越防火墙),则应激活HTrP通道同时设置通信端口等待客户访问服务;为了避免客户端等待服务器端耗时的服务或网络阻塞等异常情况,采用异步委托回调方式,在客户端激活远程分布式对象之后,客户端立即返回到主进程。待服务器完成业务逻辑的准备并以委托方式发出回调信息时,客户端才得到服务器端服务。三、NET分布应用方案的实施考虑到投资成本,建议以微软方案构建分布式模型:即Server端以Windows NT/2000 Server+SQL Server 2000+Visua
6、lStudio.NET为软件平台,Client/Station端也应如此。(一)创建远程业务对象:创建数据库连接,组装数据集。构成可被客户代理的类库。(二)构建服务器端应用:创建通信管道。注册业务对象,创建通道线程及通信端口等待客户访问。(三)将服务器端应用驻留为Windows服务组件,实现业务逻辑的自启动。首先为服务器端应用创建Windows服务,接着使用Instal-1Util命令行工具将业务逻辑安装在Windows服务中,最后在Windows组件服务控制台窗口中设置其为自启动。(四)为客户端提供远程业务对象接口。将远程业务对象全部引用到客户端,不符合分布式应用原则,因为会造成敏感数据泄漏
7、。通过为客户端提供远程业务对象接口方式避免了上述问题,具体实现方法为:启动为远程业务对象服务的Windows Service,在服务器端运行命令行工具Soapsuds:soapsudsurl:http:/localhost:端口号?wsdlgc运行上述命令,得到驻留在服务器端的远程业务对象的接口程序集(*.cs),在部署客户端应用时,可将业务对象接口程序集复制到客户端应用下联编。(五)部署客户端应用:调用远程业务对象。实现数据远程查询(六)实现远程对象的异步调用采用异步委托回调方式的目的是在客户端激活远程分布式对象之后,客户端立即返回到主进程,不影响客户端的正常运作。待服务器准备完毕发出回调信息,客户端自然会得到服务器端的响应。结论:Microsoft Studio.NET中的远程处理构架提供的分布式对象处理模型是一种建立在TCP/IP及HTTP协议上跨平台的软件开发模型,解决了基于组件技术的DCOM模型复杂的编程机理,优化了分布式对象处理的软件开发模式。