国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
面向服務(wù)的分析與設(shè)計(jì)原理(轉(zhuǎn)IBM)

2004 年 6 月 01 日

最初的面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA) 的實(shí)現(xiàn)項(xiàng)目的經(jīng)驗(yàn)表明,諸如面向?qū)ο蟮姆治雠c設(shè)計(jì)(Object-Oriented Analysis and Design,OOAD)、企業(yè)體系結(jié)構(gòu)(Enterprise Architecture,EA)框架和業(yè)務(wù)流程建模(Business Process Modeling,BPM)這樣的現(xiàn)有開發(fā)流程和表示法僅僅涵蓋了支持目前出現(xiàn)在 SOA 中的體系結(jié)構(gòu)模式所需的部分要求。

在 Info World 最近的訪談(請(qǐng)參見 參考資料)中,Grady Booch 宣稱“像對(duì)問題的良好抽象和良好的分離這樣的工程基礎(chǔ)決不會(huì)過時(shí)”,不過,他也指出“還是有現(xiàn)實(shí)的機(jī)會(huì)提升抽象的級(jí)別。過去的經(jīng)驗(yàn)表明,必須將抽象的級(jí)別提升到公司處理的 業(yè)務(wù)領(lǐng)域,從而將整個(gè)企業(yè) IT 前景都納入考慮的范疇。

正如 Mark Colan 在文章 “面向服務(wù)的體系結(jié)構(gòu)擴(kuò)展 Web 服務(wù)的前景,第 1 部分”中介紹的,SOA 是一種新興的企業(yè)結(jié)構(gòu)形式,可以用于設(shè)計(jì)下一代企業(yè)應(yīng)用程序。SOA 方法在有力地加強(qiáng)已經(jīng)制定的良好通用軟件體系結(jié)構(gòu)原則(如信息隱藏、模塊化和問題分離)的同時(shí),還增添了一些其他的主題,例如服務(wù)編排、服務(wù)庫(kù)和服務(wù)總線中間件模式。

需要結(jié)構(gòu)化方法或 分析與設(shè)計(jì)方法來設(shè)計(jì)高質(zhì)量的 SOA。因?yàn)楝F(xiàn)有的方法中沒有一種能夠滿足程序設(shè)計(jì)人員對(duì)最新的 SOA 項(xiàng)目的要求,所以他們建議將已經(jīng)形成的良好實(shí)踐(如 OOAD、EA 和 BPM)中的原理組合起來,并且使用根據(jù)需要?jiǎng)?chuàng)新的原理來對(duì)其加以補(bǔ)充。

引言

面向服務(wù)的體系結(jié)構(gòu)(SOA)和 Web 服務(wù)的基本觀念是成為我們?nèi)粘UZ言的一部分,并可看作是適于設(shè)計(jì)現(xiàn)代企業(yè)應(yīng)用程序的體系結(jié)構(gòu)形式。在這種背景下, 什么構(gòu)成好的服務(wù)這個(gè)基本問題就成為確保成功實(shí)現(xiàn) SOA 的關(guān)鍵。

面向?qū)ο蟮姆治雠c設(shè)計(jì)(Object-Oriented Analysis and Design,OOAD)、 企業(yè)體系結(jié)構(gòu)(Enterprise Architecture,EA)框架業(yè)務(wù)流程建模(Business Process Modeling,BPM)這樣的現(xiàn)有建模規(guī)則為我們提供了高質(zhì)量的實(shí)踐,可以長(zhǎng)期幫助標(biāo)識(shí)和定義體系結(jié)構(gòu)內(nèi)的適當(dāng)抽象。然而經(jīng)驗(yàn)表明,這些實(shí)踐各自單獨(dú)應(yīng)用時(shí)達(dá)不到要求。

在本文中,我們將研究 OOAD、EA 和 BPM 中的適當(dāng)原理。我們還將推動(dòng)對(duì)混合方法的需求,這種方法把所有這些規(guī)則中的原理與許多獨(dú)特的新原理組合起來。這樣得到的交叉學(xué)科 OOAD 方法使成功地進(jìn)行 SOA 開發(fā)更容易,我們稱之為 面向服務(wù)的分析與設(shè)計(jì)(Service-Oriented Analysis and Design,SOAD),它還有待正式定義。我們還只是剛剛跨入 SOAD 的殿堂。





回頁首


面向服務(wù)的概念

在發(fā)現(xiàn)新的商機(jī)或威脅的預(yù)期下,SOA 體系結(jié)構(gòu)形式旨在提供企業(yè)業(yè)務(wù)解決方案,這些業(yè)務(wù)解決方案可以 按需擴(kuò)展或改變。SOA 解決方案由可重用的服務(wù)組成,帶有定義良好且符合標(biāo)準(zhǔn)的已發(fā)布接口。SOA 提供了一種機(jī)制,通過這種機(jī)制,可以集成現(xiàn)有的遺留應(yīng)用程序,而不管它們的平臺(tái)或語言。

從概念上講,SOA 中有三個(gè)主要的抽象級(jí)別:

  • 操作:代表單個(gè)邏輯工作單元(LUW)的事務(wù)。執(zhí)行操作通常會(huì)導(dǎo)致讀、寫或修改一個(gè)或多個(gè)持久性數(shù)據(jù)。SOA 操作可以直接與面向?qū)ο?(OO) 的方法相比。它們都有特定的結(jié)構(gòu)化接口,并且返回結(jié)構(gòu)化的響應(yīng)。完全同方法一樣,特定操作的執(zhí)行可能涉及調(diào)用附加的操作。
  • 服務(wù):代表操作的邏輯分組。例如,如果我們將 CustomerProfiling視為服務(wù),則 按照電話號(hào)碼查找客戶按照名稱和郵政編碼列出顧客保存新客戶的數(shù)據(jù)就代表相關(guān)的操作。
  • 業(yè)務(wù)流程:為實(shí)現(xiàn)特定業(yè)務(wù)目標(biāo)而執(zhí)行的一組長(zhǎng)期運(yùn)行的動(dòng)作或活動(dòng)。業(yè)務(wù)流程通常包括多個(gè)業(yè)務(wù)調(diào)用。業(yè)務(wù)流程的例子有: 接納新員工、 出售產(chǎn)品或服務(wù)完成訂單

    在 SOA 術(shù)語中,業(yè)務(wù)流程包括依據(jù)一組業(yè)務(wù)規(guī)則按照有序序列執(zhí)行的一系列操作。操作的排序、選擇和執(zhí)行稱為服務(wù)或流程 編排。典型的情況是調(diào)用已編排服務(wù)來響應(yīng)業(yè)務(wù)事件。

