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

打開APP
userphoto
未登錄

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

開通VIP
基于服務(wù)的建模和架構(gòu)

 

2004 年 11 月 01 日

本文討論了基于服務(wù)的建模和架構(gòu)的重要部分,以及構(gòu)建面向服務(wù)體系結(jié)構(gòu)(SOA)所需的分析和設(shè)計(jì)的關(guān)鍵活動(dòng)。作者著重強(qiáng)調(diào)了選擇鑒別、制定和實(shí)現(xiàn) 服務(wù)所需的技術(shù),它們的 流程和組合,以及實(shí)現(xiàn)和確保 SOA 所需的服務(wù)質(zhì)量的企業(yè)級(jí) 組件

引言

目前,關(guān)于由 Service-oriented Architectures(SOA)和它的 Web 服務(wù)實(shí)現(xiàn)所表現(xiàn)的時(shí)機(jī)有許多傳言 -- 有一些是有事實(shí)根據(jù)的,但是一些卻沒有什么事實(shí)依據(jù)。分析家已經(jīng)預(yù)言,博學(xué)者已經(jīng)聲稱,教授已經(jīng)講演,公司已經(jīng)匆忙的賣他們的產(chǎn)品,作為 SOA 產(chǎn)品 -- 經(jīng)常失去 SOA 不是一個(gè)產(chǎn)品的要點(diǎn)。它是業(yè)務(wù)和 IT 之間的橋梁,通過一系列使用一些設(shè)計(jì)原則、模式和技術(shù)的依賴于業(yè)務(wù)的 IT 服務(wù)來實(shí)現(xiàn)。

ZDNet 最近報(bào)道說,“Gartner 預(yù)言到了 2008 年,至少 60% 的企業(yè)將使用 SOA 作為創(chuàng)建任務(wù)苛刻的應(yīng)用程序和過程的“指導(dǎo)原則”。

開發(fā)和實(shí)現(xiàn) SOA 有很大的需求。因此如果 SOA 不僅僅和產(chǎn)品和幫助實(shí)現(xiàn)它的標(biāo)準(zhǔn)相關(guān)(比如通過 Web 服務(wù)),那么為了實(shí)現(xiàn) SOA 你還需要什么附加的元素嗎? 基于服務(wù)的建模需要其他的行為和構(gòu)件,這些在傳統(tǒng)的基于對(duì)象的分析和設(shè)計(jì)(OOAD)中是不存在的?!?基于服務(wù)的分析和設(shè)計(jì)的元素”這篇文章描述了一些最初的原因,解釋了為什么你需要 OOAD 之外更多的內(nèi)容。它同樣描述了業(yè)務(wù)流程管理或企業(yè)架構(gòu)(EA)和 OOAD 為什么不是管理分析和設(shè)計(jì)的適當(dāng)手段。同樣,在 IBM Redbook 中名為 “ 模式:Service-Oriented Architecture 和 Web Services”的文章中,我舉例說明了基于服務(wù)的建模方法的主要活動(dòng)。

然而,你還需要重視一些額外的重要的需要考慮的事項(xiàng)。首先,目前的 OOAD 方法沒有定位 SOA 三個(gè)重要的元素: 服務(wù), ,和實(shí)現(xiàn)服務(wù)的 組件。你同樣需要可以明確定位鑒別、制定和實(shí)現(xiàn)服務(wù)所需的技術(shù)和過程,它們的流程和組合,以及實(shí)現(xiàn)和確保所需服務(wù)質(zhì)量的企業(yè)級(jí)組件。

第二,需要進(jìn)行范例的替換,以便更好的區(qū)分 SOA 的兩個(gè)關(guān)鍵角色之間的截然不同的需求:服務(wù)提供者和服務(wù)消費(fèi)者。第三,假設(shè)為一個(gè)企業(yè)或者業(yè)務(wù)線構(gòu)建的應(yīng)用程序,現(xiàn)在必須被提升到一個(gè)供應(yīng)鏈中使用,并且公開給合作伙伴,這些合作伙伴可能組合、聯(lián)合和封裝應(yīng)用程序到一個(gè)新的應(yīng)用程序中。這是服務(wù)生態(tài)系統(tǒng)或者服務(wù)價(jià)值網(wǎng)的概念。

