勞虎觀點 3 --
SOAP 與 Web services
( 2002 / 7
/29 )
因為篇幅的限制,這次要接續上次的專欄文章,再和大家談些SOAP。這次我們將進一步談及應用層面,包括如何利用SOAP來輔助legacy
systems的整合,以建構順應新時代的電子商務環境;並探討SOAP在未來Web
services當道的網路世界中所扮演的重要角色。
SOAP的概念起源於Userland Software創辦人Dave Winer的XML/RPC。我們知道,XML誕生的動機,最早是鑒於網路上通行的HTML格式,往往無法對文件的內容架構作明確的描述。隨後大家很快地發現:XML簡練的語法,不僅適用於描述文件,更可以拿來描述資料──包括被程式讀取和產生的資料,以及DBMS中的資料。從跨AP、跨資料庫、跨平台的資訊整合,一直到B2B電子商務,這個藉由純文字來描述資料的特性,正是Gartner
Group所謂,XML將在未來幾年內成為「EC之語」的精隨所在。Dave Winer在當時看到了這樣的特性,便以XML定義出一套簡單的RPC
(Remote Procedure Call) 包裝機制,並名為XML/RPC,這可說是SOAP的前身。
"SOAP"的名稱則是當DevelopMentor的Don
Box應微軟之邀,開始研發一個彌補MTS/COM不足的標準時才產生的。當初研發的動機,根據Don
Box的現身說法,是著眼於MTS/COM的機制對系統資源索求過重、不夠輕巧,難以應付未來需求。在SOAP制定初期,微軟扮演了主要的推手,同時也是最早宣佈全力支援這個標準的大型業者。去年年初開始,隨著IBM及其他業者加入標準的制定,新版的SOAP
(version 1.1) 已較趨完備,同時並加入了以W3C Schema標準來定義資料類型的重要功能。類似於過去Web上許多既成標準,SOAP1.1是以Note的身分被呈遞給W3C標準會作參考
(http://www.w3.org/TR/SOAP)。Notes在W3C形同於備忘錄,並不代表已具業界共識,標準會亦不給予正式推薦。
因為SOAP所造成的騷動,引發業界對XML傳訊協定的注意,W3C也因而成立了一個工作小組,從事XML
Protocol的標準研發。目前XML Protocol的標準研發尚在訂Requirements的草創階段,還有相當長的路要走。好消息是,這個正式標準將會考慮到SOAP的相容性,使users及軟體廠商不至有無所適從的窘境。另一個最近發佈的雙贏抉擇是,重要的XML推手組織OASIS
(Organization for the Advancement of Structured
Information Standards)、聯合國和昇陽電腦(Sun Microsystems)等廠商所主推的ebXML標準,日前終於決定將把SOAP整合成為ebXML
Messaging Services的一部份。雄心勃勃的ebXML架構相當複雜,功能在某些程度上和微軟主推的BizTalk框架有重疊性及替代性。Sun過去對支援SOAP一事一直反反覆覆,看來亦將隨著ebXML的宣告支援而逐漸塵埃落定。
現在來談談SOAP的應用。儘管EAI(企業內資訊整合)早已不是什麼新鮮的話題,但SOAP和XML的出現,讓傳統EAI軟體的觸角得以延伸至Web,「企業內」的資訊整合搖身一變為「跨企業」,legacy
systems中的程式得以被Web上的users AP及交易夥伴的資訊系統呼叫,以成就電子商務。舉例而言,Software
AG的EntireX Broker middleware,便提供以XML和SOAP作為包裝RPC呼叫的一種新選擇,讓古老的大型主機得以和Web銜接起來(見圖);在一片ERP業者紛紛開始支援Web和XML聲中,SAP也提供以XML作為它RFC
(Remote Function Call) 的一種新形式,讓R/3上的function可透過XML和Business
Connector來作呼叫。
除了legacy systems的整合之外,從更宏觀的角度看來,SOAP很可能將成為未來Web
services時代重要的訊息呼叫格式。Web services的概念是近幾年來逐漸凝聚形成的,而非一朝一夕。微軟的.NET、Sun的ONE,及HP的e-Speak等則是迎接Web
services時代到來的概念型架構及市場行銷新辭令。事實上,一篇網頁可以簡單地把它看成是一個提供內容的service。網頁上常見的股市行情更新,內容搜尋、訂閱電子報的表單欄位等,現在的網路上早已有許許多多的services,而Web
services時代的到來,只是進一步將這個概念發揚光大,把所有程式介面都generalize成Web上的一項項服務,而負責用來描述及呼叫這些程式介面的格式,正是SOAP/XML。上面提到的mainframe及ERP系統中既有的舊functions,經過SOAP和XML的包裝後自然也搖身一變成為最新、最時髦的Web
services。

插圖說明:
透過SOAP的包裝和支援XML/SOAP的middleware server,mainframe上的古老COBOL
functions得以在電子商務時代,繼續提供重要服務。
(more stuff...)
|