DotNET企业架构应用实践-企业管理软件架构的历史与发展(中)- 分布式系统

简介:

在前几天的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结构我们可以认为是一个分布式体系结构,因为广义的分布式系统太过于宽泛,狭义的分布式体系如下图:

 

image

即物理上三层/多层(Tier)、逻辑上也是三层/多层结构(Layer),很多程序员都在喊,要搞三层架构的应用,但对于Tier和Layer两个概念还是不能混淆的。

三层/多层(Tier)技术

三层/多层(Tier)是一种物理部署结构,其与一系列的分布式通信技术分不开,常用的分布式通信技术如下:

DCOM

DCOM全称为分布式组件对象模型,是微软基于其自身的COM技术的分布式扩展,它支持不同的两台机器上的组件间的通信,而且不论它们是运行在局域网、广域网、还是Internet上。

1a94b36e7394459a81cb4ab5

DOCM提供了一系列的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器COM对象。COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口。

DCOM是早期的分布式通信技术,目前还有大量的应用运行于DCOM技术之上。

.NET Remoting

可以说Remoting就是DCOM的一种升级,它改善了很多功能,并极好的融合到.Net平台下,用于在.NET开发中代替DCOM技术,并且和DCOM技术相比,其更加灵活和方便。

2010112918222822

.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做为标准的通信消息,服务提供者和调用者自行处理消息中的业务请求。

相关链接

DotNET企业架构应用实践-系列目录

AgileEAS.NET平台开发Step By Step系列-药店系统-索引

AgileEAS.NET应用开发平台介绍-文章索引

QQ群:125643764,120661978


作者:魏琼东 
出处:http://www.cnblogs.com/eastjade
关于作者:有13年的软件从业经历,专注于中小软件企业软件开发过程研究,通过在技术与管理帮助中小软件企业实现技术层面开源节流的目的。熟悉需求分析、企业架构、项目管理。现主要从事基于AgileEAS.NET平台的技术咨询工作,主要服务于医疗卫生、铁路、电信、物流、物联网、制造、零售等行业。如有问题或建议,请多多赐教! 
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过mail.james@qq.com 联系我,也可以加入QQ群:113723486、199463175、116773358、116773358、212867943、147168308、59827496、193486983、15118502和大家共同讨论,非常感谢。


    本文转自魏琼东博客园博客,原文链接:http://www.cnblogs.com/eastjade/archive/2011/05/26/2057876.html,如需转载请自行联系原作者


相关文章
|
4天前
|
消息中间件 分布式计算 中间件
秀出天际!阿里甩出的988页分布式微服务架构进阶神仙手册我粉了
秀出天际!阿里甩出的988页分布式微服务架构进阶神仙手册我粉了
|
5天前
|
缓存 负载均衡 监控
探索分布式系统演进之路:从负载均衡到微服务架构
小米分享了分布式系统的发展,从早期的负载均衡(入口级、网关和客户端)到微服务架构的演进。微服务实现服务解耦,增强系统弹性,但带来了新的挑战。为优化数据库性能,实施了主备读写分离、全文搜索引擎、缓存集群等措施。通过微服务治理,如服务注册、动态配置、灰度发布等,提升了系统稳定性和可靠性。未来将继续优化分布式系统,提供更好的服务体验。关注公众号“软件求生”了解更多。
26 6
|
6天前
|
存储 Java 分布式数据库
【分布式计算框架】HBase数据库编程实践
【分布式计算框架】HBase数据库编程实践
15 1
|
6天前
|
分布式计算 并行计算 Java
【分布式计算框架】 MapReduce编程初级实践
【分布式计算框架】 MapReduce编程初级实践
9 2
|
6天前
|
分布式计算 数据可视化 Hadoop
【分布式计算框架】HDFS常用操作及编程实践
【分布式计算框架】HDFS常用操作及编程实践
6 1
|
6天前
|
Cloud Native 安全 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第12天】 随着数字化转型的浪潮不断冲击传统IT架构,企业亟需灵活、高效且可扩展的技术解决方案以保持竞争力。云原生技术作为一种新兴的系统构建方式,以其独特的弹性、微服务和持续交付等特性,成为推动企业快速响应市场变化的关键因素。本文将深入探讨云原生架构的核心组件,分析其如何促进企业的敏捷性,以及在实施过程中可能遇到的挑战和解决策略,为企业采纳云原生技术提供参考。
|
6天前
|
Cloud Native Devops 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第11天】 随着数字化转型的深入,企业对技术的敏捷性、可扩展性和成本效益提出了更高的要求。云原生架构作为一种新兴的设计理念和实践方法,正逐渐成为推动企业技术革新的关键力量。本文将深入探讨云原生架构的核心组件,包括容器化、微服务、持续集成/持续交付(CI/CD)以及DevOps文化,并分析它们如何共同作用于企业的IT基础设施,实现灵活、高效的运营模式。同时,我们也将识别在采纳云原生技术时面临的主要挑战,并提出相应的解决策略,以帮助企业顺利过渡到云原生时代。
|
6天前
|
运维 Cloud Native 持续交付
构建未来:云原生架构在现代企业中的应用与挑战
【5月更文挑战第9天】 随着数字化转型的浪潮席卷全球,企业正迅速采纳云原生技术以实现敏捷性、可扩展性和弹性。本文深入探讨了云原生架构的关键组件,包括容器化、微服务、持续集成/持续部署(CI/CD)和DevOps文化,并分析了这些技术如何帮助企业加速产品上市时间,提高运营效率,并最终实现业务目标。同时,文章也识别了企业在采纳云原生实践中可能面临的挑战,如安全性考量、团队技能提升和复杂的网络管理,并提出了相应的解决方案和最佳实践。
|
6天前
|
分布式计算 负载均衡 Java
构建高可用性Java应用:介绍分布式系统设计与开发
构建高可用性Java应用:介绍分布式系统设计与开发
13 0
|
6天前
|
存储 大数据 Apache
深入理解ZooKeeper:分布式协调服务的核心与实践
【5月更文挑战第7天】ZooKeeper是Apache的分布式协调服务,确保大规模分布式系统中的数据一致性与高可用性。其特点包括强一致性、高可用性、可靠性、顺序性和实时性。使用ZooKeeper涉及安装配置、启动服务、客户端连接及执行操作。实际应用中,面临性能瓶颈、不可伸缩性和单点故障等问题,可通过水平扩展、集成其他服务和多集群备份来解决。理解ZooKeeper原理和实践,有助于构建高效分布式系统。