從建模的觀點(diǎn)來看,由此帶來的挑戰(zhàn)是如何描述設(shè)計(jì)良好的操作、服務(wù)和流程抽象的特征以及如何系統(tǒng)地構(gòu)造它們。這些相關(guān)問題都是當(dāng)前行業(yè)內(nèi)和學(xué)術(shù)界最常討論的問題。據(jù)我們所知,最近幾乎所有的 SOA 項(xiàng)目或?qū)n}研討會(huì)都將這樣的服務(wù)建模方面作為重要的主題,并引起了許多的爭(zhēng)論。因此,讓我們更近地作一番審視。



回頁首


為什么 BPM、EA 和 OOAD 還不夠?

早期的 SOA 實(shí)現(xiàn)項(xiàng)目經(jīng)驗(yàn)表明,諸如 OOAD、EA 和 BPM 這樣的現(xiàn)有開發(fā)流程和表示法僅僅涵蓋支持 SOA 范式所需的部分要求。SOA 方法在加強(qiáng)已經(jīng)制定的良好通用軟件體系結(jié)構(gòu)原則(如信息隱藏、模塊化和問題分離)的同時(shí),還增添了附加的主題,例如, 服務(wù)編排服務(wù)庫(kù)服務(wù)總線中間件模式,在建模時(shí)需要對(duì)它們給予特別的關(guān)注。

圖 1展示了現(xiàn)有的 EA、BPM 和 OOAD 建模方法的主要應(yīng)用領(lǐng)域,也是我們隨后討論 SOAD 的出發(fā)點(diǎn)。圖中的水平軸表示 項(xiàng)目生命周期階段;垂直軸表示不同抽象層或 領(lǐng)域之間的區(qū)別,而建?;顒?dòng)通常就是在其上進(jìn)行的。



圖 1. BPM、EA 和 OOAD 的位置

SOA 的遠(yuǎn)景是相當(dāng)容易理解的,因?yàn)樗募夹g(shù)基礎(chǔ)眾所周知。例如,在任何 SOA 工作中,應(yīng)用通用的軟件體系結(jié)構(gòu)原則和 OO 技術(shù)都是一個(gè)有效的開端。然而,正如我們已經(jīng)提到的,早期采用者最常詢問的問題是如何標(biāo)識(shí)正確的服務(wù)。如前所述,OOAD、EA 和 BPM 在各自獨(dú)立地應(yīng)用時(shí)不能提供滿意的答案,而這正是我們現(xiàn)在要說明的。

在由 Booch 和 Jacobson撰寫的開創(chuàng)性的書(大約 10 年前出版的)中介紹的 OOAD 方法在定義 SOA 方面提供了非常好的起點(diǎn)。同樣地,雖然許多年來在體系結(jié)構(gòu)層次中應(yīng)用 OOAD 技術(shù)和統(tǒng)一建模語言(Unified Modeling Language,UML)表示法是一個(gè)常見的實(shí)踐,但是 OOAD 還是與像類和單獨(dú)的對(duì)象實(shí)例這樣的微觀層次的抽象有關(guān)。由于每個(gè)問題域常常都創(chuàng)建單獨(dú)的用況模型,因此,應(yīng)用程序開發(fā)項(xiàng)目,這個(gè)企業(yè)的大方向在許多情況下變得模糊。此外,由于種種原因,用況模型并不總是與其對(duì)等的 BPM 保持同步。

諸如 Treasury 企業(yè)體系結(jié)構(gòu)框架(Treasury Enterprise Architecture Framework,TEAF)面向特征的領(lǐng)域分析(Feature-Oriented Domain Analysis,F(xiàn)ODA)Zachman這樣的 EA 方法都將城市規(guī)劃級(jí)的觀點(diǎn)加在解決方案體系結(jié)構(gòu)之上,但是并沒有解決如何找到易于重用且具有持久性的高質(zhì)量企業(yè)抽象的問題。

雖然 BPM 方法(如 BPMI)在功能工作單元之上提供了端到端視圖,但是它們通常都沒有觸及體系結(jié)構(gòu)和實(shí)現(xiàn)領(lǐng)域。例如,在像 用于 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language for Web Services,BPEL)這樣的語言出現(xiàn)之前,BPM 表示法缺少操作語義。此外,我們還看到了許多流程建模與開發(fā)活動(dòng)彼此分離的情況。

最后,現(xiàn)有的規(guī)則中沒有一個(gè)可以解決如何為 SOA 啟用 現(xiàn)有的應(yīng)用程序的問題;大部分時(shí)間都采用自頂向下流程?,F(xiàn)有的系統(tǒng)通常都存放有大量的重要數(shù)據(jù)和業(yè)務(wù)邏輯,并且不能簡(jiǎn)單地加以替代。因此,為了研究包裝和重構(gòu)策略,必須對(duì)這些系統(tǒng)進(jìn)行自底向上的分析。因此,對(duì)現(xiàn)有應(yīng)用程序的考慮會(huì)將我們帶到中間相遇的流程。

由于這些原因的存在,所以需要混合 SOAD 建模方法。這種方法以最佳的方式組合了 OOAD、BPM 和 EA 中的原理,并且融入了一些具有創(chuàng)新性的原理。 圖 2展示了這種新的方法的 SOAD 資源(原理和技術(shù)):



圖 2. SOAD 及其組成部分:OOAD、BPM 和 EA

EA

將企業(yè)應(yīng)用程序和 IT 基礎(chǔ)設(shè)施發(fā)展成 SOA 可能是一個(gè)大的負(fù)擔(dān),會(huì)影響多個(gè)業(yè)務(wù)線和組織單元。因此,需要應(yīng)用 EA 框架和參考體系結(jié)構(gòu)(如 開放組織體系結(jié)構(gòu)框架(The Open Group Architecture Framework,TOGAF))以及 Zachman,以努力實(shí)現(xiàn)單獨(dú)的解決方案之間體系結(jié)構(gòu)的一致性。

根據(jù)過去的經(jīng)驗(yàn),大多數(shù)現(xiàn)有的 EA 框架都在一個(gè)或多個(gè)方面有限制。例如,如果主要的問題是表示技術(shù)設(shè)備的低級(jí)構(gòu)塊如何在宏觀層次互連,則無法獲得業(yè)務(wù)層流程或服務(wù)視圖。然而,在 SOA 的背景下,這種考慮問題的方式必須轉(zhuǎn)換為以表示業(yè)務(wù)服務(wù)的邏輯構(gòu)件為中心,并且集中于定義服務(wù)之間的接口和 服務(wù)級(jí)協(xié)定(Service Level Agreements,SLA)。

