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

简介: 在前几天的DotNET企业架构应用实践-企业管理软件架构(计算)的历史与发展(上)一文中,介绍了在企业管理软件架构发布中的主机-终端结构、以及客户机-服务器结构、浏览器-服务器结构,本文今天向大家介绍有关于分布式计算及SOA架构方面的知识。

在前几天的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

目录
相关文章
|
9天前
|
监控 前端开发 JavaScript
构建高效实时应用:Python WebSocket在前后端分离架构中的实践
【7月更文挑战第18天】WebSocket助力实时Web应用,通过一次握手建立持久连接,解决HTTP实时性问题。Python中可用Flask-SocketIO创建WebSocket服务器,前端JavaScript使用Socket.IO库连接。确保安全可采用HTTPS、认证及跨域限制。示例代码展示如何实现双向实时通信。
32 4
|
11天前
|
运维 分布式计算 大数据
自动化运维的利剑:Ansible在现代IT架构中的应用
【7月更文挑战第16天】本文深入探讨了Ansible作为自动化运维工具的核心价值及其在现代IT架构中的多维度应用。我们将通过具体案例分析,揭示Ansible如何优化IT运维流程、提升工作效率,并讨论其在云环境、容器化及大数据处理等领域的创新应用。文章旨在为读者提供一套实用的Ansible应用策略,助力企业构建更加高效、稳定的IT运维体系。
|
5天前
|
消息中间件 缓存 架构师
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
一个合格的架构师应该怎样处理数据库、调度系统、消息队列、分布式缓存等软件
|
7天前
|
存储 缓存 NoSQL
深入理解分布式缓存在后端系统中的应用与实践
【7月更文挑战第20天】 本文将探讨分布式缓存技术在后端系统设计中的关键角色,并揭示其如何优化性能和扩展性。文章不仅剖析了分布式缓存的基本原理和工作机制,而且提供了实际案例分析,展示了其在处理大规模数据时的优势。我们将深入了解几种流行的分布式缓存解决方案,并讨论它们在不同场景下的适用性。最后,文章将指导读者如何在真实世界的应用中实施分布式缓存,包括架构设计、性能调优以及故障排除的最佳实践。
|
7天前
|
存储 缓存 NoSQL
深入理解分布式缓存在现代后端系统中的应用与挑战
随着互联网技术的飞速发展,分布式缓存已成为提升后端系统性能的关键技术之一。本文将从数据导向和科学严谨的角度出发,探讨分布式缓存技术的原理、应用场景以及面临的主要挑战。通过对具体案例的分析和数据统计,我们旨在为读者提供一个全面而深入的理解框架,帮助开发者更好地设计和优化后端系统。 【7月更文挑战第20天】
12 0
|
8天前
|
监控 Cloud Native 安全
云原生架构在现代企业中的实践与挑战
本文深入探讨了云原生架构在现代企业中的应用及其面临的主要挑战。通过分析多个行业案例,文章揭示了云原生技术如何促进企业的数字化转型,提高系统的弹性、可扩展性和自动化水平。同时,指出了在实施过程中可能遇到的技术、安全和成本管理等问题,并提供了相应的解决策略,旨在为企业采用云原生架构提供实用的指导和建议。
|
11天前
|
机器学习/深度学习 开发框架 数据可视化
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
我们可以从系统工程的角度来讨论如何优化组织架构,并给出一些可能涉及的Python应用领域的示例。
|
12天前
|
Cloud Native 安全 持续交付
云端架构革新:云原生技术在现代企业中的应用与挑战
本文深入探讨了云原生技术在现代企业中的运用及其带来的变革。通过分析云原生技术的核心组件,如容器、微服务、持续集成/持续部署(CI/CD)和声明式API,本文揭示了这些技术如何促进企业的敏捷性、可伸缩性和创新能力。同时,文章也识别了企业在采纳云原生技术过程中可能遇到的安全、成本和技术复杂性等挑战,并提出了相应的解决策略。最后,通过案例研究,展示了成功实施云原生技术的企业所取得的成效,为其他企业提供了宝贵的经验和启示。
|
19天前
|
NoSQL Java Redis
实现基于Redis的分布式锁机制
实现基于Redis的分布式锁机制
|
2天前
|
存储 缓存 NoSQL
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型
redis分布式锁、redisson、可重入、主从一致性、WatchDog、Redlock红锁、zookeeper;Redis集群、主从复制,全量同步、增量同步;哨兵,分片集群,Redis为什么这么快,I/O多路复用模型——用户空间和内核空间、阻塞IO、非阻塞IO、IO多路复用,Redis网络模型
Redis常见面试题(二):redis分布式锁、redisson、主从一致性、Redlock红锁;Redis集群、主从复制,哨兵模式,分片集群;Redis为什么这么快,I/O多路复用模型