什么是SOA?
SOA(service-oriented architecture)是面向服務的體系結構,是一類分布式系統的體系結構。
這類系統是將異構平臺上應用程序的不同功能部件(稱為服務)通過這些服務之間定義良好的接口和規范按松耦合方式整合在一起,即將多個現有的應用軟件通過網絡將其整合成一個新系統。
SOA的二大目標
多應用的整合不但是跨平臺的,而且應該是松耦合的,也就是說,被整合的應用自身仍保持其自主,如香港政府已回歸中國,但保持一國二制。
新增設的業務功能,應允許適應變化,即隨需應變。
如何做到跨平臺、松耦合
②除使用方和服務方外,另有中介方,提供駐冊登記和查詢。
現在社會的勞務市場和職業介紹所等都起這樣作用。即先查詢、梆定、然后調用。
什么叫服務
服務是構件提供使用者調用的相關的物理黑盒封裝的可執行代碼單元。它的服務只能通過已發布接口(它包括交互標準)進行訪問。也可以連接到其他構件以構成一個更大的服務”。
服務通常實現為粗粒度的軟件實體,并且通過松散耦合的基于消息通信模型來與應用程序和其他服務交互。
面向服務的體系結構中的角色
服務使用者:服務使用者是一個應用程序、一個軟件模塊或需要一個服務的另一個服務。它發起對注冊中心中的服務的查詢,通過傳輸綁定服務,并且執行服務功能。服務使用者根據接口契約來執行服務。
服務提供者:服務提供者是一個可通過網絡尋址的實體,它接受和執行來自使用者的請求。它將自己的服務和接口契約發布到服務注冊中心,以便服務使用者可以發現和訪問該服務。
服務注冊中心:服務注冊中心是服務發現的支持者。它包含一個可用服務的存儲庫,并允許感興趣的服務使用者查找服務提供者接口。
面向服務的體系結構中的操作
發布:為了使服務可訪問,需要發布服務描述以使服務使用者可以發現和調用它。
發現:服務請求者定位服務,方法是查詢服務注冊中心來找到滿足其標準的服務。
綁定和調用:在檢索完服務描述之后,服務使用者繼續根據服務描述中的信息來調用服務。
SOA的實現中的組成部分
SOA的實現中的組成部分
體系結構堆棧分成兩半,左邊的一半集中于體系結構的功能性方面,而右邊的一半集中于體系結構的服務質量方面。這些元素詳細描述如下:
服務質量方面
策略是一組條件和規則,在這些條件和規則之下,服務提供者可以使服務可用于使用者。策略既有功能性方面,也有與服務質量有關的方面;因此,我們在功能和服務質量兩個區中都有策略功能。
安全性是規則集,可以應用于調用服務的服務使用者的身份驗證、授權和訪問控制。
傳輸是屬性集,可以應用于一組服務,以提供一致的結果。例如,如果要使用一組服務來完成一項業務功能,則所有的服務必須都完成,或者沒有一個完成。
管理是屬性集,可以應用于管理提供的
被整合應用程序的體系結構
建議應用程序實現層為:服務、組件、對象。
如何做到隨需應變?
每個需求用工作流方式描述(BPEL語言),將各應用的服務串起來,也可以通過自展的方式擴展新的服務,一旦用語言寫出其工作流的業務過程后,通過編譯自動實現,由此實現了隨需應變。
目前IBM提供了方案、提供了開發平臺和運行平臺、可以半自動地補充和增加新的業務流程。
SOA的優點
v利用現有的資產。
方法是將這些現有的資產包裝成提供企業功能的服務。組織可以繼續從現有的資源中獲取價值,而不必重新從頭開始構建。
v更易于集成和管理復雜性。
將基礎設施和實現發生的改變所帶來的影響降到最低限度。因為復雜性是隔離的。當更多的企業一起協作提供價值鏈時,這會變得更加重要。