• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

SOA對于面向服務設計的意義

發布: 2008-6-04 13:21 | 作者: 李剛 | 來源: dev2dev | 查看: 39次 | 進入軟件測試論壇討論

領測軟件測試網  SOA在新一代的架構理念因為其先進性站到了技術的前沿,是各大技術廠商緊跟的開發方式。當然同時也因為其先進性,使得其成為本世紀最為模糊的概念。個人都有自己的理解,使得 SOA在很大程度上給人的感覺是可以聽得見,卻摸不著的“神秘技術”。筆者分析其主要原因是因為Web service給人的影響太大了,大多數人對SOA的理解都差不多,覺得SOA=Web service,其實這就是最典型的理解。大家之所以覺得Web service牛,技術很強,除了因為它是一個標準和規范外,還因為大家在開發中使用到的都僅僅是Web service里的消息通訊框架,靠該消息通訊框架讓普通的開發者看到了跨應用、跨解決方案,做集成的好處。自然開發者就被“蒙住了眼睛”,覺得靠使用了 Web service技術,就利用到了SOA的各種好處。這無異于金庸小說里的,只練招數,而不修煉內功修為,前期進展不錯,但隨著時間的推移就會發現發展潛力不足,就那兩下空招數。

  下面我們來看看面向服務的設計,SOA之 所以在實踐中難以實施的關鍵癥結在于面向服務分析設計并沒有形成統一的指導路線。而面向對象技術之所以有現在的普及,得益于各種開發過程的方法論,比如 RUP,XP等。但現階段對于面向服務的分析設計卻沒有成型的指導出現。當然筆者也不排除一些有經驗的技術作家有寫出來,但畢竟沒有形成知識系統和知識體 系。所以,開發者有些彷徨,想利用SOA的好處,但又不知道如何去做。其實隨著SOA技術慢慢在案例中使用,部分敢于探索的技術作家的行文中,偶爾給出一絲SOA技術的分析設計經驗之談。

  任何一種技術的出現,其實都是對開發內容進行相關分類和歸類,以便減少代碼冗余,增加代碼復用的機會。所以我們在做面向服務的分析與設計工作時,也應該做相應的分層歸類工作。本人在《面向服務設計原則遐想》中提到

  業務流程層 聯合運用下層服務接口層

  服務接口層 作用是起到封裝抽象下層應用邏輯,對上層提供接口

  應用層 如:應用A、應用B等

  這個還處于高層抽象的分層,我們的關注點應該在服務接口層,需要繼續細分該層。暫且將該層分為

  編排服務層

  業務服務層

  應用服務層

  通過這個比較粗略的分層,可以看出各個服務層有了上下關系和歸類條件。具體就是:應用服務層放一些公共的、與解決方案無關的工具服務,比如負載均衡服務、 或者是專門用于向員工發送短信息的服務(它會被多處服務所調用)等。業務服務層則放一些有業務含義的原子性業務服務,所謂原子性業務服務就是不可再分解的 業務服務,其中的分析建模技術包括“按業務實體進行分析和建!焙汀鞍刺囟ㄈ蝿者M行分析和建!钡膬煞N方式。一般來說“按業務實體進行分析和建!北取鞍 特定任務進行分析和建!狈绞绞沟梅⻊盏膹陀脵C會更多些。畢竟“按特定任務進行分析和建!钡姆绞降玫降姆⻊兆匀皇菨M足特定任務的大的子流程,含有了業務 流程,其實業務服務層如果嚴格來說只能包含業務實體,而不應該包含業務流程,因為業務流程將在編排服務層里進行歸類。

  這里自然有個難點,就是我們做純粹的面向服務分析時,是要求自頂向下分解,而要求實現SOA承 諾的服務可復用性是核心,必須保證分解出來的大部分服務要有機會復用,而我們知道原子性服務的復用性機會自然更大,然后才可以隨著需求的變更來組合現有的 原子性服務來實現企業業務敏捷性。這種自頂向下分析,自下向上復用的現狀幾乎把我們搞糊涂了。所以將服務接口層細分為更為具體的三層意義重大,否則業務流 程與業務邏輯單元都揉在一塊,自然難以提高復用率。

  現在已經粗略地談到了面向服務的分析設計,那么與SCA有什么關系。SCA其實為不同粒度的復用提供了條件。

  看看下圖先

    

  圖1

  SCA里的composite與component是核心概念,具體可以說component是可以設計為原子性服務的載體,而利用composite來做組合性服務的載體,來復用低層component的服務功能。同時SCA認為粗粒度的流程服務也可以用來作為基石來組合出其他的component與composite,所以BPEL也是component的一種實現方式。

  如下圖

    

  圖2

    

  圖3

  SCA從不同的粒度復用方面提供的益處得歸因于它的遞歸復用模式,這也與面向服務的分析設計方式有一定的映射,便于自頂向下或自下而上的分析設計工作。SCA除 了這些外,最重要的則是統一了各種不同語言實現的規范,同時利用現階段比較優秀的IOC,DI原則來管理服務之間的引用關系,最大程度地支持面向服務開發 模式中對服務的測試,當然也是便于服務功能復用了。而服務功能復用的先決條件是服務發現,如果服務都發現不了如何復用,則塊工作也是SCA的重中之重。自然,將通訊框架不僅僅局限與Web service的通訊框架,支持眾多的binding類型,將通訊的代碼量減至最小,也為服務的復用提供了前提條件,讓開發者與分析設計者更能集中精力于業務建模,當然也一定程度增加了代碼的復用性。

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: soa SOA 服務 設計


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97