此外,許多企業(yè)級(jí)參考體系結(jié)構(gòu)和框架是相當(dāng)普通的,并沒有觸及設(shè)計(jì)領(lǐng)域。這樣的高級(jí)體系結(jié)構(gòu)無法為架構(gòu)師和開發(fā)人員提供具體的戰(zhàn)術(shù)意見,并且常常導(dǎo)致企業(yè)體系結(jié)構(gòu)和解決方案體系結(jié)構(gòu)之間出現(xiàn)根本性的分歧。

SOAD 必須幫助 SOA 架構(gòu)師定義服務(wù)前景的整體業(yè)務(wù)級(jí)視圖。這是當(dāng)今的 EA 框架所無法提供的,它們需要未來特定于 SOA 的增強(qiáng); 按需操作系統(tǒng)(On Demand Operating Environment,ODOE) 是 IBM 針對(duì)這種趨勢(shì)制定的主要戰(zhàn)略。

BPM

BPM 是一個(gè)不完整的規(guī)則,其中有許多不同的形式、表示法和資源。另一種常用的技術(shù)是定義表示概念性流程流的 事件驅(qū)動(dòng)流程鏈,正如 Barker 和 Longman所定義的。這第二種技術(shù)使用了不同于 UML 的表示法。

此外,還有許多專用方法(如 BPM 技術(shù))可能被咨詢公司和企業(yè)資源規(guī)劃(Enterprise Resource Planning,ERP)軟件包廠商視為具有競(jìng)爭(zhēng)優(yōu)勢(shì)。ARIS Implementation Platform 就是這樣的產(chǎn)品的一個(gè)例子。其他的方法包括: Line of Visibility Enterprise Modeling(LOVEM) 和 IBM 的組件業(yè)務(wù)建模(Component Business Modeling,CBM)戰(zhàn)略。

最近的趨勢(shì)是定義表示可執(zhí)行流模型(如 用于 Web 服務(wù)的業(yè)務(wù)流程執(zhí)行語言(Business Process Execution Language for Web Services,BPEL) )的標(biāo)準(zhǔn)方法。BPEL 將流程的范圍從分析擴(kuò)展到實(shí)現(xiàn)。這樣的可執(zhí)行模型引發(fā)了一系列的新問題,其中包括:

  • 哪些方面應(yīng)該用 BPEL 描述,哪些方面應(yīng)該用 WSDL 描述?流程模型和傳統(tǒng)的編程模型之間的區(qū)別在什么地方?
  • 如何將非功能性要求和服務(wù)質(zhì)量特征這樣的方面加入模型之中?
  • 同更傳統(tǒng)的編碼(例如在 J2EE 中)相比,在 BPEL 引擎的編程語言擴(kuò)展中執(zhí)行多少邏輯?
  • 如何評(píng)定可執(zhí)行流程模型的質(zhì)量,其應(yīng)用的最佳實(shí)踐是什么?
  • 什么工作角色進(jìn)行 BPEL 流管理;是業(yè)務(wù)專家(分析人員),還是開發(fā)角色(軟件架構(gòu)師)?

必須利用所有現(xiàn)有的 BPM 方法作為 SOAD 的起點(diǎn);然而,必須使用流程模型中用于驅(qū)動(dòng) 候選服務(wù)和它們的操作的附加技術(shù)來對(duì)其加以補(bǔ)充。此外,SOAD 中的流程建模必須與設(shè)計(jì)層用況建模保持同步,并且必須給出與 BPEL 有關(guān)的問題的答案。

OO 范式與面向服務(wù) (SO) 范式

OO 分析是一種非常強(qiáng)大且廣為贊譽(yù)的方法,同樣,SOAD 應(yīng)該盡可能多地利用 OO 分析技術(shù)。要將 OO 分析成功地應(yīng)用于 SOA 項(xiàng)目,您就必須一次分析多個(gè)系統(tǒng)。用況模型必須繼續(xù)扮演重要的角色。然而,SOAD 必須主要是 流程,而不是 用戶驅(qū)動(dòng)的。因此,SOAD 需要 BPM 和用況建?;顒?dòng)之間的強(qiáng)鏈接。

設(shè)計(jì)層,OO 的目標(biāo)是能夠進(jìn)行快速而有效的設(shè)計(jì)、開發(fā)以及執(zhí)行靈活且可擴(kuò)展的應(yīng)用程序。對(duì)象是軟件構(gòu)造,其行為就像它們建模的真實(shí)世界的實(shí)體。例如,顧客 (Customer) 將有名稱和聯(lián)系信息,并且還可能有一個(gè)或多個(gè)與之相關(guān)的帳戶對(duì)象。從 OO 的角度看,每件事情都是對(duì)象。

