10_SOA面向服務的體系結構_第1頁
10_SOA面向服務的體系結構_第2頁
10_SOA面向服務的體系結構_第3頁
10_SOA面向服務的體系結構_第4頁
10_SOA面向服務的體系結構_第5頁
已閱讀5頁,還剩101頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件體系結構軟件體系結構10 面向服務的體系結構劉旭東cameranFriday, July 30, 202110 面向服務的體系結構(SOA)主要內容企業(yè)應用軟件企業(yè)應用軟件(Enterprise Software)企業(yè)應用集成企業(yè)應用集成EAI (Enterprise Application Integration)面向服務的體系結構面向服務的體系結構SOA(Service Oriented Architecture)軟件體系結構10.1 企業(yè)應用軟件Enterprise Software and Applications10 面向服務的體系結構(SOA)軟件系統(tǒng)的類型個人軟件個人軟件企業(yè)

2、軟件企業(yè)軟件 企業(yè)管理軟件:ERP、SCM、CRM、財務軟件等; 辦公軟件:Office、Email等; 輔助設計軟件:CAD、CAM、CAPP、CASE工具等;系統(tǒng)軟件系統(tǒng)軟件 DBMS OS Middleware開發(fā)工具:開發(fā)工具:CASE工具、工具、IDE等;等;10 面向服務的體系結構(SOA)企業(yè)應用軟件(Enterprise Software and Applications)企業(yè)軟件是為了解決企業(yè)范圍內業(yè)務問題的軟件系統(tǒng)企業(yè)軟件是為了解決企業(yè)范圍內業(yè)務問題的軟件系統(tǒng),而不是針對局,而不是針對局部問題;部問題;企業(yè)軟件是企業(yè)軟件是支持企業(yè)業(yè)務和企業(yè)內各業(yè)務單元之間進行溝通的核心支持

3、企業(yè)業(yè)務和企業(yè)內各業(yè)務單元之間進行溝通的核心;企業(yè)軟件通常由企業(yè)軟件通常由一組軟件產品一組軟件產品+開發(fā)工具開發(fā)工具構成;構成;10 面向服務的體系結構(SOA)企業(yè)應用軟件的類型從企業(yè)應用軟件的功能上來分:從企業(yè)應用軟件的功能上來分: 辦公軟件:OA (Office Automation) 管理軟件:ERP/SCM/CRM/e-Business 輔助設計軟件:CAD/CAM/CAPP10 面向服務的體系結構(SOA)企業(yè)應用軟件分類ERPCRMSCME-BusinessCADCAMCAPPPMOAKMBPMBIEIPPLMTOCEAMHRMDRP10 面向服務的體系結構(SOA)企業(yè)應用軟件

4、的行業(yè)分類鋼鐵冶金鋼鐵冶金飲料食品飲料食品物流物流電信電信 家用電器家用電器日用品日用品醫(yī)藥醫(yī)藥金融金融 集團企業(yè)集團企業(yè)機械電機機械電機旅游旅游咨詢咨詢 軟件集成軟件集成交通運輸交通運輸煙草煙草地產地產 能源電力能源電力連鎖分銷連鎖分銷服裝服裝紡織紡織 電子電器電子電器制造業(yè)制造業(yè)石化石化建筑建筑 10 面向服務的體系結構(SOA)企業(yè)應用軟件的提供商10 面向服務的體系結構(SOA)企業(yè)應用軟件的特點以流程管理以流程管理(Business Process)為主線為主線以數(shù)據以數(shù)據/知識管理知識管理(Data & Knowledge)為核心為核心以提高管理效率和管理水平以提高管理效率和管理水

5、平(Management Efficiency & Quality)為目標為目標分布式分布式+ +協(xié)同性協(xié)同性 (Distribution & Collaboration)異構性異構性+ +集成性集成性 (Heterogeneous & Integration)軟件體系結構10.2 企業(yè)應用集成Enterprise Application Integration10 面向服務的體系結構(SOA)Enterprise Application Integration (EAI)Enterprise Application Integration (EAI) is defined as the us

6、es of software and computer systems architectural principles to integrate a set of enterprise computer applications to support the unrestricted sharing of data and business processes throughout the networked applications or data sources in an organization.企業(yè)應用集成企業(yè)應用集成EAI:按照特定的設計原則,將一組企業(yè)應用集成在一按照特定的設計

