• 沒有找到結果。

第一節探討服務導向架構,第二節 介紹資訊網服務,第三節討論 Workflow 及 BPEL

N/A
N/A
Protected

Academic year: 2021

Share "第一節探討服務導向架構,第二節 介紹資訊網服務,第三節討論 Workflow 及 BPEL"

Copied!
15
0
0

加載中.... (立即查看全文)

全文

(1)

第二章 相關文獻探討

本章探討在整合資訊網服務時碰到的問題及使用的相關技術、如 XML、

SOAP、WSDL、BPEL 及 Workflow 等相關技術。第一節探討服務導向架構,第二節 介紹資訊網服務,第三節討論 Workflow 及 BPEL。

2.1 服務導向架構

所謂的服務導向架構是將使用者與服務提供者透過一定方式互相連結起 來,但是所謂的連結起來是有一些條件限制的。其使用者與服務提供者的連結方 式必須是鬆散偶合的方式。每個服務提供者對會定義一組介面來提供服務,而使 用者就利用其定義的介面來決定如何利用此服務。如此使用者可以不需受到服務 提供者的內部架構影響,而服務導向架構之所以可以將使用者與服務提供者互相 的連結起來,其所使用的技術是 XML 與 WSDL 及 SOAP 等技術,以下分別詳細介紹。

2.1.1 XML 的標準

XML(EXtensible Markup Language),是由 XML Working Group 所制訂發展,

該組織是由 W3C 所贊助的,W3C 於 1998 年正式通過推薦 XML 1.0 版;XML 被制訂 的主要目標是為了能在 World-Wide-Web 上處理與傳送文件,所以其文件資料的 描述是非常的有結構性,XML 必須符合"well-formed"的特性,所謂符合

"well-forme"有以下幾點特性:

1.XML 文件第一列必須是 xml 的宣告 2.XML 文件只能有一個根節點

3.所有的控制標籤必須滿足巢狀排列

4.空的標籤必須要有『/』符號;屬性質的設定必須被『"』包圍起來。

XML 文件也必須符合另一項規則,就是"validity",也就是符合文件格式定 義(Data Type Definition, DTD),建立一份 DTD 可以在不同的 XML 文件中使用 該文件格式定義,來強迫在文件本體中的結構是完全一樣的。XML 的應用範圍相

(2)

當廣泛,像是不同資料庫間的資訊交換就是很典型的一個應用範疇,因為 XML 是一種描述結構文件的標準規範,所以各家廠商都可以輕易地根據標準來發展其 資料庫的代理程式,免除了 HTML 帶來的標籤不一致的困擾,而且目前網際網路 盛行,大家也都習慣使用瀏覽器來取得與發送資訊,但是不同廠牌資料庫間的資 料交換,必須由各家廠牌的 ODBC 應用程式來輔助,造成資訊交換的不方便,因 此 XML 就提供了一個相當好的資料交換中介語言。

2.1.2 WSDL 的標準

WSDL(Web Service Description Language)就是用來描述資訊網服務的一 種語言,WSDL 是由 Ariba、Intel、IBM 和微軟等開發廠商共同來提出。它是用 一種和具體語言無關的抽象方式來定義資訊網服務的介面,其主要的目的是要描 述資訊網服務所提供的功能及如何來使用資訊網服務。目前 WSDL2.0 已成為 W3C 的 Working Draft。WSDL 的組成有六大部分,分別如下:Definition、Type、

Message、PortType、Binding、Service 等。Definition :為整份 xml 文件的 根元素。Type:為定義其輸入及輸出要為何種 type 如 int string 等。Message:

為抽象的型別定義,其底層是 type 的類別。PortType:定義此資訊網服務的輸 入及輸出訊息有哪些。Binding:定義如何將 portType 綁到一個特定的協定上。

Service:定義被綁到一個特定的協定上的 portType 要如何存取。整個 WSDL 的 技術架構如圖 2-1 所示:

(3)

WSDL 是一份副檔名.wsdl 的 xml 檔案、由上圖可了解 WSDL 語法分為兩大部 分、分別如下:

