架構Web Service:為什么需要Web服務? | ![]() |
![]() |
![]() | |
![]() | ||||
![]() |
![]() |
柴曉路 (fennivel@uddi-china.org) (本文最初由 IBM developerWorks 中國網站發表,其網址是 本文是架構Web服務的系列文章的首篇,從Web服務的商業需求開始,來探討為什么要使用Web服務。首先,作者分析了目前電子商務應用所面臨的挑戰: 務實和追求經濟利益是當今電子商務的需求。然而目前廣泛應用的電子商務應用的體系架構使得這一商業需求很難實現,復雜的應用連接和程序代碼造成了應用的高維護代價和更新代價。而作為現有技術的革新(而不是革命)的Web服務卻正好能解決這一問題,成為目前應用環境中最為合理的解決方案。 Web服務似乎是一個嶄新的名詞,現在去瀏覽各大主流技術論壇,無一不在關注Web服務的發展。但是到底是么是Web服務呢?很多技術人員初次接觸Web服務,會有一個錯覺,認為這是一個新的系統架構,新的編程環境。是的,Web服務是一個新的概念,但他的系統架構,他的實現技術卻是完完全全繼承已有技術的,絕對不會使現有的應用推倒重來,而是現有應用的面向Inte.net的一個延伸。 在本系列中,作者將從什么是Web服務,為什么需要Web服務開始,就Web服務的構建模式,結合一個實例,詳細闡述了Web服務的架構過程。 本文所引用的資源主要包括兩類,一類是Web服務的技術資源網站,包含了大量Web服務的技術信息,另一類是Web服務“stack"系列技術規范,他們是一個整體的技術體系,包括UDDI、SOAP、WSDL、XML等。本文的最后給出了這些資源的鏈接,有興趣的讀者可以通過這些資源鏈接找到所需的內容。 面臨的挑戰 我們知道,過去十年的對IT產業/COM的"瘋狂投資"的時代已經過去了,那是一個實驗的年代。而現在,整個業界跨入了務實的階段,當今電子商務發展的重心已經完全從過去的.COM的模式轉向到傳統企業的電子商務化的進程中來。既然是企業的電子商務化,模式是否嶄新是次要的,而是否能為企業帶來經濟利益則是主要的。在規劃企業的電子商務應用的時候,企業管理人員和系統架構師更多的關注該電子商務應用是否能為企業帶來直接的經濟收益、是否有利于削減掉某方面的開支成本、是否能夠優化資源使用,這些完完全全是由企業的商業利益驅動的,在這一輪的電子商務發展中,技術完全是為商業服務的,任何脫離商業需求的"新"技術則必然是毫無用武之地。 在IT投資銳減的日子里,系統架構師們小心翼翼、廣泛考證,在對企業自身運作機制的務實的仔細調研中,總結出了一些(比較少量的,只有7種)當前最有價值進行實施的電子商務應用,它們是:
為了實施這些電子商務應用,不外乎幾種手段:由自己的IT部門具體計劃并實施,外包給軟件公司或解決方案提供商計劃并實施,當然解決方案或實施計劃中可能會包含平臺軟件或專用軟件模塊的采購。然而,無論自身的IT部門還是外包的解決方案提供商,其給出的實施計劃都是應用正式運營前的。一旦應用被部署之后,由于商務環境和商務需求的不斷改進和不斷變化,這些電子商務應用不可避免地需要被修訂、需要被更新,以符合新的電子商務流程。而到最后,企業的管理人員甚至會想為企業的員工、客戶以及合作伙伴分別定制具體應用以獲得最大的商業利益并保持競爭力。 在這些應用更新的可能中,下面三個可能是最主要的也是最常發生的:
毫無疑問,e化的企業必須直面這一問題的挑戰,經常的應用更新是當今電子商務應用部署所面臨的最大問題,如何提升企業的響應能力,削減響應開支,提升企業的競爭力,是所有的e化企業必須面對的問題。 錯誤的解決方案: 復雜系統對接的解決方案 為了達到這一保持企業核心競爭力的目的,大部分企業都在努力奮斗著,毫無疑問他們在IT上投入了極多的資金和資源,那么他們的選擇是否正確呢?在商務上,無疑是正確的,"沒有電子商務將等于無商可務",可是方法呢?他們采取了正確的方法了么? 讓我們首先來看一看目前大多數企業是如何操作的? 目前,在構建前面我提到的那些電子商務應用的時候,程序員們一般都是采用"獨立解決方案"來實施的。也就是說,對于每個應用,他們都是為每個需要的企業資源或外部資源編寫連接代碼,以使得應用得以運行。這些資源包括:傳統系統(legacy systems)和數據庫、Web應用及Web資源,以及正在不斷涌現的Web服務。
程序員還需要編寫更多的代碼以使得大量的用戶能夠訪問每個應用,例如通過公司的Web站點,例如使用公司內部的桌面應用程序等等。由于這些應用都是"辛苦"編程的產物,幾乎很難再定制。當需要融入新的電子商務流程,需要為額外的用戶群提供訪問界面,需要繼承不同的電子商務應用以為用戶提供更完整的增值服務,所有的這一切不得不從最初的系統設計開始做起。為什么會這樣?因為所有的應用都是從一次性開發的角度實施的,應用的沒一個更改都需要由特定的程序員來完成。這樣,通過跨應用集成的方式實現電子商務應用的重用變得異常地困難。 由于每個應用都有其自己特有的基礎架構,這些應用在部署、更改和維護上的代價都異常高昂。企業不得不會每套應用配置特有的專業技術人員,并保持與不同技術供應商或解決方案供應商的密切聯系。同時這些應用即不能被方便地繼承,也不能隨著企業商務的規模擴展而方便地實現應用的規模擴展。 我們很清楚地認識到,即使是只有一個電子商務應用,其創建、維護和定制的代價及復雜度就已經是如此驚人了。何況要涉及多個這樣的應用,其代價之高是可象而知的。 讓我們來考察當企業部署若干個這樣的電子商務應用的情形:
這樣的電子商務應用的實際運營狀況非但無法令企業商務規模迅速增長,甚至會造成相反的影響作用,因為此時,IT部門不得不雇傭更多的員工并花費更多的資金來管理這些復雜而紛亂的應用,并維護多種承載應用的基礎架構。 早先出現的電子商務技術,比如EDI、web EDI (也許是基于XML的)、內容服務器、應用服務器、EAI(Enterprise Application Integration),以及那些為創建企業門戶以及其他單個電子商務應用(上面提到的7種應用)而設計的獨立解決方案都無法解決這個問題。它們之所以無能為力,是因為它們不無例外地都是基于復雜應用連接的、不具備良好集成能力的應用開發模式,它們都是通過程序代碼實現復雜應用連接以連接用戶、電子商務應用以及其他信息系統的。這樣的實現方式即無法有效地解決經常發生的電子商務流程的更改而觸發的大額費用,也無法有效地解決各類用戶的定制需求。 正確的解決方案: Web服務和商業Web 在本節中,我將描述一個能解決以上所有問題的解決辦法。
電子商務需要擺脫獨立解決方案的實現模式,需要舍棄復雜系統連接的實現方法。一個有效的電子商務應用絕對不應該是僅僅基于程序員以及那些復雜的代碼的。對于電子商務而言,傳統的由程序員主導的由里向外的開發模式應當被由用戶主導的由外向里的開發模式取代。冗長的串行的開發循環應當被即時的,快速的應用裝配所取代。同時這樣的應用應當天生就具備高可定制性。如果探究其商業本質,這是來自經過時間考驗的商業技術概念:"即時制造"以及"規??缮炜s"等概念,我們需要做的就是將傳統的商業概念延伸到電子商務中去。 看了上一段的描述,大家可能會認為這需要一個技術上的更本性變革,其實,不然。 基于XML技術的Web服務正是解決這一問題的最佳手段。Web服務的使用將改變目前的開發模式和應用部署的費用規模。各種Web服務分表實現了一定的電子商務功能,通過將各種電子商務的Web服務進行組合和集成以創建動態電子商務應用。Web服務能夠統一地封裝信息、行為、數據表現以及商務流程,而無需考慮應用所在的環境是使用何種系統和設備。 通過使用Web服務,企業能夠以前所不可能的方式通過抽象和混合將自身的電子商務組件化。當一個企業的核心競爭力被組件化之后,那么這些核心競爭力就能夠很方便地在不同的企業之間共享,同時架構跨企業的電子商務應用,形成商務Web。 在商務Web中,將不需要為使用一個電子商務應用而購買這個電子商務應用所承載的應用軟件。Web服務是一種無需購買并部署的組件,這種組件是被一次部署到Internet中,然后到處可用的一種新型組件,所有應用只需要能夠連入Internet,就可以使用和集成Web服務。通過采用Web服務,開發的代價顯著降低了,程序員無需與多種平臺進行交互,他只需要與一種組件進行交互,即Web服務,同時Web服務的調用界面完全采用標準的XML及相關技術,在代碼實現上代價也有顯著下降。通過采用Web服務,部署和集成的費用大大降低,流程的更改也無需更改大量代碼,甚至通過工具的支持,更本無需更改程序代碼。同時隨著新的Web服務技術,如WSDL/UDDI/WSFL的大量使用,Web服務在運行時態進行動態裝配將成為現實,同時每個用戶甚至可以應用戶的需要而實時裝配。 Web服務是未來? 全球權威IT行業研究評論機構Gartner Group對未來5年的Web服務的發展狀況做了預測:
同時我們看到各大技術提供商都按照Gartner Group的預測陸續地推出Web服務的構建工具:Microsoft的Visual Studio .NET,IBM的Web Service Toolkit,SUN的Sun ONE等等?;赪eb Service的公共技術標準SOAP/WSDL/UDDI/WSFL或是已經成為事實行業標準,或是正在制訂的進程中,各大技術提供商和傳統商業企業都投入到了標準的制定和應用的架構中去。作為Web服務的體系架構的領導者IBM和Microsoft也開始在全球推廣Web服務技術。我們有理由相信Web服務將成為將來動態商務Web的主流技術。 什么是Web服務? 我們已經從商業需求的角度和技術實現的可行性上討論了Web服務的可行性和必要性。由于大部分的讀者是技術人員,所以我相信大家對Web服務的各種實現技術會非常有興趣,對Web服務的架構過程也一定更有興趣,對如何在某個具體的Case中使用Web服務架構一定非常有興趣,我將在本文章系列的后續部分中逐一描述并提供答案。 參考資料
作者簡介 ![]() |