• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

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

    為何不讓SOA變得簡單?

    發布: 2008-1-17 13:27 | 作者: 不詳 | 來源: chinaitlab.com | 查看: 20次 | 進入軟件測試論壇討論

    領測軟件測試網 最近,SOA成為跨技術平臺(特別是J2EE和.Net)軟件開發中的熱門話題。然而,如果我們比較一下圍繞著SOA的宣傳和90年代后期EJB和服務件的宣傳,你會發現這沒有什么區別。1998年,EJB帶領互聯網的潮流并推翻了以CORBA為統治和由PB/Oracle Forms和其他主導的CS架構標準。SOA,作為一種新技術的術語,還不具有那么大的破壞性。SOA只是一種想法/概念和一組構建應用功能的最佳實踐。相反地,J2EE是一套完整地開發技術,可以用來設計所有的東西。

      我對SOA的主要關注在于企業級Java應用通用的問題:復雜性。次要關注的是SOA通常作為一種解決方案被用來跨越J2EE應用各層,雖然這好像沒有什么意義。本文提取出SOA的基本元素并介紹他們。一旦我們理解這些,就可以理解SOA系統中的更復雜的組件了。最后,我們可以了解一下SOA給J2EE應用帶來的實際價值,同時并不增加無用的復雜性。

      本文分為個部分:首先,提出了我對SOA作為一種標準參考點的定義。其次,檢查那些主要的軟件工程問題通過SOA可以解決而不是用SOA來檢查。再次,會給出基于復雜需求的SOA的建議分類。最后,給出三種主要SOA分類的建議實現。

      SOA是什么?

      SOA有很多定義。下面是我的定義:

      SOA是宏級別的應用到應用架構級的設計模式:

      1、可選地暴露應用的功能作為一組離散的組件。

      2、使這些組件能被用來構建更復雜的組件和應用。

      3、僅包含基于消息的組件內部通訊。

      我還遺漏了什么呢?還有一些方面,包括:

      1、安全

      2、事務

      3、狀態或無狀態會話

      4、消息數據

      5、消息特性

      6、消息協議

      7、消息內容

      8、具體技術實現

      這些方面也是重要的,但不是主要的。我的定義提取了SOA的核心規則,但沒有拋棄概念本身。

      注意我在定義中引用了設計模式。我認為這是關鍵。SOA不是什么新技術,事實上,其最吸引人的一個地方是可以利用現有的技術并使其泛出新的光芒。對我來說,SOA更像是一幅藍圖,一組最佳實踐,或者說是一個定義下一代的軟件應用應該如何設計和實現的規范。

      基礎SOA方法

      從上面的定義,我們應該可以標識出組成SOA應用的必須提供的軟件服務的最小集合。簡潔地說,這些服務是:

      1、消息層,允許消息通過特定的協議傳輸和接收。用SOA的說法,這一層稱為企業服務母線或簡寫為ESB。

      2、一個組件模型,如應用必須遵循的發送和接收來消息母線的消息的最小約定。

      取決于你自己的業務需求,這兩種服務可以極度的擴大,但在核心來說,消息層和通用組件模型就代表了SOA。

      注意,我沒有在SOA的定義中包含自動定位和發現服務(在大部分J2EE場景中,這是很有殺傷力的)。在UDDI(通用描述/發現/集成協議)后的原始想法是認為企業最終會使用軟件服務(通過一個大的基于元數據搜索服務倉庫)來購買和銷售。這個美夢至少也得十年后,也許永遠不會實現,因為人們是需要做的實際的業務而不是軟件。

      J2EE應用不需要自動發現服務,例如登錄或支付服務,這些服務應該在初始化時設置。不要誤導我,如果這些服務的實現不應該硬編碼到應用中,那么你也不需要SOA來解決這些問題了。

      為什么要SOA?

      最近的兩撥企業級軟件開發的主浪潮是C/S架構和多層架構。雖然多層架構提供了C/S架構中布署/平臺支持/性能/伸縮性上更好的效果,但兩者都沒有解決一個關鍵的企業級計算機領域的軟件工程問題:如何重用軟件功能。作為軟件開發人員和架構師,我們始終沒有完全解決軟件重用的問題。再往下看,你會看到我也不認為SOA能解決這個問題。然而,我認為軟件重用是SOA出現的最重要原因(至少在J2EE應用中是這樣)。

      其他SOA使用現有的Jini和風格計算;贘ini環境的特點如下:

      1、自動發現組件/服務

      2、自愈的

      然而,這些特性并沒有與J2EE應用等同的重要性。使用JDBC配置數據庫的位置只需要一次。我期望數據庫來提供容錯和除錯功能,而且我不需要J2EE應用來嘗試當產品實例當機時自動發現其他的數據庫實例。另一方面,對一個有2000個工作站的辦公室來說自動發現一個彩色打印機是一件好事,這也是符合Jini硬件的一個關鍵好處。

      平等地說,在一個真實的全球網格計算環境中,自動發現和枚舉計算資源來解決問題是基礎框架的關鍵部分,但這不是一個J2EE環境,那兒硬件預先計算的以便在定義用戶數據和服務性能之間平衡。

     

    延伸閱讀

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

    TAG: soa SOA

    41/41234>

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

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

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>