這是僅從“分布式對(duì)象”的一個(gè)微小的進(jìn)步。它是關(guān)于通過網(wǎng)絡(luò)作用創(chuàng)造的價(jià)值:例如,當(dāng)合作伙伴利用了 Amazon.com 與 Google 搜索的聯(lián)合,并且與 eBay 服務(wù)結(jié)合在一起,來構(gòu)建他們自己的混合解決方案?;蛘弋?dāng)旅行社深入到機(jī)票預(yù)訂系統(tǒng),并且與汽車租賃公司以及賓館相互協(xié)調(diào),更新他們的記錄并且將旅行計(jì)劃發(fā)送到你的電子檔案中。無論什么樣的應(yīng)用程序,你如果想成功地創(chuàng)建 SOA,需要的都不僅僅是好的工具和標(biāo)準(zhǔn)。你需要一些規(guī)范的步驟來支持你的 SOA 生命周期;用來分析、設(shè)計(jì)、實(shí)現(xiàn)服務(wù)、流程和組件的技術(shù)。因此,對(duì)于任何對(duì)企業(yè)應(yīng)用程序開發(fā)感興趣的人來講,理解基于服務(wù)的建模和架構(gòu)中包含的細(xì)節(jié)步驟是非常重要的。

在我詳細(xì)描述這些步驟以前,我們首先應(yīng)理解你打算要做什么: 什么是 SOA,以及它看起來像是什么?在定義了 SOA 后面的概念和觀點(diǎn)以后,我將描述 SOA 的層和你如何去記錄每個(gè)層中的關(guān)鍵架構(gòu)決策,這些層幫助你為 SOA 構(gòu)建藍(lán)圖,這些 SOA 正是那些你試圖同一系列實(shí)現(xiàn)了 SOA 服務(wù)、流程和組件集成以及出現(xiàn)的項(xiàng)目、業(yè)務(wù)線、企業(yè)級(jí)成果和價(jià)值鏈所需要的。





回頁(yè)首


Service-Oriented Architecture:概念模型

這個(gè)概念基于一種架構(gòu)樣式,該樣式在三個(gè)主要參與者之間定義了交互模型:服務(wù)提供者,公布服務(wù)描述并且實(shí)現(xiàn)服務(wù),服務(wù)消費(fèi)者,他既可以使用統(tǒng)一資源標(biāo)記符(URI)來直接使用服務(wù)描述,也可以在服務(wù)注冊(cè)中心來查找服務(wù)描述并且綁定和調(diào)用服務(wù)。服務(wù)代理提供和維護(hù)服務(wù)注冊(cè)中心,然而現(xiàn)在并沒有通用公共注冊(cè)中心。

圖 1 是一個(gè)顯示了這些關(guān)系的元模型。


圖 1:SOA 架構(gòu)樣式的概念模型





回頁(yè)首


架構(gòu)樣式和原理

定義 SOA 的架構(gòu)樣式描述了一系列模式和指導(dǎo)方針來創(chuàng)建 松耦合,依賴業(yè)務(wù)的服務(wù),由于描述、實(shí)現(xiàn)和綁定之間關(guān)系的分離,為新業(yè)務(wù)跡象和機(jī)會(huì)提供了空前的靈活性。

SOA 是企業(yè)級(jí)的 IT 架構(gòu),用來按需連接資源。在 SOA 中,資源對(duì)于價(jià)值網(wǎng)、企業(yè)、業(yè)務(wù)線內(nèi)的參與者時(shí)可用的(典型的是在一個(gè)企業(yè)內(nèi)或多個(gè)企業(yè)之間跨越多個(gè)應(yīng)用程序)。它由一系列依賴業(yè)務(wù)的 IT 服務(wù)組成,這些服務(wù)共同滿足了組織的業(yè)務(wù)流程和目標(biāo)。你可以將這些服務(wù)設(shè)計(jì)成合成的應(yīng)用程序并且通過標(biāo)準(zhǔn)協(xié)議來調(diào)用它們,如下面的 圖 2所示。

服務(wù)是一種有具體服務(wù)描述的軟件資源(可發(fā)現(xiàn))。服務(wù)消費(fèi)者可以搜索、綁定和調(diào)用服務(wù)描述。服務(wù)提供者實(shí)現(xiàn)服務(wù)描述的功能并且向服務(wù)消費(fèi)者提供所需的服務(wù)質(zhì)量。理論上服務(wù)應(yīng)該統(tǒng)一由公布的方針來管理,并且因此支持動(dòng)態(tài)的 可配置架構(gòu)樣式。


圖 2: SOA 的屬性

靈活的業(yè)務(wù)通過靈活的 IT 系統(tǒng)可以實(shí)現(xiàn),主要通過接口、實(shí)現(xiàn)和 SOA 提供的綁定(協(xié)議)的分離,基于新業(yè)務(wù)需求,允許在及時(shí)給定的點(diǎn)延期 選擇 服務(wù)提供者,(功能和非功能(例如,性能、安全、可伸縮性等)需求)。