7、原則,將一組企業(yè)應用集成在一起,以支持在組織范圍內分布的多個應用或數(shù)據源之間能夠不受限制起,以支持在組織范圍內分布的多個應用或數(shù)據源之間能夠不受限制的進行數(shù)據與信息共享。的進行數(shù)據與信息共享。 10 面向服務的體系結構(SOA)為什么產生EAI的概念 在當今動態(tài)的業(yè)務環(huán)境下,諸如在當今動態(tài)的業(yè)務環(huán)境下,諸如ERP、SCM、CRM等企業(yè)等企業(yè)ESA對企對企業(yè)競爭力的提升具有重要作用;業(yè)競爭力的提升具有重要作用;現(xiàn)代企業(yè)管理的一個挑戰(zhàn)在于:現(xiàn)代企業(yè)管理的一個挑戰(zhàn)在于:企業(yè)內分布在各處的信息能夠被任何企業(yè)內分布在各處的信息能夠被任何其他人無障礙的訪問其他人無障礙的訪問; 但是,企業(yè)內的很多系統(tǒng)都是在

8、不同時期開發(fā)的,因此往往形成信息孤島; 當不同的系統(tǒng)無法有效共享數(shù)據時,就產生了信息交流的瓶頸,影響決策的效率。10 面向服務的體系結構(SOA)企業(yè)內應用系統(tǒng)之間頻繁的業(yè)務交互10 面向服務的體系結構(SOA)企業(yè)間應用系統(tǒng)之間頻繁的業(yè)務交互10 面向服務的體系結構(SOA)EAI的目的EAI的目的就是的目的就是解決不同應用之間的互訪問題解決不同應用之間的互訪問題,同時使企業(yè)的員工、,同時使企業(yè)的員工、決策者和其他企業(yè)的合作伙伴能夠很容易的訪問各類數(shù)據,而不管這決策者和其他企業(yè)的合作伙伴能夠很容易的訪問各類數(shù)據,而不管這些數(shù)據在什么地方和哪個系統(tǒng)中,從而些數(shù)據在什么地方和哪個系統(tǒng)中,從而實現(xiàn)

9、數(shù)據與知識的共享實現(xiàn)數(shù)據與知識的共享。EAI不僅包括企業(yè)內部的應用系統(tǒng)的集成,還包括企業(yè)與企業(yè)之間的不僅包括企業(yè)內部的應用系統(tǒng)的集成,還包括企業(yè)與企業(yè)之間的集成集成,以實現(xiàn)企業(yè)與企業(yè)之間信息交換、業(yè)務協(xié)同、過程集成,例如:,以實現(xiàn)企業(yè)與企業(yè)之間信息交換、業(yè)務協(xié)同、過程集成,例如: B2B 虛擬企業(yè)/動態(tài)聯(lián)盟 供應鏈10 面向服務的體系結構(SOA)EAI的基本構件Applications (各類異構的應用系統(tǒng)各類異構的應用系統(tǒng))Adaptors (適配器適配器)10 面向服務的體系結構(SOA)異構的應用系統(tǒng)ERP系統(tǒng)其他遺留系統(tǒng)(Legacy System)數(shù)據庫供應鏈(SCM)系統(tǒng)企業(yè)門戶

10、(Portal)財務系統(tǒng)客戶關系管理系統(tǒng)(CRM)新開發(fā)的應用系統(tǒng)(Java, C, C+)EAI10 面向服務的體系結構(SOA)適配器(Adaptor)Adapters (適配器適配器)An adapter is a device used to match the physical or electrical characteristics of two different things so that a connection may be made between them. (適配器:一種設備,用來在兩個不同的事物之間進行匹配,以實現(xiàn)二者之間的連接)10 面向服務的體系結構(SOA

11、)為什么要用到“適配器”:異構系統(tǒng)之間的“不匹配”10 面向服務的體系結構(SOA)ERP系統(tǒng)其他遺留系統(tǒng)(Legacy System)數(shù)據庫供應鏈(SCM)系統(tǒng)企業(yè)門戶(Portal)財務系統(tǒng)客戶關系管理系統(tǒng)(CRM)新開發(fā)的應用系統(tǒng)(Java, C, C+)EAI適配器(Adaptor)AdaptorAdaptorAdaptorAdaptorAdaptorAdaptorAdaptorAdaptor10 面向服務的體系結構(SOA)適配器(Adaptor)的作用Map heterogenous data formats, interfaces and protocols into a com

12、mon model and format (適配器:支持不同應用之間數(shù)據格式的適配器:支持不同應用之間數(shù)據格式的轉換、接口與通訊協(xié)議的轉換轉換、接口與通訊協(xié)議的轉換) hide heterogeneity (隱藏異構性) present uniform view of layers below (提供統(tǒng)一的接口)10 面向服務的體系結構(SOA)EAI中的連接件及其拓撲結構EAI的本質:將原本分離的系統(tǒng)連接在一起;的本質:將原本分離的系統(tǒng)連接在一起;連接的方式:連接的方式: Point-to-point (點對點) Hub and Bus (集線器與總線)10 面向服務的體系結構(SOA)EA