1、描述服務介面(Service Interface Definition

這個部分主要說明 WSDL 檔案資料的格式、傳遞溝通的訊息、如何進行 作業等、簡單規範性的說明,這部分是可重複使用的。

2、實做服務定義(Service Implementation Definition)

這部分主要說明如何呼叫由服務介面所提供的服務、包括:提供服務的 廠商、提供服務的網路位址等。

2.1.3 SOAP 的標準

SOAP (Simple Object Access Protocol)的誕生。SOAP 的概念起源於 Userland Software 創辦人 Dave Winer 的 XML/RPC。SOAP 的名稱則是當

Service Implementation

Definition

Service Interface Definition

Binding

PortType

Message

Type Service

Port

圖 2-1 WSDL 技術架構圖

(4)

DevelopMentor 的 Don Box 應微軟之邀,開始研發一個彌補 MTS/COM 不足的標 準時產生的。當初研發的動機,根據 Don Box 的現身說法,是著眼於 MTS/COM 的 機制對系統資源索求過重、不夠輕巧,難以應付未來需求。在 SOAP 制定初期,

微軟扮演了主要的推手,同時也是最早宣佈全力支援這個標準的大型業者。後來 隨著 IBM 及其他業者加入標準的制定,SOAP 1.1 已較趨完備,同時並加入了以 W3C Schema 標準來定義資料類型的重要功能。目前 SOAP 已成為 W3C 的

Recommendation、最新的標準為 SOAP1.2 的版本。SOAP 的組成有 3 大部分、分 別為:Envelope、Header、Body。Envelope 為該份 xml 文件中的根元素,其下 有兩個子元素即 Header 及 Body。Header 為用來寫入與應用程式無關的資訊、如 此可在不用更動原來的程式就可加入額外的功能。Body 中包含了應用程式專屬 的資訊、如輸出及輸入等資訊。以下分別為 SOAP 的架構圖、request 及 response message 的例子:

圖 2-2 SOAP request 內容訊息圖

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance

"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body>

<Add xmlns="http://tempuri.org/">

<a>5</a>

<b>8</b>

</Add>

</soap:Body>

</soap:Envelope>

(5)

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body>

<AddResponse xmlns="http://tempuri.org/" />

<AddResult>13</AddResult>

</AddResponse>

</soap:Body>

</soap:Envelope>

圖 2-3 SOAP response 內容訊息圖

Envelope

Body

Header entity

Header entity

Body entity

Body entity

………

………..

圖 2-4 SOAP 訊息架構圖

(6)

2.2 資訊網服務

2.2.1 資訊網服務

資訊網服務是一個分散式的架構、整合既有的、公開的標準來創造出新的 應用程式,並且因為採用 XML 的標準、所以在每個不同平台的資訊網服務之間都 可以互相的溝通、協調。而在 W3C 中有對資訊網服務做一個定義:

「所謂資訊網服務就是為了在網路上要支援機器與機器之間的互動,而設 計的。它的功能是用一種機器可以了解的方式來描述的。其他系統與資訊網服務 的互動是以一種用 SOAP 訊息的方式,且通常是用 HTTP 及 XML 序列化來連結其它 的 Web 相關標準」。除了資訊網服務的定義之外、還有很多資訊網服務相關發展 標準、如:Web Service Management: Service Life Cycle【 14 】、這是描述 資訊網服務的生命週期及資訊網服務處理一個 request 的過程。目前這份標準的 最新狀態是 W3C 的 Working Group Note。又另一個資訊網服務的相關標準 Web Service Architecture【 9 】、這是定義資訊網服務的架構及其元件的功能及互 相之間的關係。除了以上介紹的兩個相關標準外、資訊網服務還有很多的相關標 準、如 Web Service Choreography Requirements【 11 】、Web Service Choreography Description Language Version 1.0【 10 】等標準正在發展中。

所以資訊網服務是一個新興的、正在發展中的新標準。

資訊網服務也是一個服務導向架構(Service Oriented Architecture: SOA) 的標準,主要的角色有三種:服務要求者、服務提供者,以及服務登錄,其架構 如圖 2-5 所示,其中各角色間的搜尋、連結及刊登又以 SOAP 為訊息傳遞的通訊 協定,而 Client 端與 Service 之間的連結則透過 WSDL 來達成,因此資訊網服務 的技術主要有以下三部分:服務登錄、WSDL、及 SOAP,其中 WSDL 及 SOAP 於之 前的章節已介紹過、以下就服務登錄做詳細介紹。

(7)

服務登錄在資訊網服務的相關標準中佔了很重要的地位、其最主要的功能 就是紀錄資訊網服務的相關資訊,如當你需要某些特定功能的資訊網服務時,你 可以利用服務登錄所紀錄的資訊找到你所需要的資訊網服務。又就是說服務登錄 的主要角色就是做為服務提供者刊登服務及服務要求者搜尋服務的中間媒介,就 是很類似目前電話的 Yellow Page 功能。而服務登錄的相關標準有

UDDI(Universal Description Discovery & Integration)及 WSIL(Web Service Inspection Language)等標準。分別介紹如下:

2.2.2 UDDI 服務登錄

UDDI 現況:目前 UDDI 的標準制定由 OASIS TC 【 8 】主導,於 2002 年推 出 UDDI 3.0,並著手制定更適用的 UDDI 4.0;而全球 UDDI 資料登錄的維護及管 理主要由 Microsoft 公司(http://uddi.microsoft.com )、IBM 公司

(http://uddi.ibm.com )、SAP 公司(http://uddi.sap.com)及 HP 公司等共同維 服務登錄

服務要求者 服務 服務提供者

描述

搜尋 刊登

連結

圖 2-5 資訊網服務架構圖

(8)

護,並且每天會將各個資料庫同步化。

UDDI 使用模型主要有以下四項:

(1) BusinessEntity :主要定義企業的名稱、地址、連絡人姓名 及電話等企業的資訊。

(2) BusinessService:主要是用來描述企業所提供的服務 (Service)的相關資訊。

(3) Binding Template:主要是用來描述如何存取企業所提供的服 務,如網址等。

(4) tModel:是對企業所提供的服務之抽象定義,也可說成是服務 的指紋,通常會指向服務的 WSDL 來提供相關的連結方法。

2.2.3 WSIL 服務登錄

WSIL(Web Service Inspection Language)是由 IBM 與 Microsoft 所共同提 出以 XML 為基底的網路服務檢視語言,WSIL 可以提供使用者去搜尋網路服務提 供者所提供的網路服務,網路服務提供者會提供一份 WSIL 文件,讓使用者去搜 尋所需要的服務。其與 UDDI 都是用於資訊網服務的找尋、但是兩者有不同的運 作方式。UDDI 使採用集權的方式登錄資訊網服務的資訊,而 WSIL 則是利用分散 式的方式來紀錄資訊網服務的資訊。兩者都是在紀錄資訊網服務的資訊但是卻是 利用兩種不同的模型。

2.2.4 複合資訊網服務

整合資訊網服務的整合方式有分成靜態及動態整合的方式【 2 】及資訊網 服務與其控制流程的關係【1】,所謂的靜態就是在資訊網服務整合之前就已經知 道哪一些資訊網服務要整合在一起,這種方法較沒有彈性,只有固定的功能而 已。另一種方式為動態整合的方式,即在整合的工作流程執行中時才會知道要整 合哪一個資訊網服務,及要如何的整合。本論文採用的是一半固定、一半是動態 的方式【 17 】

(9)

將各個不同的資訊網服務整合成一個複合資訊網服務,而這個複合訊網服 務的執行方式有兩種:中央集權式及點對點模式。中央集權式的執行方式如圖所 示,另一種的執行方式為點對點的方式,本論文採用的為圖 2-6 中央集權的方式。

在整合的過程中,其參數的傳遞有好幾種方式,第一種為每個 Web Service 整合前的參數都不一像如圖 2-7 所示,則這時當整合完成後要將所有用到的參數 都傳送給新形成的複合資訊網服務,如圖 2-8 所示。

Scheduler

WS1

WS2

WS3

圖 2-6 中央集權式複合資訊網服務

WS1

WS2

參數 1、參數 2

參數 3、參數 4

圖 2-7 不同參數之個別資訊網服務

(10)

第二種參數的傳遞方式為每個 Web Service 整合前的參數有些相同,如圖 2-9 所示,則當整合資訊網服務時,有相同的參數就不用傳送給新形成的複合資 訊網服務,只要傳送不同的參數就可以,如圖 2-10 所示。

WS1 WS2

參數 1、參數 2、參數 3、參數 4

圖 2-8 不同參數之複合資訊網服務

WS1

WS2

參數 1、參數 2

參數 1、參數 3

圖 2-9 部分同參數之個別資訊網服務

(11)

2.3 工作流程架構

2.3.1 工作流程架構

所謂的工作流程的意思簡單的說即為:「A Workflow is defined as a formal specification of the tasks and the coordination requirements, called inter-task dependencies, between them.」【 5 】。而在西元 1993 年 8 月,成 立了 WfMC (Workflow Management Coalition)這個業界及研究組織。WfMC 致力 於工作流程的研究及使用,其提出工作流程參考模組(Workflow Reference Model Diagram),如圖 2-11 所示。

WS1 WS2

參數 1、參數 2、參數 3

圖 2-10 同參數之複合資訊網服務

(12)

在 WfMC 的工作流程參考模組中,有好幾個介面,每個介面都各有一個 group 來負責維護及發展。由於資訊網服務的出現,所以每個介面都可以包裝成資訊網 服務,如此可將資訊網服務擴充成網際網路的工作流程。網際網路工作流程的溝 通方式一定是採用 SOAP 的標準,其架構圖如圖 2-12 所示。在網際網路的工作流 程架構下,雖然是只使用一種工作流程引擎,但因為其使用 SOAP 的介面來連結 資訊網服務,而且資訊網服務為具有跨系統、網路的特性,所以會產生一種新的 網際網路工作流程。

圖 2-11 WfMC 之工作流程參考模組

(13)

2.3.2 流程語言

有關於資訊網服務的流程語言有非常多、如先前微軟公司的 Microsoft's XLANG 及 IBM 公司的 WSFL 都是描述資訊網服務的流程語言之一。而另一種新的 資訊網服務流程語言 Business Process Execution Language(BPEL)則是由微軟 公司及 IBM 公司所共同提出的新一代流程語言。BPEL 融合了 XLAMG 及 WSFL 的優 點,本系統的實作部份即採用 BPEL。目前 BEPL 由 OASIS 資訊網服務 s Business Process Execution Language (WSBPEL) TC 所發展中。BPEL 文件是像 XML 一樣 的是擁有結構化的樹狀結構的檔案,BPEL 定義的標籤有主要有 15 個 activity。

activity 類別的標籤在 BPEL 的檔案中都是屬於一個獨立的一個標籤,可以獨自 的存在、有獨立的功能。而其餘的標籤是需要附屬於 activity 類別的標籤之下,

如表 2-1 所示。

圖 2-12 網際網路工作流程架構圖

(14)

除了 BPEL 之外,還有另一種工作流程語言 XPDL(XML Process Definition Language)此種語言為 WfMC 所制定【 4 】。本論文的 TSP(Travel Schedule Profile,旅遊行程紀錄檔)及 SWSFL(Simple Web Service Flow Language)都是 架構在 BPEL 之上。BPEL 及 XPDL 都是架構在資訊網服務之上如圖 2-13,但是要

標籤 意義

receive <receive>標籤表示要接收一個要求 reply <reply>標籤表示要回應一個訊息 invoke <invoke>標籤表示要呼叫一個夥伴 assign <assign>標籤表示要複製變數值 throw <throw>標籤表示要拋出例外 terminate <terminate>標籤表示要結束流程 empty <empty>標籤表示不做任何事情 wait <wait>標籤表示要停頓幾秒 sequence <sequence>標籤表示執行順序 switch <switch>標籤表示有分支的流程 while <while>標籤表示有循環的流程 pick < pick >標籤表示有分支的流程 flow < flow >標籤表示執行順序 scope <scope>標籤表示流程的變數範圍 compensate <compensate>標籤表示執行特定的流程

表 2-1 BPEL 檔案之標籤及其意義

(15)

做到資訊網服務的整合則必須要用 BPEL,所以本論文採用 BPEL。

XML

WSDL Web Service

BPEL SWSFL

TSP

XPDL

圖 2-13 流程語言技術架構圖

數據

圖 2-10  同參數之複合資訊網服務
圖 2-12  網際網路工作流程架構圖

參考文獻

相關文件

a 全世界各種不同的網路所串連組合而成的網路系統,主要是 為了將這些網路能夠連結起來,然後透過國際間「傳輸通訊 控制協定」(Transmission

例如 : http ( 網頁伺服器所用的協定 ) 定義了 client 如何向 server request 網頁及 server 如何 將網頁及其中的各種內容回傳給 client 。. 提供服務給 application layer

‡ Verio 提供網站代管公司完整的軟體、運算 與網路資源,也提供網路零售業者開發電子 商務及網站代管的服務 V i 也提供小型 商務及網站代管的服務。

105 年第二季(4-6

106 年第一季(1-3

服務提供者透過 SOAP 訊息將網路服務註冊在 UDDI 中,服務需求者也可以透 過 SOAP 向服務仲介者查詢所需的 Web Service 並取得 Web Service 的 WSDL 文件,2.

Registry Server 是建構於第三方具有公信力的一個組織,而 Registry Server 在 Web Service 的架構中,主要的功能類似於提供服務查詢(Yellow

服務選取模組主要目的是從 UDDI (2.1.5 節)眾多服務當中,依照需求選取出 一組合適的網路服務。而