<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 6,  comments - 4,  trackbacks - 0

    分析和設計

    SOA 分析和設計也可以指以下術語中的一個或多個:

    服務建模
    面向服務的分析和設計
    面向服務的建模和體系結構 (SOMA)
    Rational Unified Process for Service-Oriented Modeling and Architecture (RUP SOMA)


    分析會在較高的(概念級)抽象級別上對將要構建的系統進行描述。分析的輸入是一組需求和現有的資產

    (或是應用程序或系統)。輸出則是對需要構建的各個方面的描述。分析對 SOA 來說是至關重要的,因

    為通過分析,可以在服務標識期間使 IT 與業務保持一致。分析結果將作為輸入在設計中使用。


    大多數體系結構(在第 1 部分中有述)工作是在分析和設計的工作流中、在項目的細化階段執行的。
    面向服務的分析和設計利用了分析和設計原則(如面向對象的開發或基于組件的開發中的原則)。例如,

    您也許還記得所謂的面向對象的分析和設計 (OOAD)。不過,必須注意的是,SOA 的工作重點始終在于服

    務(而不是對象或組件)。

    服務標識

    服務標識 是核心的面向服務的分析活動。服務標識的目的是將各個分組的概念化服務及其操作標識出來

    自頂向下方法

    業務體系結構工作從一組業務目標開始,標識出一個或多個應予關注的業務流程,這在 SOA 中是非常典

    型的。通過業務建模工作,可能會出現已經過設計的業務流程(即未來的流程),對于正在設計中的系統

    ,它們可以被視為功能性的需求。

    自頂向下方法旨在分解業務元素(主要是業務流程和用例),然后將它們細化為適合服務的粒度。在使用

    自頂向下方法的過程中,您通常要在業務任務中標識出各種服務操作。這種做法的好處在于,您可以確保

    標識的服務與業務保持一致。

    自底向上方法

    自底向上方法旨在分析現有的 IT 資產(如遺留的應用程序和系統),找出可以作為服務公開的功能,以

    便重用它們。

    重用是 SOA 的一個重要組成部分,對于 SOA 的成功是極為關鍵的。您可能知道,遺留應用程序(即已經

    部署的應用程序)是您的公司最寶貴的資產,應該加以利用。例如,自底向上方法將分析現有的信息管理

    系統 (IMS) 事務或 COBOL 程序。

    對于自底向上的分析,有一句忠告:您必須謹慎從事,不要盲目地公開現有的 IT 功能。例如,用于創建

    、讀取、更新、刪除 (CRUD) 數據的各項服務的粒度可能太小,無法與業務保持一致。

    此外還要注意,您應使用現有的資產分析工具(如 IBM WebSphere Studio Asset Analyzer),這一點至

    關重要,因為準確的部署和運行情況常常是無人知曉的。

    中間相遇方法

    中間相遇方法在需求(由自頂向下的分析標識出來的服務)和現有的 IT 資產提供的功能之間進行協調。

    中間相遇方法需要業務分析師、軟件架構師和遺留應用程序專家彼此協作。注意,雖然在特定項目的上下

    文環境之外進行的自底向上分析也是有價值的(例如,某個企業體系結構團隊對候選服務進行編目),但

    事實上,作為項目的一部分,在工作開始時通常會采用自頂向下方法,對一個或多個業務流程進行分解。

    此后,會在這個上下文環境中進行自底向上的分析,試著為所需的服務找到與之匹配的項(中間相遇方法

    )。

    通過上述三種方法,可對服務集及其操作進行標識和驗證(例如,通過驗證,可以確保服務先前并不存在

    ,或服務與業務保持一致),并對它們分組,歸入各個邏輯類別(如業務組件或業務功能區域)。另外還

    要標識業務項(如策略或索賠),這些業務項主要來自現有的數據遺留應用程序。下一個步驟是完整地指

    定這些服務及其操作,定義它們的結構和行為。

     

     


    服務實現

    服務實現旨在對如何實現服務進行設計。這一設計已經達到最為詳細的程度(僅次于代碼級)。它的目的

    并不是實現(構造)服務,而是在設計級描述如何實現服務,至于實現(構造)服務,將在第 3 部分予

    以介紹。服務實現是由軟件架構師和設計師來完成的。

    在規范和實現之間有一道明顯的鴻溝。您可以用一個簡單的方法看出它們的區別:如果說服務規范解決的

    是是什么的問題,服務實現介紹的就是怎樣做。

    設計模型

    由 RUP SOMA 定義的設計模型,是服務實現的核心輸出工作產品。它描述了 SOA 的實現,是對實現(包

    括代碼)的抽象。服務實現的輸出將被輸入到服務的正式實現之中。

    服務組件

    您應當關注的主要設計模型組件是設計組件,它表示的是一個或多個服務規范是如何實現的,還描述了如

    何處理所有的功能性/非功能性需求,以及結構和行為規范。

    在服務實現期間會創建大量的新類,對服務組件和服務進行細化。此外還會定義這些類的結構和行為。

    正如先前所說的那樣,服務實現應當大量使用設計模式(如委托模式、獨立模式和工廠模式),這些模式

    一般是在服務實現期間被應用到各個類的。

     

    服務設計原則

    這一部分將列出您在設計 SOA 解決方案時必須牢記的四項服務設計原則。不過請注意,這并不是一份官

    方的正式列表,而且也并不全面,其中一些概念來自于其他范例,如面向對象。這些原則在面向服務的解

    決方案設計中是十分重要的。

    重用

    在設計服務時,請把重用這一原則隨時記在心中。通常,在設計時,特定的服務使用者會有特定的要求。

    不過,如果您想從 SOA 中獲益,您會希望那些需求略有不同的其他使用者會重用自己設計的服務。而在

    您創建設計時,并不知道這些使用者,也不知道它們有什么需求,因此這并不是一項輕松的任務。

    下面是您可以考慮的事項:

    根據業務域(而不是技術)為服務及其操作提供一個有意義的描述性名稱。
    提供完整的、可由人工閱讀或計算機處理的規范,并將其公布給服務注冊中心,使服務可以被發現(詳細

    信息,請參閱本系列后續的部分)。
    各個使用場景的服務質量與初始場景不同,例如,如果服務被頻繁使用,需求和工作負載提高,可以制訂

    相應的計劃。
    是否有可能對服務提供的初始功能(是根據初始需求集提供的)進行擴展,以便完善服務。
    是否有可能在多種不同的平臺上實現某個服務規范。
    松散耦合

    耦合是指實體或系統彼此間的依存程度。在 SOA 的上下文中,您可以考慮服務規范與它的提供者或實現

    之間的耦合,或服務提供者與服務使用者間的耦合。如要支持 SOA 應有的靈活性,必須采用松散耦合。

    服務提供者無需了解服務使用者的某個特定實例,反之亦然。如果要替換某個服務提供者或服務的實現,

    必須保證這樣做對使用者造成的影響可忽略不計,或不會對其造成干擾。

    如果要幫助實現松散耦合,請考慮下列事項:

    將服務規范(本文中所述的服務和模型)與服務實現分離開來。正如第 2 部分有關 MDD 的那一節所描述

    的那樣,對于服務而言,擁有完整的規范是十分重要的,規范不會依賴于某個特定的實現。而且,服務契

    約應處于規范級別(而非實現級別)。
    使用工具,以一種人機可讀的標準格式(如 WSDL 和 WS-Policy)描述服務規范,以使代碼生成器能幫助

    您實現服務( 本系列的第 4 部分將提供這一方面的詳細信息)。
    當開發服務使用者的代碼時,請記住,可能存在服務中間層或其他提供者,請不要對某個提供者的實例的

    任何信息進行硬編碼。

    無狀態性

    事務狀態意味著服務必須具有關于某些發生的事件的信息,這些事件是一個在服務提供者和服務使用者各

    自的特定實例間長期運行的事務的一部分。例如,如果服務操作已被調用,或在調用某個操作前需要先調

    用另一個操作,在這兩種情況下調用服務操作的結果是不同的。雖然在基于組件的開發中可以找到事務狀

    態的身影,但對于 SOA 來說,事務狀態卻是應該避免的。

    數據(信息)狀態意味著需要對數據實例的狀態進行管理。某些服務通常需要管理數據的狀態。以保險業

    中的索賠服務為例。該服務必須管理索賠實例的狀態,因為多個用戶會通過不同的業務事務訪問這些實例

    。注意,保持狀態不變的服務通常是原子(細粒度服務)。如要處理狀態需求,您應依靠一些在實現中運

    用的基礎技術,如 Java™ 平臺、使用狀態會話 Bean 的 Enterprise Edition (Java EE) 等等。

    粒度

    對于面向服務的設計,您可以對粒度進行考慮,如服務提供者級或服務規范級的粒度(對于前者而言,要

    考慮應提供多少服務)。服務規范是一個針對服務操作的邏輯分組。在此處,邏輯表示它在業務方面的合

    理性。例如,在保險領域中,一個索賠處理接口將提供使用索賠處理的場景中所需的所有操作。這在 IT

    實現方面也是合理的。例如,服務中所有被標識出的操作都可以通過同一種開發迭代實現。

    在設計服務操作時,請考慮協作、使用場景,以及在服務提供者和使用者之間流動的消息的數目和大小。

    粗粒度的操作可以提供更高的業務價值,而且使對實現的修改變得更容易了。粗粒度操作的參數(使用消

    息作為輸入、輸出和故障參數)出錯率較低。不過,使用細粒度的參數(而不是消息)通常具有更好的描

    述性。例如,如果某個操作服務簽名為 determineEligibility(application: ApplicationMessage),則

    您需要查看 ApplicationMessage 的定義。如果簽名為 determineEligibility(customer : Customer,

    product : Product, date : Date, amount : Amount),則該簽名的描述性更好。此外,Customer 或

    Product 參數類型(舉例來說)可以在其他操作中重用,這與 ApplicationMessage 不同。

    對于服務粒度,請務必記住,服務是可組合的。這涉及到重用和在現有功能基礎上提供新功能的能力。某

    一粒度級別的一組服務可以通過編排,形成另一個具有較粗粒度的服務。您可以想想這個例子:多個服務

    提供各種業務任務,然后將這些業務任務排成序列(一個業務流程),以提供另一個服務。

    最終,如果要在設計決策中確定服務粒度,應當在性能(如在高效實現的前提下,用于交換的消息的大小

    和數目)和重用的可能之間作出折衷。而且,一個典型的 SOA 會同時包括細粒度(原子服務)和粗粒度

    (組合服務)兩種服務。

     

    posted on 2009-04-05 13:57 shivaree 閱讀(148) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲第一福利网站| 中文字幕无码成人免费视频| 免费看a级黄色片| 亚洲最新中文字幕| 久久午夜夜伦鲁鲁片免费无码影视 | 亚洲国产精品网站久久| 久草福利资源网站免费| 久久夜色精品国产嚕嚕亚洲av| a国产成人免费视频| 国产亚洲一区二区三区在线| 免费无码黄网站在线看| 亚洲AV天天做在线观看| 免费无码成人AV在线播放不卡| 91亚洲精品视频| 成年女性特黄午夜视频免费看 | 两个人日本WWW免费版| 中文字幕精品亚洲无线码二区| 国产在线播放线91免费| 亚洲午夜视频在线观看| 无码国产精品一区二区免费虚拟VR | 精品亚洲成A人无码成A在线观看| 亚洲第一成年免费网站| 国产精品亚洲va在线观看| 免费永久看黄在线观看app| 亚洲免费一区二区| 亚洲成a人片在线观看中文动漫| 日日麻批免费40分钟无码| 亚洲一区二区三区不卡在线播放| 午夜免费福利在线| 成人精品视频99在线观看免费| 亚洲AV无码国产精品麻豆天美 | 亚洲国产精品嫩草影院| 婷婷综合缴情亚洲狠狠尤物| 99久久国产精品免费一区二区| 亚洲日本视频在线观看| 亚洲成年看片在线观看| 无码人妻一区二区三区免费n鬼沢| 亚洲自国产拍揄拍| 亚洲性久久久影院| 成人午夜免费福利视频| 人人鲁免费播放视频人人香蕉|