13、I中連接件的類型Message brokers (消息中介消息中介): facilitates the message-based asynchronous interaction among adapters (負責在各適配器之間負責在各適配器之間進行基于消息的異步交互進行基于消息的異步交互) Message-oriented middleware (MOM); Service-oriented computing (SOC);Remote Procedure Call (RPC) (遠程過程調用遠程過程調用): faciliatates the call-return-based sync

14、hronous interaction among adapters (在各在各適配器之間進行基于函數(shù)調用適配器之間進行基于函數(shù)調用-返回機制的同步交互返回機制的同步交互) CORBA J2EE .Net10 面向服務的體系結構(SOA)EAI中的集成層次Data-level integration (數(shù)據層集成數(shù)據層集成)Application-level integration (應用層集成應用層集成)Process-level integration (過程層集成過程層集成)User interface (UI)-level integration (用戶界面層集成用戶界面層集成)10

15、面向服務的體系結構(SOA)數(shù)據集成(Data-level Integration)數(shù)據集成的目的是數(shù)據集成的目的是將不同的數(shù)據庫集成起來,提供一種單一的虛擬數(shù)將不同的數(shù)據庫集成起來,提供一種單一的虛擬數(shù)據庫據庫。兩種實現(xiàn)手段:兩種實現(xiàn)手段: 數(shù)據集成中間件 共享數(shù)據庫應用場合?應用場合? 當應用系統(tǒng)不向外提供訪問其數(shù)據的接口時。缺點?缺點? 數(shù)據模型向外暴露,安全性差; 一個應用系統(tǒng)需要了解其他應用系統(tǒng)的數(shù)據格式,導致緊密耦合; 難以保證數(shù)據的完整性。10 面向服務的體系結構(SOA)應用層集成(Application-level Integration)一個應用系統(tǒng)的源代碼中可調用其他應用

16、系統(tǒng)所提供的一個應用系統(tǒng)的源代碼中可調用其他應用系統(tǒng)所提供的API,通過系通過系統(tǒng)之間的統(tǒng)之間的API調用調用實現(xiàn)集成實現(xiàn)集成。實現(xiàn)技術:實現(xiàn)技術: RPC,例如CORBA、.Net、JavaBean等缺點?缺點? 應用程序之間緊密耦合 無法實現(xiàn)異步的交互模式b.f();function f()App aApp bCORBA10 面向服務的體系結構(SOA)過程層集成(Process-level Integration)為什么要做為什么要做“過程集成過程集成”? 一個業(yè)務流程的各個環(huán)節(jié)分布在不同應用系統(tǒng)的代碼中,如果不將這些應用集成起來,就需要跨部門的手工合作來完成整個流程。過程集成是過程集成

17、是將跨越不同部門或不同企業(yè)的業(yè)務流程利用將跨越不同部門或不同企業(yè)的業(yè)務流程利用EAIEAI技術集成在技術集成在一起一起,實現(xiàn)跨部門、跨系統(tǒng)、跨企業(yè)的流程共用。,實現(xiàn)跨部門、跨系統(tǒng)、跨企業(yè)的流程共用。將多個應用中的業(yè)務流程集成在一起,使之看起來像一個將多個應用中的業(yè)務流程集成在一起,使之看起來像一個“流程流程”。10 面向服務的體系結構(SOA)接收客戶訂單貨物運輸生成發(fā)票生產計劃檢查訂單的可滿足性記錄客戶信息不可滿足可滿足訂單管理系統(tǒng)庫存管理系統(tǒng)客戶關系管理系統(tǒng)ERP系統(tǒng)運輸系統(tǒng)財務系統(tǒng)一個過程集成的例子10 面向服務的體系結構(SOA)面向服務的過程集成10 面向服務的體系結構(SOA)用戶

18、界面層集成(UI-level Integration)為什么要做為什么要做“用戶界面集成用戶界面集成”? 各個應用系統(tǒng)都有自己的用戶界面,而且每個用戶界面使用的終端設備有限,從而導致用戶不得不同時使用多個應用的不同界面,降低了工作效率。開發(fā)一個跨應用、跨設備、統(tǒng)一的用戶界面,從該界面就可調用各個開發(fā)一個跨應用、跨設備、統(tǒng)一的用戶界面,從該界面就可調用各個不同應用的后臺業(yè)務邏輯或數(shù)據,不同應用的后臺業(yè)務邏輯或數(shù)據,集成代碼被放置在統(tǒng)一用戶界面的集成代碼被放置在統(tǒng)一用戶界面的代碼之中。代碼之中。目前的熱點技術:目前的熱點技術: Portal(門戶) Mashup (Web2.0)10 面向服務的體