你可以在內(nèi)部業(yè)務(wù)單元之間或者在業(yè)務(wù)伙伴之間的價(jià)值鏈之間以 不規(guī)則的實(shí)現(xiàn)模式來重用此服務(wù)。不規(guī)則的實(shí)現(xiàn)引用了架構(gòu)樣式的能力來在他的交互模型中通過合成的方式來應(yīng)用與參與者關(guān)聯(lián)的模式和角色。你可以在架構(gòu)中的一層上應(yīng)用它,也可以在貫穿企業(yè)架構(gòu)的多個(gè)層上來應(yīng)用它。在項(xiàng)目之間,它可以通過統(tǒng)一的、概念上可升級(jí)的方式在價(jià)值鏈內(nèi)部的業(yè)務(wù)單元和業(yè)務(wù)伙伴之間。





回頁(yè)首


上下文

在本文中,我介紹了鑒定、指定和實(shí)現(xiàn)的高級(jí)別的行為和一些基于服務(wù)建模的構(gòu)件。基于服務(wù)的建模是基于服務(wù)的分析和設(shè)計(jì)(SOAD)過程,來建模、分析、設(shè)計(jì)和生產(chǎn)依賴業(yè)務(wù)分析、過程和目標(biāo)的 SOA。

首先我將看一下你想要構(gòu)建什么,也就是 SOA 和它的層。接下來我將通過討論創(chuàng)建 SOA 所需主要的活動(dòng)和技術(shù)來描述如何構(gòu)建 SOA。

作為一個(gè)示例,我們假設(shè)你正在開發(fā)一個(gè)項(xiàng)目,并且目標(biāo)是將一部分具有自服務(wù)帳目系統(tǒng)的銀行業(yè)務(wù)線移植到 SOA上。

為了移植到 SOA,你需要一些超出服務(wù)建模的附加元素。它們包括:

  • 采用和成熟模型。在 SOA 和 Web 服務(wù)的采用上你的企業(yè)處在那個(gè)成熟的相對(duì)級(jí)別上?采用的每個(gè)不同的級(jí)別都與它自己的唯一的要求。
  • 評(píng)估。你有一些領(lǐng)導(dǎo)者嗎?你已經(jīng)涉足 Web 服務(wù)了嗎?作為結(jié)果的架構(gòu)好到什么程度?你應(yīng)該繼續(xù)維持同樣的方向嗎?這將衡量企業(yè) SOA 嗎?你已經(jīng)考慮了所有應(yīng)該考慮的事情了嗎?
  • 策略和規(guī)劃活動(dòng)。你如何規(guī)劃到 SOA 的移植?你需要考慮的步驟、工具、方法、技術(shù)、標(biāo)準(zhǔn)和培訓(xùn)是什么?你的路線圖和遠(yuǎn)景是什么?你如何達(dá)到目的?計(jì)劃是什么?
  • 管理方法。現(xiàn)有的 API 和能力是否應(yīng)該變成服務(wù)?如果不是,哪個(gè)是符合條件的?每個(gè)服務(wù)都應(yīng)該以通過某種方式為業(yè)務(wù)帶來價(jià)值為目的來創(chuàng)建。你如何樣毫無妨礙的來管理這些過程?
  • 實(shí)行最佳實(shí)踐。什么是可靠和經(jīng)過測(cè)試的方式來實(shí)現(xiàn)安全,確保性能,遵從互操作性標(biāo)準(zhǔn),設(shè)計(jì)來作改變?
除了本文中描述的鑒別、制定和實(shí)現(xiàn)之外,基于服務(wù)的建模方法還包含了支持完整 SOA 生命周期的部署、監(jiān)視、管理和控制所需的技術(shù)。

 

上面的關(guān)于移植到 SOA 和實(shí)現(xiàn)以后附加活動(dòng)的討論應(yīng)該得到它們自己的文章,本系列中我將在隨后的列中接觸到這個(gè)。目前,讓我們假設(shè)你為項(xiàng)目定義了范圍,并且決定了集中在什么地方:已經(jīng)定義了一個(gè)焦點(diǎn),用來將現(xiàn)有的系統(tǒng)或服務(wù)轉(zhuǎn)化到一系列新的系統(tǒng)和服務(wù)。現(xiàn)在你可以開始基于服務(wù)建模來構(gòu)建你的基于服務(wù)的架構(gòu)。





回頁(yè)首


SOA 的一個(gè)架構(gòu)模板

SOA 的一個(gè)抽象觀點(diǎn)將它描述為與業(yè)務(wù)過程結(jié)合在一起的合成服務(wù)的部分分層架構(gòu)。 圖 3 呈現(xiàn)了這種類型的架構(gòu)。

