三部曲:Web services之規(guī)劃策略
?
李清培
弈飛資訊首席顧問 /臺灣微軟特約資深講師
?
在上一篇文章中,我們談到了以Web services作為存取介面的服務(wù)導(dǎo)向應(yīng)用程式架構(gòu),以及其與企業(yè)應(yīng)用程式之間的關(guān)聯(lián);其中最重要的關(guān)鍵點(diǎn)在於如何利用“服務(wù)導(dǎo)向的應(yīng)用程式架構(gòu)”滿足企業(yè)應(yīng)用程式強(qiáng)烈的?“彈性”與“整合” 之需求?。這個月,我們將進(jìn)一步的談?wù)劊绾螌?SPAN lang=FR>Web services應(yīng)用在真實(shí)的企業(yè)環(huán)境,以及其規(guī)劃策略。
Web services企業(yè)運(yùn)用設(shè)計(jì)模式
在談到如何將Web services導(dǎo)入到企業(yè)的系統(tǒng)架構(gòu)中之前,還要再強(qiáng)調(diào)一次,雖然在以下的各種應(yīng)用模式中,使用的是Internet的技術(shù),但Internet只是Web services的手段,而非Web services的目的。Web services不是只為了Internet而設(shè)計(jì),重點(diǎn)在於他是一種使用標(biāo)準(zhǔn)技術(shù)的分散式應(yīng)用程式。
分散式應(yīng)用程式讓企業(yè)在建置資訊系統(tǒng)時(shí)不論在採購上或建置上都更為彈性,企業(yè)可依需要不斷的擴(kuò)充系統(tǒng),而不需在初期即一次購足;企業(yè)也可以將系統(tǒng)以功能模組的方式分階段建置或升級;企業(yè)也可以依實(shí)際需求,將資料庫或資訊系統(tǒng)分布在不同的地方,再以網(wǎng)路加以連結(jié)。分散式應(yīng)用程式有助於將商業(yè)邏輯集中管理,並取得較佳的安全機(jī)制,另外在伺服器與資料庫資源的充分利用以及多樣化的用戶端的設(shè)計(jì)模式,更是分散式應(yīng)用程式所帶來的好處。
然而隨著市場全球化以及網(wǎng)路經(jīng)濟(jì)的成形,雖然給了分散式應(yīng)用程式一個絕佳的揮灑空間。卻也因此突顯了一個嚴(yán)重的問題,也就是在上一篇文章中所提到異質(zhì)平臺的問題。理論上,分散式應(yīng)用程式只要設(shè)計(jì)得當(dāng),便可以將分散在各地的系統(tǒng)與資料整合成一個抽象的大系統(tǒng),但由於各家系統(tǒng)廠商所使用的技術(shù)不同,以及新舊系統(tǒng)技術(shù)與設(shè)計(jì)概念不同,所導(dǎo)致的不相容問題,使得分散式運(yùn)算的優(yōu)點(diǎn)大打折扣。因此在發(fā)展新一代分散式應(yīng)用程式時(shí),就企業(yè)觀點(diǎn)而言首先必須解決的,是企業(yè)內(nèi)系統(tǒng)整合的問題,包括資料的整合與應(yīng)用程式的整合,如何讓異質(zhì)平臺或新舊系統(tǒng)間的資料能互通,以及新開發(fā)的應(yīng)用程式能繼續(xù)使用舊系統(tǒng)或異質(zhì)平臺的應(yīng)用程式,以保留就有投資的價(jià)值。再來則是跨企業(yè)間的程式互通,包括B2B的電子商務(wù),以及供應(yīng)鏈的整合。最後則是各應(yīng)用程式的流程整合。而Web services則是符合這些需求的重要技術(shù)。
除了解決企業(yè)全球化與網(wǎng)路化的整合需求以外,延伸自Web services的特殊技術(shù),也為企業(yè)帶來了另一種商業(yè)價(jià)值,這種價(jià)值來至於Web services的商品化,也就是在上一篇題到的軟體服務(wù)。這種直接出售Web services的軟體服務(wù),包括功能性的隨選服務(wù) (Services-on-Demand),以及組成應(yīng)用程式的軟體積木等。
接下來我們就一一的介紹如何將Web services導(dǎo)入到企業(yè)的真實(shí)環(huán)境,以及其規(guī)劃策略與所帶來的好處。
企業(yè)應(yīng)用程式的整合
對於許多企業(yè)而言,使用 Web services 的第一個實(shí)作通常會是內(nèi)部應(yīng)用程式的整合。利用 Web services 延伸或擴(kuò)充原有應(yīng)用程式的功能,或?qū)⒉煌到y(tǒng),以 Web services 加以連結(jié)或整合。
企業(yè)應(yīng)用程式整合工作如果加以細(xì)分,包括應(yīng)用程式的整合、資料整合、與流程整合。關(guān)於流程整合在後面再來談。應(yīng)用程式與資料的整合需求對許多企業(yè)來講是很重要的議題。當(dāng)企業(yè)合併或併購時(shí),原本不同企業(yè)的資訊系統(tǒng)需要整合成一個完整的資訊系統(tǒng);開發(fā)新的系統(tǒng)必須與舊的系統(tǒng)整合;企業(yè)因需求與設(shè)計(jì)考量,將原本集中式大型主機(jī)系統(tǒng)改為分散式應(yīng)用程式系統(tǒng)時(shí)也需要整合,尤其當(dāng)系統(tǒng)或資料庫是分散在各地時(shí),必須透過Internet整合加以整合;再來則是企業(yè)再進(jìn)行軟體採購或委外服務(wù)時(shí),為了符合最佳的經(jīng)濟(jì)效率或協(xié)力廠商使用技術(shù)的限制,常無法取得與原有系統(tǒng)相同技術(shù)或平臺之解決方案,這時(shí)候也需要整合。
企業(yè)應(yīng)用程式整合的市場仍相當(dāng)龐大,而每個專案動則花費(fèi)數(shù)百甚至數(shù)千萬的預(yù)算。目前市場上整合的解決方案很多,但大多是一對一的整合,典型的像連結(jié)MSMQ與MQSeries的FalconMQ。 Web services 則提供另一種全然不同的方法,利用實(shí)作標(biāo)準(zhǔn)介面的方式,進(jìn)行多點(diǎn)的整合。只要將現(xiàn)有的傳統(tǒng)系統(tǒng)可以包裝成Web Service ,便可與企業(yè)內(nèi)的其他系統(tǒng)整合使用。利用這種技術(shù),將複雜的舊系統(tǒng)包裝在標(biāo)準(zhǔn)的XML之後,以Web services的標(biāo)準(zhǔn)溝通介面,取代原有一對一的整合方式,同時(shí)在規(guī)劃時(shí),還可以依需要,僅選擇一部分或全部的功能作為整合的介面。
供應(yīng)鏈的建立與開發(fā)
另一個驅(qū)動 Web services 發(fā)展的主要力量則為 B2B 的商業(yè)模式。有人甚至斷言供應(yīng)鏈整合將會是最具威力的 Web services 應(yīng)用程式。主要是因?yàn)楣?yīng)鏈影響的範(fàn)圍廣,而 Web services 提供供應(yīng)鏈應(yīng)用程式所需之 XML 及相關(guān)之產(chǎn)業(yè)標(biāo)準(zhǔn)。在一份由InfoWorld (http://www.InfoWorld.com) 針對CTO所作的調(diào)查統(tǒng)計(jì),70%的CTO認(rèn)為Web services 對企業(yè)最有影響的是在B2B電子商務(wù)上。B2B應(yīng)用程式可以像信用卡驗(yàn)證這樣簡單或者像產(chǎn)業(yè)的供應(yīng)鏈這樣複雜的程式。建置B2B應(yīng)用程式的挑戰(zhàn)結(jié)合B2B背後的廣大市場潛力是驅(qū)使Web Service快速改進(jìn)的原動力。
臺灣的B2B計(jì)畫,最重要的應(yīng)該是由經(jīng)濟(jì)部技術(shù)處主導(dǎo)的A、B、C、D、E計(jì)畫。其中A計(jì)畫,讓HP、Compaq、IBM將採購資訊下放到臺灣來;B計(jì)畫則把華碩、仁寶、英業(yè)達(dá)等15家臺灣廠商的資訊與美國採購商搭上線,讓臺灣的製造業(yè)在世界PC市場上,保住一年180億美元的市場。A、B計(jì)畫的核心,是以「大廠為中心廠,帶動下游供應(yīng)商加入」的垂直聯(lián)結(jié)方式,藉由Internet將市場變動的資訊,即時(shí)回饋到計(jì)畫中的產(chǎn)業(yè),讓廠商可以針對變動來調(diào)整庫存。
另一個不同於A、B計(jì)畫的,則是由下游零組件大廠明基與資策會合作的「星動計(jì)畫」,在這個計(jì)畫中,Internet所連結(jié)的是一種水平溝通的電子交易平臺(Hub),以「水平」的產(chǎn)業(yè)平臺,取代「垂直」的供應(yīng)鏈體系。星動計(jì)畫是以資策會開發(fā)的viaHub作為公共平臺,讓參與廠商、供應(yīng)商之間可以跨越不同的系統(tǒng)平臺作RosettaNet的資料存取。
除了製造業(yè)以外,傳統(tǒng)各產(chǎn)業(yè)之間其實(shí)都存著一套共通的電子交換格式EDI以進(jìn)行B2B的資料交換,不同於Web services的是,這些交換格式都並須建立產(chǎn)業(yè)間特殊的交換平臺與資料格式或規(guī)範(fàn),而Web services不需要特定平臺,Internet本身就是一個很好的平臺,只需依XML的規(guī)範(fàn),定義各產(chǎn)業(yè)的Schema,即可在共通的標(biāo)準(zhǔn)上進(jìn)行交易,利用Web services建置的好處在於他的建置成本低,參與的廠商利用Web services的標(biāo)準(zhǔn)規(guī)範(fàn)建置溝通介面,只需按照各產(chǎn)業(yè)所訂的標(biāo)準(zhǔn)定義描述資料的名詞及內(nèi)容格式即可,例如一筆訂單資料應(yīng)包含哪幾個項(xiàng)目,訂單是用Orders還是PO來表示等。另外一個好處在於這樣的規(guī)範(fàn)還可以是跨產(chǎn)業(yè)的,B2B不是只有供應(yīng)鏈而已,還必須考慮金流、物流等,這些都會應(yīng)用到跨產(chǎn)業(yè)的溝通方式。因此,以Web services作為B2B溝通介面的規(guī)劃策略,具有相當(dāng)大的彈性與經(jīng)濟(jì)效益,也因此有些權(quán)威人士認(rèn)為供應(yīng)鏈整合將會是一個殺手級的Web Service 應(yīng)用程式。
現(xiàn)有與未來應(yīng)用程式的擴(kuò)充
由於目前個人所能取得的數(shù)位週邊設(shè)備相當(dāng)豐富,除傳統(tǒng)PC與筆記型電腦以外,PDA、手機(jī)、簡訊等,使得用戶端程式的客製化顯得非常重要,其中尤以手機(jī)最為嚴(yán)重,由於消費(fèi)性產(chǎn)品的市場化,各家在樣式上求新求變,使程式開發(fā)工作更為困難。Web services 繼承自分散式應(yīng)用程式商業(yè)邏輯集中的優(yōu)點(diǎn),可以快速開發(fā)多樣化的用戶端程式。只要將商業(yè)邏輯以Web services呈現(xiàn),再針對不同用戶端撰寫資料展示的方式就可以了。目前市場上的用戶端程式開發(fā)工具,大多數(shù)都支援Web services的存取,其中Visual Studio .NET更可以在單一的畫面裡面,完成所有應(yīng)用程式的開發(fā)。
然而對大部分的企業(yè)而言,許多的商業(yè)邏輯都已寫完,而且行之多年,不可能為了開發(fā)一隻手機(jī)的程式,而將整個程式重寫。前面提到,Web Service提供一組吸引人的技術(shù),就是將現(xiàn)有的傳統(tǒng)系統(tǒng)包裝成Web Service ,以提供其他應(yīng)用程式使用。藉由這種方式,不只可以享有Web services所帶來的便利,更可因此延伸原有應(yīng)用程式的生命週期。
在這裡舉一個典型的例子,在擔(dān)任.NET開發(fā)技術(shù)的講師與顧問的兩年多時(shí)間裡,
?最常碰到的問題是有關(guān)ASP.NET網(wǎng)頁設(shè)計(jì)的問題。由於ASP.NET提供像VB開發(fā)視窗程式一樣拖曳的視覺化開發(fā)環(huán)境,使得很多人就習(xí)慣性的將兩者拿來比,但事實(shí)上這兩者還是有差異的。網(wǎng)頁的程式,由於透過Internet在伺服器上執(zhí)行完畢後,再將結(jié)果傳回用戶端展示層,因此有其先天上的限制。
很多人會希望能符合老闆以及市場形象的需求,使用Web based的架構(gòu),(在一些特殊的個案中,企業(yè)選擇Web based的原因是因?yàn)槔祥浾J(rèn)為這樣才跟得上時(shí)代)但用希望像視窗程式一樣的使用者操作介面,其實(shí)透過Web services就可以解決這樣的問題。
另外一種則應(yīng)用程式擴(kuò)充的例子,則是將應(yīng)用程式系統(tǒng)分為核心程式與服務(wù)程式,將必要的程式邏輯部分也在核心程式,在以Web services的方式依功能分類,撰寫各個服務(wù)程式。可以將核心程式當(dāng)作是主機(jī)板與CPU等重要元件,而各個服務(wù)程式則有如週邊設(shè)備一樣,可依需要隨時(shí)擴(kuò)增。
?
降低系統(tǒng)建置的時(shí)間與成本
除了解決應(yīng)用系統(tǒng)整合與溝通上的問題外,對於新系統(tǒng)的開發(fā),Web services也可以降低開發(fā)的時(shí)間與成本,這一類的設(shè)計(jì)模式大概可分為幾種狀況。
第一種稱為軟體積木的開發(fā)方式,企業(yè)直接利用Internet上的Web services,以軟體積木的方式,加快系統(tǒng)開發(fā)的速度,尤其對於一些輔助性的功能,或一些共通的商業(yè)智慧。在上一篇文章中,我們也舉了Google的例子,您可以直接使用 Google 所提供的 Web services,就可在應(yīng)用程式中加入此一功能。除此以外,由微軟所提供的.NET My Service也提供了非常多的軟體積木可供使用,其中最為熟悉的應(yīng)屬Passport驗(yàn)證機(jī)制。
另外對於新市場的開發(fā),企業(yè)往往必須重新熟悉這一個市場的商業(yè)邏輯或?qū)iT的技術(shù),而透過Web services的服務(wù)即可快速的修正系統(tǒng)的功能,以加快新市場的開拓。例如企業(yè)在進(jìn)行全球貿(mào)易時(shí),除了基本的商務(wù)應(yīng)用程式外,可能還會建立連接貨運(yùn)倉儲部門與國際貨運(yùn)公司間的B2B運(yùn)輸系統(tǒng)。這樣的系統(tǒng)通常是以緊密結(jié)合的方式所建立,也就是企業(yè)的資料庫裡,必須知道貨運(yùn)公司的價(jià)格、航班、週期、速度等。當(dāng)企業(yè)的業(yè)務(wù)拓展到新的國家時(shí),如果原有的貨運(yùn)公司無法到達(dá)時(shí),這時(shí)候只有兩種選擇,第一是放棄市場,第二是重新洽談另一家貨運(yùn)公司,重新改寫程式。但如果反過來,這些B2B的關(guān)係是建立在Web services的連結(jié)上,只要透過UDDI找到所需的服務(wù),便可輕易的進(jìn)入新市場。
再來則是企業(yè)在提供全球技術(shù)服務(wù)時(shí),也可以利用Web services來達(dá)到技術(shù)支援的目的。例如目前主要汽車大廠的服務(wù)點(diǎn)都以全球部署作為其市場競爭的利器。而針對高階人士設(shè)計(jì)的筆記型電腦,為因應(yīng)國際商務(wù)的需求,也都強(qiáng)調(diào)全球保固的服務(wù)。然而這也衍生一個問題,由於服務(wù)點(diǎn)遍佈全球,各地的技術(shù)水平並不一致,如何達(dá)到相同的服務(wù)品質(zhì),則是一個很大的考驗(yàn)。
以汽車廠為例,假設(shè)今天擁有一部數(shù)百萬的進(jìn)口名車,在臺灣要找到維護(hù)場並不難,但今天如果在某些落後國家,狀況可能不一樣了,即使原廠所設(shè)的服務(wù)點(diǎn),也會應(yīng)當(dāng)?shù)氐募夹g(shù)人力,而有所不同。幸運(yùn)的是,目前大多進(jìn)口名車都採取電腦診斷的方式以進(jìn)行故障排除,因此只要能提供詳細(xì)的檢修步驟,讓維修人員按照步驟完成檢修工作。
然而這樣還不能完全解決問題。由於修護(hù)系統(tǒng)的高度機(jī)密與價(jià)值,不大可能在所有的地方都建置一套這樣的系統(tǒng),這時(shí)又是Web services發(fā)揮其強(qiáng)大功能的時(shí)候了。這些汽車大廠可依各服務(wù)點(diǎn)的規(guī)模及技術(shù)能力等,建置一般功能的維修檢測系統(tǒng),以應(yīng)付一般性的檢修工作,對於重大的或具機(jī)密性的技術(shù),則至於原廠或各地區(qū)之核心廠。當(dāng)各小型檢修場無法判讀汽車電腦晶片內(nèi)的數(shù)據(jù)時(shí),再透過Web services連接原廠或各地區(qū)之核心廠取得相關(guān)檢修步驟。如此不但保有技術(shù)的機(jī)密性外,又可符合全球服務(wù)的需求,更重要的是,當(dāng)擴(kuò)點(diǎn)需求產(chǎn)生時(shí),可加快建置的時(shí)間,而當(dāng)重要的技術(shù)問題產(chǎn)生時(shí),只需更新原廠或各地區(qū)之核心廠的資料庫,即可將資料傳送至全球的檢測系統(tǒng)。
軟體租用新模式
以上所舉的例子都是以使用者的角度區(qū)看,在上一篇文章中提到服務(wù)導(dǎo)向應(yīng)用成架構(gòu)實(shí)提到,參與這個架構(gòu)的還包括服務(wù)提供者與服務(wù)登錄與代理兩個角色。前面也提到Web services本身也可以當(dāng)作一項(xiàng)產(chǎn)品來販賣。出售服務(wù)的架構(gòu)其實(shí)到處都有,只不過型式不同罷了,目前網(wǎng)際網(wǎng)路裡面,線上刷卡代收服務(wù)是最典型的例子。
將 Web services 當(dāng)作交易的標(biāo)地,可能影響到資訊系統(tǒng)的設(shè)計(jì)、部署與採購模式。企業(yè)可經(jīng)由外部所提供之軟體服務(wù),取得執(zhí)行商業(yè)行為所需之應(yīng)用程式功能,而不需全然由內(nèi)部來開發(fā)。透過這種方式,程式開發(fā)者不須再使用傳統(tǒng)建立單一、集中式伺服器應(yīng)用程式的方法,即可快速地建立或延伸現(xiàn)有應(yīng)用程式的規(guī)模。企業(yè)因此可節(jié)省系統(tǒng)開發(fā)所需之時(shí)間,加快市場開發(fā)速度。
對服務(wù)的提供者而言,大概可以有幾種模式,第一種可能在軟體銷售/採購的方式改為租用或隨選服務(wù)的模式;這裡提到的租用與隨選服務(wù)事實(shí)上是有差異的。ISV可以將核心程式及部分的模組直接安裝於客戶端,以租用的方式實(shí)施,而為了避免租期與租金的爭議,可保留一小部分的啟動機(jī)制至於ISV的伺服器上。在租約期間,客戶透過Web services機(jī)制,聯(lián)結(jié)至ISV啟動其應(yīng)用程式;租約到期,ISV僅須關(guān)閉此一機(jī)制即可。至於隨選服務(wù),則針對一些工具服務(wù),或延伸的功能,讓客戶依需要連結(jié)使用。
企業(yè)也可以利用 Web services 將原有企業(yè)的智慧財(cái)產(chǎn)或成功經(jīng)驗(yàn),重新包裝出售,以開拓全新的軟體服務(wù)市場。對ISV或VAR、OEM等廠商,更是提升商品附加價(jià)值的方式。
對於一些電子資訊提供者,也可以改變提供的格式,目前大部分都是透過電子郵件或網(wǎng)頁瀏覽方式,未來也可以利用Web services提供相同的資訊,讓用戶端可以直接加以利用,將Web services當(dāng)作資料來源,直接提供應(yīng)用程式存取。例如在設(shè)計(jì)網(wǎng)頁時(shí),若希望能取得氣象、股票、球賽、產(chǎn)經(jīng)最新消息,只要將所需之資訊版面空下,利用網(wǎng)頁上的控制項(xiàng)直接連結(jié)個資料來源之Web services,即可取得最新的資訊。而服務(wù)的提供者則可依訂戶的需求收取不同之費(fèi)用。
企業(yè)流程管理
最後則來談?wù)劻鞒陶系牟糠郑詴舻阶钺嵩趤碇v,主要上避免在談到流程整合時(shí),只侷限在企業(yè)內(nèi)得整合。利用 Web services 加上流程管理軟體,可以讓企業(yè)內(nèi)部或與外部合作夥伴間建立起天衣無縫的作業(yè)流程,更可依需要不斷的加入應(yīng)用程式模組,而不影響到其他的應(yīng)用程式,這些模組可以自行開發(fā),也可以直接使用ISV所提供資訊服務(wù)。如此不但能提升企業(yè)組織的效率並降低企業(yè)經(jīng)營的成本。或許您要問,目前已有很多的流程管理軟體與跨平臺整合軟體,位什麼還要有Web services,這是因?yàn)檫@些軟體都是為個別系統(tǒng)間整合所設(shè)計(jì),即使主要大廠所提供的流程管理軟體,包括Microsoft、IBM、BEA等,也須為不同的Adapter付出不同的軟體授權(quán)費(fèi),若採用Web services則不須為不同的系統(tǒng)就要採購另一套整合或流程軟體。
?
導(dǎo)入時(shí)機(jī)
看完了以上的文章,或許會懷疑,這樣的技術(shù)成熟了嗎?我需不需要導(dǎo)入?要如何導(dǎo)入?而且在前兩年,資訊界還傳著一個很奇怪的說法,雖然各主要大廠及WS-I組織以提供相當(dāng)完整的規(guī)範(fàn)與技術(shù),但還是有些所謂權(quán)威人士會說Web services是個不成熟的技術(shù),還不能導(dǎo)到企業(yè)中使用。雖然對於全面性的將Web services應(yīng)用到全球的網(wǎng)路經(jīng)濟(jì)還有些技術(shù)與規(guī)範(fàn)要克服的,但也有不少廠商與政府或非政府機(jī)構(gòu)以成功的導(dǎo)入Web services。若要等一套技術(shù)完全成熟在一次導(dǎo)入,那時(shí)候可能又已經(jīng)推出另外一套更新的技術(shù),或許我們把他當(dāng)作是一種市場競爭的手段罷了,對於技術(shù)跟不上速度的廠商,通常會以這種方式以減緩對手搶攻市場的速度。
下回我們再來分析哪些技術(shù)是可以導(dǎo)入的,哪些是還有限制的,哪些是目前不可行的,以及導(dǎo)入的步驟。