19、系結構(SOA)用戶界面層集成(UI-level Integration)10 面向服務的體系結構(SOA)EAI的集成層次軟件體系結構10.3 面向服務的體系結構SOA10 面向服務的體系結構(SOA)關于SOA的幾個初步觀點目前的軟件系統(tǒng)及其開發(fā)方法,面臨著以下的變化趨勢:目前的軟件系統(tǒng)及其開發(fā)方法,面臨著以下的變化趨勢: 技術讓位于業(yè)務:技術變得越來越次要,對業(yè)務需求的理解變得越來越困難; 封閉向開放轉移:軟件系統(tǒng)的規(guī)模越來越大,復雜性越來越高,逐漸從封閉組織內部擴展到企業(yè)與企業(yè)之間,乃至開放的全球化環(huán)境中; 內部功能讓位于協(xié)同:開發(fā)一個封閉的功能非常容易,難的是多組織之間的協(xié)同性功能的

20、開發(fā); 按需應變:軟件系統(tǒng)越來越要求快速、容易的發(fā)生變化。傳統(tǒng)的軟件開發(fā)方法傳統(tǒng)的軟件開發(fā)方法/技術越來越力不從心,于是技術越來越力不從心,于是SOA粉墨登場。粉墨登場。10 面向服務的體系結構(SOA)(1) Internet環(huán)境下的企業(yè)交互現(xiàn)代企業(yè)已經不再是封閉的企業(yè),市場分工的日益專業(yè)化使得現(xiàn)代企業(yè)已經不再是封閉的企業(yè),市場分工的日益專業(yè)化使得企業(yè)之企業(yè)之間可能存在大量頻繁的交互行為間可能存在大量頻繁的交互行為,以發(fā)揮各自的競爭優(yōu)勢:,以發(fā)揮各自的競爭優(yōu)勢: 供應鏈:供應商-制造商; 客戶關系管理:制造商-物流商-客戶 服務:顧客、中介、服務提供者這種業(yè)務上的交互體現(xiàn)為這種業(yè)務上的交互體

21、現(xiàn)為企業(yè)業(yè)務流程的交互企業(yè)業(yè)務流程的交互/互操作互操作,同時一定需要,同時一定需要企業(yè)信息系統(tǒng)的支持,因此體現(xiàn)為企業(yè)信息系統(tǒng)的支持,因此體現(xiàn)為軟件系統(tǒng)之間的集成與互操作軟件系統(tǒng)之間的集成與互操作。 互操作(Interoperability):能夠在異構的、分布式的系統(tǒng)之間交換和使用信息的能力; 不僅是不同企業(yè)之間,甚至一個企業(yè)內部的各個部門之間都有可能存在大量的交互。10 面向服務的體系結構(SOA)(2) 異構系統(tǒng)的集成與互操作EJBCORBACOMCORBA不同企業(yè)不同企業(yè)甚至是同一企業(yè)的不同部門甚至是同一企業(yè)的不同部門所應用的軟件系統(tǒng)所應用的軟件系統(tǒng)可能可能是是異構的異構的: 技術平臺(

22、編程語言)不同:J2EE-based、.Net-based 軟件體系結構不同:message-based、file-based、process-based 數(shù)據格式不同:同樣的“訂單”對象,不同的屬性集合 集成這些分布式的軟件系統(tǒng),在它們之間傳遞數(shù)據和消息,是一件非集成這些分布式的軟件系統(tǒng),在它們之間傳遞數(shù)據和消息,是一件非常困難的事情。常困難的事情。10 面向服務的體系結構(SOA)異構系統(tǒng)的集成10 面向服務的體系結構(SOA)(3) 頻繁變化的互操作與集成需求企業(yè)業(yè)務流程是頻繁變化的;企業(yè)業(yè)務流程是頻繁變化的;企業(yè)間的集成需求也不是固定的,隨著業(yè)務流程的變化而隨之變化;企業(yè)間的集成需求也

23、不是固定的,隨著業(yè)務流程的變化而隨之變化;企業(yè)間應用系統(tǒng)的集成要能夠快速適應這種變化的需求。企業(yè)間應用系統(tǒng)的集成要能夠快速適應這種變化的需求。例如:例如:東航與上航的合并,使得二者的業(yè)務系統(tǒng)隨之發(fā)生變化;東航與上航的合并,使得二者的業(yè)務系統(tǒng)隨之發(fā)生變化;國航加入國航加入Star Alliance,其業(yè)務系統(tǒng)如何支持聯(lián)盟的業(yè)務;,其業(yè)務系統(tǒng)如何支持聯(lián)盟的業(yè)務;商務部要求網店進行工商登記,商務部要求網店進行工商登記,taobao的系統(tǒng)如何應對;的系統(tǒng)如何應對;新醫(yī)改方案一旦出臺,醫(yī)院、藥店、醫(yī)療器械廠商、衛(wèi)生監(jiān)管部門的新醫(yī)改方案一旦出臺,醫(yī)院、藥店、醫(yī)療器械廠商、衛(wèi)生監(jiān)管部門的系統(tǒng)如何應對。系統(tǒng)如

