初探SOA(補充)

來源:互聯網
上載者:User
   
SOA是一種應用程式框架,它著眼於日常的業務應用,並將它們劃分為單獨的業務功能和流程,即所謂的服務。它使使用者可以構建、部署和整合這些服務,且無需依賴應用程式及其運行計算平台,從而提高商務程序的靈活性。這種業務靈活性可使企業加快發展速度,降低總體擁有成本,改善對及時、準確資訊的訪問。SOA
有助於實現更多的資產重用、更輕鬆的管理和更快的開發與部署,在當今的業務環境中,變化是毫無疑問的,因此快速響應客戶需求、市場機遇和外部威脅的敏捷性,輕鬆應對企業商務服務變化、發展的需要比以往任何時候都更顯重要。

   
各種企業都認識到組件化、模組化、互操作和可伸縮基礎設施的價值:

組件化:利用標準化的應用程式和資源服務介面

互操作:實現應用程式和/或資源之間的輕鬆資訊交換

模組化:混合搭配、添加刪除、商務程序與基礎設施

可伸縮:從現有資源起步,隨需添加其他資源

   
SOA的目標在於讓IT變得更有彈性,以便更快地響應業務單位的需求使得公司專屬應用程式擺脫面向技術的解決方案的束縛。SOA可以用蝙蝠來做比喻,蝙蝠要利用自己的超聲波捕捉食物,也需要超聲波了躲避障礙物,企業也一樣,既想利用軟體來贏利,也希望軟體來規避企業的的風險。

   
SOA要求開發人員從服務整合的角度來設計應用軟體,要求開發人員超越應用軟體來思考,在服務的基礎上進行技術構建,並考慮複用現有的服務,或者檢查如何讓服務被重複利用,讓業務需要成為功能組件選擇中的驅動因素。它鼓勵使用可替代的技術和方法(例如:訊息機制),通過把服務聯絡在一起而非編寫新代碼來構架應用。SOA想要實現企業資源共用,首先要把應用和資源轉換成服務(Service)然後把這些服務變成標準的服務,形成資源的共用。

SOA服務具有平台獨立的自我描述XML文檔,旨在提高商務程序之間和 IT
應用程式之間的模組化和重用程度,Web服務描述語言(WSDL, Web Services Description
Language)是用於描述服務的標準語言。

 SOA 服務用訊息進行通訊,該訊息通常使用XML Schema來定義(也叫做XSD, XML
Schema
Definition)。消費者和提供者或消費者和服務之間的通訊多見於不知道提供者的環境中。服務間的通訊也可以看作企業內部處理的關鍵商業文檔。

在一個企業內部,SOA服務通過一個扮演目錄列表角色的登記處來進行維護。應用程式在登記處尋找並調用某項服務。統一描述,定義和整合是服務登記的標準。每項SOA服務都有一個與之相關的服務品質(QoS,
quality of service)。QoS的一些關鍵元素有安全需求(例如認證和授權),可靠通訊,以及誰能調用服務的策略。

不同種類的作業系統,應用軟體,系統軟體和應用基礎結構(application
infrastructure)相互交織,這便是IT企業的現狀。一些現存的應用程式被用來處理當前的商務程序(business
processes),因此從頭建立一個新的基礎環境是不可能的。企業應該能對業務的變化做出快速的反應,利用對現有的應用程式和應用基礎結構(application
infrastructure)的投資來解決新的業務需求,為客戶,商業夥伴以及供應商提供新的互動渠道,並呈現一個可以支援有機業務(organic
business)的構架。SOA憑藉其松耦合的特性,使得企業可以按照模組化的方式來添加新服務或更新現有服務,以解決新的業務需要,提供選擇從而可以通過不同的渠道提供服務,並可以把企業現有的或已有的應用作為服務,從而保護了現有的IT基礎建設投資。

 要運行,管理SOA應用程式,企業需要SOA基礎,這是SOA平台的一個部分。SOA基礎必須支援所有的相關標準,和需要的運行時容器。
WSDL,UDDI和SOAP是SOA基礎的基礎組件。WSDL用來描述服務;UDDI用來註冊和尋找服務;而SOAP,作為傳輸層,用來在消費者和服務提供者之間傳送訊息。SOAP是Web服務的預設機制,其他的技術為可以服務實現其他類型的綁定。一個消費者可以在UDDI註冊表(registry)尋找服務,取得服務的WSDL描述,然後通過SOAP來調用服務。

   
SOA的概念並非什麼新東西,它代表的是一次進化,而不是一次革命,SOA以藉助現有的應用來組合產生新服務的敏捷方式,提供給企業更好的靈活性來構建應用程式和商務程序。我認為現有的web服務、工作流程、中介軟體以及現在炒得火熱的SAAS都是SOA在不同層度上的實現。但它們也有所區別,Web服務是技術規範,是利用一組標準實現的服務,而SOA是設計原則一種架構模式,用Web服務來實現SOA的好處是你可以實現一個中立平台,來獲得服務,而且隨著越來越多的軟體商支援越來越多的Web服務規範,你會取得更好的通用性。SOA和SAAS我思想相近,而SOA是站在軟體架構和設計的角度來看待軟體是如何被架構起來的東西,SAAS則是站在應用的角度來看待軟體是如何被應用的,軟體可以通過SaaS使用SOA的方法提供給使用者,也帶給SaaS系統鬆散的耦合,我相信在不久的將來,SOA和SAAS將會很好的結合起來,來指導我們的開發和應用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.