gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          SOA方法學與面向服務的分析和設計

          引:廣義上講,SOA方法學貫穿于IT生命周期的各個階段和各個方面:IT系統項目的規劃,系統分析和設計,系統的實施,系統的部署和維護,以及整個過程中的監控和管理等。從實踐的角度說,已經出現如下SOA方法學。

            廣義上講,SOA方法學貫穿于IT生命周期的各個階段和各個方面:IT系統項目的規劃,系統分析和設計,系統的實施,系統的部署和維護,以及整個過程中的監控和管理等。從實踐的角度說,已經出現如下SOA方法學。

            (1)面向服務的分析和設計(SOAD)。以服務為中心,根據業務需求發現服務、描述服務,并設計服務的實現。

            (2)面向服務的開發過程。結合現有開發過程,規劃以服務為中心的開發過程中的角色、職責、活動和工件。

            (3)SOA的成熟度分析和遷移路線圖。以服務為中心,分析現有或目標系統的成熟度,并設計從現有成熟度遷移到目標成熟度的路線圖。

            (4)SOA監管。設計組織和流程,確保SOA的設計原則在IT生命周期中得以貫徹,管理服務生命周期中的各種遷移的合理性等。

            本文對SOA方法學的闡述主要集中在面向服務的分析和設計。首先介紹SOA方法學和主要的幾種方法學的區別和聯系,其次以IBM的SOMA (Service Oriented Modeling and Architecture,面向服務的建模與架構)為例,介紹SOA分析和設計中的主要內容和方法。

            1、SOA方法學和其他方法學的比較

            與SOA的設計原則類似,SOA方法學并不是全新的方法學,它是現有方法學的繼承和發展。一方面,原有的方法學并不能解決由于服務概念的引入帶 來的問題,如怎樣發現服務,怎樣定義服務;另一方面,服務是一個水平的概念,而不是一個垂直的概念,在服務分析和設計的過程中,需要處理服務和現有方法學 產物的關系,如業務流程和服務,企業架構和SOA,服務和對象等。因此服務的分析和設計最主要的職責在于發現服務、定義服務和實現服務,并指導如何和其他 方法學結合完成這些職責。

            如圖4-1所示揭示了現有幾種方法學的定位。圖的橫坐標將項目周期分為分析、設計和開發三個階段,縱坐標將域分為應用、架構和業務。流程建模 (BPM)用于業務領域的分析和設計,如業務流程的定義、業務數據的定義等;企業架構(EA)和方案架構(SA)側重在架構領域的分析和設計,如根據業務 需求確定目前目標業務系統和IT系統,根據目標系統需求設計主要架構元素和它們之間的關系;面向對象的分析和設計(OOAD)則貫穿分析、設計和開發三個 階段,它主要分析細粒度的業務需求,如用例,分析和設計實現這些需求的類和對象,以及它們之間的關系。

            圖4-1 傳統的方法學

            

            如圖4-2所示,面向服務的分析和設計貫穿項目周期的三個階段和IT系統的三個域。這暗示著,在操作層面上,面向服務的分析和設計會和其他方法學緊密相聯。

            圖4-2 SOA和傳統的方法學

            

            1.BPM和SOA

            業務流程建模是一個相當零散的領域,存在各種各樣的方法和技術,有效的方法可以幫助企業對業務進行合理的劃分,從而求得業務層面的靈活性。有些 方法則側重于流程建模本身,例如如何確定和定義業務流程中的業務活動、業務數據、業務規則、業務指標和業務事件等,但是BPM并不會幫助我們去發現和定義 服務。從SOA的方法學來看,各種BPM的結果是面向服務的分析和設計的重要輸入,如業務組件、業務流程和業務目標是服務發現的重要依據,而業務指標、業 務數據、業務規則等是服務暴露的分析的重要依據。

            2.EA和SOA

            盡管和BPM一樣,EA是一個零散的領域,但是當前的EA主要側重于定義跨越業務單元邊界的系統框架,企業范圍內系統的主要構成元素,這些元素 間的關系,以及將這些元素有機組合在一起的參考架構。但是,各種EA技術都缺乏業務領域的藍圖指導企業架構的設計。從SOA方法學來看,一方面,面向服務 的分析和設計通過和BPM結合將業務分解為各種類型的服務,可以作為企業業務的藍圖指導企業架構的設計;另一方面,企業架構設計的結果,如參考架構,又是 服務實現的重要依據。

            3.OOAD和SOA

            面向對象的分析和設計告訴我們使用Use Case捕獲需求,并設計類、對象及對象間交互來滿足Use Case定義的需求。但是面向對象的分析和設計往往只是局限在單個應用內部,它不會缺乏業務藍圖和企業架構藍圖的指導。從SOA方法學看,在原理層面上, OOAD中的很多設計原則,如抽象、隔離關注等被SOA繼承和發揚,并應用于服務的定義和實現中。而在操作層面上,服務模型為OOAD進行類和對象設計提 供了業務藍圖和企業架構藍圖,與此同時,Use Case作為對業務流程的補充說明被用于服務的發現和定義中。

          posted on 2008-03-11 13:08 gembin 閱讀(363) 評論(0)  編輯  收藏 所屬分類: SOA

          導航

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 星子县| 大冶市| 蓬安县| 栾川县| 明溪县| 师宗县| 铜山县| 科尔| 建湖县| 北海市| 武邑县| 蓬莱市| 平昌县| 美姑县| 会宁县| 平阳县| 潞城市| 虹口区| 普陀区| 沽源县| 北京市| 波密县| 长顺县| 丰顺县| 新化县| 山东省| 新和县| 浦县| 辽阳市| 石渠县| 崇礼县| 嵊州市| 洛扎县| 宁乡县| 丹东市| 穆棱市| 赤壁市| 河池市| 石泉县| 台东县| 浮山县|