24、何應對。10 面向服務的體系結構(SOA)示例:靈活可變的企業(yè)流程Change: Customer Order EntryChange: Shared Service Marketing, Billing, Receivables10 面向服務的體系結構(SOA)Change: Supplier Handles Inventory (VMI)Change: Shipping by FedEx, DHL or UPS10 面向服務的體系結構(SOA)歸納:SOA所要解決的問題分布式企業(yè)間業(yè)務的協(xié)同。分布式企業(yè)間業(yè)務的協(xié)同。通過通過Internet連接在一起的異構企業(yè)應用軟件系統(tǒng)的集成、交互與互操

25、連接在一起的異構企業(yè)應用軟件系統(tǒng)的集成、交互與互操作。作。當業(yè)務過程發(fā)生變化時,軟件系統(tǒng)能夠快速響應。當業(yè)務過程發(fā)生變化時,軟件系統(tǒng)能夠快速響應。協(xié)同交互異構分布式環(huán)境業(yè)務頻繁變化軟件體系結構10.4 什么是SOA?10 面向服務的體系結構(SOA)軟件開發(fā)方法的發(fā)展與演化系統(tǒng)系統(tǒng)(程序程序) = 算法算法 + 數(shù)據結構數(shù)據結構 (1960s )系統(tǒng)系統(tǒng) = 子程序子程序 + 子程序子程序 (1970s )系統(tǒng)系統(tǒng) = 對象對象 + 對象關聯(lián)機制對象關聯(lián)機制 (1980s )系統(tǒng)系統(tǒng) = 軟構件軟構件 + 連接件連接件 (1990s )系統(tǒng)系統(tǒng) = 服務服務 + 服務總線服務總線 (2000s

26、)簡單復雜系統(tǒng)規(guī)模與復雜度封閉開放系統(tǒng)開放度細粗構件粒度構件連接件關注層面SOA的關注點: 技術 業(yè)務 封閉 開放 個人企業(yè)內企業(yè)間全球 封閉性功能 協(xié)同性功能 穩(wěn)定 快速變化10 面向服務的體系結構(SOA)面向服務的體系結構從字面上看,從字面上看, SOA=Service(服務服務)+體系結構體系結構(Architecture)SOC=Service(服務服務)+計算計算(Computing)10 面向服務的體系結構(SOA)從業(yè)務的角度看SOAA set of business services composed to capture the business design that a

27、n enterprise wants to expose to its customers and clients10 面向服務的體系結構(SOA)從體系結構的角度看SOAAn architectural style that requires aservice provider, requester and a service description10 面向服務的體系結構(SOA)從編程模式的角度看SOAA programming model completewith standards, tools, methods and technologies such as Web servic

28、es10 面向服務的體系結構(SOA)從應用的角度看SOAt3t6t5t4t2PrepareSamplePrepare ClonesandSequenceGet SequencesTest QualityAssemblyt7Sequence Processing+t1Setupt8ProcessReport+Organization AOrganization BOrganization C10 面向服務的體系結構(SOA)從開發(fā)過程的角度看SOA:面向服務的分析與設計RealizationDecisionsSpecification of Services, Components, Flow

29、sIdentification of candidate Services, Components, FlowsWhatever portion we need, we design and build with parts of SOMA識別、設計和實現(xiàn)服務識別、設計和實現(xiàn)服務(services)、用來支持服務的構件、用來支持服務的構件(components)、以及服務之間形成的協(xié)同。以及服務之間形成的協(xié)同。10 面向服務的體系結構(SOA)SOA(ESB)與EAI的主要區(qū)別第一個區(qū)別在于拓撲結構第一個區(qū)別在于拓撲結構 EAI是星形結構,星型結構模型是一種集中式的架構,所有的數(shù)據交流都由中心

30、點來處理。 而ESB是總線結構。采用分布式架構,ESB 功能,可以由幾個其他物理產品來實現(xiàn)其功能。 第二個用于區(qū)別第二個用于區(qū)別在于是否在于是否使用開放標準使用開放標準 EAI的產品,如WebSphere的消息代理,TIBCO的BusinessWorks ,和Sonic XQ使用一種專利技術來實現(xiàn)信息功能及傳送邏輯。 而ESB產品是基于開放標準,如Java消息服務( JMS的) , XML和J2EE連接器架構( JCA的) ,和Web服務標準。軟件體系結構10.5 SOA的分層體系結構10 面向服務的體系結構(SOA)SOA應用的多層參考架構(IBM)10 面向服務的體系結構(SOA)The

31、SOA LayersLayer 1: 遺留系統(tǒng)遺留系統(tǒng) Existing custom built applications, called legacy systems CRM and ERP packaged applications older object-oriented system implementations, business intelligence applications. To leverage existing systems and integrate them using service-oriented integration techniques.Laye