OO的基本原則是:

  • 封裝:軟件對(duì)象就是包含模擬真實(shí)世界的對(duì)象的物理屬性(數(shù)據(jù))和功能(行為)的離散包。例如,帳戶對(duì)象保持收支平衡并且包含平衡中的借貸機(jī)制。
  • 信息隱藏:結(jié)構(gòu)良好的對(duì)象有簡(jiǎn)單的接口,并且不向外界顯漏任何內(nèi)部機(jī)制。真實(shí)世界信息隱藏的例子是,您不需要詳細(xì)了解汽車的工作原理就能夠駕駛它。
  • 類和實(shí)例是定義特定類型的軟件對(duì)象具有什么類型的屬性和行為的模板,而 實(shí)例是具有這些屬性值的個(gè)別對(duì)象。創(chuàng)建類的新實(shí)例稱為 實(shí)例化。利用生物學(xué)進(jìn)行類比,人就是一個(gè)類。所有的人都具有一些屬性,比如身高、體重、頭發(fā)和眼睛顏色等等。我們中的每個(gè)人都是這個(gè)類 HumanBeing 的實(shí)例,具有一些特定的身高、體重以及其他的屬性值。類是一直存在的,而實(shí)例具有有限的生命周期。
  • 關(guān)聯(lián)和繼承:在 OO 中,表達(dá)類和對(duì)象之間的關(guān)聯(lián)的能力是一個(gè)關(guān)鍵的概念;繼承是關(guān)聯(lián)的強(qiáng)形式,用于表達(dá)有關(guān)系:按照同樣的方式,生物物種由這樣的層次構(gòu)成:界 (Kingdom)、門 (Phylum)、綱 (Class)、目 (Order)、科 (Family)、類 (Genus)、種 (Species)。我們常常發(fā)現(xiàn)軟件對(duì)象的自然層次。例如,當(dāng)您創(chuàng)建一個(gè)財(cái)務(wù)應(yīng)用程序?qū)嶓w時(shí),您可能需要構(gòu)造像 經(jīng)常帳戶(CheckingAccount) 、 儲(chǔ)蓄帳戶(SavingsAccount)貸款帳戶(LoanAccount) 這樣的對(duì)象。如果您看得更仔細(xì)一點(diǎn)(請(qǐng)參見 圖 3),您將發(fā)現(xiàn)這些類共享許多屬性,比如都有收支平衡帳戶、借方帳戶和貸方帳戶等等

    圖 3. UML 類繼承示例

    與其重復(fù)定義和管理這些屬性的代碼,不如創(chuàng)建一個(gè)通用的 帳戶(Account) 類,該類具有現(xiàn)金收支平衡并且可以處理借貸事務(wù)。所有其他的類都是這個(gè) 帳戶(Account) 對(duì)象的專門形式。例如, 貸款帳戶(LoanAccount) 將在零和某個(gè)約定的最大值之間具有負(fù)平衡,而 儲(chǔ)蓄帳戶(SavingsAccount) 將具有負(fù)平衡,并且將展示增加利息的行為,等等。
  • 消息傳遞:為了完成一些有用的工作,軟件對(duì)象需要相互通信。它們通過相互發(fā)送消息來這樣做。例如,假定我們想將 $1000 從經(jīng)常帳戶轉(zhuǎn)到儲(chǔ)蓄帳戶,要達(dá)到此目的,可以將帶有參數(shù) $1000 的 消息發(fā)送到 經(jīng)常帳戶(CheckingAccount) 實(shí)例,并且將相應(yīng)的 消息發(fā)送到 儲(chǔ)蓄帳戶(SavingsAccount) 實(shí)例。當(dāng)實(shí)例接收消息時(shí),它執(zhí)行相應(yīng)的功能,稱為 方法,它有與消息相同的名稱。
  • 多態(tài):這個(gè)術(shù)語描述兩個(gè)或兩個(gè)以上的類接受相同的消息但是以不同的方式進(jìn)行實(shí)現(xiàn)的情況。例如, 自由經(jīng)常帳戶(FreeCheckingAccount) 實(shí)例和 經(jīng)常帳戶(CheckingAccount) 實(shí)例將響應(yīng) 借 ($100) 消息,但是 自由經(jīng)常帳戶(FreeCheckingAccount) 實(shí)例將正好 $1000 記入它的帳戶平衡的借方,而 經(jīng)常帳戶(CheckingAccount) 實(shí)例將 $1000 加上交易費(fèi)記入它的帳戶平衡的借方。

OO 支持應(yīng)用程序分析、設(shè)計(jì)和開發(fā)的完整生命周期:

  • OOAD試圖找到最優(yōu)的對(duì)象和最自然的類繼承來實(shí)現(xiàn)它們。
  • OO 開發(fā)集中于應(yīng)用程序的漸進(jìn)式開發(fā),每次實(shí)現(xiàn)一個(gè)業(yè)務(wù)場(chǎng)景或用況。像 IBM WebSphere Studio Application Developer 這樣的工具有助于開發(fā)人員快速地構(gòu)造和測(cè)試 OO 應(yīng)用程序。
  • OO 運(yùn)行時(shí)環(huán)境,例如由 Java 虛擬機(jī)提供的,提供應(yīng)用程序服務(wù)(如垃圾收集(刪除因使用它們的對(duì)象已經(jīng)被丟棄而不再使用的資源))以及框架(如 J2EE)來為駐留在不同的服務(wù)器上的對(duì)象提供相互通信的機(jī)制。

目前與 SO 有關(guān)的 OO 設(shè)計(jì)實(shí)踐的主要問題在于,它的粒度級(jí)別集中在類級(jí),對(duì)于業(yè)務(wù)服務(wù)建模來說,這樣的抽象級(jí)別太低了。諸如繼承這樣的強(qiáng)關(guān)聯(lián)產(chǎn)生了相關(guān)方之間一定程度的 緊耦合(因而具有依賴性)。與此相反,SO 范式試圖通過 松耦合來促進(jìn)靈活性和敏捷性。目前,在 SOA 中還沒有服務(wù) 實(shí)例的跨平臺(tái)繼承支持和一流的表示法來避免需要處理服務(wù)生命周期維護(hù)管理問題(如遠(yuǎn)程垃圾收集)。

這些考慮事項(xiàng)使 OO 難以與 SO 體系結(jié)構(gòu)樣式直接保持一致。然而,對(duì)于設(shè)計(jì)已定義的服務(wù)中的底層類和組件結(jié)構(gòu),OO 仍然是一種有價(jià)值的方法。此外,許多 OOAD 技術(shù)(例如類、責(zé)任、協(xié)作(CRC)卡)也可以用于服務(wù)建模(如果它們提升到更高層次的抽象的話)。在本文后面,我們將回過頭來討論這一點(diǎn)。

圖 4展示了可見性層次和 OO、 面向組件和 SO 設(shè)計(jì)提供的重點(diǎn)之間的對(duì)應(yīng)關(guān)系。它還展示了在 SOA 和 SOAD 背景中它們之間的相互關(guān)系。



圖 4. 設(shè)計(jì)層次

至于表示法,統(tǒng)一建模語言(Unified Modeling Language,UML)——通過一些附加的定型(Stereotype)和概要加以增強(qiáng)——自然成為 SOAD 的重要基礎(chǔ)。

在使用 Rational Unified Process (RUP)——被認(rèn)為是支持迭代軟件開發(fā)的分析與設(shè)計(jì)的主流 OOAD 流程之一——的流程方面,使用 UML 模型具有首要價(jià)值。然而,RUP 以 OOAD 的原則為基礎(chǔ),因而使其不容易與 SOA 設(shè)計(jì)保持一致。從 RUP 的角度來看,系統(tǒng)的體系結(jié)構(gòu)是其通過已定義接口交互的主要組件的體系結(jié)構(gòu)。此外,這些組件還由逐漸減小到類級(jí)粒度的更小組件組成。相反,在 SOA 中,系統(tǒng)的體系結(jié)構(gòu)通常包括滿足普通 業(yè)務(wù)服務(wù)需要的無狀態(tài)、全封裝且自描述的服務(wù)組成,它更接近于映射到 BPM,如 圖 5所示。



