現代的BPM系統多採行服務導向架構(Service Oriented Architecture,SOA),以標準化的開放式架構(Standard based open architecture)為基礎,運用最先進的Web Services技術以達系統整合與分散式處理的目的。而SOA(服務導向架構)是什麼?為何SOA最近成了當紅的IT名詞?在BPM領域中是否有更佳的技術架構可取代SOA?為了讓讀者對SOA有通盤的了解,在介紹SOA之前,我們先簡短回顧一下軟體系統發展的歷史。
40年前電腦剛萌芽的時候,一臺電腦得兩三個房間才裝得的下,軟體功能簡單、以數目運算為主,但它的運算能力尚不及現在的一臺手提電腦;在電晶體問世後,電腦的體積逐漸縮小,而運算能力也倍速增加,此時軟體開始變的越來越複雜,各式的電腦語言也如雨後春筍般的出現。為了更容易維護,設計師把程式切割成一塊塊的,稱之為程序或函數,每個程序或函數都有一個介面,可以被呼叫並傳入、傳出函數。然而這樣的分割是以程式的控制及運算為主,而資料仍是共用的,因此當電腦速度以每隔18個月倍增的速度下成長,而程式的大小複雜度也隨之成長,如何更模組化的設計程式,提升再利用率成為一大課題。此時OO(Object-Oriented,物件導向)的設計概念便應運而生。所謂的物件就是把資料與程序包成一個基本單位,如此一來在維護及重覆使用上,都以物件為基礎,不需要為了修改程式或資料結構而一行行的去尋找被波及的程式。
1990年代,當網際網路蓬勃發展之後,程式的執行不再被局限於單一電腦上,而程式的架構也由client/server、3-tier演進到 n-tier MVC的架構,而各個複雜系統架構之間,所用到的程式物件數量往往達成千上萬個之多,要管理維護如此龐雜的系統只有運用類似物件導向的觀念,把更大塊的程式包裝成一個基本單元,並且制定一套標準以便透過網路來呼叫各個基本單元,這就是SOA的基本精神,而這些基本單元在SOA中便稱之為服務。
何謂SOA
要了解SOA首先得知道「服務」的意義。不同的系統對服務的定義與需求皆不盡相同,從功能面來看,服務可以是簡單的匯率換算到複雜的信用卡交易系統;從技術面來看,服務必須有公開的介面(API)及呼叫協定(protocol)。而服務導向架構則是一個以服務為基礎的分散式處理架構。它有三個缺一不可的構成要件:服務提供者、服務需求系統、及服務目錄。由SOA所組合的系統,本身是個需求者,透過服務目錄來找到可以滿足需求的服務提供者,並藉由公定的標準呼叫方式來對服務提出要求。舉例來說,一套可及時換算各地匯率的會計系統,它可以透過服務目錄來找到環境中的所有匯率服務,從而過濾出符合所需轉換貨幣的服務提供者,此時這套系統就可以透過標準的協定與服務提供找交談並呼叫服務,請注意服務需求者(會計系統)可能同時也是服務提供者,透過各式服務的組合來提供其他系統(如ERP)特定服務,因此服務可以像組合屋一樣,由小的服務組成大的服務,再用各式的服務組出一個完整的系統。
SOA與Web Services
其實早在SOA成為熱門話題之前,就已經有許多SOA的技術存在,從早期的RPC、CORBA、DCOM,到近期的RMI、web Services都是SOA的實現工具,除了這些比較完整架構的技術外,也有一些專注在資料交換的結構及協定的技術,我們稱之為服務基底架構(Service Based Architecture),如Rosetta Net等就是這類的代表,不過這些技術雖然行之有年,卻沒有受到大部分人的注意。主要的原因是因為這些技術有其侷限性,並且技術門檻太高,不容易上手。
近年來網路科技快速發展,頻寬與速度皆快速成長,因此分散式處理的架構逐漸受到大家的注意,再加上網路標準如HTTP、XML等的應用已成熟,使得Web Services受到大家的注目,Web Services的長處在於它沒有侷限性,從PC到大型主機、從VB到Java都可以互通,並且它產生服務及使用服務的工具日益成熟,使得入門的困難度減低很多,再加上各主要軟體大廠的大力推廣,造成了流行。
Web Services是以XML、HTTP為基礎,訂定了三個標準:SOAP、UDDI、WSDL。這三個標準分別定義了傳輸的協定,服務目錄所需的資訊,以服務及服務本身的描述。SOAP(Simple Object Access Protocol)規定資訊傳輸可透過internet 標準的HTTP或SMTP協定,並且資料的格式包括MIME及XML都有詳細規定,所以服務需求者可以產生一個SOAP的要求給服務提供者,而服務的結果也經由SOAP傳回給原需求者,可是需求者要找到提供者,就必須透過一個目錄來找到,就好像我們要透過104來找到電話號碼一樣。UDDI(Universal Description , Discovery and Integration)提供了讓服務提供者註冊各種服務的機制,使需求者能找到服務提供者及其資訊,包括了公司資料所提供的服務種類以及各個服務的資訊,服務的描述是透過WSDL(Web Services Description Language)來完成的,其中有定義了這個服務所提供的功能,類似API的概念,也描述了這些功能輸入輸出的資料型態。
POA大有凌駕SOA之勢
SOA的好處在於它提供了一個很好的架構來實現分散式的處理,服務可以很容易的Plug-n-play即插即用,當服務停止時,系統也可以透過服務目錄的搜尋,找到同種類的服務,達到Hot Swap(熱插拔)的效果。不過在實際上,工程師們常發現用SOA實作一個系統,並非一件易事。這主要是因為SOA強調服務導向,而我們在設計系統時,卻是著眼於完整的功能及其目標,舉例來說,每個公司的員工其實都是一個服務提供者,協助公司團隊完成某項任務,然而,從公司的角度來看,如何將這些員工組成一支堅強的戰鬥體,完成交付的任務與如何找到這些人是一樣重要的。而這個整合的動作,其實就是企業流程或作業流程(SOP),因此有人開始提出POA(流程導向架構)的概念,用流程來整合各個服務,而各個服務本身也可以是由流程串接各種功能而產生的,SOA專注於元件的溝通與管理,而POA則專注於如何用這些元件來做一些有意義的事。
使用流程導向架構的好處在於:
1.由於POA是建構於SOA之上,它也擁有SOA的好處如整合性高、模組化、再利用率高、及擴充彈性等。
2.容易維護、提升彈性:由於流程可以透過圖形的方式表示,並且用拖拉的方式就可以修改,不像一般程式將商業的Logic及執行步驟埋藏在程式裡。
3.快速建立:不同於SOA只是一個概念及一些協定,POA架構有BPM系統的支持,要設計一套POA的系統可以透過市面上現成的BPM系統快速實現。
從軟體系統發展的歷史來看,當系統越來越複雜後,人們便開始想辦法增大基本元件,所以從每一行到程序到物件,現在則是把服務看做基本元件來簡化系統設計,在服務的相關協定標準化之後,未來將會產生「網路效應」--越來越多的服務出現,系統建置將不再從零開始,而會利用這些服務來快速產生,更多的服務需求因而產生,並開始良性循環。
由於,21世紀BPM系統須能協助企業更敏捷、有效率地串連人、流程、系統運用及資訊,加速企業回應全球化經營環境的速度,因此未來系統開發會更著重於快速整合各種應用服務,此時POA將是最佳選擇。
《作者簡介》黃仕鎮
超義科技總經理,BPM暨B2Bi研究團隊領導人,國立中央大學助理教授,NYU紐約大學碩士/博士。曾服務於美國AT&T貝爾實驗室,為AT&T研究中心物件導向設計概念委員會(Object Oriented Technology Committee)成員,致力協助AT&T內各研究發展計劃演進至物件導向式設計概念和Web-based N-tier系統架構,以增進系統運作能力和未來發展的彈性;專精於SOA、Web Services、BPMN、POA……等當代e-business技術架構。
熱門新聞
2025-01-26
2025-01-25
2025-01-26
2025-01-27
2025-01-26
2025-01-27