32、r 2: 服務服務構件層構件層 Enterprise components that are responsible for realizing functionality and maintaining the QoS of the exposed services. Managed, governed set of enterprise assets that are funded at the enterprise or the business unit level. Typically uses container-based technologies such as applica

33、tion servers to implement the components, workload management, high-availability, and load balancing.10 面向服務的體系結構(SOA)The SOA LayersLayer 3: 服務層服務層 The services the business chooses to fund and expose Can be discovered or be statically bound and then invoked, or possibly, choreographed into a compos

34、ite service. Mechanism to take enterprise scale components, business unit specific components, and in some cases, project-specific components, and externalizes a subset of their interfaces in the form of service descriptions. Provide service realization at runtime using the functionality provided by

35、 their interfaces. Exist in isolation or as a composite service.Level 4: 業(yè)務過程層業(yè)務過程層(服務組合與協(xié)同層服務組合與協(xié)同層) Services are bundled into a flow through orchestration or choreography, and thus act together as a single application. These applications support specific use cases and business processes. 10 面向服務的體

36、系結構(SOA)The SOA LayersLayer 5: 訪問層訪問層(表現(xiàn)層表現(xiàn)層) SOA decouples the user interface from the components, the layer provides an access channel to a service or composition of services.Level 6: 集成集成 (ESB) Enables the integration of services through the introduction of a reliable set of capabilities, such as

37、 intelligent routing, protocol mediation, and other transformation mechanisms, often described as the ESB. Level 7: 服務質量服務質量(QoS) The capabilities required to monitor, manage, and maintain QoS such as security, performance, and availability. A background process through sense-and-respond mechanisms

38、and tools that monitor the health of SOA applications.10 面向服務的體系結構(SOA)軟件體系結構10.6 SOA的基本構件和連接件10 面向服務的體系結構(SOA)SOA基本構件類型:服務SOA中可用的基本構件是中可用的基本構件是“服務服務”; 從外特性上看,一個服務被定義為顯式的、獨立于服務具體實現(xiàn)技術細節(jié)的接口。 從內特性上看,服務封裝了可復用的業(yè)務功能,這些功能通常是大粒度業(yè)務,如業(yè)務過程、業(yè)務活動等。服務的實現(xiàn)可采用任何技術平臺,如J2EE、.Net等。10 面向服務的體系結構(SOA)SOA基本構件類型:服務10 面向服務的體

39、系結構(SOA)服務之間的“連接件”通過接口,采用位置透明的、可互操作的協(xié)議進行調用,與客戶端以通過接口,采用位置透明的、可互操作的協(xié)議進行調用,與客戶端以“松散耦合松散耦合”(loosely coupling)的方式綁定在一起。的方式綁定在一起。SOA中所有協(xié)議均是基于中所有協(xié)議均是基于XML的文本文件。的文本文件。10 面向服務的體系結構(SOA)常用的SOA構件類型Web ServicesWS-HumanTaskREST (REpresentational State Transfer)SCA (Service Component Architecture)SDO (Service Da

40、ta Object)WS-Resource10 面向服務的體系結構(SOA)1) Web ServicesWS編程模式所基于的協(xié)議: XML-RPC SOAP10 面向服務的體系結構(SOA)WSDL:描述web service的XML規(guī)范OperationMessageBindingPortServicesSupportsInput & OutputProvidesHow to encodeFormats & ProtocolsHow to invokeImplementsInterfaceAccessspecificationEndpointsPort Type10 面向服務的體系結構(S

41、OA)2) WS-HumanTaskWS-HumanTask:在:在WS基礎上擴展,支持異步執(zhí)行的人工活動基礎上擴展,支持異步執(zhí)行的人工活動(對人工活動的虛擬化對人工活動的虛擬化)三類三類HumanTask:TodoInvocation Collaration10 面向服務的體系結構(SOA)3) REST (REpresentational State Transfer)REST: 一種輕量級的Web Service架構風格,其實現(xiàn)和操作簡潔,完全通過HTTP協(xié)議實現(xiàn),利用緩存Cache來提高響應速度,性能、效率和易用性上都優(yōu)于基于SOAP的Web Service。 REST的基本機制:的基

42、本機制: 網絡上的所有事物都被抽象為資源(resource); 每個資源對應一個唯一的資源標識符(resource identifier),但具有不同的具體表現(xiàn)形式(Representational State) ; 通過通用的連接器接口(包含CRUD四種操作)對資源進行操作; 對資源的各種操作不會改變資源標識符; 所有的操作都是無狀態(tài)的(stateless)。10 面向服務的體系結構(SOA)3) REST (REpresentational State Transfer)10 面向服務的體系結構(SOA)REST只是一種架構樣式,不是一種標準,它利用現(xiàn)有的成熟技術加以只是一種架構樣式,不是

