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

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

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

    Flyingis

    Talking and thinking freely !
    Flying in the world of GIS !
    隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
    數(shù)據(jù)加載中……

    SOA介紹--什么是SOA?[轉(zhuǎn)載]

    版權(quán)聲明:本文可以自由轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處和作者信息及本聲明
    作者:Raghu R. Kodali  翻譯:
    tetsu(譯者的Blog:http://blog.matrix.org.cn/page/tetsu)
    原文:
    http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html
    中文:http://www.matrix.org.cn/resource/article/44/44070_SOA.html
    關(guān)鍵字:SOA

    摘要
    在最近的軟件發(fā)展中,面向服務(wù)架構(gòu)(SOA, service-oriented architecture)成為了時下的熱門話題。這篇文章將向大家介紹SOA, 討論企業(yè)為什么需要SOA,什么是SOA, 從核心,平臺,服務(wù)品質(zhì)3個層面來解釋SOA的基礎(chǔ)構(gòu)成。
    By Raghu R. Kodali



    對于面向同步和異步應(yīng)用的,基于請求/響應(yīng)模式的分布式計算來說,SOA是一場革命。一個應(yīng)用程序的業(yè)務(wù)邏輯(business logic)或某些單獨的功能被模塊化并作為服務(wù)呈現(xiàn)給消費者或客戶端。這些服務(wù)的關(guān)鍵是他們的松耦合特性。例如,服務(wù)的接口和實現(xiàn)相獨立。應(yīng)用開發(fā)人員或者系統(tǒng)集成者可以通過組合一個或多個服務(wù)來構(gòu)建應(yīng)用,而無須理解服務(wù)的底層實現(xiàn)。舉例來說,一個服務(wù)可以用.NET或J2EE來實現(xiàn),而使用該服務(wù)的應(yīng)用程序可以在不同的平臺之上,使用的語言也可以不同。

    SOA有以下特性
            SOA服務(wù)具有平臺獨立的自我描述XML文檔。Web服務(wù)描述語言(WSDL, Web Services Description Language)是用于描述服務(wù)的標(biāo)準(zhǔn)語言。
            SOA 服務(wù)用消息進行通信,該消息通常使用XML Schema來定義(也叫做XSD, XML Schema Definition)。消費者和提供者或消費者和服務(wù)之間的通信多見于不知道提供者的環(huán)境中。服務(wù)間的通訊也可以看作企業(yè)內(nèi)部處理的關(guān)鍵商業(yè)文檔。
             在一個企業(yè)內(nèi)部,SOA服務(wù)通過一個扮演目錄列表(directory listing)角色的登記處(Registry)來進行維護。應(yīng)用程序在登記處(Registry)尋找并調(diào)用某項服務(wù)。統(tǒng)一描述,定義和集成 (UDDI, Universal Description, Definition, and Integration)是服務(wù)登記的標(biāo)準(zhǔn)。
             每項SOA服務(wù)都有一個與之相關(guān)的服務(wù)品質(zhì)(QoS, quality of service)。QoS的一些關(guān)鍵元素有安全需求(例如認(rèn)證和授權(quán)),可靠通信(譯注:可靠消息是指,確保消息“僅且僅僅”發(fā)送一次,從而過濾重復(fù)信息。),以及誰能調(diào)用服務(wù)的策略。

    為什么選擇SOA?

    不同種類的操作系統(tǒng),應(yīng)用軟件,系統(tǒng)軟件和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)相互交織,這便是IT企業(yè)的現(xiàn)狀。一些現(xiàn)存的應(yīng)用程序被用來處理當(dāng)前的業(yè)務(wù)流程(business processes),因此從頭建立一個新的基礎(chǔ)環(huán)境是不可能的。企業(yè)應(yīng)該能對業(yè)務(wù)的變化做出快速的反應(yīng),利用對現(xiàn)有的應(yīng)用程序和應(yīng)用基礎(chǔ)結(jié)構(gòu)(application infrastructure)的投資來解決新的業(yè)務(wù)需求,為客戶,商業(yè)伙伴以及供應(yīng)商提供新的互動渠道,并呈現(xiàn)一個可以支持有機業(yè)務(wù)(organic business)的構(gòu)架。SOA憑借其松耦合的特性,使得企業(yè)可以按照模塊化的方式來添加新服務(wù)或更新現(xiàn)有服務(wù),以解決新的業(yè)務(wù)需要,提供選擇從而可以通過不同的渠道提供服務(wù),并可以把企業(yè)現(xiàn)有的或已有的應(yīng)用作為服務(wù), 從而保護了現(xiàn)有的IT基礎(chǔ)建設(shè)投資。

    如圖1的例子所示,一個使用SOA的企業(yè),可以使用一組現(xiàn)有的應(yīng)用來創(chuàng)建一個供應(yīng)鏈復(fù)合應(yīng)用(supply chain composite application),這些現(xiàn)有的應(yīng)用通過標(biāo)準(zhǔn)接口來提供功能。

    image
    Figure 1. Supply chain application. Click on thumbnail to view full-sized image.         


    服務(wù)架構(gòu)

    為了實現(xiàn)SOA,企業(yè)需要一個服務(wù)架構(gòu),圖2顯示了一個例子:

    image
    Figure 2. A sample service architecture. Click on thumbnail to view full-sized image.        

    在圖2中, 服務(wù)消費者(service consumer)可以通過發(fā)送消息來調(diào)用服務(wù)。這些消息由一個服務(wù)總線(service bus)轉(zhuǎn)換后發(fā)送給適當(dāng)?shù)姆?wù)實現(xiàn)。這種服務(wù)架構(gòu)可以提供一個業(yè)務(wù)規(guī)則引擎(business rules engine),該引擎容許業(yè)務(wù)規(guī)則被合并在一個服務(wù)里或多個服務(wù)里。這種架構(gòu)也提供了一個服務(wù)管理基礎(chǔ)(service management infrastructure),用來管理服務(wù),類似審核,列表(billing),日志等功能。此外,該架構(gòu)給企業(yè)提供了靈活的業(yè)務(wù)流程,更好地處理控制請求(regulatory requirement),例如Sarbanes Oxley(SOX),并且可以在不影響其他服務(wù)的情況下更改某項服務(wù)。

    SOA基礎(chǔ)結(jié)構(gòu)

    要運行,管理SOA應(yīng)用程序,企業(yè)需要SOA基礎(chǔ),這是SOA平臺的一個部分。SOA基礎(chǔ)必須支持所有的相關(guān)標(biāo)準(zhǔn),和需要的運行時容器。圖3所示的是一個典型的SOA基礎(chǔ)結(jié)構(gòu)。接下來的章節(jié)將逐一討論該結(jié)構(gòu)的每個部分。

    image
    Figure 3. A typical SOA infrastructure. Click on thumbnail to view full-sized image.         

    SOAP, WSDL, UDDI
    WSDL, UDDI和SOAP是SOA基礎(chǔ)的基礎(chǔ)部件。WSDL用來描述服務(wù);UDDI用來注冊和查找服務(wù);而SOAP,作為傳輸層,用來在消費者和服務(wù)提供者之間傳送消息。SOAP是Web服務(wù)的默認(rèn)機制,其他的技術(shù)為可以服務(wù)實現(xiàn)其他類型的綁定。一個消費者可以在UDDI注冊表(registry)查找服務(wù),取得服務(wù)的WSDL描述,然后通過SOAP來調(diào)用服務(wù)。

    WS-I Basic Profile
    WS-I Basic Profile,由Web服務(wù)互用性組織(Web Services Interoperability Organization)提供,是SOA服務(wù)測試與互用性所需要的核心構(gòu)件。服務(wù)提供者可以使用Basic Profile測試程序來測試服務(wù)在不同平臺和技術(shù)上的互用性。

    J2EE 和 .Net
    盡管J2EE和.NET平臺是開發(fā)SOA應(yīng)用程序常用的平臺,但SOA不僅限于此。像J2EE這類平臺,不僅為開發(fā)者自然而然地參與到SOA中來提供了一個平臺,還通過他們內(nèi)在的特性,將可擴展性,可靠性,可用性以及性能引入了SOA世界。新的規(guī)范,例如 JAXB(Java API for XML Binding),用于將XML文檔定位到Java類;JAXR(Java API for XML Registry)用來規(guī)范對UDDI注冊表(registry)的操作;XML-RPC(Java API for XML-based Remote Procedure Call)在J2EE1.4中用來調(diào)用遠程服務(wù),這使得開發(fā)和部署可移植于標(biāo)準(zhǔn)J2EE容器的Web服務(wù)變得容易,與此同時,實現(xiàn)了跨平臺(如.NET)的服務(wù)互用。

    服務(wù)品質(zhì)
    在企業(yè)中,關(guān)鍵任務(wù)系統(tǒng)(mission-critical system,譯注:關(guān)鍵任務(wù)系統(tǒng)是指如果一個系統(tǒng)的可靠性對于一個組織是至關(guān)重要的,那么該系統(tǒng)就是該企業(yè)的關(guān)鍵任務(wù)系統(tǒng)。比如,電話系統(tǒng)對于一個電話促銷企業(yè)來說就是關(guān)鍵任務(wù)系統(tǒng),而文字處理系統(tǒng)就不那么關(guān)鍵了。)用來解決高級需求,例如安全性,可靠性,事物。當(dāng)一個企業(yè)開始采用服務(wù)架構(gòu)作為工具來進行開發(fā)和部署應(yīng)用的時候,基本的Web服務(wù)規(guī)范,像WSDL,SOAP,以及UDDI就不能滿足這些高級需求。正如前面所提到的,這些需求也稱作服務(wù)品質(zhì)(QoS,quality of services)。與QoS相關(guān)的眾多規(guī)范已經(jīng)由一些標(biāo)準(zhǔn)化組織(standards bodies)提出,像W3C(World Wide Web Consortium)和OASIS(the Organization for the Advancement of Structured Information Standards)。下面的部分將會討論一些QoS服務(wù)和相關(guān)標(biāo)準(zhǔn)。

    安全
    Web服務(wù)安全規(guī)范用來保證消息的安全性。該規(guī)范主要包括認(rèn)證交換, 消息完整性和消息保密。該規(guī)范吸引人的地方在于它借助現(xiàn)有的安全標(biāo)準(zhǔn),例如,SAML(as Security Assertion Markup Language)來實現(xiàn)web服務(wù)消息的安全。OASIS正致力于Web服務(wù)安全規(guī)范的制定。

    可靠
    在典型的SOA 環(huán)境中,服務(wù)消費者和服務(wù)提供者之間會有幾種不同的文檔在進行交換。具有諸如“僅且僅僅傳送一次”( once-and-only-once delivery),“最多傳送一次”( at-most-once delivery),“重復(fù)消息過濾”(duplicate message elimination),“保證消息傳送”(guaranteed message delivery)等特性消息的發(fā)送和確認(rèn),在關(guān)鍵任務(wù)系統(tǒng)(mission-critical systems)中變得十分重要。WS-Reliability 和 WS-ReliableMessaging是兩個用來解決此類問題的標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)現(xiàn)在都由OASIS負(fù)責(zé)。

    策略
    服務(wù)提供者有時候會要求服務(wù)消費者與某種策略通信。比如,服務(wù)提供商可能會要求消費者提供Kerberos安全標(biāo)示,才能取得某項服務(wù)。這些要求被定義為策略斷言(policy assertions)。一項策略可能會包含多個斷言。WS-Policy用來標(biāo)準(zhǔn)化服務(wù)消費者和服務(wù)提供者之間的策略通信。

    控制
    當(dāng)企業(yè)著手于服務(wù)架構(gòu)時,服務(wù)可以用來整合數(shù)據(jù)倉庫(silos of data),應(yīng)用程序,以及組件。整合應(yīng)用意味著例如異步通信,并行處理,數(shù)據(jù)轉(zhuǎn)換,以及校正等進程請求必須被標(biāo)準(zhǔn)化。在SOA中,進程是使用一組離散的服務(wù)創(chuàng)建的。BPEL4WS 或者 WSBPEL(Web Service Business Process Execution Language)是用來控制這些服務(wù)的語言。WSBPEL目前也由OASIS負(fù)責(zé)。

    管理
    隨著企業(yè)服務(wù)的增長,所使用的服務(wù)和業(yè)務(wù)進程的數(shù)量也隨之增加,一個用來讓系統(tǒng)管理員管理所有運行在多相環(huán)境下的服務(wù)的管理系統(tǒng)就顯得尤為重要。WSDM(Web Services for Distributed Management)規(guī)定了任何根據(jù)WSDM實現(xiàn)的服務(wù)都可以由一個WSDM適應(yīng)(WSDM-compliant)的管理方案來管理。

    其它的qos特性,比如合作方之間的溝通和通訊,多個服務(wù)之間的事務(wù)處理,都在WS-Coordination 和 WS-Transaction 標(biāo)準(zhǔn)中描述, 這些都是OASIS 的工作.

    SOA 不是Web服務(wù)
    在理解SOA和Web服務(wù)的關(guān)系上,經(jīng)常發(fā)生混淆。根據(jù)2003年4月的Gartner報道,Yefim V. Natis就這個問題是這樣解釋的:“Web服務(wù)是技術(shù)規(guī)范,而SOA是設(shè)計原則。特別是Web服務(wù)中的WSDL,是一個SOA配套的接口定義標(biāo)準(zhǔn):這是 Web服務(wù)和SOA的根本聯(lián)系。”從本質(zhì)上來說,SOA是一種架構(gòu)模式,而Web服務(wù)是利用一組標(biāo)準(zhǔn)實現(xiàn)的服務(wù)。Web服務(wù)是實現(xiàn)SOA的方式之一。用 Web服務(wù)來實現(xiàn)SOA的好處是你可以實現(xiàn)一個中立平臺,來獲得服務(wù),而且隨著越來越多的軟件商支持越來越多的Web服務(wù)規(guī)范,你會取得更好的通用性。

    SOA的優(yōu)勢

    SOA 的概念并非什么新東西,SOA不同于現(xiàn)有的分布式技術(shù)之處在于大多數(shù)軟件商接受它并有可以實現(xiàn)SOA的平臺或應(yīng)用程序。SOA伴隨著無處不在的標(biāo)準(zhǔn),為企業(yè)的現(xiàn)有資產(chǎn)或投資帶來了更好的重用性。SOA能夠在最新的和現(xiàn)有的應(yīng)用之上創(chuàng)建應(yīng)用;SOA能夠使客戶或服務(wù)消費者免予服務(wù)實現(xiàn)的改變所帶來的影響; SOA能夠升級單個服務(wù)或服務(wù)消費者而無需重寫整個應(yīng)用,也無需保留已經(jīng)不再適用于新需求的現(xiàn)有系統(tǒng)。總而言之,SOA以借助現(xiàn)有的應(yīng)用來組合產(chǎn)生新服務(wù)的敏捷方式,提供給企業(yè)更好的靈活性來構(gòu)建應(yīng)用程序和業(yè)務(wù)流程。

    About the author
    Raghu R. Kodali is consulting product manager and SOA evangelist for Oracle Application Server. Kodali leads next-generation SOA initiatives and J2EE feature sets for Oracle Application Server, with particular expertise in EJB, J2EE deployment, Web services, and BPEL. Prior to product management, Kodali held presales and technical marketing positions in Oracle Asia-Pacific, based in Singapore. Prior to Oracle, he worked as software developer with National Computer Systems, Singapore. He holds a master's degree in computer science and is a frequent speaker at technology conferences. Kodali maintains an active blog at Loosely Coupled Corner

    資源
    ·
    Java開發(fā)者社區(qū):http://www.matrix.org.cn
    ·javaworld.com:javaworld.com
    WS-I: http://www.ws-i.org
    JAXB: http://www.java.sun.com/xml/jaxb
    JAXR: http://java.sun.com/xml/jaxr
    OASIS: http://www.oasis-open.org/home/index.php
    SAML: http://www.oasis-open.org/specs/index.php#samlv1.0
    SOAP: http://www.w3.org/TR/soap/
    SOX: http://www.sarbanes-oxley.com/
    UDDI: http://www.uddi.org/specification.html
    W3C: http://www.w3.org/2002/ws/
    WSDL: http://www.w3.org/TR/wsdl
    WSBPEL: http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=wsbpel
    WS-Reliability: http://www.oasis-open.org/specs/index.php#wsrv1.1
    WS-ReliableMessaging: http://xml.coverpages.org/WS-ReliableMessaging200502.pdf
    Web Services Security: http://www.oasis-open.org/specs/index.php#wssv1.0
    WS-I Basic Profile:http://www.ws-i.org/deliverables/workinggroup.aspx?wg=basicprofile
    WSDM: http://www.oasis-open.org/committees/tc_home.php
    XSD: http://www.w3.org/XML/Schema
    Gartner: http://www.gartner.com/Init
    To read about BEA's recent product offering in the SOA space, read "BEA's Patrick Discusses Project Free Flow," Paul Krill, InfoWorld (JavaWorld, June 2005): http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-iw-bea.html
    For more on SOA, read "Event-Driven Services in SOA," Jeff Hanson (JavaWorld, January 2005): http://www.javaworld.com/javaworld/jw-01-2005/jw-0131-soa.html
    For more articles on Web services, browse the Java and Web Services section of JavaWorld's Topical Index: http://www.javaworld.com/channel_content/jw-webserv-index.shtml
    For more articles on enterprise development, browse the Enterprise Java section of JavaWorld's Topical Index:
    http://www.javaworld.com/channel_content/jw-enterprise-index.shtml

    posted on 2005-12-28 11:17 Flyingis 閱讀(1639) 評論(0)  編輯  收藏 所屬分類: 架構(gòu)與設(shè)計

    主站蜘蛛池模板: 国产乱色精品成人免费视频| 一本色道久久综合亚洲精品蜜桃冫 | 亚洲人片在线观看天堂无码| 亚洲一卡2卡3卡4卡国产网站 | 18女人毛片水真多免费| 日韩亚洲变态另类中文| 丰满妇女做a级毛片免费观看 | 伊人久久免费视频| 亚洲日本在线观看| 中文字幕天天躁日日躁狠狠躁免费| 91在线视频免费看| 亚洲欧洲av综合色无码 | 久久亚洲国产成人影院网站| 新最免费影视大全在线播放| 永久免费视频网站在线观看| 亚洲精品无码久久毛片波多野吉衣 | 成年人网站免费视频| 国产日本亚洲一区二区三区| 67194成是人免费无码| 国产精品亚洲mnbav网站| 国产在线观看无码免费视频| 久久久亚洲欧洲日产国码农村| 97在线视频免费公开观看| 亚洲一区在线观看视频| 日韩激情淫片免费看| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 一二三四在线观看免费中文在线观看| 亚洲国产成人影院播放| 久久久久免费精品国产| 亚洲欧洲国产精品久久| 国产免费变态视频网址网站| 你好老叔电影观看免费| 亚洲人成电影青青在线播放| 国产青草视频免费观看97| 成全动漫视频在线观看免费高清版下载| 综合自拍亚洲综合图不卡区| 日韩免费在线观看| 中文字幕高清免费不卡视频| 亚洲一区二区三区在线| 亚洲精品视频在线看| 麻豆国产精品免费视频|