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,如需转载请自行联系原作者


相关文章
|
12天前
|
机器学习/深度学习 API 语音技术
|
2天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍PolarDB分布式版架构介绍》
**《PolarDB分布式版架构介绍》电子书分享:** 探索阿里云PolarDB分布式设计,采用计算存储分离,借助GMS、CN组件实现大规模扩展。[阅读更多](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.3b3b2ccbVVjjt0)
12 3
|
1天前
|
存储 SQL 关系型数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**PolarDB分布式版详解:** 阿里云的PolarDB采用计算存储分离架构,利用GMS进行元数据管理,CN处理分布式SQL。结合PolarFS,实现高效存储与计算,支持大规模扩展。[阅读完整架构介绍](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.5b912ccbE20nqg)
|
3天前
|
存储 关系型数据库 分布式数据库
电子好书发您分享《PolarDB分布式版架构介绍》
**探索PolarDB分布式版:阿里巴巴云的高扩展数据库解决方案,采用计算存储分离架构,确保高性能和弹性扩展。[阅读详情](https://developer.aliyun.com/ebook/8332/116553?spm=a2c6h.26392459.ebook-detail.5.33ac2ccbVd9TB2)**
90 7
|
6天前
|
消息中间件 运维 监控
现代化软件开发中的微服务架构设计与实践
本文将深入探讨现代化软件开发中微服务架构的设计原则和实践经验。通过分析微服务架构的优势、挑战以及常见的设计模式,结合实际案例,帮助开发者更好地理解如何构建可靠、可扩展、高效的微服务系统。
|
6天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
7天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
14 1
|
7天前
|
人工智能 Serverless 数据处理
利用阿里云函数计算实现 Serverless 架构的应用
阿里云函数计算是事件驱动的Serverless服务,免服务器管理,自动扩展资源。它降低了基础设施成本,提高了开发效率,支持Web应用、数据处理、AI和定时任务等多种场景。通过实例展示了如何用Python实现图片压缩应用,通过OSS触发函数自动执行。阿里云函数计算在云计算时代助力企业实现快速迭代和高效运营。
43 0
|
10天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1227 8
|
11天前
|
运维 监控 自动驾驶
构建可扩展的应用程序:Apollo与微服务架构的完美结合
构建可扩展的应用程序:Apollo与微服务架构的完美结合
32 10