43、一種標準,它利用現(xiàn)有的成熟技術加以實現(xiàn)實現(xiàn)(例如例如JAVA, Ruby等等)。通過通過REST架構,架構,Web應用程序可以用一致的接口應用程序可以用一致的接口(URI)暴露資源給外部暴露資源給外部世界,并提供對資源的操作服務。世界,并提供對資源的操作服務。REST常用于以資源為中心的常用于以資源為中心的 Web 應用,例如照片共享網站、用戶社區(qū)應用,例如照片共享網站、用戶社區(qū)、地理信息系統(tǒng)地理信息系統(tǒng)(GIS)等。等。10 面向服務的體系結構(SOA)4) SCA (Service Component Architecture)SCA: 一種服務構件模型,也是一種編程模型,用于定義或組裝服

44、務構件(業(yè)務邏輯、流程、業(yè)務集成轉換.) 提供一種松耦合的構件組裝機制 通過SCDL(Service Component Definaion language)進行描述10 面向服務的體系結構(SOA)SCA SolutionBusiness Value of SCAJ2EE SolutionSupports many programming languages object-oriented and procedural languages Java, PHP, C+, COBOL XML-centric languages BPEL and XSLT declarative languag

45、es SQL and XQuery provides a declarative, high-level method of creating relationships between service components. All you see is the service contract. You never consider the details of the service implementation. When services change, you change the declaration, not the mechanical steps in your appl

46、ication code.10 面向服務的體系結構(SOA)SCA裝配模型10 面向服務的體系結構(SOA)SCA基本概念構件構件component:業(yè)務功能的基本單元,可以提供或消費服務業(yè)務功能的基本單元,可以提供或消費服務實現(xiàn)實現(xiàn)implement:SCA構件可有多種實現(xiàn)技術,例如構件可有多種實現(xiàn)技術,例如Java,C+,BPEL,Javascript,ruby.接口接口interface:構件對外提功能的語法定義構件對外提功能的語法定義組合構件組合構件composite:將其他構件裝配成組合構件,對外提供服務將其他構件裝配成組合構件,對外提供服務屬性屬性property:構件中的數(shù)據構件

47、中的數(shù)據引用引用reference:組合構件引用其他構件或組合構件組合構件引用其他構件或組合構件服務服務service :構件對外提供的功能構件對外提供的功能連線連線wire:引用者和被引用者之間的連接關系引用者和被引用者之間的連接關系綁定綁定binding:將構件的功能按某協(xié)議對外發(fā)布服務將構件的功能按某協(xié)議對外發(fā)布服務10 面向服務的體系結構(SOA)Roles/Tools/Runtime SCA(IBM)= SCA ComponentServiceComponent DeveloperIntegration DeveloperRolesTasksRuntimeTask: Build/As

48、semble J2EE ComponentsTask: Build/Assemble Business ProcessesTask: Build MediationsUsesJavaApplicationDeveloperToolsProcess &IntegrationDeveloperToolsProcessServerESB / Connection ServerEJB1POJOWebServiceJSF1BusinessProcessStateMachineBusiness RuleI/F or BOTransformAdapterMediation1Mediation2Applica

49、tionServer (w/SCA)WebContainerEJBContainerProcessContainerMediationContainerSCA CompositeSCA CompositeSCA CompositeThis Person.uses this toolto perform this task to build this type of applicationand deploys it to this runtime10 面向服務的體系結構(SOA)開源SCA實現(xiàn)Tuscany獨立的或其他運行平臺(Websphere,Tomcat,Jboss等)Tuscany S

50、CA基礎架構數(shù)據綁定框架SCA編程模型.運行時內核及擴展綁定(協(xié)議解耦)安全和事務實現(xiàn)構件(各種語言)數(shù)據類型內核類模塊擴展類模塊接口類型自定義擴展10 面向服務的體系結構(SOA)一個計算器構件實例計算器構件加法構件減法構件乘法構件除法構件計算器組合構件裝配圖計算器組合構件10 面向服務的體系結構(SOA)一個計算器構件的實現(xiàn) 10 面向服務的體系結構(SOA)一個計算器構件的實現(xiàn)package server;public interface AddInterface double add(double n1, double n2);package server;public class A

51、dd implements AddInterface public double add(double n1, double n2) return n1 + n2; 10 面向服務的體系結構(SOA)一個計算器構件的實現(xiàn)package server;public interface CalculatorInterface double add(double n1, double n2); double subtract(double n1, double n2); double multiply(double n1, double n2); double divide(double n1, d

52、ouble n2);package server;import org.osoa.sca.annotations.Reference;public class Calculator implements CalculatorInterface private AddInterface add; private SubtractInterface subtract; private MultiplyInterface multiply; private DivideInterface divide; public double add(double n1, double n2) return a