服務(wù)和組建之間的關(guān)系是,企業(yè)級(jí)的組件(大粒度的企業(yè)或者業(yè)務(wù)線組件)實(shí)現(xiàn)該服務(wù)并且負(fù)責(zé)提供它們的功能和維持它們的服務(wù)質(zhì)量。通過組合這些公開的服務(wù)到合成的應(yīng)用程序,就可以支持業(yè)務(wù)過程流。綜合的架構(gòu)通過使用 Enterprise Service Bus(ESB)支持這些服務(wù)、組件和流程的路由、中介和轉(zhuǎn)化。為了服務(wù)質(zhì)量和非功能性的需求,必須監(jiān)視和管理已經(jīng)部署的服務(wù)。


圖 3:SOA 層

對(duì)于每一層,你都必須做設(shè)計(jì)和架構(gòu)決定。因此,為了幫助用文件說明你的 SOA,你可能應(yīng)該創(chuàng)建文檔,由每個(gè)層相應(yīng)的部分所組成。

這里是為你的 SOA 架構(gòu)文檔設(shè)計(jì)的模板:

  1. 范圍 <此架構(gòu)適用于企業(yè)的哪個(gè)領(lǐng)域>
  2. 操作系統(tǒng)層
    1. 打包的應(yīng)用程序
    2. 自定義應(yīng)用程序
    3. 架構(gòu)決策
  3. 企業(yè)組件層
    1. 企業(yè)組件支持的功能范圍
    2. <這個(gè)企業(yè)組件支持業(yè)務(wù)領(lǐng)域、目標(biāo)和過程>
    3. 關(guān)于控制的決策
      1. <作為這個(gè)客戶端組織內(nèi)部企業(yè)組件來選擇某物的標(biāo)準(zhǔn)>
    4. 架構(gòu)決策
  4. 服務(wù)層
    1. 服務(wù)分類表
    2. 架構(gòu)決策
  5. 業(yè)務(wù)過程和合成層
    1. 業(yè)務(wù)過程可以表現(xiàn)為舞蹈編排(choreographies)
    2. 架構(gòu)決策
      1. <哪一個(gè)過程需要編排在舞蹈編排里面以及哪一個(gè)鑲嵌在應(yīng)用程序里面?>
  6. 訪問或者表現(xiàn)層
    1. <證明這層中 Web 服務(wù)和 SOA 的含意;即便要。例如,在用戶接口級(jí)別上調(diào)用 Web 服務(wù)的 portlet 的使用,以及在此層機(jī)能上的含意。>
  7. 集成層
    1. <包含 ESB 因素>
    1. <我們?nèi)绾未_保使用服務(wù)的客戶端系統(tǒng)級(jí)的一致性(SLA)和服務(wù)質(zhì)量(QoS)?>
    2. 安全問題和決策
    3. 性能問題和決策
    4. 技術(shù)和標(biāo)準(zhǔn)的局限性以及決策
    5. 服務(wù)的監(jiān)控和管理
      1. 描述和決策
現(xiàn)在,讓我們更加仔細(xì)的描述一下每一層以及每一層之間的合成。

 

層 1:操作系統(tǒng)層。本層包含現(xiàn)有的自定義構(gòu)建的應(yīng)用程序,也叫做 遺留系統(tǒng),包含現(xiàn)有的 CRM 和 ERP 打包應(yīng)用程序,以及 較舊的基于對(duì)象的系統(tǒng)實(shí)現(xiàn),還有業(yè)務(wù)智能應(yīng)用程序。SOA 的復(fù)合層架構(gòu)可以利用現(xiàn)有的系統(tǒng)并且用基于服務(wù)的集成技術(shù)來集成它們。

層 2:企業(yè)組件層。本層由那些負(fù)責(zé)實(shí)現(xiàn)功能和保持公開服務(wù) QoS 的企業(yè)組件組成。這些特殊的組件是企業(yè)和業(yè)務(wù)單元級(jí)支持的企業(yè)資產(chǎn)的受管理和控制的集合。 同企業(yè)范圍資產(chǎn)一樣,他們通過架構(gòu)最佳實(shí)踐應(yīng)用程序來負(fù)責(zé)確保 SLAs 的一致。大多數(shù)情況下,本層使用基于容器的技術(shù),比如實(shí)現(xiàn)組件、負(fù)載均衡、高可用性和工作量管理的應(yīng)用服務(wù)器。