圖 5. SOAD 服務(wù)定義層次

這些服務(wù)可能包括許多協(xié)作或編排服務(wù)。這并沒有排除 RUP 采用的 OO 觀點(diǎn),而是在其上實(shí)現(xiàn)了另一個(gè)抽象層。這個(gè)超層的作用是封裝作為正式的跨層接口結(jié)構(gòu)中的 RUP 構(gòu)件( 軟件服務(wù))設(shè)計(jì)的組件。





回頁首


SOAD 原理

在這一部分中,我們將更詳細(xì)地描述 SOAD 的需求,并且開始確定它的主題和原理。目的是將關(guān)于這個(gè)主題的討論引到進(jìn)一步的設(shè)計(jì)工作。進(jìn)一步的工作無疑需要形式化 SOAD 方法。

SOAD 必須提供什么?

已經(jīng)為 SOAD 確定了下列需求:

  • 正如任何其他的項(xiàng)目和方法一樣,必須正式(至少半正式)地定義 流程表示法。通過選擇和組合 OOAD、BPM 和 EA 原理,就可以在需要時(shí)確定額外的原理。
  • 必須有結(jié)構(gòu)化的方法來概念化服務(wù):
    • OOAD 為我們提供了應(yīng)用程序?qū)由系念惡蛯?duì)象,而 BPM 具有事件驅(qū)動(dòng)的流程模型。SOAD 需要將它們結(jié)合在一起。
    • 方法不再是面向用況的,而是由業(yè)務(wù)事件和流程驅(qū)動(dòng)的。用況建模是在更低的層次上作為第二步進(jìn)行的。
    • 方法包括語法、語義和策略。這就需要特別的組合、語義代理和運(yùn)行時(shí)發(fā)現(xiàn)。
  • SOAD 必須提供定義良好的品質(zhì)因素和最佳實(shí)踐(例如回答粒度問題)。必須回答 BPEL 提出的角色問題。例如,誰為哪部分工作負(fù)責(zé):是開發(fā)人員、架構(gòu)師,還是分析人員?
  • SOAD 活動(dòng)還必須回答這樣的問題:什么 不是好的服務(wù)?例如:不可重用的任何東西都不可能成為好的一流 SOA 成員(即服務(wù))。另一個(gè)例子就是帶有挑戰(zhàn)性的非功能要求的嵌入式實(shí)時(shí)系統(tǒng),它們不能承受任何 XML 處理開銷。
  • SOAD 必須易于進(jìn)行端到端建模,并且有全面的工具支持。假如 SOA 給業(yè)務(wù)帶來了靈活性和敏捷性,就應(yīng)該對(duì)從企業(yè)到體系結(jié)構(gòu)和應(yīng)用程序設(shè)計(jì)領(lǐng)域產(chǎn)生的支持方法有相同的期望。

品質(zhì)因素

一些通用原則或品質(zhì)因素已經(jīng)確定,并且可以作為 SOAD 中的設(shè)計(jì)基準(zhǔn):

  • 構(gòu)思良好的服務(wù)給業(yè)務(wù)帶來了靈活性和敏捷性;它們通過松散耦合、封裝和信息隱藏使重構(gòu)更加容易。
  • 設(shè)計(jì)良好的服務(wù)是有意義的,并且不只適用于企業(yè)應(yīng)用程序;服務(wù)之間的依賴性減到最少,并且是顯式聲明的。
  • 服務(wù)抽象是內(nèi)聚、完整和一致的;例如,在設(shè)計(jì)服務(wù)和它們的操作簽名時(shí)應(yīng)該考慮 創(chuàng)建(Create)、 讀取(Read)、 更新(Update)、 刪除(Delete)搜索(Search)(CRUDS) 隱喻。
  • 常常聲明的假定是,服務(wù)是無狀態(tài)的(例如非對(duì)話式的);為了要求服務(wù)在特定的問題域和上下文中是無狀態(tài)的,將削弱這種聲明。
  • 領(lǐng)域?qū)<覠o需深?yuàn)W的專業(yè)知識(shí)就可以理解服務(wù)命名。
  • 在 SOA 中,所有的服務(wù)都遵循相同的設(shè)計(jì)體系(通過模式和模板連接的)和交互模式;底層體系結(jié)構(gòu)形式可以容易地標(biāo)識(shí)(例如在體系結(jié)構(gòu)復(fù)審期間)。
  • 服務(wù)和服務(wù)使用者的開發(fā)除了領(lǐng)域知識(shí)之外只需要基本的編程語言技能;中間件專業(yè)知識(shí)只有少數(shù)的專業(yè)人員才需要,在理想的情況下,這種知識(shí)是為工具和運(yùn)行時(shí)廠商所用,而不是為制作像 SOA 這樣的企業(yè)應(yīng)用程序的公司所用。

服務(wù)標(biāo)識(shí)和定義

自頂向下的業(yè)務(wù)級(jí)建模技術(shù)(如 CBM)可以為 SOA 建?;顒?dòng)提供起點(diǎn)。但是正如我們?cè)谇懊嫣岬降?,SOA 實(shí)現(xiàn)很少是在全新的項(xiàng)目中開始的;創(chuàng)建 SOA 解決方案幾乎總需要涉及集成現(xiàn)有的遺留系統(tǒng),方法是將它們分解成服務(wù)、操作、業(yè)務(wù)流程和業(yè)務(wù)規(guī)則(同時(shí)參見 圖 6):

  • 將現(xiàn)有的應(yīng)用程序和廠商軟件包分解成表示相關(guān)操作組的離散服務(wù)集(自底向上方法)。
  • 從應(yīng)用程序中將業(yè)務(wù)流程和規(guī)則抽象為由業(yè)務(wù)編排模型管理的單獨(dú) BPM。


圖 6. 服務(wù)分解

所有的 OOAD 都同標(biāo)識(shí)和定義服務(wù)有關(guān);但是還需要具有更高層的觀點(diǎn)。此外,當(dāng) SOA 致力于比經(jīng)典開發(fā)項(xiàng)目層次更高的開發(fā)時(shí),就有了發(fā)揮其他創(chuàng)造性思維的空間。

