|
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
|
|