標(biāo)題: SOA(面向服務(wù)架構(gòu))外國(guó)文獻(xiàn)翻譯 [打印本頁(yè)]

作者: wudawei    時(shí)間: 2014-12-31 01:44
標(biāo)題: SOA(面向服務(wù)架構(gòu))外國(guó)文獻(xiàn)翻譯
1. Ueberblick über Serviceorientierte Architekturen 面向服務(wù)架構(gòu)的總覽
Ziele des Kapitels 本章目標(biāo)

Idee "SOA“ verstehen & SOA-Definition geben koennen  能夠理解SOA的思路以及定義

SOA-Eigenschaften beschreiben koennen 能夠描述SOA的性質(zhì)


Ueberblick über den Inhalt

Nichttechnische Grundlagen
Ziele von Serviceorientierung
Entwicklung des SOA-Gedankens
Definition und Merkmale einer SOA
Servicekategorien
Programmieren im SOA-Umfeld
Rollen und Aktionen in einer SOA



SOA :
Paradigma zur Verwaltung und Nutzung von verteilten Kompetenzen, die sich unter der Kontrolle von verschiedenen Eigentümern befinden koennen.

一種用于管理和使用分布的模塊的模式,其中模塊可能是由不同組織所控制的。

Serviceorientierte Loe2sungslogik:
Basis: Realisierung von Funktionalitaet als in sich abgeschlossene Dienste ----> Servicekapselung. 基礎(chǔ):作為閉合服務(wù)的功能性的實(shí)現(xiàn)-----> 服務(wù)柵欄
Rekursive Komposition von Diensten zu Dienstaggregaten. 將服務(wù)遞歸合成為服務(wù)組(服務(wù)單元)。
Aufbau eines Dienstinventars. 服務(wù)清單的構(gòu)造


也就是說, 將一個(gè)復(fù)雜的問題分解成很多的簡(jiǎn)單的小的問題, 然后利用已存在的服務(wù)的清單將能解決上述小問題的小服務(wù)合成為大的服務(wù)以解決能解決復(fù)雜問題的復(fù)雜服務(wù)。這就是SOA的最核心構(gòu)想。
為此就需要Web Service(Web服務(wù))的各種技術(shù)(第4章--核心為WSDL)以及將Web Service合成為Business process(商業(yè)過程)的技術(shù)(第五章--核心為BPEL)。甚至是進(jìn)一步合成為Transaction(事務(wù))的技術(shù)(第六章--核心為WS-Transaction)。

下圖為Rollenmodell in einer SOA(SOA角色模型)
圖一 Rollenmodell in einer SOA(SOA角色模型)
第一步:服務(wù)供應(yīng)者向服務(wù)中間人公開其提供的服務(wù)。即說明使用接口及服務(wù)功能。(WSDL)
第二步:服務(wù)用戶向服務(wù)中間人搜尋所需服務(wù)。(UDDI)
第三步:在服務(wù)供應(yīng)者和服務(wù)用戶之間建立聯(lián)結(jié)。
第四步:服務(wù)在服務(wù)用戶使用時(shí)被調(diào)用。(JAVA RMI / WSDL)


下圖為Servicekategorien und ihre charakteristischen Merkmale (服務(wù)分類及其特點(diǎn))



圖二:Servicekategorien und ihre charakteristischen Merkmale (服務(wù)分類及其特點(diǎn))

第一類(最底層):基礎(chǔ)服務(wù)。
第二類(中間層):聚合服務(wù)。(使用WSDL技術(shù))
第三類(最上層):過程服務(wù)。(使用BPEL技術(shù))





2. Serviceorientierte Organisation
SOA ist keine rein technische L?0?2sung – wenn es keine gemeinsamen Anstrengungen im technischen und im organisatorischen Bereich gibt, wird ein SOA-Projekt nicht umzusetzen sein.
SOA不是一個(gè)純粹的技術(shù)解決方案。當(dāng)技術(shù)的和組織的兩大領(lǐng)域不能形成合力時(shí)就不會(huì)形成SOA項(xiàng)目。

但是因?yàn)楸菊n程為計(jì)算機(jī)課程, 所以只集中于技術(shù)問題的討論。


