|
SVA(Systemarchitektur für verteilte Anwendung)分布式应用的系统结构一些基础:
到目前为止比较常用结构包括:
Client-Server
N-Tier
SOA & EDA
SOA 面向服务的架构
首先SOA不是一个具体的技术标准而是一种抽象。SOA由多种技术实现,主要包括SOAP、WSDL、UDDI、BPEL等。
动机(motivation): 服务的复用。在服务的粗粒度上进行复用搭建新的系统。
特征(merkmal): 松耦合(lose Kopplung)、动态连接(dynamisches Binden)、目录服务的存在(Vorhandensein eines Verzeichnisdienstes)、标准的使用(Verwendung von Standards)、安全(Sicherheit)和面向业务过程(Orientierung an Gesch??ftsprozessen)
定义:SOA是一种将多样的、不同的以及可能不兼容的方法或应用代理成可以重复及公开使用的一种系统结构,并且使得它们的使用或者复用与平台和语言都无关。(维基百科的解释是:面向服务的体系结构(Service-oriented architecture)是构造分布式系统的应用程序的方法。它将应用程序功能作为服务发送给最终用户或者其他服务。个人觉得说的不是很清楚。所以尝试将德语版的翻译过来了。)
主要技术:
SOAP (simple object access protocol):SOAP是一种基于XML的消息标准。由SOAP Evelope、SOAP Head 、SOAP Body三部分组成。其中SOAP Head的任务是“说明背景”、“验证身份”、"授权"以及”说明路由及交付信息“。而SOAP Body则封装了真正的信息内容。
SOAP可以采用各种传输机制。例如HTTP、HTTP/S(加密)以及SMTP(异步)等。在实际应用中SOAP需要一个SOAP引擎(SOAP Engine)来加工要发送的消息。
WSDL(Web Services Description Language):WSDL是W3C为描述Web服务(Web Service)发布的XML格式。WSDL描述Web服务的公共接口。包括抽象的接口(interface)部分和具体的绑定(binding)部分。接口部分提供名字及参数等信息。而绑定部分提供具体的host位置等信息。通过WSDL就可以很方便的实现Web服务的远程调用。
UDDI(Universal Description, Discovery, and Integration):UDDI是一个基于XML的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务以及搜索自己所需要的服务。由IBM、微软和Ariba等公司在2000年底发起。界面包括通过浏览器手动完成或者通过Web服务的API(应用程序界面)自动完成。分别可以用在设计和运行阶段下如何发现所需服务。
BPEL(Business Process Execution Language):业务过程执行语言,是一种基于XML的,用来描写业务过程的编程语言,被描写的业务过程的每个单一步骤则由Web服务来实现。Idee:图形建模、忽略复杂算法、适合管理以及外购服务。WS-BPEL 2.0包括:数据处理、活动、通讯关系、时间处理及意外处理。这样就可以在服务的粗粒度上将已定义好的各个活动(Web Service)构建成一个系统了。
EDA (Event-Driven Architecture):虽然SOA很好的解决了顺序过程的问题,但是在现实世界中很多的过程是事件驱动的,所以需要发展一种事件驱动的结构。
一个例子:在组件一发生了事件一,组件一将该事件一发送给中间件由其转交给处理该事件的组件二,在组件二完成处理后再将处理结果反馈给中间件。
事件:系统的状态改变称为事件。(Ereignis = ??nderung des Systemzusands)
事件流:包括事件源(Event Source)、事件管道(Event Channel)、事件加工(Event Processing)及事件处理(Event Handling)。
不过EDA还非常新所以还缺少行业标准。同样也缺少产品和经验。
WOA / Web 2.0
主要技术:DOM(Document Object Model) 和Javascript、AJAX。
DOM(文件物件模型):是W3C组织推薦的处理可扩展置标语言的标准程式接口。
AJAX(Asynchronous JavaScript XML):在远程服务器尚未给出回复前就根据本地的信息先反馈给用户部分信息。
P2P
Grid und Cloud Computing
|
|