層 3:服務(wù)層。業(yè)務(wù)選擇來支持和公開的服務(wù)處在這一層。它們可以被 發(fā)現(xiàn)或者直接靜態(tài)綁定,接下來被調(diào)用,或者可能的話,編排到合成服務(wù)中。這個(gè)服務(wù)公開層同樣提供了獲取企業(yè)范圍組件,業(yè)務(wù)單元特定組件,以及有些情況下,特定項(xiàng)目組建的機(jī)制,并且以服務(wù)描述的形式具體化了他們的接口子集。因此,企業(yè)組件使用它們接口提供的功能在運(yùn)行時(shí)提供服務(wù)實(shí)現(xiàn)。在這一層的接口公開為一個(gè)服務(wù)描述,在這層中他們被公開以提供使用。他們可以獨(dú)立存在或者作為合成服務(wù)。

層 4:業(yè)務(wù)過程合成或編排層。第三層中公開的服務(wù)的合成和編排在這一層中被定義。通過配合、編排,服務(wù)被綁定成一個(gè)流程,并且從而作為單獨(dú)的應(yīng)用程序而共同作用。這些應(yīng)用程序支持特殊的用例和業(yè)務(wù)過程。這里,可視的流程合成工具,比如 IBM? WebSphere? Business Integration Modeler 或者 Websphere Application Developer Integration Edition,都可以用來設(shè)計(jì)應(yīng)用程序流程。

層 5:訪問或表現(xiàn)層。盡管這一層經(jīng)常超出了圍繞 SOA 討論的范圍,但是它卻變得越來越有意義。在這里我描述它因?yàn)闃?biāo)準(zhǔn)越來越集中,比如用于 Remote Portlets Version 2.0 的 Web 服務(wù)和其他技術(shù),這些技術(shù)追求在應(yīng)用程序接口或者表現(xiàn)層來利用 Web 服務(wù)。你可以把它作為將來的層用來滿足將來的解決方案的需求。注意到以下這兩點(diǎn)是非常重要的:SOA 將用戶接口從組件中分離出來;最終你需要提供從訪問路線到服務(wù)或者合成服務(wù)的端到端解決方案。

層 6:集成(ESB)。這一層使服務(wù)可以集成,通過引入一系列可靠的性能的集合,比如智能路由,協(xié)議中介和其他轉(zhuǎn)化機(jī)制,經(jīng)常被描述為 ESB(參閱 參考資料)。Web Services Description Language(WSDL)制定了綁定,其包含提供服務(wù)的地址。另一方面,ESB 為集成提供了位置獨(dú)立機(jī)制。

層 7:QoS。這一層提供了監(jiān)視,管理和維持諸如安全,性能和可用性等 QoS 的能力。這是一個(gè)通過 sense-and-respond 機(jī)制和監(jiān)測(cè) SOA 應(yīng)用程序健康的工具來進(jìn)行的后臺(tái)處理過程,包括 WS-Management 和其他相關(guān)協(xié)議的所有的重要的標(biāo)準(zhǔn)實(shí)現(xiàn)以及為 SOA 實(shí)現(xiàn)服務(wù)質(zhì)量的標(biāo)準(zhǔn)。





回頁(yè)首


通過什么步驟來進(jìn)行基于服務(wù)的建模和架構(gòu)

本節(jié)描述了如何利用遺留的投資,來 聯(lián)合自頂向下的,業(yè)務(wù)驅(qū)動(dòng)的手段和自底向上的手段。

基于服務(wù)的建模手段提供了建模、分析、設(shè)計(jì)技術(shù)和活動(dòng)來定義 SOA 的基礎(chǔ)。它通過在 SOA 的每一層定義元素以及在每一層作嚴(yán)格的架構(gòu)決策來起到幫助作用。它通過聯(lián)合服務(wù)鑒別的自頂向下、業(yè)務(wù)驅(qū)動(dòng)方式和通過利用遺留資產(chǎn)和系統(tǒng)引導(dǎo)服務(wù)鑒別來實(shí)現(xiàn)這一點(diǎn)。

這樣,高級(jí)別的業(yè)務(wù)過程功能性為大粒度的服務(wù)更加的具體化。小粒度的服務(wù) -- 這些可以幫助實(shí)現(xiàn)高級(jí)別的服務(wù) -- 通過檢查遺留功能性和決定如何創(chuàng)建適配器、封裝器,或者組合遺留系統(tǒng)來具體化系統(tǒng)內(nèi)經(jīng)常調(diào)用的期望功能性可以來鑒別。

最后,使用 針對(duì)服務(wù)的建模,你使用 跨部分手段來削減候選的可能已經(jīng)被確定的服務(wù)的絕對(duì)數(shù)量。一個(gè)比較明智的手段應(yīng)該是首先按照自頂向下來做,接下來進(jìn)行目標(biāo)服務(wù)建模,最后是自底向上的現(xiàn)有資產(chǎn)的遺留分析。消息是:你將項(xiàng)目的范圍定義至一個(gè)可管理、實(shí)現(xiàn)的集合越快,你就能更快的通過聚焦在關(guān)鍵服務(wù)來公開組成 SOA 基礎(chǔ)的服務(wù)描述來實(shí)現(xiàn)價(jià)值。