3. Grundlage von Web Services
Ziel des Kapitels
Verstehen, warum Web Services entstanden sind 理解為什么有Web服務(wù)的出現(xiàn)
Den Standardisierungsprozess nachvollziehen koennen und die wichtigsten Entscheidungen verstehen 回顧標(biāo)準(zhǔn)產(chǎn)生的過程并理解最重要的決定
Die wichtigsten Technologien nennen und kurz beschreiben koennen 說出最重要的各種技術(shù)并能簡(jiǎn)單的描述
Ablaeufe zu Web-Service-Interaktionen verstehen 理解Web服務(wù)交互的過程

Web Service:
A Web service is a software system designed to support interoperable machine-to-machineinteraction over a network. It has an interfacedescribed in a machine-processable format(specifically WSDL). Other systems interact with the Web service in a manner prescribed by itsdescription using SOAP messages, typicallyconveyed using HTTP with an XML serializationin conjunction with other Web-related standards.

通過網(wǎng)絡(luò)連接的計(jì)算機(jī)使用的技術(shù)也各不相同。所以為了支持計(jì)算機(jī)間的相互協(xié)作而誕生了一套技術(shù)Web Service。其中核心的技術(shù)包括HTTP、XML、SOAP以及WSDL等。


圖三:Web Services Technology Stack(Web服務(wù)技術(shù)堆棧示意圖)
包括: XML用于描述數(shù)據(jù)、TCP/IP作為互聯(lián)網(wǎng)協(xié)議族、HTTP和SMTP用于數(shù)據(jù)傳輸協(xié)議、SOAP用于與應(yīng)用無關(guān)的消息打包格式、WSDL用于描述Web服務(wù)的接口、UDDI用于公開和搜索Web服務(wù)。此外還附帶管理和安全技術(shù)。





4. Basic-Infrastruktur:XML, SOAP, WSDL, UDDI

XML als zentrales Datenformat erlaubt es, hierarchische Strukturen zu repraesentieren.  
XML Schema beschreibt XML Grammatiken formal.

Das XML Schema bietet folgende Moeglichkeiten: 1) Definition von Elementen und Attributen sowie Zuweisung von komplexen, simplen und XML-Schema-Datentypen. 2) Definition von komplexen Datentypen. 3) Erweiterung von Datentypen.
Jedes Schema ist einem Namespace zugeordnet.


SOAP : Anwendungsunabhaengiges Nachrichtenformat zum Austausch von Webservice-Nachrichten zwischen Webservice-Endpunkten.
SOAP-Header-Attribute : role(節(jié)點(diǎn)所扮演的角色--none, next or ultimateReceiver), mustUnderstand(說明是否托運(yùn)的節(jié)點(diǎn)需要理解SOAP的HEAD), relay


WSDL: Web Service Description Language.
WSDL是一種IDL(Interface Definition Language)。類似的IDL還有CORBA IDL和JAVA RMI。


圖六:Allgemeine Struktur von WSDL (WSDL的常見結(jié)構(gòu))
圖六中深色部分是Konkrekter Teil(具體部分) 而淺色部分為Abstrakter Teil(抽象部分)。更進(jìn)一步的說明見圖七。



