在前几天的DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)一文中,介绍了在企业管理软件架构发布中的主机-终端结构、以及客户机-服务器结构、浏览器-服务器结构,本文今天向大家介绍有关于分布式计算及SOA架构方面的知识。
广义分布式系统
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。内聚性是指每一个数据库分布节点高度自治,有本地的数据库管理系统。透明性是指每一个数据库分布节点对用户的应用来说都是透明的,看不出是本地还是远程。在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无复本、数据存于哪个站点以及事务在哪个站点上执行等。
在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。系统中存在一个以全局的方式管理计算机资源的分布式操作系统。通常,对用户来说,分布式系统只有一个模型或范型。在操作系统之上有一层软件中间件(middleware)负责实现这个模型。一个著名的分布式系统的例子是万维网(World Wide Web),在万维网中,所有的一切看起来就好像是一个文档(Web 页面)一样。
以上内容是百度百科对分布式系统的定义,从理论的角度来讲,目前极大多数据企业管理应用都是属于分布式系统这一范畴,C/S、B/S是分布式结构、C/A/S、B/A/S也是分布式结构、智能客户端更是这种结构,分布式系统的本质是在网络条件下的协同作战。
狭义分布式系统
目前,在业界都不把C/S应用和B/S做为分布式应用,而之前文章中介绍的C/A/S、B/A/S结构我们可以认为是一个分布式体系结构,因为广义的分布式系统太过于宽泛,狭义的分布式体系如下图:
即物理上三层/多层(Tier)、逻辑上也是三层/多层结构(Layer),很多程序员都在喊,要搞三层架构的应用,但对于Tier和Layer两个概念还是不能混淆的。
三层/多层(Tier)技术
三层/多层(Tier)是一种物理部署结构,其与一系列的分布式通信技术分不开,常用的分布式通信技术如下:
DCOM
DCOM全称为分布式组件对象模型,是微软基于其自身的COM技术的分布式扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。
DOCM提供了一系列的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器COM对象。COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口。
DCOM是早期的分布式通信技术,目前还有大量的应用运行于DCOM技术之上。
.NET Remoting
可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下,用于在.NET开发中代替DCOM技术,并且和DCOM技术相比,其更加灵活和方便。
.NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架,而其技术本质是对象的跨越进程边界,具体的说,就是对象的代理技术,在目前企业管理应用系统之中,.NET Remoting应用的非常广泛。
Web Service
如果说DOCM和.NET Remoting都是微软的特有技术的话,那么Web Service技术就是一种标准,但是写到这,我无法确切的给出一个Web Service的定义,只好摘抄百科中的一段自认为还算严谨定义:
Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。
Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。
Web Service及其所使用的通信协议SOAP已经是国际标准,基于这些标准,不管是windows还是UNIX,也管你使用何种编程语言,都可以通过这么一个标准构建和使用WebService。
CORBA
CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案。
通信技术分类
前面介绍了几种分布式通信技术,其规纳起来无外忽两种:
远程过程调用
这中技术也可以理解为对象代理技术,或者说远程过程调用也是对象代理技术的实现思路,从这种看法来分类,DCOM、.NET Remoting和COBRA都属性这一类,其本质是在客户端请求远程执行某个过程或者方法,微软的RPC或者JAVA RMI。
消息通信
通信双方都尊守某一个协议标准进行通信,各通信双方对消息进行处,比如Web Service 采用SOAP-XML做为标准的通信消息,服务提供者和调用者自行处理消息中的业务请求。
相关链接
AgileEAS.NET平台开发Step By Step系列-药店系统-索引
QQ群:125643764,120661978