直接和間接業(yè)務(wù)分析
通過項(xiàng)目相關(guān)人員的會(huì)談和 CBM 來進(jìn)行 BPM 和 直接需求分析是一個(gè)容易理解且非常合適的標(biāo)識(shí)候選服務(wù)的方法。

過去的經(jīng)驗(yàn)表明,這條主要的途徑應(yīng)該通過補(bǔ)充 間接技術(shù)來加以改進(jìn)。在選擇候選服務(wù)時(shí),產(chǎn)品經(jīng)理和其他業(yè)務(wù)領(lǐng)導(dǎo)應(yīng)該進(jìn)行協(xié)商。例如,什么是計(jì)劃付款和開票模型?應(yīng)該商議假定使用正在構(gòu)建中的系統(tǒng)的企業(yè)的組織結(jié)構(gòu)圖。建議還考慮一下非 SOA 項(xiàng)目中任何現(xiàn)有的用況模型。用于對(duì)正在構(gòu)造的系統(tǒng)進(jìn)行營(yíng)銷介紹的術(shù)語是另一個(gè)很好的關(guān)于服務(wù)操作候選者的來源(特別是動(dòng)詞,很少關(guān)注營(yíng)銷動(dòng)詞?。?。

域分解
Endrei中定義的域分解、子系統(tǒng)分析、目標(biāo)模型創(chuàng)建和相關(guān)技術(shù)是 SOA 流程構(gòu)造方法或 服務(wù)概念化框架(它是基于 Levi and Arsanjani先前完成的工作構(gòu)建的)最有希望的提議。來自 SEI的 FODA 工作也為這方面的討論做出了貢獻(xiàn)。

服務(wù)粒度
選擇正確的抽象級(jí)別是服務(wù)建模的一個(gè)關(guān)鍵問題。您常常會(huì)聽到 進(jìn)行粗粒度建模的建議。這有點(diǎn)過于簡(jiǎn)單化了。您應(yīng)該將其改為在不損失或損害相關(guān)性、一致性和完整性的情況下 盡可能地進(jìn)行粗粒度建模。在任何 SOA 中,都有細(xì)粒度服務(wù)抽象的空間(假定有業(yè)務(wù)要求的話)。由于 SOA 并不等同于 Web 服務(wù)和 SOAP,因此可以使用不同的協(xié)議綁定來訪問抽象級(jí)別不同的服務(wù)。另一種選擇就是將一些相關(guān)的服務(wù)捆綁成粗粒度的服務(wù)定義,這是門面模式的變種。

命名約定
應(yīng)該定義企業(yè)命名模式(XML 名稱空間、Java 包名、Internet 域)。簡(jiǎn)單的例子就是始終用名詞來命名服務(wù),而用動(dòng)詞來命名操作。這種最佳實(shí)踐來源于 OOAD 空間。

第一類 SOAD 原理

除了組合 OOAD、BPM 和 EA 技術(shù)之外,還有幾個(gè)重要的 SOAD 概念和方面有待充實(shí):

  • 服務(wù)分類和聚合
  • 策略和方面
  • 中間相遇流程
  • 語義代理
  • 服務(wù)獲取和知識(shí)代理

服務(wù)分類和聚合
服務(wù)有不同的用法和用途;例如,軟件服務(wù)可以不同于業(yè)務(wù)服務(wù)(如前面的 圖 5所示)。此外,還可以將原子服務(wù)編排成級(jí)別更高、功能齊全的服務(wù)。

服務(wù)組合可以通過可執(zhí)行模型(如 BPEL 建模的模型)來加以簡(jiǎn)化;這是傳統(tǒng)的建模工具和方法不能處理的事情。

策略和方面
服務(wù)具有語法、語義和 QoS 特征,所有這些都必須進(jìn)行建模;正式的接口契約必須涵蓋的比 Web 服務(wù)描述語言(Web Services Description Language,WSDL)的多。因此, Web 服務(wù)策略(WS-Policy) 框架是一個(gè)重要的相關(guān)規(guī)范。

除了已經(jīng)制定的良好 體系結(jié)構(gòu)可跟蹤性原則之外, 業(yè)務(wù)可跟蹤性也是一個(gè)理想的品質(zhì):應(yīng)該有可能將所有的運(yùn)行時(shí)構(gòu)件直接與非技術(shù)領(lǐng)域?qū)<铱梢岳斫獾恼Z言聯(lián)系起來。這對(duì)于直接在業(yè)務(wù)和服務(wù)層公開的抽象非常重要。Sarbanes-Oxley (SOX) 法案是需要這種業(yè)務(wù)可跟蹤性的業(yè)務(wù)驅(qū)動(dòng)程序的一個(gè)例子。

流程:中間相遇
在真實(shí)世界中,并沒有全新的項(xiàng)目,必須始終考慮遺留系統(tǒng)( 遺留系統(tǒng)是現(xiàn)有系統(tǒng)的同義詞)。因此,需要 中間相遇的方法,而不是單純的自頂向下或自底向上的流程。

在設(shè)計(jì)取決于現(xiàn)有的 IT 環(huán)境而不是現(xiàn)在和將來的業(yè)務(wù)需要的情況下,自底向上的方法往往會(huì)導(dǎo)致不好的業(yè)務(wù)服務(wù)抽象。而自頂向下的方法可能會(huì)產(chǎn)生不足的非功能性需求特征,并且損害其他的體系結(jié)構(gòu)品質(zhì)因素(例如因域模型中缺乏標(biāo)準(zhǔn)化而導(dǎo)致的性能問題),另外,也會(huì)在服務(wù)和組件中產(chǎn)生不匹配的不良問題。

服務(wù)獲取和知識(shí)代理
這是一個(gè)知識(shí)管理和生命周期問題:如何成功地準(zhǔn)備好服務(wù)并且使其在概念化之后可以重用?

應(yīng)該將重用看作是標(biāo)識(shí)和定義服務(wù)最主要的推動(dòng)標(biāo)準(zhǔn)之一。如果組件(或服務(wù))不可能重用,就不無法將其作為服務(wù)進(jìn)行部署。它可以連接到另一個(gè)與企業(yè)體系結(jié)構(gòu)相關(guān)的服務(wù),但是不能單獨(dú)作為一個(gè)服務(wù)而存在。

然而,即使從開始就計(jì)劃好了重用,還必須形式化服務(wù)獲取流程。由多個(gè)使用者使用服務(wù)是明確的 SOA 設(shè)計(jì)目標(biāo)。構(gòu)建時(shí)服務(wù)注冊(cè)中心(例如企業(yè) UDDI 目錄)可能能夠解決部分問題。





