|
2007 年 8 月 28 日
面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是很多業(yè)務(wù)轉(zhuǎn)換工作的核心。很多企業(yè)采用增量式方法進(jìn)行 SOA 轉(zhuǎn)換,使用其寶貴的遺留 IT 系統(tǒng)作為服務(wù)提供者參與其中。解決方案架構(gòu)師面臨的挑戰(zhàn)不僅是將 SOA 基礎(chǔ)設(shè)施作為促進(jìn)轉(zhuǎn)換的手段交付,而且還要確保企業(yè)級(jí)業(yè)務(wù)操作保持可靠性和兼容性。您的企業(yè)必須制定可作為 SOA 一部分的企業(yè)信息管理策略,并跨所有業(yè)務(wù)操作保持總體數(shù)據(jù)和內(nèi)容的一致性。本文介紹了此類轉(zhuǎn)換中面臨的挑戰(zhàn),并將討論一些值得考慮的設(shè)計(jì)策略。
引言
如果您的企業(yè)和大部分企業(yè)一樣,則您的業(yè)務(wù)戰(zhàn)略和核心競(jìng)爭(zhēng)力分析已經(jīng)確定了需要在哪些領(lǐng)域重點(diǎn)關(guān)注業(yè)務(wù)再工程和 IT 現(xiàn)代化。一個(gè)典型的結(jié)果(至少對(duì)于企業(yè)的某些核心方面如此)是轉(zhuǎn)換到面向服務(wù)的業(yè)務(wù),開始依賴 SOA。業(yè)務(wù)操作是圍繞一組服務(wù)設(shè)計(jì)的,而這要求對(duì)當(dāng)前 IT 系統(tǒng)進(jìn)行再工程,并將其作為服務(wù)提供者加以集成。此轉(zhuǎn)換還可能引入一些新的服務(wù)提供者。目標(biāo)是能夠構(gòu)建新的組合應(yīng)用程序(如內(nèi)部工作區(qū)門戶應(yīng)用程序或 Internet 商業(yè)應(yīng)用程序),從而高效地處理特定的業(yè)務(wù)需求。
作為這個(gè)充滿挑戰(zhàn)的轉(zhuǎn)換工作的一部分,企業(yè)通常會(huì)開展一系列重大的業(yè)務(wù)與 IT 項(xiàng)目。主要的轉(zhuǎn)換交付內(nèi)容包括:
- 企業(yè)體系結(jié)構(gòu)與業(yè)務(wù)服務(wù)模型的一致性。
- 引入能實(shí)現(xiàn)業(yè)務(wù)服務(wù)模型的相關(guān)部分的基于服務(wù)的 IT 技術(shù)設(shè)施。
- 對(duì)遺留 IT 系統(tǒng)進(jìn)行轉(zhuǎn)換和擴(kuò)展(或向其應(yīng)用包裝),以便能集成到這個(gè)基于服務(wù)的 IT 基礎(chǔ)設(shè)施中。
- 可靠的設(shè)計(jì)與開發(fā)環(huán)境及交付流程,允許為支持 IT 應(yīng)用程序?qū)崿F(xiàn)高效而靈活的實(shí)現(xiàn)。
轉(zhuǎn)換的這些主要交付內(nèi)容帶來(lái)了一組略微次要的派生挑戰(zhàn)。這些可確保企業(yè)按照其轉(zhuǎn)換意圖進(jìn)行交付,并能夠監(jiān)視和適應(yīng)更改,從而實(shí)現(xiàn)靈活性。這些轉(zhuǎn)換挑戰(zhàn)通常要遵循以下原則:
- 企業(yè)必須繼續(xù)提供一組總體可靠的兼容業(yè)務(wù)操作。
- 需要治理流程和設(shè)計(jì)權(quán)威來(lái)確??傮w業(yè)務(wù)服務(wù)模型與 IT 系統(tǒng)實(shí)現(xiàn)遵守全盤轉(zhuǎn)換原則。
- 企業(yè)必須實(shí)現(xiàn)業(yè)務(wù)與 IT 服務(wù)管理的集成視圖,以便能夠進(jìn)行度量和交付響應(yīng)變更。
有些企業(yè)非常幸運(yùn),能夠在整個(gè)企業(yè)內(nèi)進(jìn)行到 SOA 的業(yè)務(wù)轉(zhuǎn)換。此方法要求為主要轉(zhuǎn)換交付內(nèi)容提供更富有挑戰(zhàn)的實(shí)現(xiàn),但最終能提供一個(gè)更便于發(fā)展和開發(fā)次要轉(zhuǎn)換交付內(nèi)容的環(huán)境。當(dāng)希望在整個(gè)企業(yè)內(nèi)驅(qū)動(dòng)業(yè)務(wù)和 IT 變更的 C 級(jí)別的執(zhí)行人員積極地幫助實(shí)現(xiàn)策略計(jì)劃時(shí),通常會(huì)出現(xiàn)這種情況。
不過(guò),大部分企業(yè)轉(zhuǎn)換都是增量式的——雖然很重要而且也采用了相應(yīng)的策略,但是逐步進(jìn)行的。這通常意味著將對(duì)遺留 IT 系統(tǒng)進(jìn)行再工程,以使其參與新業(yè)務(wù)操作的支持——例如,與其他 IT 系統(tǒng)進(jìn)行組合,以加速客戶訂單的直接處理。這些 IT 系統(tǒng)還需要執(zhí)行所有(或者至少是大部分)當(dāng)前功能。SOA 轉(zhuǎn)換范圍外 的業(yè)務(wù)操作將仍然繼續(xù)。
在此轉(zhuǎn)換場(chǎng)景中,必須仔細(xì)考慮 SOA IT 基礎(chǔ)設(shè)施的實(shí)現(xiàn)設(shè)計(jì)。在這些 IT 系統(tǒng)內(nèi)的數(shù)據(jù)處理影響范圍外的數(shù)據(jù)處理,同時(shí)也受到范圍外的數(shù)據(jù)處理的影響??傮w數(shù)據(jù)處理環(huán)境必須繼續(xù)保持可靠性和與總體業(yè)務(wù)操作的兼容性。
圖 1 中的示例顯示了三個(gè)再工程為服務(wù)提供者的遺留系統(tǒng)。
圖 1. 新 SOA 環(huán)境中的遺留 IT 系統(tǒng)
在圖 1 中,業(yè)務(wù)轉(zhuǎn)換項(xiàng)目已經(jīng)構(gòu)建了 SOA 基礎(chǔ)設(shè)施,業(yè)務(wù)服務(wù)通過(guò)此基礎(chǔ)設(shè)施進(jìn)行發(fā)布,并供新應(yīng)用程序使用。此基礎(chǔ)設(shè)施通常包括用于支持軟件間多協(xié)議連接、異步與同步消息流管理、消息轉(zhuǎn)換、規(guī)則執(zhí)行和流程編排的中間件。已經(jīng)構(gòu)建了使用這些服務(wù)的組合應(yīng)用程序,甚至遺留系統(tǒng)本身也已經(jīng)通過(guò)新服務(wù)調(diào)用得到了增強(qiáng)。
SOA 中的流程與信息體系結(jié)構(gòu)
要實(shí)現(xiàn) SOA 基礎(chǔ)設(shè)施,所生成、維護(hù)和增強(qiáng)的主要資產(chǎn)是業(yè)務(wù)服務(wù)模型。要使用得到廣泛認(rèn)可的技術(shù)來(lái)開發(fā)該模型,如 IBM? 面向服務(wù)的建模與體系結(jié)構(gòu)(Service Oriented Modeling and Architecture,有關(guān)更多信息,請(qǐng)參見(jiàn)參考資料)。在典型的企業(yè)中,這將混合使用自頂向下分析、自底向上分析和目標(biāo)-服務(wù)建模。轉(zhuǎn)換的業(yè)務(wù)目標(biāo)將派生出流程與信息體系結(jié)構(gòu),用于驅(qū)動(dòng)新業(yè)務(wù)操作的實(shí)現(xiàn)和支持 IT 應(yīng)用程序:
- 流程體系結(jié)構(gòu)是能夠組合為企業(yè)操作底層的一組業(yè)務(wù)流程的操作的功能層次結(jié)構(gòu)。它負(fù)責(zé)人員到系統(tǒng)以及系統(tǒng)到系統(tǒng)的流控制。例如,它可能包括在用戶下產(chǎn)品訂單并將其置為等待配送該產(chǎn)品的滿意狀態(tài)時(shí)所需的操作。
- 信息體系結(jié)構(gòu)是一組通過(guò)對(duì)相關(guān)數(shù)據(jù)與內(nèi)容進(jìn)行訪問(wèn)、操作和存儲(chǔ),來(lái)向企業(yè)操作提供其狀態(tài)和含義。它執(zhí)行數(shù)據(jù)與內(nèi)容的信息管理工作(無(wú)論在簡(jiǎn)單的訪問(wèn)事件還是流程流上下文中均是如此)。例如,在產(chǎn)品開發(fā)生命周期中使用和生成的數(shù)據(jù)和內(nèi)容(制造概念等等)。
流程和信息體系結(jié)構(gòu)觀點(diǎn)通常一起形成并通過(guò)流程數(shù)據(jù) (CRUD) 矩陣之類表現(xiàn)出來(lái)。它們一起定義組成服務(wù)體系結(jié)構(gòu)的一系列服務(wù)。服務(wù)是一組在消息數(shù)據(jù)傳入時(shí)調(diào)用的操作。服務(wù)實(shí)現(xiàn)執(zhí)行操作數(shù)據(jù)或內(nèi)容的處理(通常通過(guò)持久存儲(chǔ)或訪問(wèn)),并返回結(jié)果??梢酝胶彤惒绞褂梅?wù),調(diào)用通常由集成基礎(chǔ)設(shè)施代理。在完全分離的系統(tǒng)中,有些服務(wù)負(fù)責(zé)流程狀態(tài)的更改(例如,將信息表示為已請(qǐng)求,將客戶 X 的新地址表示為已驗(yàn)證)。其他服務(wù)負(fù)責(zé)對(duì)信息狀態(tài)進(jìn)行更改,確保將已經(jīng)進(jìn)行了操作的數(shù)據(jù)和內(nèi)容置為所需的狀態(tài),以作為以后的服務(wù)事件的依賴(例如,客戶 X 的新運(yùn)輸?shù)刂芬焉В?/p>
遺留數(shù)據(jù)處理挑戰(zhàn)
遺留 IT 系統(tǒng)無(wú)疑將作為您的企業(yè)服務(wù)提供者實(shí)現(xiàn)的一部分,將集成到 SOA 基礎(chǔ)設(shè)施中。遺留系統(tǒng)不僅包括傳統(tǒng)大型機(jī)處理,而且也包括企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)應(yīng)用程序、內(nèi)部和外部 Web 應(yīng)用程序、工作流應(yīng)用程序、掃描與打印系統(tǒng)等等。可以進(jìn)行很多工作來(lái)支持使用這些遺留系統(tǒng)并將其集成到服務(wù)提供者實(shí)現(xiàn)中:
- 處理功能將公開,可以對(duì)其進(jìn)行訪問(wèn),以便能將其組合到服務(wù)提供者實(shí)現(xiàn)中。這通常意味著通過(guò)新協(xié)議和調(diào)用機(jī)制公開事務(wù),如 CICS? 事務(wù)上的 SOAP 包裝。
- 可能需要對(duì)功能進(jìn)行再工程,以在公開事務(wù)時(shí)保持處理完整性。此事務(wù)可以為現(xiàn)有的事務(wù),也可以作為調(diào)用一個(gè)或多個(gè)其他現(xiàn)有事務(wù)的事務(wù)創(chuàng)建 (Facade)。對(duì)于前兩種情況,應(yīng)該通過(guò)服務(wù)粒度策略影響對(duì)這些已公開的服務(wù)的調(diào)用的設(shè)計(jì)。
- 可能需要“關(guān)閉”某些處理功能,因?yàn)閿?shù)據(jù)處理現(xiàn)在由通過(guò)訪問(wèn)提供者實(shí)現(xiàn)調(diào)用的新功能進(jìn)行。
- 必須對(duì)新訪問(wèn)機(jī)制強(qiáng)制執(zhí)行現(xiàn)有的訪問(wèn)權(quán)限以及安全性與審核需求。
- 可能需要對(duì)現(xiàn)有系統(tǒng)的服務(wù)質(zhì)量(Quality of Service,QoS)進(jìn)行擴(kuò)展或補(bǔ)充。例如,替換處理解決方案可能需要涉及脫機(jī)批處理方面的內(nèi)容。
- SOA 可能會(huì)給現(xiàn)有系統(tǒng)帶來(lái)新的無(wú)法預(yù)見(jiàn)的負(fù)載,從而對(duì)現(xiàn)有流程造成負(fù)面影響。
為了參與 SOA 而將遺留 IT 系統(tǒng)公開時(shí),支持轉(zhuǎn)換的范圍外的業(yè)務(wù)操作的某些功能將繼續(xù)進(jìn)行數(shù)據(jù)處理。這通常要求了解和處理數(shù)據(jù)傳播和同步問(wèn)題。
用戶將繼續(xù)使用原始應(yīng)用程序方法調(diào)用遺留 IT 系統(tǒng),通常通過(guò)用戶界面(如大型機(jī)啞終端或已打包應(yīng)用程序的 UI)。SOA 依賴于一組用于描述在 SOA 生態(tài)系統(tǒng)中傳遞的消息的數(shù)據(jù)模式。這些數(shù)據(jù)模式實(shí)現(xiàn)為集成在協(xié)作服務(wù)操作集中的物理數(shù)據(jù)消息;這可以包括運(yùn)行時(shí)數(shù)據(jù)轉(zhuǎn)換和語(yǔ)義映射或消息數(shù)據(jù)的擴(kuò)充。將隨后由基礎(chǔ)遺留 IT 系統(tǒng)使用和處理此數(shù)據(jù)。
可以使用 SOA 執(zhí)行的流程集依賴于需要處于特定狀態(tài)的一組集合數(shù)據(jù)和內(nèi)容。通過(guò) SOA 功能和遺留 IT 系統(tǒng)的并行處理可能會(huì)導(dǎo)致該狀態(tài)模型中出現(xiàn)不穩(wěn)定的情況。
在圖 1 的示例中,此轉(zhuǎn)換允許具有直接處理能力的新 Internet 應(yīng)用程序設(shè)置和管理客戶的保單。新應(yīng)用程序可以觸發(fā)與客戶的接觸,并在保單快要錯(cuò)過(guò)續(xù)簽期限時(shí)給出續(xù)簽協(xié)議。不過(guò),SOA 范圍外的有些現(xiàn)有業(yè)務(wù)操作可能會(huì)帶來(lái)問(wèn)題??蛻艨梢酝ㄟ^(guò)很多方式通知公司自己已搬家。盡管保單最先是通過(guò)新 Internet 應(yīng)用程序購(gòu)買的,客戶可能不會(huì)使用該 SOA 應(yīng)用程序通知公司自己的地址發(fā)生變化,可能會(huì)轉(zhuǎn)而采用寄信的方式。后臺(tái)辦公流程會(huì)導(dǎo)致客戶的新地址僅應(yīng)用到客戶關(guān)系管理(Customer Relationship Management,CRM)系統(tǒng)?,F(xiàn)有 CRM 系統(tǒng)的批處理會(huì)在夜間使用客戶數(shù)據(jù)更新保險(xiǎn)聯(lián)系人管理系統(tǒng)。由于新的基于 SOA 的系統(tǒng)是圍繞類似于實(shí)時(shí)的事務(wù)設(shè)計(jì)的,因此現(xiàn)在將導(dǎo)致同步時(shí)間問(wèn)題。在同步期間,新應(yīng)用程序可以嘗試使用舊地址就續(xù)簽事宜聯(lián)系客戶,而事實(shí)上能識(shí)別上下文的響應(yīng)型 SOA 應(yīng)用程序應(yīng)該使用新地址取消舊保單,并設(shè)立新保單與此人聯(lián)系。
服務(wù)提供者
從理論上而言,SOA 架構(gòu)師角色應(yīng)該考慮采用服務(wù)的基礎(chǔ)設(shè)施的設(shè)計(jì)與實(shí)現(xiàn)。SOA 建模技術(shù)可指導(dǎo)您決定流程和信息將要使用的服務(wù),與服務(wù)提供者聯(lián)系,并構(gòu)建應(yīng)用程序來(lái)調(diào)用作為流程執(zhí)行和數(shù)據(jù)處理一部分的服務(wù)操作。服務(wù)使用者并不管服務(wù)提供者如何實(shí)現(xiàn)服務(wù),只要服務(wù)聲明自己將根據(jù)事先達(dá)成的契約(服務(wù)操作及其關(guān)聯(lián)的 QoS)處理和管理數(shù)據(jù)即可。
在特定情況下,此模型可能可行,特別在從企業(yè)外提供服務(wù)提供者實(shí)現(xiàn)時(shí)。本文所討論的是很多企業(yè)在目前引入 SOA 過(guò)程中所采用的具體而通用的方案。
事實(shí)上,總體解決方案架構(gòu)師在 SOA 轉(zhuǎn)換中要擔(dān)當(dāng)很多職責(zé),特別在進(jìn)行增量式轉(zhuǎn)換的企業(yè)中更是如此。這些職責(zé)是在企業(yè)治理流程內(nèi)進(jìn)行的;有關(guān)更多信息,請(qǐng)參見(jiàn)文章“SOA 治理案例”(developerWorks,2005 年 8 月)。
首先,解決方案架構(gòu)師考慮 SOA 基礎(chǔ)設(shè)施的設(shè)計(jì)與實(shí)現(xiàn);這包括確定將充當(dāng)軟件系統(tǒng)(形成服務(wù)提供者實(shí)現(xiàn)的一部分)的遺留 IT 系統(tǒng)。其次,解決方案架構(gòu)師提供用于組裝服務(wù)使用應(yīng)用程序的開發(fā)流程和環(huán)境。這包括設(shè)計(jì)模式、標(biāo)準(zhǔn)以及工具環(huán)境。而第三,解決方案架構(gòu)師必須認(rèn)識(shí)到承擔(dān)的全盤業(yè)務(wù)與 IT 體系結(jié)構(gòu)責(zé)任。業(yè)務(wù)體系結(jié)構(gòu)將說(shuō)明采用功能和契約外包的業(yè)務(wù)策略的合理性。IT 體系結(jié)構(gòu)將提供支持總體業(yè)務(wù)操作所必要的 IT 系統(tǒng)。在任何企業(yè)(包括大型企業(yè))中,這通常都是很大的戰(zhàn)術(shù)與戰(zhàn)略應(yīng)用程序投資組合。
要考慮的設(shè)計(jì)策略
為了構(gòu)建支持總體企業(yè)遵從性的可靠信息管理體系結(jié)構(gòu),可能考慮采用針對(duì)此問(wèn)題的各種設(shè)計(jì)策略與原則。
在業(yè)務(wù)流程分析中對(duì)范圍變更進(jìn)行規(guī)劃
在轉(zhuǎn)換項(xiàng)目進(jìn)行期間,經(jīng)常遇到這種情況,通過(guò)系統(tǒng)分析和設(shè)計(jì)發(fā)現(xiàn)了一些不希望出現(xiàn)的數(shù)據(jù)處理場(chǎng)景??赡苄枰獙⒅霸诜秶獾臉I(yè)務(wù)操作納入范圍中,以便能夠?qū)ζ溥M(jìn)行修改,以接納一組新系統(tǒng)。新的基于 SOA 的系統(tǒng)甚至可能需要提供內(nèi)部應(yīng)用程序,供這些已經(jīng)更改的業(yè)務(wù)操作使用,如用于更新某些客戶詳細(xì)信息的外部處理步驟。
發(fā)布和訂閱遺留實(shí)體變更
當(dāng)作為服務(wù)者參與的遺留 IT 系統(tǒng)中已得到一致認(rèn)可的實(shí)體和屬性數(shù)據(jù)發(fā)生變更時(shí),需要開發(fā)外部處理步驟來(lái)告知 SOA。理想情況下,這應(yīng)該是實(shí)時(shí)的,但此工作實(shí)際經(jīng)常以計(jì)劃批處理活動(dòng)的形式進(jìn)行。在舊式非結(jié)構(gòu)化應(yīng)用程序中,向遺留 IT 系統(tǒng)應(yīng)用指令代碼來(lái)檢測(cè)數(shù)據(jù)記錄發(fā)生更改的時(shí)間的做法可能開銷非常大。
您的企業(yè)必須進(jìn)行的一項(xiàng)工作是,要評(píng)估遺留系統(tǒng)所擁有的數(shù)據(jù)以及系統(tǒng)通知更改的相關(guān)方的能力。如果頻繁更改對(duì) SOA 非常重要的數(shù)據(jù),而遺留系統(tǒng)又無(wú)法生成記錄級(jí)別的事件觸發(fā)器(以便最好地進(jìn)行日常批量提取工作),則可能會(huì)需要進(jìn)行再工程,或替換遺留系統(tǒng)。確保業(yè)務(wù)服務(wù)的 QoS 與計(jì)劃的工程工作一致。說(shuō)明在進(jìn)行事先計(jì)劃的增量工程改進(jìn)工作(如從關(guān)鍵服務(wù)數(shù)據(jù)每日批處理的方式過(guò)渡到實(shí)時(shí)的消息驅(qū)動(dòng)處理)的情況下,QoS 將如何隨時(shí)間的增加提高。
信息服務(wù)查詢 Facade
信息管理服務(wù)的操作應(yīng)該提供能夠應(yīng)用于數(shù)據(jù)或內(nèi)容的簡(jiǎn)單操作。查詢 Facade 隱藏了如何訪問(wèn)和操作信息以及如何跨多個(gè)物理 IT 系統(tǒng)的細(xì)節(jié)?;旧蟻?lái)說(shuō),查詢 Facade 可以實(shí)現(xiàn)兩個(gè)模式來(lái)實(shí)現(xiàn)數(shù)據(jù)集成。由于企業(yè)中存在很多方案和遺留系統(tǒng),很可能將同時(shí)使用這兩種方法來(lái)實(shí)現(xiàn)服務(wù):
- 將數(shù)據(jù)帶到查詢中。將變化慢的信息整理到承載數(shù)據(jù)存儲(chǔ)區(qū)(例如,倉(cāng)庫(kù)),并在其中對(duì)數(shù)據(jù)進(jìn)行操作??梢栽诖颂幨褂锰崛?、轉(zhuǎn)換和加載(Extract, Transform, and Load,ETL)技術(shù)。
- 將查詢帶到數(shù)據(jù)中。對(duì)于快速變化的事務(wù)數(shù)據(jù),操作必須進(jìn)入物理源中對(duì)其進(jìn)行操作??梢允褂眠B接器和適配器技術(shù)來(lái)進(jìn)行此類訪問(wèn)(例如讀取和更新)。
在 SOA 中,實(shí)際查詢 Facade 可以使用各種模式實(shí)現(xiàn),如聯(lián)合 與填充(有關(guān)更多信息,請(qǐng)參見(jiàn)參考資料中的“數(shù)據(jù)集成應(yīng)用程序模式”),還可以使用服務(wù)數(shù)據(jù)對(duì)象 (Service Data Object) 和數(shù)據(jù)訪問(wèn)服務(wù) (Data Access Service) 等技術(shù)(請(qǐng)參見(jiàn)參考資料)。各個(gè)服務(wù)實(shí)現(xiàn)的總體設(shè)計(jì)模式將影響這些決策;有關(guān)更多信息,請(qǐng)參見(jiàn)“Toward a pattern language for Service-Oriented Architecture and Integration, Part 1”(developerWorks,2005 年 6 月)。但在此問(wèn)題中,將需要對(duì)實(shí)現(xiàn)設(shè)計(jì)進(jìn)行擴(kuò)展,以讓服務(wù)更為智能化。假定已經(jīng)為遺留系統(tǒng)配備了發(fā)布實(shí)體數(shù)據(jù)變更的解決方案(達(dá)到認(rèn)可的 QoS 水平),信息服務(wù)需要訂閱變更(哪些數(shù)據(jù)和頻率如何)并將變更應(yīng)用到相應(yīng)的基礎(chǔ)物理系統(tǒng),如執(zhí)行數(shù)據(jù)同步的物理系統(tǒng)。
而這正是在體系結(jié)構(gòu)的此處做出主要實(shí)體決策。哪個(gè)遺留 IT 系統(tǒng)應(yīng)該視為主系統(tǒng),在哪些事務(wù)場(chǎng)景中應(yīng)這樣處理?主數(shù)據(jù)管理技術(shù)可在此處為您的實(shí)現(xiàn)提供幫助,不過(guò)這些選項(xiàng)及決策(與遺留系統(tǒng)的集成能力進(jìn)行權(quán)衡)應(yīng)該是體系結(jié)構(gòu)定義中非常重要的部分。
業(yè)務(wù)規(guī)則放置
到 SOA 的轉(zhuǎn)換引入了新 IT 基礎(chǔ)設(shè)施,其中包括集成中間件和新組合應(yīng)用程序以及其他實(shí)體。業(yè)務(wù)規(guī)則不再包含在應(yīng)用程序中。狀態(tài)通過(guò)業(yè)務(wù)規(guī)則的執(zhí)行有效地進(jìn)行管理。作為開發(fā)信息管理設(shè)計(jì)的一部分,必須了解業(yè)務(wù)規(guī)則邏輯的類型和位置。
SOA 中的業(yè)務(wù)規(guī)則的類型包括:
- 引用完整性規(guī)則
- 應(yīng)用程序行為規(guī)則
- 跨應(yīng)用程序完整性規(guī)則
- 事務(wù)處理業(yè)務(wù)邏輯規(guī)則
- 數(shù)據(jù)實(shí)體處理規(guī)則,如存儲(chǔ)過(guò)程
應(yīng)該重用此類策略,而不是重新生成業(yè)務(wù)規(guī)則。隨著 SOA 的引入,必須仔細(xì)地考慮現(xiàn)有業(yè)務(wù)規(guī)則和新業(yè)務(wù)規(guī)則的執(zhí)行(以支持服務(wù)的可靠執(zhí)行)。規(guī)則邏輯本身(無(wú)論其位于上下文中任何位置)可能需要作為服務(wù)公開,以便能調(diào)用來(lái)維護(hù)特定處理場(chǎng)景的完整性。
潛在設(shè)計(jì)策略影響
做出這些決策時(shí)必須考慮的解決方案的潛在影響包括:
- 雙密鑰處理。通過(guò)引入 SOA 而獲得的業(yè)務(wù)領(lǐng)域的效率需要與額外的數(shù)據(jù)輸入任務(wù)(從而增加了數(shù)據(jù)輸入錯(cuò)誤的風(fēng)險(xiǎn))進(jìn)行權(quán)衡。但這可能是用于處理數(shù)據(jù)同步時(shí)間確定場(chǎng)景的唯一選項(xiàng)。通常并不會(huì)輕視這些場(chǎng)景。您的企業(yè)需要建立人頭計(jì)算來(lái)執(zhí)行事件驅(qū)動(dòng)的雙密鑰生成,從而避免由于夜間批量更新造成的時(shí)間延遲。需要通過(guò)在系統(tǒng)中開發(fā)自動(dòng)接口來(lái)幫助進(jìn)行數(shù)據(jù)同步,以抵消此成本。這個(gè)循環(huán)分析應(yīng)該評(píng)估實(shí)現(xiàn)自動(dòng)化接口(特別測(cè)試)所需的時(shí)間是否對(duì)總體交付時(shí)間表造成影響。
- 不必要的反饋循環(huán)。對(duì) CRM 系統(tǒng)中的客戶記錄的更新之后緊跟對(duì) SOA 的手動(dòng)或自動(dòng)調(diào)用,以告知其他應(yīng)用程序這個(gè)意外的客戶數(shù)據(jù)變更。為了更新客戶,SOA 將調(diào)用其信息服務(wù),該服務(wù)本身將調(diào)用原始 CRM 系統(tǒng)并更新客戶數(shù)據(jù)。根據(jù)用法模型不同,信息服務(wù)體系結(jié)構(gòu)需要實(shí)現(xiàn)不同樣式的 update customer 操作。
- 范圍漸變。定義 SOA 范圍聲明時(shí),缺乏遺留 IT 系統(tǒng)的知識(shí),不了解哪些流程和信息管理功能一定將更改。服務(wù)模型的派生對(duì)遺留分析起到促進(jìn)作用,只會(huì)發(fā)現(xiàn)需要更多的 SOA 基礎(chǔ)設(shè)施實(shí)現(xiàn)。在定義業(yè)務(wù)服務(wù)和工程計(jì)劃的整體范圍前,需要考慮發(fā)現(xiàn)階段的預(yù)算和規(guī)劃。
結(jié)束語(yǔ)
本文列出了一些重要領(lǐng)域,您需要關(guān)注這些領(lǐng)域,以便成功交付引入 SOA 的業(yè)務(wù)轉(zhuǎn)換項(xiàng)目。業(yè)務(wù)轉(zhuǎn)換對(duì) SOA 的挑戰(zhàn)非常重要。大部分企業(yè)都通過(guò)引入 SOA 基礎(chǔ)設(shè)施(能以此為基礎(chǔ)構(gòu)建組合應(yīng)用程序)以增量的方式進(jìn)行轉(zhuǎn)換。他們使用遺留 IT 系統(tǒng)實(shí)現(xiàn)服務(wù)提供者。
為了讓企業(yè)在所有操作上保持可靠性和一致,轉(zhuǎn)換項(xiàng)目必須開發(fā)企業(yè)信息管理解決方案,而此方案中包括 SOA(但涉及的內(nèi)容并不限于此范圍)。此解決方案應(yīng)該在 SOA 中跨 IT 系統(tǒng)處理數(shù)據(jù)和內(nèi)容的一致性和同步問(wèn)題,以便能將信息服務(wù)公開供使用。
負(fù)責(zé)交付 SOA 轉(zhuǎn)換的解決方案架構(gòu)師還必須在考慮總體受控的企業(yè)體系結(jié)構(gòu)和預(yù)算的情況下,對(duì)遺留 IT 系統(tǒng)的功能與 SOA 的需求進(jìn)行權(quán)衡。信息管理解決方案的實(shí)現(xiàn)策略中的數(shù)據(jù)集成技術(shù)和主數(shù)據(jù)管理因素。
致謝
我們感謝 Rick Robinson、Patrick Dantressangle、Bob Lojek 和 Claudio Cozzi 對(duì)本文進(jìn)行審閱并提供了指導(dǎo)。
參考資料
學(xué)習(xí)
|