這個案例的研究體現了利用一種SOA方法來迅速改進操作的好處。Host Integration Server 2004 體現了服務器的網絡服務功能,使其更加容易適應不同的LOB應用系統。BizTalk Server 2004 使得創建復雜的商業邏輯變得容易,這種商業邏輯是集中的、簡單易管理的、同時也容易和前端應用相結合。這種面向服務的解決方案技術,通過微軟公司操作管理者,發現了以前沒有報告的錯誤信息,從而使得整個構架變得更加容易管理。
背景概述
在過去的幾年里, 有很多關于面向服務構架SOA的討論以及它能夠為組織帶來的利益,尤其是那些擁有LOB應用系統的組織。我們看到了由中間件研究機構推出的被廣泛認可的SOA計劃,這標志著針對企業級應用程序集成的SOA方法是成熟和可行的。這些獨立軟件開發商,咨詢公司和消費者都這樣認為:采用面向服務解決方案技術正在迅猛的增長。計算機世界最近報道說:“2005即將是SOA年... 對于美國的組織,75%的企業計劃為這項技術進行投資并且為SOA安排人員?!?--計算機世界 2004年11月15日
為了舉例說明SOA的價值,本文描述了微軟公司的一些步驟,這些步驟講述了微軟技術中心在應用程序集成方面所遇到的一些重要挑戰,這些挑戰和大多數公司所遇到的是類似的。伴隨著我們探究這些挑戰,揭示其深層次的原因,找到一種方法,這種方法能夠使面向服務的解決方案技術迅速改進操作效率和提高同各種LOB應用系統相互交互的能力,那么SOA的前景將變得清晰。 本文同時講述了微軟技術是如何為面向服務解決方案技術中的一些重要的功能提供服務的。例如, Microsoft Host Integration Server 2004將基于IBM大型主機與中階系統的應用系統當成基于Microsoft .NET的Web服務來處理,這種Web服務帶有能夠滿足Windows應用的全部功能。這些功能使系統變得更加具有協同能力,同時為錯誤報告和錯誤處理提供了一種更好的解決方案。利用Microsoft BizTalk Server 2004去管理商業流程組織,微軟技術中心能夠控制商業流程,比如,在提交給應用程序之前進行錯誤數據檢測。在下面詳細的描寫中,你將看到其他一些解決方案的原理, 包括一般的和基于微軟的。
當微軟公司堅定地相信選擇去實施面向服的構架是一種商業決定而非一種技術決定時,你所采用的技術仍然很重要。本文將講述在這個快速開發、快速集成和管理的時期,微軟的技術能夠更好的幫助你解決目前所面臨的挑戰。比如,通過采用微軟的開發技術和中間層技術,整個面向服務的解決方案(如下所述)能夠在2個人月里完成。
緒論
微軟技術中心 (MTCs) 給用戶提供了一個環境,供其去想象、構思,同時通過微軟及其合作伙伴的技術得到一種解決方案,這種技術優先配置在用戶自己的IT環境中。當微軟公司技術中心這一商業組織去推廣其服務時,它和它的13個遍及世界的技術中心像其他企業一樣運行,關心所有的方面諸如可用性、安全性、穩定性和可管理性等等。
全球的微軟技術中心組織機構設計成為了一個真實的企業環境。像其他公司一樣,圍繞著微軟技術中心最主要的挑戰是很多老式應用程序已經不再使用微軟的技術來開發,并且前端的應用程序已經不在Windows平臺環境下運行。確切地說,每個地域都有它們自己的構架,在總局主要訪問一組LOB應用系統(比如,在Redmond中)。在總局和分局里,它們通過前端應用程序來為主要的商業流程實現資源共享。
伴隨著各個地方交易數量的增長,如何給那些總局提供可靠的資源共享變得日益困難。比如,一些運行在中階系統(Report Program Generator)和大型主機系統(COBOL)的應用程序在過去設計時并不能提供多路訪問。結果,很多分局運行應用程序時會遭遇死鎖和間歇性失敗,并且沒有任何出錯原因提示和問題來源提示。當這些問題產生時,總局將要經歷一個艱難的過程去管理這些應用程序和修復問題,尤其那些原始的開發者不在的時候。
為了不重新構建所有的微軟技術中心的演示環境的LOB系統,管理小組決定檢查已經存在的綜合集成需求,同時優化介于LOB應用系統和前端應用程序的集成層,這樣做有如下好處:
挑戰
總的來說,微軟技術中心使用相同的系統來進行運作,作為一個典型的公司也擁有挑戰。為了更好的了解微軟技術中心所面臨的一些特定問題,我們將利用其拓撲結構來討論。
一個全球性的組織結構
微軟技術中心的組織結構體現了一個虛擬中型的零售產品制造商的組織結構,在這個系統里完成接收訂單和分發訂單。每個分局都有一個需求組織結構(區域控制器,消息服務器,Web服務器,SharePoint 組織結構等等),這個需求組織結構用來初始化一個訂單和與訂單進行交互。如圖1 所示,總局有中階系統(iSeries) AS/400 server(基于倉庫應用程序為RPG服務),大型主機zSeries 890 server(基于托運應用程序為客戶信息控制系統服務[CICS]),RS/6000 UNIX server(基于執行應用程序為WebSphere服務),還有一個土生土長的運行在Windows上的回復應用程序。
圖1 全球組織結構
基于這個組織結構,每一個分局通過訪問共享資源來演示多種逼真的商業流程。一個重要的商業流程包括分局利用Web應用程序或者InfoPath 2003 form(InfoPath實際上是一個超強的Form表單設計和信息處理軟件)來初始化一個訂單。通過LOB應用系統,這種活動初始化了一個復雜的商業流程。比較基本的商業流程如下所示:
1.一個分局將訂單發送到運行在中階系統上的倉庫應用程序。
2.倉庫用戶利用IBM 5250 Emulator 去查看訂單,并且把訂單的狀態從新建改為已分配。
3.一個靈敏的挑選應用程序接收到了一個挑選請求。
4.倉庫工作人員執行挑選活動,并且承認該項已經被挑選了。
5.訂單狀態信息在倉庫應用程序上改為已經挑選了。
6.倉庫工作人員更新訂單的狀態信息,從已經挑選了改為已經托運了。
7.大型主機托運應用程序收到了托運請求,該托運請求可以用IBM 5250 Emulator 來進行校驗。
8.WebSphere執行應用程序 收到了執行請求。
9.回復服務器通報買方該項目將會在規定的時間內托運到。
嚴格的、難于管理的應用程序
在應用面向服務原則之前,許多老式的應用程序有同樣的易管理問題。首先,LOB應用系統在前端應用程序嘗試同時訪問時可能會失敗,還有在中間交易網絡出現存儲損耗時和數據格式化錯誤時都可能失敗。當一個對應用的請求失敗時,應用程序不會給出錯誤信息,并且系統不能夠被徹底的關閉和重新重啟(在適當處)。從一個運作觀點來看,錯誤調試沒有恰當的錯誤信息確實是一個挑戰。而且,由于商業邏輯和商業流程的高度聯系性,這種結構不能夠利用新的技術。自從微軟技術中心的商業突出為端到端的、更好的相連的模式時,這種模式在新技術和實際中是出類拔萃的。
最后,LOB應用程序是嚴格的、難于管理的,運作小組在一種連續的反應模式中,試圖保持這些共享資源的工作,但是對于“系統不論什么時候,都不會出問題”卻沒有任何真正自信。
解決方案視角
微軟技術中心開始的時候就有一個信念,認為面向服務的構架能夠使各種LOB應用系統變得更加容易集成綜合,提高穩定性,在錯誤調試時能夠提供有意義的錯誤信息?;谶@種理念,他們建立了一種約束和需求,使它們能夠滿足任何建設性構架。
最重要的目標是集成已經存在的大型主機和中介系統應用程序,應用程序有更加高效的交互性,同時也能夠保持靈活性和協同工作能力,有一個基于標準的部件。形成面向服務解決方案的約束有如下一些:
所有的公共接口都必須是Web服務,目的是:
• 使所有的集成實現的時候都是同一種風格,不依賴于局部裝配
• 外部的開發者通過已經定義好的訪問點(綁定),能夠獨立集成解決方案。
• 外部的開發者通過已經定義好的一致模式,能夠獨立集成解決方案。
• 對于詳細的外部應用程序和結構(像網絡),錯誤信息必須是有用的,而且是一致的、可預測的。
• 為了促進交互和錯誤調試,必須要有一個端客戶端到端的可靠的消息分發機制(在恰當處)。
• 由于客戶層頻繁的改變,必須要支持松連結的客戶端集成。
面向服務的解決方案
tdisapp02.gif height=644 alt=orcintdisapp02 src="http://www.kjueaiud.com/uploads/2007/06/1_200706131921505.gif" width=460 border=0>
圖 2 關于Redmond 設備資源共享的SOA解決方案
所有在暗綠色區域的部件都表示新的或者已經改變了的部件??梢宰⒁獾阶鳛橐环N原始的解決方案的回復服務器已經被微軟的語音服務器所替代,它是一種用來配置和管理分布式語音應用程序的工具。簡而言之,在一系列的Web服務和BizTalk流程組織之后,面向服務的解決方案概括了所有的資源共享。
一個前端應用程序,比如一個訂單表(上面已經描述了),發起一個交易通過發送一個XML格式的訂單發到BizTalk流程組織。該流程組織檢查這個訂單,這個新的訂單詳細信息被發送到另外一些Web服務上并且執行這個商業流程,這些Web服務是和各種不同的LOB應用系統交互的。關鍵是面向服務的解決方案,僅此面向服務的解決方案直接和LOB應用系統交互。因此,在訂單到達LOB應用系統之前Web服務能夠拒絕壞損的格式化訂單,解決一個共性的問題(微軟技術中心以前遇到這個問題)。而且,由于BizTalk Server 2004的這個商業流程組織是異步的,多路訂單能夠同時到達和處理,而不需要查找LOB應用系統。
最后,當那些很少出現的錯誤和異常發生時,不管是否在LOB應用系統層、在網絡層、在主機集成層或者流程組織層,關于這個事件的豐富信息能夠通過Web服務傳播到操作小組,在這些地方利用微軟的操作管理(MOM)來分析是可控的、可行的。
SOA的組成
SOA是由一系列相互聯系的層來組成的。從一個開發者的角度,討論這些層也同時體現了構建面向服務的解決方案的方法步驟。因此,第一件事就是使它們能夠通過Web服務來訪問LOB應用系統。其次,以某一種方式來實現商業流程非常有必要。
通過Web服務使后端應用系統可用
由于倉庫應用系統是由RPG編寫的,客戶信息控制系統服務[CICS]是由COBOL編寫的,他們原本是不能夠被訪問通過Web服務。通過利用Host Integration Server 2004 (HIS),下面的應用程序接口能夠像可訪問的.NET Web服務,在Visual Studio .NET中應用程序的功能可以直接使用 (Host Integration Server 在 圖 2中可見) 。WebSphere應用程序能夠用Web服務來體現,通過利用.NET框架來創建一個.NET代理對象。
對于語音服務器,小組決定用微軟的語音服務器來代替現有的解決方案,這種服務器提供更加豐富的解決方案。一些有意義的開發技術被用來開發復雜的語音功能。語音服務器基于預定義的聲音資源文件動態的生成一個恰當的信息,這些聲音資源文件包括普通的東西表示方式,比如用整數作為順序號和一些普通的問候信息。由于語音服務器原本就支持.NET,所以用Web服務來表示服務器的功能是一種很簡單的事情。有了這些Web服務,應用程序基本的部件提取就完成了。所有的事件和錯誤代碼都被捕獲并且由微軟的操作管理(MOM)來控制,MOM能夠監控、分析、診斷和避免這些問題。
利用商業過程來控制組織構架
除了簡單抽象的LOB應用系統之外,一個好的面向服務的解決方案同時也提供了一個控制商業邏輯的靈活方法。利用BizTalk Server 2004,流程組織作為一個已經定義好的商業流程被用來表示多路Web服務前端。這個流程組織好像一個樂隊指揮員,也就是說,決定何時和如何讓每一個交易都處理。在上面所述的商業流程例子里,當一個XML格式的訂單表被提交了,流程組織檢查這個訂單,同時提交給另外一個流程組織,這個流程組織是為了管理和倉庫應用程序交互而設計的。其它的流程組織管理與其它各個的LOB應用系統的交互。
注釋:在圖2里僅僅給出了BizTalk Server在LOB Web服務上。還有,像剛才描述的那樣,多流程組織管理特定的商業流程。
這些流程組織堅持按序訪問LOB應用系統,它們同時避免了許多種類的問題,這些問題在過去曾會導致失敗。例如,流程組織不允許格式化錯誤的訂單執行,而且會將失敗和其失敗原因寫到事件日記里。
另外一個利用BizTalk Server 2004的好處是它允許在系統中實時看到訂單的狀態。比如,一個訂單到了倉庫應用程序,倉庫操作人員假設將訂單的狀態改為“挑選”,說明產品在庫房里,而且訂單正準備托運。當一些失敗出現時,操作人員能夠看到現場運行場景,確信訂單仍在倉庫應用程序中等待狀態改變,或者進一步診斷耽擱或失敗的原因。
獲取主動性
如上所述,管理組織意識到由于錯誤信息是用一致的方式表示的,他們就不僅能夠利用這些信息來進行調試和報告錯誤,而且能夠主動進行系統監控 。他們利用微軟的操作管理(MOM)從Web服務上獲取所有的錯誤和事件信息,利用這些信息能夠進行診斷性的分析。
構建SOA
根據計算機世界的最近報道:
“SOA 在技術方面不需要大量的投資,這些投資是模糊的投資回報和延長的投資回收年限。SOA可以完成小的增量,巨大的軟件和服務利益重新使用能夠迅速交付基線結果。事實上,當一個組織構建一個有戰略眼光的SOA,經常有一個在項目層次上的清晰投資回報。這種現象是奇怪的,這也是商業經理人經常懷疑的地方,然后事實卻是如此?!?-計算機世界 2004年11月15日。
微軟技術中心的案例研究確實證實了以上所述。整個面向服務的解決方案,包括HIS對RPG的接口和COBOL 應用程序,所有的Web服務,BizTalk流程組織、新的語音服務器和其所有的邏輯,還有新的基于InfoPath的小客戶端購買應用程序,所有的這些大概需要兩個人月去構建。當然,主要是由于利用HIS、BizTalk, 和 .NET開發環境很容易,然而實事是前面的少量投資能夠減少全部的開發時間,在控制老式系統的時候能夠產生巨大的效果。同樣,正如計算機世界所述,一旦這些投資已經投了,相同的項目非常容易做,SOA盡可能構建在項目和項目層次,而不是企業事業層次。
面向服務的解決方案的好處
面向服務的解決方案有如下好處:
• 商業邏輯層位于用戶層和老式系統之間,這樣能確保系統僅能夠按照其原來的設計方式來訪問。
• 老式應用程序作為.NET應用程序是可用的,所以使開發變得更快。
• BizTalk的路由支持集中各種不同LOB應用系統的入口點。BizTalk簡單的分析XML數據信息,它決定發往哪里。同時修改商業邏輯也不需要完全重寫應用程序,開發人員僅僅需要更新流程組織和重新配置。
• 由于老式系統目前容易從.NET平臺來訪問,擴展也很容易。應用程序如Microsoft ASP.NET, Office System, and Smart Phones都能夠和在LOB應用系統中的數據進行交互。
• 開發人員沒有必要專長每一個老式系統,因為每一個系統都是通過一些公共接口來訪問的。
• 面向服務的解決方案跟蹤了除原客戶端之外的所有過程層次的錯誤,這也是它應該做到的,開發者和面向服務解決方案的交互也是應用程序應該具有的。從BizTalk到Web服務和它們自身的老式應用程序,如果有錯誤出現都會通報操作人員。常常,問題能夠在外部客戶端意識到之前就判斷出來。
結論
這個案例的研究體現了利用一種SOA方法來迅速改進操作的好處.Host Integration Server 2004 體現了服務器的網絡服務功能,使其更加容易適應不同的LOB應用系統。BizTalk Server 2004 使得創建復雜的商業邏輯變得容易,這種商業邏輯是集中的、簡單易管理的、同時也容易和前端應用相結合。這種面向服務的解決方案技術,通過微軟公司操作管理者,發現了以前沒有報告的錯誤信息,從而使得整個構架變得更加容易管理。
這一特殊面向服務解決方案的細節是微軟技術中心的唯一特殊需求。然而,通過使用Web服務和流程組織,概括出的基本原理體現了如何利用比較少的費用完成一個靈活的、可重用的、能夠支持已有投資的組織結構。
(責任編輯:銘銘)