這個(gè)功能性業(yè)務(wù)需求和遺留系統(tǒng)中現(xiàn)有投資利用的結(jié)合,為那些想要快速贏得和移植他們的企業(yè)到一個(gè)現(xiàn)代的 SOA 的組織提供了有效的解決方案。通過基于服務(wù)的集成的軟件應(yīng)用程序的聯(lián)合因此變得具備可能性。

基于服務(wù)的集成是 Enterprise Application Integration(EAI)的一個(gè)進(jìn)化,在 EAI 中,所有的連接通過位置透明的 ESB 概念被基于標(biāo)準(zhǔn)的鏈接替換,并提供了一系列靈活的路由、中介和轉(zhuǎn)化能力。





回頁(yè)首


基于服務(wù)的建模:服務(wù)的分析和設(shè)計(jì)

迄今為止,我已經(jīng)通過描述 SOA 設(shè)定了階段。我同樣展示了要想構(gòu)建 SOA,你需要在你 SOA 的每個(gè)層中做關(guān)鍵架構(gòu)決策,并且你的設(shè)計(jì)必須反映一系列依賴業(yè)務(wù)的服務(wù)和關(guān)于他們?nèi)绾瓮ㄟ^編排來合成到應(yīng)用程序的決策。

與對(duì)象不同,你在 SOA 中需要考慮兩個(gè)觀點(diǎn);他們是服務(wù)消費(fèi)者和服務(wù)提供者。服務(wù)代理目前不是主流,并且在后面的部分終將被涉及到。

SOA 的設(shè)計(jì)策略并不從“自底向上”開始,這是 Web 基于服務(wù)途徑常有的事情。你必須記住,SOA 更加有戰(zhàn)略意義,并更加依賴于業(yè)務(wù)。Web 服務(wù)是 SOA 的巧妙實(shí)現(xiàn)。許多關(guān)鍵的活動(dòng)和決策存在不僅僅影響集成架構(gòu),而且還影響企業(yè)和應(yīng)用程序架構(gòu)。他們包含兩個(gè) 圖 4 中描述的消費(fèi)者和提供者的活動(dòng).


圖 4:基于服務(wù)建模的活動(dòng)

圖 4顯示了通過提供者和消費(fèi)者的每個(gè)角色來管理的活動(dòng)。注意,提供者的活動(dòng)是消費(fèi)者活動(dòng)的父集(例如,提供者同樣參與服務(wù)鑒別、分類等)。在許多情況下,角色的區(qū)別來自如下的事實(shí),消費(fèi)者指定他們想要的服務(wù),經(jīng)常的搜索它,并且一旦他們確信和他們尋找的服務(wù)規(guī)范相匹配,并且是由服務(wù)提供者提供,他們就會(huì)根據(jù)需要綁定和調(diào)用服務(wù)。提供者需要依次發(fā)布他們想要支持的服務(wù);即在功能方面,更重要的是在消費(fèi)者所需的 QoS 方面。這個(gè)在消費(fèi)者和提供者之間的隱含的契約可能在 SLA 方面成熟為明確的契約;自動(dòng)的或者通過業(yè)務(wù)和合法區(qū)域來處理。

上面描述的活動(dòng)可以被描述為在基于服務(wù)的建模和架構(gòu)方法內(nèi)流動(dòng),如下面的 圖 5 所示。


圖 5:基于服務(wù)的建模和架構(gòu)方法

基于服務(wù)的建模和架構(gòu)過程包含三個(gè)主要的步驟:服務(wù),組件和流程(典型地,服務(wù)的編排)的鑒別,指定和實(shí)現(xiàn)。

Service 鑒別

這個(gè)過程由域分解、現(xiàn)有資產(chǎn)分析和目標(biāo)服務(wù)建模的自頂向下、自底向上、中間向外技術(shù)的聯(lián)合組成。在 自頂向下視圖中,業(yè)務(wù)用例的藍(lán)圖提供了業(yè)務(wù)服務(wù)的規(guī)范。這個(gè)自頂向下的過程作為 域分解來被引用,域分解由業(yè)務(wù)領(lǐng)域到它的功能區(qū)域和子系統(tǒng)的分解組成,包含它的流程或過程分解成過程、自過程和高級(jí)別業(yè)務(wù)用例。很多情況下,這些用例是公開在企業(yè)邊緣的業(yè)務(wù)服務(wù),或者在貫穿業(yè)務(wù)線企業(yè)邊界內(nèi)所用的非常好的候選。