53、dd.add(n1, n2); public double subtract(double n1, double n2) return subtract.subtract(n1, n2); . Reference public void setAdd(AddInterface add) this.add = add; public SubtractInterface getSubtract() return subtract; Reference public void setSubtract(SubtractInterface subtract) this.subtract = subtra

54、ct; .10 面向服務的體系結構(SOA)一個計算器構件的實現(xiàn)package client;import org.apache.tuscany.sca.host.embedded.SCADomain;import server.CalculatorInterface;public class CalculatorServiceClient public static void main(String args) throws Exception SCADomain scaDomain = SCADomain.newInstance(server/Calculatorposite); Calc

55、ulatorInterface calculator = scaDomain.getService(CalculatorInterface.class, CalculatorServiceComponent); System.out.println(3 + 2= + calculator.add(3, 2); System.out.println(3 - 2= + calculator.subtract(3, 2); System.out.println(3 * 2= + calculator.multiply(3, 2); System.out.println(3 / 2= + calcul

56、ator.divide(3, 2); scaDomain.close(); 10 面向服務的體系結構(SOA)KWIC的SCA實現(xiàn)版 10 面向服務的體系結構(SOA)5) SDO (Service Data Object)SDO:用于簡化和統(tǒng)一應用程序處理數(shù)據的方式,編程人員可采用:用于簡化和統(tǒng)一應用程序處理數(shù)據的方式,編程人員可采用統(tǒng)統(tǒng)一的方式訪問和操作來自異一的方式訪問和操作來自異構構數(shù)據源的數(shù)據數(shù)據源的數(shù)據,包括關系數(shù)據庫、,包括關系數(shù)據庫、XML 數(shù)據源、數(shù)據源、Web 服務以及企業(yè)信息系統(tǒng)等。服務以及企業(yè)信息系統(tǒng)等。 10 面向服務的體系結構(SOA)SDO (Service Da

57、ta Object)Service Data Objects makes it easy to manage data exchange across services with heterogeneous data formats.Results (Data Graph)QueryUpdate (Data Graph)10 面向服務的體系結構(SOA)5) SDO (Service Data Object)目前已存在的數(shù)據訪問技術?目前已存在的數(shù)據訪問技術?ODBC、JDBC、Entity-EJB、JDO/Hibernate、JCA 、JAX-RPC、JAXB、DOM/SAX/XQuery、

58、ADO.Net、軟件體系結構10.7 SOA的原子體系結構樣式10 面向服務的體系結構(SOA)SOA的基本體系結構模式之一:發(fā)布-訪問發(fā)布發(fā)布(Publish):為了使服務可訪:為了使服務可訪問,需要發(fā)布服務描述以使服務問,需要發(fā)布服務描述以使服務使用者可以發(fā)現(xiàn)它。使用者可以發(fā)現(xiàn)它。發(fā)現(xiàn)發(fā)現(xiàn)(Find):服務請求者定位服:服務請求者定位服務,方法是查詢服務注冊中心來務,方法是查詢服務注冊中心來找到滿足其標準的服務。找到滿足其標準的服務。調用調用(invoke):在檢索到服務描:在檢索到服務描述之后,服務使用者繼續(xù)根據服述之后,服務使用者繼續(xù)根據服務描述中的信息來調用服務。務描述中的信息來調用

59、服務。服務提供者服務注冊中心服務客戶端(1)注冊(2)發(fā)現(xiàn)(3)調用10 面向服務的體系結構(SOA)Web Service中該模式的實現(xiàn)機制WSDL:Web服務描述語言服務描述語言 用于服務接口的描述What can the service do?UDDI:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議:統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議 服務使用者通過UDDI發(fā)現(xiàn)相應的服務并據此將服務集成在自身的系統(tǒng)中What kind of services are needed?SOAP:簡單對象訪問協(xié)議:簡單對象訪問協(xié)議 用戶在服務客戶端與服務提供者之間傳遞信息,通過HTTP或JMS等各類基于文本的消息傳遞協(xié)議來運輸Web Ser

60、vice提供者Web Service注冊中心Web Service客戶端(1)WSDL(2)UDDI(3)SOAP10 面向服務的體系結構(SOA)SOA的基本體系結構模式之二:適配器模式企業(yè)中存在若干遺留系統(tǒng)企業(yè)中存在若干遺留系統(tǒng)(legacy system);這些系統(tǒng)采用較傳統(tǒng)的技術開發(fā),無法提供清晰的接口這些系統(tǒng)采用較傳統(tǒng)的技術開發(fā),無法提供清晰的接口(interface);但其他系統(tǒng)仍然需要訪問這些遺留系統(tǒng)的功能;但其他系統(tǒng)仍然需要訪問這些遺留系統(tǒng)的功能;怎么辦?怎么辦?通過構造適配器通過構造適配器(adaptor, wrapper),將遺留系統(tǒng)中的功能進行二次包,將遺留系統(tǒng)中的功能進

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論