回頁首


示例:汽車工作訂單

汽車工作訂單(Automotive Work Order)描述了一家汽車維修公司管理其顧客運(yùn)營(yíng)的流程。我們將通過這個(gè)領(lǐng)域中的問題來闡述 SOAD 的觀點(diǎn)。

工作訂單代表汽車服務(wù)公司和顧客之間的約定,以進(jìn)行一系列例行維修或應(yīng)急維修,例如例行 50,000 英里服務(wù),更換剎車片或輪胎,或者換油。

業(yè)務(wù)場(chǎng)景(如 圖 7所示)如下:

  • 當(dāng)顧客打電話預(yù)約時(shí)創(chuàng)建工作訂單。
  • 為每個(gè)計(jì)劃的維修活動(dòng)或操作創(chuàng)建一個(gè)獨(dú)立的工作訂單項(xiàng),其中包括需要使用的零件、備件和勞務(wù)的詳細(xì)情況。
  • 在安排預(yù)約之前確保所有必需的零件都有庫(kù)存。
  • 需要為每個(gè)工作訂單項(xiàng)安排具有適當(dāng)?shù)难b備的維修間以及具備適當(dāng)?shù)臈l件的機(jī)器。
  • 計(jì)算估計(jì)的總成本,接著顧客認(rèn)可該預(yù)約;或者方案終止,隨即取消工作訂單。
  • 在預(yù)約之前,立即在選定的維修間裝配必需的零件、備件、工具和設(shè)備。
  • 當(dāng)顧客到達(dá)時(shí),進(jìn)行計(jì)劃的活動(dòng)以及在檢查交通工具時(shí)顯得有必要的任何其他活動(dòng)。
  • 記錄所用的零件和備件的實(shí)際價(jià)值以及勞務(wù)。
  • 在完成所有的維修時(shí)計(jì)算總費(fèi)用。
  • 創(chuàng)建發(fā)票并且將其交給顧客。


圖 7. 工作訂單的宏流示例

如果您將此作為一個(gè)獨(dú)立的應(yīng)用程序從頭開始創(chuàng)建,您就可能創(chuàng)建一組如 圖 8所示的類。



圖 8. 工作訂單的類圖示例

如果您將工作訂單構(gòu)造為一個(gè) OO 應(yīng)用程序,這些軟件對(duì)象將包含所有必需的業(yè)務(wù)規(guī)則,并且理解應(yīng)該遵循的業(yè)務(wù)流程。

然而,這種方法在實(shí)踐方面存在著一些缺點(diǎn):

  • 許多步驟涉及與現(xiàn)有遺留系統(tǒng)和數(shù)據(jù)庫(kù)(例如帳單編制、日程安排以及庫(kù)存系統(tǒng))的連接,它們不可能遵循 OO 范式進(jìn)行設(shè)計(jì)(在這樣的情況下,應(yīng)用適配器或仲裁器會(huì)有所幫助)。
  • 為了使系統(tǒng)盡可能地靈活,將一些規(guī)則外化是有幫助的,這樣就可以在不更改代碼的情況下修改流程或工作流。例如像下面這樣的規(guī)則:
    • 標(biāo)準(zhǔn)的 24,000 英里服務(wù)包括四公升油。只是在使用四升以上的油或顧客要求優(yōu)質(zhì)油(如合成油)時(shí)才應(yīng)該收取額外的郵費(fèi)。
    • 在遺留應(yīng)用程序中有一套工業(yè)標(biāo)準(zhǔn)為普通汽車維修活動(dòng)進(jìn)行勞務(wù)估價(jià)。除非維修人員收取的費(fèi)用超過該估價(jià)的 X% 并且報(bào)告產(chǎn)生差別的有根據(jù)的原因,否則顧客就應(yīng)該支付標(biāo)準(zhǔn)的勞務(wù)費(fèi)。
    • 如果超過估價(jià)的 Y% 以上,就應(yīng)該聯(lián)系顧客以進(jìn)行確認(rèn)。

SOAD 為這些問題提供了極好的解決方案。由于它基于相關(guān)的行為對(duì)服務(wù)進(jìn)行分組,而不是進(jìn)行封裝(行為及數(shù)據(jù)),所以這組服務(wù)與業(yè)務(wù)對(duì)象略有不同。

例如,您可能將工作訂單(Work Order)和工作訂單項(xiàng)(Work Order Item)一起分到工作訂單服務(wù)(Work Order Services),并且創(chuàng)建日程安排(Scheduling)、目錄(Catalog)和庫(kù)存(Inventory)服務(wù)。另外,因?yàn)闆]有服務(wù)實(shí)例,所以沒有與服務(wù)之間的關(guān)系等價(jià)的東西。工作訂單的服務(wù)模型可能看起來如 圖 9所示。



圖 9. 工作訂單的服務(wù)模型示例

與 OO 范式不同,這個(gè)模型并不表示功能系統(tǒng)。既沒有考慮流,也沒有描述業(yè)務(wù)事件或規(guī)則。在 SOA 范式中,在服務(wù)外面維護(hù)的業(yè)務(wù)流程編排決定了執(zhí)行服務(wù)調(diào)用的順序和時(shí)間。

從概念上講,從第一次顧客聯(lián)系到完成工作和帳單支付的整個(gè)業(yè)務(wù)表示單個(gè)宏觀層次的工作單元,并具有數(shù)天到數(shù)周不等的生命周期。畢竟,從企業(yè)的角度來看,工作單元會(huì)產(chǎn)生收入。

然而,實(shí)際出現(xiàn)的情況是在一段相對(duì)長(zhǎng)的時(shí)間內(nèi)單獨(dú)發(fā)生的一系列集中活動(dòng),例如,定義活動(dòng)、安排預(yù)約、選擇零件和備件、進(jìn)行維修活動(dòng)等等。在 IT 系統(tǒng)中,沒有實(shí)際的 流程會(huì)持續(xù)幾分鐘以上;事件之間的業(yè)務(wù)流程狀態(tài)以數(shù)據(jù)的形式保存在數(shù)據(jù)庫(kù)中。

這種類型的流程可以用狀態(tài)轉(zhuǎn)換模型(例如 UML 中可用的)很好地進(jìn)行表示。 圖 10顯示了用有限狀態(tài)機(jī)(finite-state machine)方法如何對(duì)業(yè)務(wù)流進(jìn)行建模的示例。它是在業(yè)務(wù)流程進(jìn)行時(shí)工作訂單的狀態(tài)如何改變的高級(jí)視圖。



