|
Luba Cherbakov (lubacher@us.ibm.com), IBM 杰出工程師, IBM 2006 年 10 月 30 日
引言 人們對當前業(yè)務(wù)環(huán)境和正在發(fā)生的巨大變化進(jìn)行了大量的討論:來(lái)自傳統和非傳統對手的激烈競爭、不斷變化的法律法規遵從要求、創(chuàng )造新收益來(lái)源的壓力以及對更多創(chuàng )新和更高靈活性的要求。為了在這種環(huán)境中取得成功,各個(gè)企業(yè)正在進(jìn)行轉換工作,開(kāi)始重新思考行業(yè)結構,準備實(shí)現組件化和采用面向服務(wù)的方法來(lái)實(shí)現所需的靈活性。 SOA 受到越來(lái)越廣泛的接受,正逐漸成為支持此類(lèi)業(yè)務(wù)轉換的主要技術(shù),可提供業(yè)務(wù)流程和啟用 IT 支持之間更緊密的聯(lián)系。雖然 Ron Schmelzer 和 Jason Bloomberg(ZapThink,2006 年 4 月,請參見(jiàn)參考資料)等很多分析家稱(chēng) IBM 是其客戶(hù)“面向服務(wù)的體系結構運動(dòng)中的主要先鋒之一”,但在過(guò)去數年中,IBM 本身也在進(jìn)行 SOA 支持業(yè)務(wù)轉換。 客戶(hù)經(jīng)常要求我們分享 IBM 內部的此類(lèi)經(jīng)驗。在本文中,我們將簡(jiǎn)單介紹七個(gè) SOA 案例研究中的前兩個(gè)——真正的內部轉換活動(dòng)。后續文章將討論剩下的其他案例研究。每個(gè)活動(dòng)都已有了實(shí)際的業(yè)務(wù)成果,并提供了寶貴的經(jīng)驗和教訓:
我們專(zhuān)門(mén)精選了這些案例研究來(lái)代表利用 SOA 解決的各種業(yè)務(wù)挑戰。其中一些挑戰通常會(huì )出現在跨行業(yè)場(chǎng)景中,如第五、六、七個(gè)案例研究。其他案例(如第二個(gè)案例)是特定于行業(yè)的,其中也包含可由 SOA 成功處理的典型挑戰。 那些仍然在問(wèn)為什么應該考慮 SOA 的讀者或需要為其采用創(chuàng )建業(yè)務(wù)用例的讀者會(huì )發(fā)現,表 1 和每個(gè)活動(dòng)的業(yè)務(wù)驅動(dòng)因素的詳細描述非常有用。 對于每個(gè)案例研究,除了業(yè)務(wù)上下文,我們還描述了活動(dòng)必須克服的挑戰、所得到的解決方案的體系結構概述及其支持技術(shù)和工具。我們還將描述每個(gè)活動(dòng)實(shí)現的實(shí)際業(yè)務(wù)成果和我們所獲得并在 IBM 及我們的客戶(hù)中得到應用的最佳實(shí)踐和“經(jīng)驗教訓”。 SOA 價(jià)值主張 在過(guò)去幾年中,作者和 IBM 同事曾與數百客戶(hù)協(xié)作,以實(shí)現基于 SOA 的解決方案來(lái)解決各種業(yè)務(wù)問(wèn)題。雖然所有人都在談?wù)摽傮w的業(yè)務(wù)靈活性和敏捷性,但每個(gè)活動(dòng)通常都是由一個(gè)具體的業(yè)務(wù)價(jià)值主張(或希望的業(yè)務(wù)成果)驅動(dòng)的。企業(yè)采用 SOA 來(lái)應對不同的業(yè)務(wù)挑戰。希望的業(yè)務(wù)成果可以由下表中所示的多個(gè)類(lèi)別進(jìn)行表示。 表 1. SOA 采用的業(yè)務(wù)價(jià)值主張
成功的 SOA 實(shí)現可以實(shí)現多種不同的業(yè)務(wù)成果,而通常是由一個(gè)或兩個(gè)關(guān)鍵驅動(dòng)因素促成相關(guān)活動(dòng)的。盡管通過(guò)服務(wù)重用實(shí)現的好處可以減少開(kāi)發(fā)和集成的成本這一事實(shí)非常重要,但就長(cháng)遠來(lái)看,SOA 的業(yè)務(wù)轉換價(jià)值卻更為重要。 在以下部分中描述的 IBM 案例研究具有不同的預期結果(公司內部和外部),如表 2 中所示。 表 2. 案例研究的業(yè)務(wù)成果總結
案例研究 1. Customer Order Analysis and Tracking System:從遺留結構到隨需應變 業(yè)務(wù)上下文 Customer Order Analysis and Tracking System 是供全球二十多個(gè)工廠(chǎng)使用的共享訂單輸入應用程序,每個(gè)工廠(chǎng)都具有自己的自定義需求和訪(fǎng)問(wèn)模式,如“高容量低價(jià)格”與“高價(jià)格低容量”。COATS 是 IBM Supply Chain 的一部分,在訂單執行中扮演著(zhù)重要的角色,可處理大量訂單,幫助每天處理 10,000 個(gè)以上的包裹。COATS 提供全天候服務(wù),可接受 IBM 客戶(hù)、業(yè)務(wù)合作伙伴和 IBM 銷(xiāo)售專(zhuān)業(yè)人士的復雜配置硬件訂單:System i、System p、System z、Storage、Printers 和 Retail。 購買(mǎi)者通過(guò)提交有關(guān)新計算機、升級、定制的訂單和對現有訂單的其他更改來(lái)間接訪(fǎng)問(wèn) COATS。應用程序會(huì )將這些訂單與制造規則和客戶(hù)已安裝硬件庫加以比較,從而進(jìn)行排序和確定優(yōu)先級。COATS 會(huì )將訂單流“翻譯”為制造材料列表(物料清單,Bill of Materials)和其他指令,這些內容通常被轉發(fā)到全球相應的 IBM 制造工廠(chǎng)。制造工廠(chǎng)將隨后開(kāi)始執行訂單,并運送到客戶(hù)的收貨地點(diǎn)。訂單的一個(gè)例子是指定了詳細規格、預裝軟件和交付日期等的大型機。對應的輸出示例將包括特定工廠(chǎng)的制造車(chē)間的配置,而對應的相關(guān)術(shù)語(yǔ)包括物料單、配置計劃等。 挑戰 原始應用程序是已經(jīng)使用了 25 年的復雜舊式批處理系統。其中包含 140 萬(wàn)行 PL/1、OS/390 匯編語(yǔ)言、Java 和其他編程語(yǔ)言代碼,峰值時(shí)已非常接近其處理容量極限。批處理瓶頸和沖突數據對訂購和配送造成延遲。 COATS 具有硬編碼的業(yè)務(wù)規則、過(guò)程、邏輯和數據訪(fǎng)問(wèn),已發(fā)展為難于針對現有和新興業(yè)務(wù)需求進(jìn)行調整的系統。更改業(yè)務(wù)流程通常要求進(jìn)行大量的重新編碼工作:開(kāi)發(fā)人員必須理解一組復雜的點(diǎn)到點(diǎn)連接和組件獨立性,以便預測變更的效果。為了應對不斷發(fā)生的訂單變化(包括調度系統為了滿(mǎn)足客戶(hù)的交貨日期而進(jìn)行的自動(dòng)調整),必須對多個(gè)數據庫進(jìn)行更新和查詢(xún),具體取決于地理位置和其他參數(如所保留的五到十年的計算機銷(xiāo)售歷史記錄等)。 為了支持新活動(dòng)、新產(chǎn)品和業(yè)務(wù)機會(huì ),頻繁地對應用程序進(jìn)行了更新。由于采用了嚴格的遺留代碼,花費了大量資源(時(shí)間和資金)進(jìn)行新功能開(kāi)發(fā)——每個(gè)版本的開(kāi)發(fā)時(shí)間都要花費六個(gè)月時(shí)間,占用超過(guò) 8,000 小時(shí)開(kāi)發(fā)時(shí)間。 存在這樣的實(shí)際需求,需要提高對功能和駐留在現有遺留系統中的寶貴業(yè)務(wù)數據的訪(fǎng)問(wèn),并要求能夠從其他系統方便地進(jìn)行訪(fǎng)問(wèn)。 和很多企業(yè)關(guān)鍵應用程序一樣,大規模進(jìn)行替換費用太高,且會(huì )帶來(lái)干擾。 基于 SOA 的解決方案 COATS 轉換項目的重點(diǎn)在業(yè)務(wù)涉眾認為非常重要的幾個(gè)目標上:
圖 1. COATS 體系結構概覽 ![]() 訂單管理組件服務(wù)項目負責將總體 COATS 系統轉換為實(shí)時(shí)的訂單提交系統。 解決方案的面向服務(wù)的體系結構(參見(jiàn)圖 1)對業(yè)務(wù)流程和 IT 需求進(jìn)行了標準化。在此體系結構中,業(yè)務(wù)規則被外部化,而遺留系統功能則被組件化,以便提高靈活性、可伸縮性和重用性。 Order Process Subsystem 負責接收處理客戶(hù)訂單組的請求,并隨后將訂單發(fā)送到其他服務(wù)。此系統能夠處理多個(gè)通道,包括用于實(shí)時(shí)處理和批處理的 B2B 消息傳遞系統。 接收到訂單后,Order Process Subsystem 將其標記為需要進(jìn)行驗證,并將訂單轉發(fā)給 Validation and Topology Generation 服務(wù)。該服務(wù)將進(jìn)行分析,并為不同類(lèi)別的訂單使用專(zhuān)門(mén)的驗證服務(wù)。 傳遞驗證步驟的制造訂單組將隨后發(fā)送到 Manufacture Plant 服務(wù),以轉換為物料單,并轉發(fā)給制造工廠(chǎng)。這些服務(wù)將通過(guò)服務(wù)適配器與實(shí)際向目標工廠(chǎng)交付物料單的現有遺留應用程序或業(yè)務(wù)合作伙伴應用程序交互。 開(kāi)發(fā)過(guò)程將首先從支持 IT 系統中分離業(yè)務(wù)流程和數據。在 IBM WebSphere? Business Modeler(以下稱(chēng)為 Business Modeler)內對業(yè)務(wù)流程進(jìn)行了建模和表示。 COATS 開(kāi)發(fā)團隊采用了迭代的方法進(jìn)行此轉換項目。迭代過(guò)程從使用 Business Modeler 進(jìn)行業(yè)務(wù)分析開(kāi)始,業(yè)務(wù)分析的目的是為了構建原始 COATS 應用程序中使用的“原樣”業(yè)務(wù)流程的模型。獲得了模型后,分析人員就能夠確定進(jìn)行改進(jìn)的機會(huì )、提出更改建議,并能夠預估更改對 COATS 應用程序的影響。此外,對“原樣”模型的分析還能幫助標識現有資產(chǎn),以供進(jìn)行重用。 為了創(chuàng )建模型的“原樣”版本并最終確定業(yè)務(wù)流程的規范,團隊使用了業(yè)務(wù)涉眾認為重要的項目目標來(lái)確定服務(wù)和組件。這些目標用于定義標識“原樣”模型的各個(gè)領(lǐng)域的決策標準,以從轉換到利用工作流和業(yè)務(wù)規則的靈活實(shí)現獲得最大的好處。 為了標識和指定 COATS 業(yè)務(wù)服務(wù),該團隊采用了一種可重復方法,而這個(gè)方法后來(lái)促成了 IBM 面向服務(wù)的建模和體系結構(Service-Oriented Modeling and Architecture,SOMA)方法的形成。SOMA 是一種旨在通過(guò)從 SOA 基礎標識、指定和實(shí)現與業(yè)務(wù)一致的服務(wù)來(lái)支持目標業(yè)務(wù)流程的方法。SOMA 將業(yè)務(wù)特征擴展到 IT 分析和體系結構決策中,從而創(chuàng )建了業(yè)務(wù)意圖與 IT 實(shí)現間的連續體。SOMA 期間執行的分析和建模工作并不特定于技術(shù)和產(chǎn)品,而是要建立一個(gè)上下文,以便在生命周期的以后階段進(jìn)行技術(shù)和產(chǎn)品特定的決策。其目標是提供 SOA 建模(分析和決策)的指南。IBM 流程工程師和架構師將 SOMA 用于進(jìn)行客戶(hù)合作項目和內部項目。 在進(jìn)行業(yè)務(wù)分析的同時(shí),數據架構師使用了 Rational ? eXtended Development Environment 來(lái)定義基于統一建模語(yǔ)言(Unified Modeling Language,UML)的數據模型。這些數據模型表示 COATS 業(yè)務(wù)流程要使用的業(yè)務(wù)對象,用于在組件間進(jìn)行通信。 開(kāi)發(fā)構件——業(yè)務(wù)流程執行語(yǔ)言(Business Process Execution Language,BPEL)、Web 服務(wù)描述語(yǔ)言(Web Service Definition Language,WSDL)、XML 模式定義(XML Schema Definition,XSD)和 Business Modeler 與 Rational eXtended Development Environment 產(chǎn)生的基于 Java 的數據模型實(shí)現——都由集成開(kāi)發(fā)人員通過(guò)使用 WebSphere Studio Application Developer Integration Edition 工具進(jìn)行了進(jìn)一步增強。開(kāi)發(fā)團隊使用了 WebSphere Studio Application Developer Integration Edition 來(lái)實(shí)現以下更改,以完成工作流實(shí)現:
COATS 的生命周期擴展到了開(kāi)發(fā)之外,包含業(yè)務(wù)流程管理的各個(gè)方面。開(kāi)發(fā)迭代產(chǎn)生應用程序的可部署工作版本(應用程序的工作構建)后,業(yè)務(wù)分析人員可以通過(guò)跟蹤關(guān)鍵性能指標(Key Performance Indicator,KPI)來(lái)監視系統的實(shí)時(shí)性能。KPI 是在實(shí)現工作流前由涉眾定義的,可提供每小時(shí)通過(guò)系統的平均訂單數量、系統處理的無(wú)效訂單數量以及操作員處理無(wú)效訂單的平均時(shí)間等交付信息,從而便于從業(yè)務(wù)的角度監視系統運行情況。最后,執行人員可以使用通過(guò)監視應用程序收集到的信息來(lái)進(jìn)行業(yè)務(wù)流程更改決策,以滿(mǎn)足業(yè)務(wù)單位性能目標。 業(yè)務(wù)成果 應用基于 SOA 的新解決方案的若干增量版本后,提高了業(yè)務(wù)性能和靈活性。此外,也實(shí)現了減少開(kāi)發(fā)成本和縮短開(kāi)發(fā)周期的目標。業(yè)務(wù)成果簡(jiǎn)要總結如下:
所用的最佳實(shí)踐及獲得的經(jīng)驗教訓 此活動(dòng)幫助我們創(chuàng )建、實(shí)現和獲得了將遺留業(yè)務(wù)功能以增量方式轉換為實(shí)時(shí)而靈活且支持 SOA 的解決方案的方法。所用的最佳實(shí)踐及獲得的經(jīng)驗教訓簡(jiǎn)要總結如下:
我們通過(guò)恰當使用服務(wù)建模、增量開(kāi)發(fā)方法、工具和中間件組件說(shuō)明了如何進(jìn)行增量轉換。在此活動(dòng)中確定的流程自定義、增量轉換和遺留集成方法正在 IBM 和我們的客戶(hù)中廣泛應用。 通過(guò)閱讀 developerWorks 系列文章“On demand business process life cycle”(請參見(jiàn)參考資料),可以了解有關(guān)如何構建可重用資產(chǎn)來(lái)轉換訂單處理系統的更多信息。 案例研究 2:Microelectronics“盒子里的工廠(chǎng)” 業(yè)務(wù)上下文 對公司的結構進(jìn)行分解(劃分)并允許將重點(diǎn)放在核心業(yè)務(wù)競爭力上的做法自然會(huì )導致協(xié)作生態(tài)系統的出現。制造行業(yè)首先發(fā)現了規范化和協(xié)作的強大力量,并使其達到了新的高度,隨后這也在電子行業(yè)得到了廣泛的認可(請參見(jiàn)參考資料)。 在這種協(xié)作生態(tài)系統中,半導體行業(yè)正逐漸從完全自包含的制造系統的垂直集成轉向合作伙伴的集成參與網(wǎng)絡(luò ),其中的每個(gè)合作伙伴均能以高效低成本的方式提供專(zhuān)業(yè)的制造服務(wù)??紤]到當今希望盡可能利用全球資源的經(jīng)濟環(huán)境,運營(yíng)環(huán)境也迅速從關(guān)注本地力量發(fā)展到了關(guān)注來(lái)自多個(gè)國家的力量的全球協(xié)作。微電子行業(yè)產(chǎn)品解決方案的復雜性不斷增加,以滿(mǎn)足新客戶(hù)需求,而這促使自定義解決方案出現了超過(guò)傳統標準產(chǎn)品服務(wù)的勢頭。這就要求制造系統具有更高的適應能力,且要具有更廣泛的執行能力,而這已不再能完全通過(guò)“內部”解決方案得以解決了。 2003 年,IBM Microelectronics 認識到需要更大的靈活性,以滿(mǎn)足與跨多個(gè)場(chǎng)所和供應商的晶片和模塊制造關(guān)聯(lián)的不斷變化的制造需求。對更高靈活性和響應能力(以獲得“隨需應變”的制造能力)的需求是虛擬制造企業(yè)概念的起源,此概念的重點(diǎn)在于跨多個(gè)微電子生產(chǎn)場(chǎng)所(內部的和已外包的)進(jìn)行制造控制和執行的集成方法。 挑戰 2000 年中期,IBM Microelectronics 遇到了與其他同行類(lèi)似的挑戰:
基于 SOA 的解決方案 為了處理上述挑戰,IBM 的 System Technology Group (STG) 半導體制造部門(mén)基于集成的模塊化體系結構創(chuàng )建了一套解決方案。他們的目標是創(chuàng )建一個(gè)虛擬化框架來(lái)管理與高效外包計劃并存的內部制造資源,從而形成了他們稱(chēng)為“盒子里的工廠(chǎng)”的新概念。這是一個(gè)全球的模塊化制造功能“盒子”,包括網(wǎng)絡(luò )傳輸、安全性、數據管理、監視、制造控制以及獨特的自定義等功能?!昂凶永锏墓S(chǎng)”是通過(guò)將這些功能打包為一組 IBM 軟件產(chǎn)品和自定義代碼實(shí)現的,而這些產(chǎn)品和代碼也稱(chēng)為多源數據集成器(Multi-source Data Integrator,MDI)。MDI 安裝在 IBM 和供應商合作伙伴的廠(chǎng)區內(如圖 2 中所示),以創(chuàng )建 STG 的各種制造業(yè)務(wù)領(lǐng)域與物理制造安裝之間的無(wú)縫交互,而不受其位置限制——從而創(chuàng )建了一個(gè)虛擬化的制造環(huán)境。這允許將供應商視為 IBM 制造環(huán)境的擴展。 圖 2. 虛擬制造體系結構概述 ![]() 有人可能會(huì )問(wèn),“不錯,這是一個(gè)很好的隨需應變業(yè)務(wù)的例子,但 SOA 在哪里呢?”關(guān)鍵的 MDI 集成元素包括其企業(yè)服務(wù)總線(xiàn)(通過(guò) Business Modeler Message Broker)和一組基于 SOAP 的自包含 Web 服務(wù)。Message Broker 除了完成路由任務(wù)外,還可在建立了 ESB 體系結構模式后通過(guò)協(xié)議和消息轉換實(shí)現高度分離。有些服務(wù)是完全自包含的,僅支持內部 MDI 功能,對盒子外部的任何對象都是透明的。不過(guò),其他服務(wù)則可以由 IBM 應用程序用戶(hù)、供應商應用程序用戶(hù)訪(fǎng)問(wèn)(有時(shí)候兩者都可以訪(fǎng)問(wèn))。正是這樣將 SOA 功能打包為可移植的形式,從而使有些人將 MDI 的原始名稱(chēng)改成了“盒子里的服務(wù) (Services in a Box)”。 服務(wù)示例:
MDI 是在經(jīng)過(guò)驗證的 IBM 中間件和操作管理產(chǎn)品基礎上構建的。這些產(chǎn)品包括 DB2?、WebSphere Application Server、MQSeries?、WebSphere Business Integration Message Broker、WebSphere Business Integration Connect 和 Tivoli Management Environment? for Monitoring。由 IBM Global Technology Services 將其安裝在 IBM 和供應商的工作區內。供應商安裝在 IBM 托管服務(wù)器上的非專(zhuān)用區域,可通過(guò) IBM 遠程通信訪(fǎng)問(wèn),也可以通過(guò)供應商的防火墻由供應商訪(fǎng)問(wèn)。 體系結構解決方案的突出特點(diǎn):
業(yè)務(wù)成果 此解決方案為 IBM Microelectronics 創(chuàng )建了一個(gè)“虛擬”制造系統,涉及多個(gè)可互換的集成合作伙伴(供應商)——通過(guò) SOA 實(shí)現的“盒子里的工廠(chǎng)”。 例如,Technology Group 將半導體測試工具外包給 Amkor Technologies,從而使得 IBM 系統在從 IBM 進(jìn)行遷移的過(guò)程中僅停機四個(gè)小時(shí),而在以前通常需要三天才能實(shí)現其新的支持 SOA 的體系結構。規則已更新到新工具的路由事務(wù),而這個(gè)轉變在很大程度上對普通操作是透明的。而這正得益于 MDI 的“盒子里的工廠(chǎng)”構造所實(shí)現的模塊化技術(shù)。此外,這個(gè)“預先打包”的 SOA 體系結構現在可方便地完成外包計劃,比針對每個(gè)新機會(huì )進(jìn)行自定義更為高效。這就可以在數周前進(jìn)行計劃,而無(wú)需像以前一樣需要三個(gè)月前就開(kāi)始計劃工作。 所用的最佳實(shí)踐及獲得的經(jīng)驗教訓 在此活動(dòng)期間,我們獲得了一些重要的經(jīng)驗教訓:
致謝 我們要感謝以下同事提供的觀(guān)點(diǎn)以及通過(guò)提供案例研究經(jīng)驗報告而為撰寫(xiě)本文做出的貢獻:Jim Doran、German Goldszmidt 和 Dick Panko。 IBM Technology Group 的一個(gè)核心團隊定義了案例研究 2(Microelectronics“盒子里的工廠(chǎng)”)的策略、體系結構和實(shí)現。負責 IBM 內這個(gè)優(yōu)秀的 SOA 示例的主要人員有 Steven Pike(體系結構經(jīng)理)、Mike Maslack(策略專(zhuān)家)和 Dave Lutton(開(kāi)發(fā)團隊負責人)。 我們還要感謝很多 IBM 同事、顧問(wèn)、架構師、開(kāi)發(fā)和項目經(jīng)理,他們開(kāi)發(fā)和描述了本文中的創(chuàng )新解決方案,并花時(shí)間記錄和共享他們得到的經(jīng)驗和教訓——最佳實(shí)踐和反模式。由于涉及人員太多,恕不一一提及。 參考資料 學(xué)習
獲得產(chǎn)品和技術(shù)
討論
關(guān)于作者
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
聯(lián)系客服