中培偉業IT常青樹專家組在前面章節講述了企業ESB的架構、使用場景,以及服務標準規范,接下來他們介紹ESB服務化實現的兩個基本點,即業務服務規劃和ESB服務的技術實現。
ESB服務化的目標是建立標準化、規范化、可復用的服務體系,提升業務響應速度,靈活應對市場挑戰和業務變革;在服務體系的建立過程中,企業逐步形成重要的可復用的軟資產,更好地支撐的業務戰略目標。
服務化的實現包括兩大部分任務,一部分是業務服務的設計,提供開放的、基于標準的服務定義與實現。另一部分,ESB采用SOA理念,實現服務的注冊、發布、消費、監控,以及服務的全生命周期管理。本章介紹第一部分,業務服務的規劃。
1章 業務服務的規劃
業務服務的規劃,是指企業通過對現有服務資產的梳理和分析,逐步建立、完善服務體系,規劃并指導各系統定義和發布業務服務或技術服務。
業務服務的規劃,注重效率和重用,可以將業務系統的公共技術部分和公共應用部分提煉出來,形成可重用的服務。公共技術部分,比如用戶認證授權、文件管理、業務流程管理、數據質量管理等,形成統一的基礎技術服務平臺;公共應用部分,是指將應用的公共部分提煉出來,不同行業有不同的業務和應用特點,這部分要具體情況具體分析。如下圖所示:
對于新的業務需求,盡量多地通過對現有服務的組織,來滿足需求。這樣,加快了反應速度和質量,減少了開發、測試的工作量。
那么,具體說來,服務規劃有什么樣的方法論指導,規劃的策略、原則和具體方法是什么呢?所幸,SOAD為企業SOA的實現提供了一種全新的方法論,搭建了業務和 IT 之間的橋梁,全面支持SOA項目的分析和設計階段,它以現有的經過實踐檢驗的OOAD、EA和 BPM 為基礎建立了創新的交叉學科的方法,規劃了一個整體的建模規則。下面描述服務規劃的策略、原則和開發步驟方法。
2章 服務規劃的策略
服務策略是實施服務設計的指導方針,在技術層面和管理層面定義了那些做法是正確的,策略會隨著時間推移不斷演化。常見的服務策略包括以下幾種:
a)安全策略,包括服務授權,采用數字證書、加密技術實現對服務報文的完整性、保密性和不可抵賴性等。
b)服務的互操作性
c)語義、數據和schema策略
d)服務質量和服務等級協議策略
e)可靠性策略
f)服務版本策略。
3章 面向服務的架構設計原則
服務規劃遵循面向服務架構的設計原則,包括以下:
服務標準化:指服務設計開發必須遵循的技術標準和開發步驟規范,包括XML、WSDL、SOAP、WS-policy、XML Schema等。這是應用系統作為服務提供者和服務使用者必須遵循的,保證服務在整個生命周期具有一致的統一的規范和技術標準。
服務松耦合:松耦合是一個服務請求另一個服務的同時依舊保持服務獨立性,通過使用服務契約來達到松散耦合。何為服務契約?服務源于對現實世界的模擬,現代社會是一個契約社會,服務的提供者和消費者雙方基于契約行事,契約約定了服務內容和責任義務。
服務可重用:服務是獨立的、上下文無關的。以服務為導向鼓勵所有服務的可重用性,而不用過多考慮是否存在直接的重用需求。
服務透明性:服務透明性原則允許將服務當作黑盒,提供公共方法供服務使用者調用,對外部隱藏細節。對于服務請求者來說只關心請求服務的結果,而不用關注服務的具體實現過程。
服務可發現:應用系統需要有效的方法知道有哪些可用服務,以及如何獲取和使用這些服務。服務的可發現性有利于避免多余的服務,或者實現多余邏輯的服務。
服務可組合:服務可組合性原則,是為了保證服務能夠成為組合業務操作服務的有效成員;在常見的編排層服務設計過程中,需要組合不同的服務,調用不同的操作邏輯,這就要保證設計出來的服務能夠被組合起來實現業務服務的操作過程。
4章 服務設計的開發方法
服務的設計、開發應遵循面向服務架構的設計、開發規范,即SOAD規范。SOAD包括服務分析、服務設計、服務實現三個主要步驟。其中步驟執行順序和每一步驟主要完成的工作如下圖所示:
服務分析,服務分析通常采用從頂至下的設計方法,通過對企業應用架構的全面功能分析,注重效率和重用,識別出可重用的服務,包括可重用的基礎技術服務和基礎業務服務,以及潛在的業務服務。
服務設計,服務設計要遵從面向服務的架構設計原則,要求簡單明晰,同時兼顧靈活性,原子設計和組合設計相結合,并能夠支持不同類型的服務方式。原子設計是指以實體為中心的設計,即基本功能點設計,主要是完成一次交互的請求響應處理,比如對應于后臺的查詢、檢查、驗證等,服務設計時要注意原子服務粒度。組合服務由原子服務組成的,主要完成跨系統的原子服務的組合訪問,形成應用服務設計和以任務為中心的服務設計。組合的服務個數不宜過多,當組合的原子服務過多,業務邏輯處理變得復雜,服務質量將大大降低。組合服務統一對外發布標準的接口,遵循SOA規范。
服務實現,指服務的具體實現,包括服務的開發、測試和部署。服務開發遵從SOA標準規范,比如JAX-WS規范,在 JAX-WS中,一個遠程調用可以轉換為一個基于XML的協議例如SOAP,在使用JAX-WS過程中,開發者不需要編寫任何生成和處理SOAP消息的代碼。JAX-WS運行時會將這些API的調用轉換成為對應的SOAP消息。
5章 結束語
服務設計和開發通常采用迭代開發方法,每一輪迭代周期都包括服務分析、服務設計和服務實現。在每一輪迭代均要有業務人員的參與,并提供反饋,為下一輪迭代提供指導。這樣可以降低服務建設的風險,提高用戶滿意度。下一章節講述ESB服務的技術實現。