|
SVA(Systemarchitektur für verteilte Anwendung)分布式應(yīng)用的系統(tǒng)結(jié)構(gòu)一些基礎(chǔ):
到目前為止比較常用結(jié)構(gòu)包括:
Client-Server
N-Tier
SOA & EDA
SOA 面向服務(wù)的架構(gòu)
首先SOA不是一個具體的技術(shù)標(biāo)準(zhǔn)而是一種抽象。SOA由多種技術(shù)實(shí)現(xiàn),主要包括SOAP、WSDL、UDDI、BPEL等。
動機(jī)(motivation): 服務(wù)的復(fù)用。在服務(wù)的粗粒度上進(jìn)行復(fù)用搭建新的系統(tǒng)。
特征(merkmal): 松耦合(lose Kopplung)、動態(tài)連接(dynamisches Binden)、目錄服務(wù)的存在(Vorhandensein eines Verzeichnisdienstes)、標(biāo)準(zhǔn)的使用(Verwendung von Standards)、安全(Sicherheit)和面向業(yè)務(wù)過程(Orientierung an Gesch??ftsprozessen)
定義:SOA是一種將多樣的、不同的以及可能不兼容的方法或應(yīng)用代理成可以重復(fù)及公開使用的一種系統(tǒng)結(jié)構(gòu),并且使得它們的使用或者復(fù)用與平臺和語言都無關(guān)。(維基百科的解釋是:面向服務(wù)的體系結(jié)構(gòu)(Service-oriented architecture)是構(gòu)造分布式系統(tǒng)的應(yīng)用程序的方法。它將應(yīng)用程序功能作為服務(wù)發(fā)送給最終用戶或者其他服務(wù)。個人覺得說的不是很清楚。所以嘗試將德語版的翻譯過來了。)
主要技術(shù):
SOAP (simple object access protocol):SOAP是一種基于XML的消息標(biāo)準(zhǔn)。由SOAP Evelope、SOAP Head 、SOAP Body三部分組成。其中SOAP Head的任務(wù)是“說明背景”、“驗(yàn)證身份”、"授權(quán)"以及”說明路由及交付信息“。而SOAP Body則封裝了真正的信息內(nèi)容。
SOAP可以采用各種傳輸機(jī)制。例如HTTP、HTTP/S(加密)以及SMTP(異步)等。在實(shí)際應(yīng)用中SOAP需要一個SOAP引擎(SOAP Engine)來加工要發(fā)送的消息。
WSDL(Web Services Description Language):WSDL是W3C為描述Web服務(wù)(Web Service)發(fā)布的XML格式。WSDL描述Web服務(wù)的公共接口。包括抽象的接口(interface)部分和具體的綁定(binding)部分。接口部分提供名字及參數(shù)等信息。而綁定部分提供具體的host位置等信息。通過WSDL就可以很方便的實(shí)現(xiàn)Web服務(wù)的遠(yuǎn)程調(diào)用。
UDDI(Universal Description, Discovery, and Integration):UDDI是一個基于XML的跨平臺的描述規(guī)范,可以使世界范圍內(nèi)的企業(yè)在互聯(lián)網(wǎng)上發(fā)布自己所提供的服務(wù)以及搜索自己所需要的服務(wù)。由IBM、微軟和Ariba等公司在2000年底發(fā)起。界面包括通過瀏覽器手動完成或者通過Web服務(wù)的API(應(yīng)用程序界面)自動完成。分別可以用在設(shè)計和運(yùn)行階段下如何發(fā)現(xiàn)所需服務(wù)。
BPEL(Business Process Execution Language):業(yè)務(wù)過程執(zhí)行語言,是一種基于XML的,用來描寫業(yè)務(wù)過程的編程語言,被描寫的業(yè)務(wù)過程的每個單一步驟則由Web服務(wù)來實(shí)現(xiàn)。Idee:圖形建模、忽略復(fù)雜算法、適合管理以及外購服務(wù)。WS-BPEL 2.0包括:數(shù)據(jù)處理、活動、通訊關(guān)系、時間處理及意外處理。這樣就可以在服務(wù)的粗粒度上將已定義好的各個活動(Web Service)構(gòu)建成一個系統(tǒng)了。
EDA (Event-Driven Architecture):雖然SOA很好的解決了順序過程的問題,但是在現(xiàn)實(shí)世界中很多的過程是事件驅(qū)動的,所以需要發(fā)展一種事件驅(qū)動的結(jié)構(gòu)。
一個例子:在組件一發(fā)生了事件一,組件一將該事件一發(fā)送給中間件由其轉(zhuǎn)交給處理該事件的組件二,在組件二完成處理后再將處理結(jié)果反饋給中間件。
事件:系統(tǒng)的狀態(tài)改變稱為事件。(Ereignis = ??nderung des Systemzusands)
事件流:包括事件源(Event Source)、事件管道(Event Channel)、事件加工(Event Processing)及事件處理(Event Handling)。
不過EDA還非常新所以還缺少行業(yè)標(biāo)準(zhǔn)。同樣也缺少產(chǎn)品和經(jīng)驗(yàn)。
WOA / Web 2.0
主要技術(shù):DOM(Document Object Model) 和Javascript、AJAX。
DOM(文件物件模型):是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)程式接口。
AJAX(Asynchronous JavaScript XML):在遠(yuǎn)程服務(wù)器尚未給出回復(fù)前就根據(jù)本地的信息先反饋給用戶部分信息。
P2P
Grid und Cloud Computing
|
|