圖 10. 工作訂單的業(yè)務(wù)流程模型

業(yè)務(wù)流程編排集中于狀態(tài)之間的這些轉(zhuǎn)變。單獨(dú)的操作永久地記錄相關(guān)的狀態(tài)改變。

圖 11顯示了部分編排的示例,其中包括 圖 10所示的業(yè)務(wù)場(chǎng)景中的步驟 1 到 5(例如,顧客定義他們的交通工作所需的工作,并且安排預(yù)約以進(jìn)行實(shí)施)。



圖 11. 工作訂單的業(yè)務(wù)交互模型





回頁首


總結(jié)和展望

在本文中,我們已經(jīng)討論和激發(fā)了對(duì)創(chuàng)新的中間相遇的方法的需求,這種方法搭建了業(yè)務(wù)和 IT 之間的橋梁,并且支持 SOA 項(xiàng)目的分析和設(shè)計(jì)階段。我們還提議將這種新的交叉學(xué)科的 SOAD 方法作為一個(gè)整體的建模規(guī)則,它以現(xiàn)在構(gòu)建良好且廣為贊譽(yù)的 OOAD、EA、和 BPM 為基礎(chǔ)。

在詳細(xì)定義 SOAD 表示法和流程的同時(shí),還確定了關(guān)鍵的原理,比如服務(wù)概念化(或標(biāo)識(shí))、服務(wù)分類或聚合、策略和方面、中間相遇流程、語義代理和服務(wù)獲取(以供重用)。

SOAD 需要增強(qiáng)現(xiàn)有的軟件開發(fā)方法,進(jìn)一步提高企業(yè)應(yīng)用程序開發(fā)項(xiàng)目的可用性和適用性。隨著時(shí)間的推移,還將發(fā)展相關(guān)的最佳實(shí)踐。

我們還認(rèn)識(shí)到,UML 在流程的表示法選擇方面將繼續(xù)占支配地位;可能需要進(jìn)行增強(qiáng)以滿足更廣泛的 SOAD 的要求。

完成 SOAD 方法的下一步就是定義所需的端到端流程和表示法,復(fù)審活動(dòng)中的角色和它們的責(zé)任,并且繼續(xù)檢查所提議的方法在項(xiàng)目中的有效性。



參考資料



作者簡(jiǎn)介

Olaf Zimmermann 是 IBM worldwide Applied Web Services 組的顧問 IT 構(gòu)架師。他在分布式計(jì)算、面向服務(wù)體系結(jié)構(gòu)、Web 服務(wù)/XML 和 J2EE 方面頗有專長(zhǎng)。在過去的幾年里,Olaf 指導(dǎo)了大量與 Web 服務(wù)有關(guān)的交流項(xiàng)目,包括幾本產(chǎn)品參考書。他是 Springer 教科書 Perspectives on Web Services (ISBN 3-540-00914-0)的作者。他還參與了幾本 IBM ITSO 紅皮書(比如 Web Services Wizardry with WebSphere Studio Application Developer (SG24-6292-00))的寫作。Olaf 從 1994 年開始就與 IBM 合作,涉及的領(lǐng)域非常廣泛,其中包括產(chǎn)品開發(fā)、技術(shù)預(yù)售咨詢、教學(xué)以及系統(tǒng)集成。Olaf 在位于德國(guó) Braunschweig 的 Technical University 獲得計(jì)算機(jī)科學(xué)學(xué)位。您可以通過 ozimmer@de.ibm.com與他聯(lián)系。


Pal Krogdahl 是一名解決方案架構(gòu)師,在 IGS 的 IBM Business Consulting Services(位于瑞典)工作。他從 1998 年開始就職于 IBM,涉及了多個(gè)領(lǐng)域,比如軟件開發(fā)、售前技術(shù)咨詢和解決方案體系結(jié)構(gòu)。他擅長(zhǎng)的領(lǐng)域包括分布式計(jì)算、中間件和應(yīng)用程序服務(wù)體系結(jié)構(gòu),主要集中在 EAI 和 SOA。Pal 最近撰寫了一些范圍廣泛的文章,探討的主題有基于 SOA 的 EA、以及它們與 IBM 用于電子商務(wù)和按需操作系統(tǒng)環(huán)境的模式的關(guān)系。到目前為止,他已經(jīng)完成了 IBM International Technical Support Organization 的一些高級(jí)培訓(xùn),在該組織中,他同人合著了一些與 WebSphere 有關(guān)的紅皮書,這些紅皮書主要集中在 Web 服務(wù)和 SOA 方面,例如 Patterns: Service-Oriented Architecture and Web Services(ISBN 073845317X)。在過去的 18 個(gè)月里,他一直在向 IBM 內(nèi)外的技術(shù)人員介紹 Web 服務(wù)和基于 SOA 的按需操作環(huán)境的實(shí)現(xiàn)方面的知識(shí)。您可以通過 pal.krogdahl@se.ibm.com與他聯(lián)系。


 

Clive Gee 是一名高級(jí)解決方案架構(gòu)師,工作在 IBM Enterprise Integration Services 部。他于 1976 年加入 IBM Europe 并于 1997 年調(diào)到 IBM US。1990 年,作為創(chuàng)立 IBM European Object Technology Practice 的一員,他是 IBM 中第一位 OO 的支持者。從那以后,他獲得了領(lǐng)導(dǎo)企業(yè) OO 交流項(xiàng)目的大量實(shí)踐經(jīng)驗(yàn),涉及多個(gè)行業(yè)(如公用事業(yè)、金融業(yè)、運(yùn)輸業(yè)、零售業(yè)和電信業(yè))的復(fù)雜系統(tǒng)集成和應(yīng)用程序開發(fā)。目前,他正忙于為一個(gè)重要的美國(guó)客戶配置部署 SOA 解決方案。Clive 從蘇格蘭的 University of Stirling 大學(xué)獲得理論物理博士學(xué)位。您可以通過 clive@us.ibm.com與他聯(lián)系。



本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
業(yè)務(wù)建模-轉(zhuǎn)載
SOA 設(shè)計(jì)
如何在Django模型中管理并發(fā)性
SQLServer2008R2 BI數(shù)據(jù)支撐平臺(tái)的價(jià)值
研究SOA中信息管理的不同方法
J2EE架構(gòu)和過程 - fanqiang.com
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服