圖七:WSDL and Definitions 圖片來源(http://www.predic8.de/wsdl-lernen.htm
如圖七所示從右到左是圖六的具體說明。
首先是最右邊的Service中的PORT中說明了可以調(diào)用該WS的具體地址。其中PORT可以有多個(gè)(所以用*標(biāo)注), 而每個(gè)PORT只能有一個(gè)地址(所以用1標(biāo)注)。
而后是binding(裝訂)為每個(gè)Port說明是如何裝訂的。其下有兩種子元素(Kindelementen)——SOAP Binding 和 operation。在SOAP Binding 中說明的是傳輸協(xié)議和數(shù)據(jù)類型。而在operation中說明了Transport Optionen, 包括說明SOAP協(xié)議細(xì)節(jié)的部分以及說明輸入輸出消息的部分(例如:<input><soap:body use="literal"></soap:body></input>)。
再接著在WSDL中往上走就到了portType的部分了。而這也是具體(也就是現(xiàn)實(shí)中的location)和抽象(也就是接口說明)部分的分界處。一個(gè)接口可以有多個(gè)Operation。一個(gè)Operation對(duì)應(yīng)了一個(gè)程序編程中的功能。portType也可以有多個(gè)。類似與binding在portType中也有operation。但是這里是說明消息結(jié)構(gòu)而不是傳輸operation。
而operation中的每個(gè)消息結(jié)構(gòu)部分則都和再上面的一個(gè)message部分相關(guān)聯(lián)。在各個(gè)message部分中則有一個(gè)part元素作為子元素。由此根據(jù)屬性而了解名字和其值。下面是個(gè)具體的例子。
<message ><part element="tns:getTempResponse"></part></message>
其中“element="tns:getTempResponse"”部分能根據(jù)名字對(duì)應(yīng)的在XML Schema中找到。
再往上就到了Type部分。其中也可以有多個(gè)Schema。在Type中說明了各Schema的位置。
至此就完整了定義了一個(gè)Web服務(wù)的接口。




UDDI:Universal Description Discovery and Integration
UDDI用于公布和搜尋Web服務(wù)。其是基于目錄的。包括White Pages(白頁(yè))、Yellow Pages(黃頁(yè))和Green Pages(綠頁(yè))。白頁(yè)類似于電話簿、黃頁(yè)是分類廣告而綠頁(yè)則提供技術(shù)信息。




5. Geschaeftsprozesse in SOAs SOA中的商業(yè)流程

Ziele des Kapitels
Verstaendnis entwickelt haben für 理解
    – Gesch?0?1ftsprozesse und Workflow-Management-Systeme 商業(yè)流程以及工作流管理系統(tǒng)
    – Integration von Gesch?0?1ftsprozessen 商業(yè)流程的集成
    – Zusammenhang zwischen SOA und Gesch?0?1ftsprozessmanagement SOA和商業(yè)流程管理的關(guān)聯(lián)
    – Konzept von Orchestrierung und Choreographie 作曲法和編舞法的概念
    – Die Sprache BPEL in den Grundzuegen BPEL語(yǔ)言的基本特點(diǎn)
BPEL-Beispiele in den Grundzügen lesen koennen 能讀BPEL的例子


Geschaeftsprozess:

Ein Geschaeftsprozess ist eine zielgerichtete, zeitlich logische Abfolge von Aufgaben, die von mehreren Organisationen oder Organisationseinheiten arbeitsteilig, verteiltausgeführt werden kann.
商業(yè)流程是目標(biāo)指向按時(shí)間和邏輯排序的一系列任務(wù)。其中這些任務(wù)可以被多個(gè)組織或者組織單元分步以及分布式的執(zhí)行。如下圖所示。


圖四:Beispiel eines Geschaeftsprozesses(商業(yè)流程的例子)




圖五:Aggregation von Diensten zu Prozessen (將服務(wù)集成為流程)
圖5中左圖為作曲法(Orchestrierung),即描述的是本流程內(nèi)的邏輯。圖5中右圖為編舞法(Choreographie),即描述的是服務(wù)/流程的相互合作關(guān)系。


WS-BPEL: Web Services Business Process Execution Language

Technologie
– XML-Sprache zur Modellierung und Ausführung von Geschaeftsprozessen als Aggregation von Web Services
XML-語(yǔ)言用于作為Web服務(wù)的集成的商業(yè)流程的建模及執(zhí)行。
– Basiert auf bekannten Prinzipien der Workflowverarbeitung 建立在著名的工作流工藝的原則基礎(chǔ)上。
– Setzt massiv auf XML und Web Service Technologien 大量使用XML和Web服務(wù)技術(shù)


BPEL的元素(BPEL實(shí)際上是XML文件。):
Data Handling: Ausdrücke, Variablen,  Wertzuweisungen,  Funktionen
數(shù)據(jù)處理:表現(xiàn), 變量, 值的分配, 函數(shù)
Aktivitaeten: Basisaktivitaeten,Strukturierte Aktivitaeten zur Steuerung des Kontrollflusses
行為:基礎(chǔ)行為, 用于控制流的控制的結(jié)構(gòu)行為
Kommunikationsbeziehungen: Partnerbeziehungen, Aufruf von Webservices, Korrelationsmengen
通信關(guān)系: 伙伴關(guān)系, 調(diào)用Web服務(wù), 關(guān)聯(lián)集合
Behandlung von Ereignissen
事件的處理
Behandlung von Ausnahmen: Fehlerbehandlung, Kompensation

例外的處理:錯(cuò)誤處理, 賠償

下面具體說明:
一個(gè)BPEL的流程總是開始與一個(gè)process元素。在其中有至少一個(gè)activity。其既可以是基礎(chǔ)行為也可以是結(jié)構(gòu)行為。

<process >
   activity
</process>



BPEL的使用中一個(gè)重要的部分就是和其伙伴通過Web服務(wù)如何通信的描述。為了連接這些伙伴就使得如何明確說明伙伴間的關(guān)系變得很重要了。每一個(gè)涉及到和BPEL流程交互的伙伴都不得不有一個(gè)描述如何通信的WSDL文件。在BPEL中每個(gè)相關(guān)的Web服務(wù)都被建模為partnerLink。包括唯一的名字、類型以及myrole和partnerRole。其中myrole和partnerRole分別說明了本流程的角色以及伙伴的角色。

<partnerLinks>
   <partnerLink partnerLinkType="qname"
                myrole="ncname" partnerRole="ncname">
   </partnerLink>
</partnerLinks>




在BPEL中也可以使用變量。而一個(gè)變量也往往和WSDL中獲取的Message相連。如果類似于這樣的Message的話

<message >
   <part type="xsd:string"/>
   <part type="xsd:string"/>
   <part type="xsd:string"/>
</message>


那在BPEL中則是這樣的:

<variable messageType="creditInfo"/>


Variables 變量提供保存messages以保持流程狀態(tài)的可能性。通常消息的保存是發(fā)生在收到或者發(fā)送去伙伴的時(shí)候。當(dāng)然變量也可以僅僅是為了保持狀態(tài)而永遠(yuǎn)不發(fā)去給伙伴。一共有三種變量:WSDL message type, XML Schema simple type and XML Schema element. 具體如下:
<variables>
   <variable
             messageType="qname"
             type="qname"
             element="qname"/>
<variables>

messageType, type or element等屬性可以被用于具體描述變量的類型。分別對(duì)應(yīng)于以上三種變量。


從一個(gè)變量中拷貝數(shù)據(jù)到另外一個(gè)在商業(yè)流程中發(fā)生的很頻繁。數(shù)據(jù)的拷貝可以通過分配來實(shí)現(xiàn)。 當(dāng)然這也可以用于拷貝數(shù)據(jù)到一個(gè)新的變量中或者從一個(gè)parterLink到一個(gè)變量中。例如:
<assign>
   <copy>
     <from variable="ncname" part="ncname"/>
     <to variable="ncname" part="ncname"/>
   </copy>
</assign>



基礎(chǔ)行為包括:Invoke,  Receive,  Reply,   Signaling faults,  Waiting and Doing nothing.
控制行為包括:.

因?yàn)樯虡I(yè)流程是和多個(gè)服務(wù)通信的而且這些服務(wù)還可能和其它的服務(wù)相聯(lián)系。此外Web服務(wù)之間的通信是無狀態(tài)的。所以確保總是和正確的服務(wù)實(shí)例交互是很重要的。為此在BPEL中需要用到correlation(關(guān)聯(lián)集)。關(guān)聯(lián)集提供了通過增加一個(gè)辨識(shí)變量而確保和同一個(gè)服務(wù)的實(shí)例交互的可能性。即在WSDL中增加property和propertyAlias兩項(xiàng)并且在BPEL中增加correlationSets一項(xiàng)。