在過程的 從下到上的部分或者 現(xiàn)有系統(tǒng)分析中,現(xiàn)有的系統(tǒng)被分析和選擇作為可行的候選,來為支持業(yè)務(wù)過程的底層服務(wù)功能性實(shí)現(xiàn)提供低消耗的解決方案。在這個(gè)過程中,你分析和利用了來自遺留和打包應(yīng)用程序的 API、事務(wù)和模塊。在有些情況下,為了支持服務(wù)的功能重新模塊化現(xiàn)有的資產(chǎn)需要遺留系統(tǒng)的組件化。

中間向外視圖目標(biāo)服務(wù)建模組成,來驗(yàn)證和發(fā)現(xiàn)自頂向下或自底向上的服務(wù)鑒別手段中沒有捕捉到的其他服務(wù)。它將服務(wù)連結(jié)到目標(biāo)和子目標(biāo)、關(guān)鍵性能指示和尺度。

服務(wù)分級(jí)和分類

這個(gè)活動(dòng)在服務(wù)被指定時(shí)開始。將服務(wù)分級(jí)為服務(wù)層次是非常重要的,反映了服務(wù)的復(fù)合或者不規(guī)則的本性:服務(wù)可以也應(yīng)該由良好粒度的組建和服務(wù)組成,分級(jí)幫助決定合成和分層,以及基于層次的相互依賴服務(wù)的協(xié)同構(gòu)建。同樣,它幫助減輕服務(wù)增值綜合癥,這種癥狀中,越來越多的小粒度的服務(wù)被定義、設(shè)計(jì)和部署,卻缺乏控制,導(dǎo)致了主要的性能、可伸縮性和管理問題。更加重要的是,服務(wù)增值未能提供服務(wù),這些服務(wù)對(duì)業(yè)務(wù)是非常有用的。

子系統(tǒng)分析

這個(gè)活動(dòng)獲取上面域分解過程中發(fā)現(xiàn)的子系統(tǒng),并且指定子系統(tǒng)之間的相互依賴和流程。它同樣將域分解過程中鑒別的用例作為子系統(tǒng)接口上公開的服務(wù)。子系統(tǒng)的分析包含創(chuàng)建對(duì)象模型來表現(xiàn)內(nèi)部工作方式,以及所包含的公開服務(wù)并且實(shí)現(xiàn)它們的子系統(tǒng)設(shè)計(jì)。這時(shí),“子系統(tǒng)”的設(shè)計(jì)結(jié)構(gòu)將實(shí)現(xiàn)為大粒度組件實(shí)現(xiàn)構(gòu)造,在下面的活動(dòng)中實(shí)現(xiàn)服務(wù)。

組件指定

在下面的主要活動(dòng)中,實(shí)現(xiàn)服務(wù)的組件的細(xì)節(jié)將指定:

  • 數(shù)據(jù)
  • 規(guī)則
  • 服務(wù)
  • 可配置概要
  • 變更
消息和時(shí)間指定以及管理定義出現(xiàn)在這一步驟中。

 

服務(wù)分配

服務(wù)分配包括分派服務(wù)到目前鑒別的子系統(tǒng)。這些子系統(tǒng)具有實(shí)現(xiàn)了他們所公布的功能的企業(yè)組件。你經(jīng)常會(huì)簡(jiǎn)單化假定,子系統(tǒng)同企業(yè)組件有一對(duì)一的聯(lián)系。 結(jié)構(gòu)化組件在你使用模式來構(gòu)造企業(yè)組件時(shí)會(huì)通過以下幾點(diǎn)的聯(lián)合的形式出現(xiàn):

  • 中介體
  • Facade
  • 規(guī)則對(duì)象
  • 可配置概要
  • 工廠
服務(wù)分配同樣由服務(wù)的指派和在 SOA 層中實(shí)現(xiàn)他們的組件組成。組件和服務(wù)向 SOA 層中的分配是一個(gè)關(guān)鍵的任務(wù),需要關(guān)鍵架構(gòu)決策的文件和決議,這些決策不僅僅同應(yīng)用程序架構(gòu)有關(guān)系,也同在運(yùn)行時(shí)設(shè)計(jì)和用來支持 SOA 實(shí)現(xiàn)的技術(shù)操作架構(gòu)有關(guān)的。

 

服務(wù)實(shí)現(xiàn)

