• <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-01-30來源:作者:點擊數: 標簽:
    什么是面向服務的體系結構(SOA)? 面向服務的體系結構(Service-Oriented Architec-ture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬
    什么是面向服務的體系結構(SOA)?

      面向服務的體系結構(Service-Oriented Architec-ture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口和契約聯系起來。接口是采用中立的方式進行定義的,它應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務可以以一種統一和通用的方式進行交互。

      這種具有中立的接口定義(沒有強制綁定到特定的實現上)的特征稱為服務之間的松耦合。松耦合系統的好處有兩點,一點是它的靈活性;另一點是,當組成整個應用程序的每個服務的內部結構和實現逐漸地發生改變時,它能夠繼續存在。而與此相對,緊耦合意味著應用程序的不同組件之間的接口與其功能和結構是緊密相連的,因而當需要對部分或整個應用程序進行某種形式的更改時,它們就顯得非常脆弱。

      對松耦合系統的需求來源于業務應用程序需要根據業務的變動變得更加靈活,以適應不斷變化的環境,比如經常改變的政策、業務級別、業務重點、合作伙伴關系、行業地位以及其他與業務有關的因素,這些因素甚至會影響業務的性質。我們稱能夠靈活地適應環境變化的業務為按需(On Demand)業務,在按需業務中,一旦需要,就可以對完成或執行任務的方式進行必要的更改。

      雖然面向服務的體系結構不是一個新鮮事物,但它卻是更傳統的面向對象的模型的替代模型,面向對象的模型是緊耦合的,已經存在二十多年了。雖然基于 SOA的系統并不排除使用面向對象的設計來構建單個服務,但是其整體設計卻是面向服務的。由于它考慮到了系統內的對象,所以雖然SOA是基于對象的,但是作為一個整體,它卻不是面向對象的。不同之處在于接口本身。SOA系統原型的一個典型例子是通用對象請求代理體系結構(Common Object Request Broker Architecture,CORBA),它已經出現很長時間了,其定義的概念與SOA相似。

      然而,現在的SOA已經有所不同了,因為它依賴于一些更新的進展,這些進展是以可擴展標記語言(eXtensible Markup Language,XML)為基礎的。通過使用基于XML的語言(稱為Web服務描述語言,Web Services Definition Language,WSDL)來描述接口,服務已經轉到更動態且更靈活的接口系統中,非以前 CORBA中的接口描述語言(Interface Definition Language,IDL)可比了。

      Web服務并不是實現SOA的惟一方式。前面剛講的CORBA是另一種方式,這樣就有了面向消息的中間件(Message-Oriented Middleware)系統,比如IBM 的MQSeries。但是為了建立體系結構模型,您所需要的并不只是服務描述。您需要定義整個應用程序如何在服務之間執行其工作流。您尤其需要找到業務的操作和業務中所使用的軟件的操作之間的轉換點。因此,SOA 應該能夠將業務的商業流程與它們的技術流程聯系起來,并且映射這兩者之間的關系。例如,給供應商付款的操作是商業流程,而更新您的零件數據庫,以包括進新供應的貨物卻是技術流程。因而,工作流還可以在 SOA的設計中扮演重要的角色。

      此外,動態業務的工作流不僅可以包括部門之間的操作,甚至還可以包括與不為您控制的外部合作伙伴進行的操作。因此,為了提高效率,您需要定義應該如何得知服務之間關系的策略,這種策略常常采用服務級協定和操作策略的形式。

      最后,所有這些都必須處于一個信任和可靠的環境之中,以同預期的一樣根據約定的條款來執行流程。因此,安全、信任和可靠的消息傳遞應該在任何SOA中都起著重要的作用。

      我可以用面向服務的體系結構做什么?

      對SOA的需要來源于需要使業務 IT 系統變得更加靈活,以適應業務中的改變。通過允許強定義的關系和靈活的特定實現,IT 系統既可以利用現有系統的功能,又可以準備在以后做一些改變來滿足系統之間交互的需要。

      下面舉一個具體的例子。一個服裝零售組織擁有 500 家國際連鎖店,它們常常需要更改設計來趕上時尚的潮流。這可能意味著不僅需要更改樣式和顏色,甚至還可能需要更換布料、制造商和可交付的產品。如果零售商和制造商之間的系統不兼容,那么從一個供應商到另一個供應商的更換可能就是一個非常復雜的軟件流程。通過利用WSDL接口在操作方面的靈活性,每個公司都可以將它們的現有系統保持現狀,而僅僅匹配 WSDL接口并制訂新的服務級協定,這樣就不必完全重構它們的軟件系統了。這是業務的水平改變,也就是說,它們改變的是合作伙伴,而所有的業務操作基本上都保持不變。這里,業務接口可以作少許改變,而內部操作卻不需要改變,之所以這樣做,僅僅是為了能夠與外部合作伙伴一起工作。

      另一種形式是內部改變,在這種改變中,零售組織現在決定它還將把連鎖零售商店內的一些地方出租給專賣流行衣服的小商店,這可以看作是采用店中店(Store-in-Store)的業務模型。這里,雖然公司的大多數業務操作都保持不變,但是它們現在需要新的內部軟件來處理這樣的出租安排。盡管在內部軟件系統可以承受全面的檢修,但是它們需要在這樣做的同時不會對與現有的供應商系統的交互產生大的影響。在這種情況下,SOA模型保持原封不動,而內部實現卻發生了變化。雖然可以將新的方面添加到SOA模型中來加入新的出租安排的職責,但是正常的零售管理系統繼續如往常一樣。

     

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品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>