BPEL 用scopes將流程分解成許多部分。而每個(gè)scopes都可以有各自自己的變量。在scope中也可以生成新的scope。而每個(gè)scope都提供了一個(gè)compensation handler(賠償處理器), 一個(gè) fault handler(故障處理器) 和 一個(gè)event handler(事件處理器)。

至此BPEL的基礎(chǔ)介紹就此完成。
在練習(xí)課中我們使用的是netbeans的glassfish做的。其實(shí)在整個(gè)過程中,上述的描述都可以通過圖形化的操作來實(shí)現(xiàn)。并不會(huì)很復(fù)雜。


6. Transaktion
交易基本上可以說是有確定結(jié)果的任務(wù)步驟的集合。每個(gè)步驟通常有“成功”或者“失敗”兩種結(jié)果。而交易的成功與否則取決于每個(gè)步驟的成功與否。
WS-Coordination

WS-Atomic Transaction
WS-Business Activity

ACID標(biāo)準(zhǔn)



7. Sicherheit

8. SOA im Kontext von Sensornetz

9. Alternative Umsetzungstechnologien

10. SOA für medizintechnische Geraete


版權(quán)說明:絕大部分的材料來源于呂貝克大學(xué)ITM學(xué)院開設(shè)的SOA課程的講義。由Nils Glombitza博士編寫。







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1