這個(gè)步驟指出實(shí)現(xiàn)給定服務(wù)的軟件必須被選擇或者自定義構(gòu)建。其他可用的選項(xiàng)包括使用 Web 服務(wù)來集成、轉(zhuǎn)化、訂閱和外購(gòu)不同功能。在這個(gè)步驟中,你決定哪個(gè)遺留系統(tǒng)模塊用來實(shí)現(xiàn)給定的服務(wù),以及哪個(gè)服務(wù)將從基礎(chǔ)來構(gòu)建。服務(wù)的其他實(shí)現(xiàn)決策不同于業(yè)務(wù)功能包括:服務(wù)的安全、管理和監(jiān)視。

事實(shí)上,項(xiàng)目趨向于利用任意數(shù)量的相應(yīng)的努力來滿足關(guān)閉的機(jī)會(huì)窗口。因此,我推薦并行的管理三個(gè)流。

自頂向下的域分解(過程建模和分解,基于變更的分析,方針和業(yè)務(wù)規(guī)則分析,領(lǐng)域特定行為建模(使用語法和圖表))是同供組件化(模塊化)和服務(wù)公開候選的現(xiàn)有遺留資產(chǎn)的分析并行控制。為了獲得項(xiàng)目背后的業(yè)務(wù)意圖和使服務(wù)同業(yè)務(wù)意圖密切合作,目標(biāo)服務(wù)建??梢詠砜刂啤?/p>




回頁(yè)首


結(jié)束語

本文中,我以基于服務(wù)架構(gòu)、它的層和架構(gòu)決策的相關(guān)類型的基礎(chǔ)知識(shí)來開始。接下來,我通過一種方法,描寫了基于服務(wù)建模的活動(dòng),以及從服務(wù)消費(fèi)者和提供者角度來看活動(dòng)的重要性(服務(wù)代理將在后面的文章中涉及到)。這種方式為決定基于服務(wù)架構(gòu)的三個(gè)基礎(chǔ)方面提供了在分析和設(shè)計(jì)活動(dòng)方面詳細(xì)的指導(dǎo):服務(wù),流程和實(shí)現(xiàn)服務(wù)的組件。我還描述了一個(gè)模板,你可以用它來在 SOA 的每個(gè)層上為你的架構(gòu)進(jìn)行決策。

我提到了,對(duì)于服務(wù)鑒別,自頂向下、自底向上和跨部分、目標(biāo)模型分析三種手段的結(jié)合非常重要。接下來我關(guān)注了一下服務(wù)指定和實(shí)現(xiàn)的主要活動(dòng)。

這一系列的下一篇文章中,我將應(yīng)用該方法到帳戶管理的空領(lǐng)域中,并且用例子來描述每個(gè)步驟。除鑒別、指定和實(shí)現(xiàn)之外,我還將討論基于服務(wù)建模手段的其余活動(dòng),包含用來支持完整的 SOA 生命周期的部署、監(jiān)視、管理和控制。

致謝

作者希望象下面這些尊敬的同事和朋友致謝,感謝他們寶貴的建議和反饋(無特定順序):Luba Cherbakov,Kerrie Holley,George Galambos,Sugandh Mehta,David Janson,Shankar Kalyana,Ed Calunzinski,Abdul Allam,Peter Holm,Krishnan Ramachandran,Jenny Ang,Jonathan Adams,Sunil Dube,Ralph Wiest,Olaf Zimmerman,Emily Plachy,Kathy Yglesias-Reece,以及 David Mott。



參考資料



關(guān)于作者

 

Dr. Ali Arsanjani 是一位高級(jí)技術(shù)人員,他是 IBM 全球服務(wù) SOA 和 Web 服務(wù)中心的杰出的首席架構(gòu)師。他在 IT 產(chǎn)業(yè)有 21 年的經(jīng)驗(yàn),為較大型的系統(tǒng)設(shè)計(jì)和交付分布式的軟件架構(gòu)。他的研究興趣和出版物包括軟件設(shè)計(jì)模式、軟件架構(gòu)、基于組件和基于服務(wù)的架構(gòu),以及基于語法的對(duì)象設(shè)計(jì)。他專注于構(gòu)建動(dòng)態(tài)的可重新配置的軟件系統(tǒng)。您可以通過 arsanjan@us.ibm.com 和他聯(lián)系。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
面向服務(wù):是噱頭還是希望?
新中大發(fā)布國(guó)內(nèi)首款基于SOA架構(gòu)的管理軟件
SCA 應(yīng)用程序開發(fā): 第 1 部分:服務(wù)組件體系結(jié)構(gòu)概述
SOA架構(gòu)已經(jīng)過時(shí),微服務(wù)正當(dāng)時(shí)
SOA 設(shè)計(jì)
SOA 快速指南 1 2 3(轉(zhuǎn)IBM developerWorks 中國(guó))
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服