SOS的實現(xiàn)課件_第1頁
SOS的實現(xiàn)課件_第2頁
SOS的實現(xiàn)課件_第3頁
SOS的實現(xiàn)課件_第4頁
SOS的實現(xiàn)課件_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SOA的實現(xiàn)馮志勇天津大學計算機學院2008年10月編程模型SCA (Service Component Architecture)服務組件架構(gòu)SDO (Service Data Object)服務數(shù)據(jù)對象Use Case (Simplified Bigbank)2大綱編程模型建立和部署應用軟件和解決方案的模式。定義和代表應用軟件的結(jié)構(gòu)和運行4什么是編程模型?定義復雜應用的結(jié)構(gòu)和運行how to use serviceshow to aggregate services together定義的關(guān)鍵要素 how elements are createdhow elements are linke

2、d togetherhow the solution is deployed5SOA 模型來自基本服務概念的動力:6SOA模型“服務僅僅是一個抽象的概括了軟件功能 .”“開發(fā)者通過聚合服務構(gòu)建服務,使用服務和開發(fā)解決方案.”“組成服務轉(zhuǎn)變?yōu)榫C合的解決方案是一個關(guān)鍵的活動 ”7SOA模型概念視圖8SOA模型元素9SOA模型元素IntegrationAssemblySCA Assembly ModelAssemble heterogeneous components into service networksSCA Binding & Policy ModelExpose components a

3、s Services regardless of underlying technologyDevelopmentSCA Client & Implementation ModelSimplify implementation of business services by focusing on business logic not on infrastructureSDO - Service Data Object Makes it easy to manage data exchange across services with heterogeneous data formats.In

4、teroperability across Heterogeneous EnvironmentsSimplified Composition and Implementation for Services and DataBusiness Process Modeling & Management GovernanceSOA模型中服務組件體系結(jié)構(gòu)SCA&服務數(shù)據(jù)對象SDO基于SOA模型構(gòu)建解決方案的新技術(shù)將SOA解決方案分解成合適的元素簡化面向服務的業(yè)務邏輯及其相關(guān)聯(lián)的數(shù)據(jù)表示10SOA模型中的SCA和SDO服務組件體系結(jié)構(gòu)(SCA)是一個規(guī)范,它描述用于使用 SOA 構(gòu)建應用程序和系統(tǒng)的模型

5、。它可簡化使用SOA進行的應用程序開發(fā)和實現(xiàn)工作。SCA可簡化使用SOA構(gòu)建的業(yè)務應用程序的創(chuàng)建和重用。SCA提供了構(gòu)建粗粒度組件的機制,這些粗粒度組件由細粒度組件組裝而成,因而容易被集成。SCA 將傳統(tǒng)中間件編程從業(yè)務邏輯中分離出來,從而使程序員免受其復雜性的困擾使用SCA使得開發(fā)人員集中精力編寫業(yè)務邏輯,而不必將大量的時間花費在更為底層的技術(shù)實現(xiàn) 11SOA模型中的SCA和SDOSDO服務數(shù)據(jù)對象可簡化數(shù)據(jù)訪問;可簡化數(shù)據(jù)表示;提供一致和統(tǒng)一的方式來訪問數(shù)據(jù),而不管數(shù)據(jù)的物理訪問方式。12SOA模型中的SCA和SDO通過使用SDO:開發(fā)者從訪問后端數(shù)據(jù)源的技術(shù)細節(jié)中解脫出來;編程者得益于靜

6、態(tài)和動態(tài)的API支持;也得益于非連接編程的支持13SOA模型中的SCA和SDOSCA&SDO可分開使用;SCA&SDO可一起使用以提供強有力和靈活的SOA的解決途徑; 在SOA模型的實現(xiàn)中,業(yè)務組件可表示為SCA組件,組件之間使用的數(shù)據(jù)可表示為SDO對象 14SOA模型中的SCA和SDO實現(xiàn)應用的實現(xiàn)提供了靈活性。表現(xiàn)為:技術(shù)中性;可重用;合成;動態(tài)適應性靈活性是soa編程模型最大的優(yōu)點之一:從業(yè)務的角度來說,靈活性有下面幾方面的含義技術(shù)中立:與實現(xiàn)無關(guān)重用:服務和業(yè)務過程的重用,用清楚地定義和松散的服務耦合組合:通過sca中的服務裝配,可以將服務組裝在一起。對變化的動態(tài)適用性:當業(yè)務人員提交

7、一個業(yè)務流程變化后,不需要等待很長時間就可以得到程序?qū)崿F(xiàn)15SCA和SDO商業(yè)價值Improved Flexibility16SCA和SDO商業(yè)價值提高編程人員的生產(chǎn)效率松散耦合的服務模型能夠使soa的開發(fā)團隊中的人員并行工作,互相之間具有一定的獨立性服務重用:重用不僅僅增加了服務業(yè)務的靈活性,同時也降低了開發(fā)soa應用的成本,提高了系統(tǒng)的開發(fā)效率。使用sca可以將一流資源和新建的組建用進行統(tǒng)一的建模。支持由低向上的應用開發(fā)方式。同時自頂向下的開發(fā):soa支持自頂向下的應用開發(fā)方式。組建可以在實現(xiàn)之前就可以進行裝配,而組建的實現(xiàn)可以放在開發(fā)周期之后完成。改進的組織管理:sca使用模型的概念。模

8、型用來組織組建。技術(shù)中立:sca和sdo提供了對復雜過程和復雜數(shù)據(jù)對象的抽象。隱藏了服務提供者和服務消費者之間的的復雜關(guān)聯(lián)細節(jié)。17SCA和SDO商業(yè)價值Increased Programmer Productivity18SCA和SDO商業(yè)價值SCA SolutionJ2EE Solution有助于提高業(yè)務的敏捷性;將IT構(gòu)建為組合應用;關(guān)注業(yè)務目標和業(yè)務過程;組合應用中粗粒度且松耦合服務19SOA的簡單總結(jié)SCA服務組件架構(gòu)SCA models the “A” in SOA -可重用服務組成的系統(tǒng)基于服務的系統(tǒng)的一個編程模型,:構(gòu)造construction裝配assembly部署deplo

9、yment異質(zhì)性 元數(shù)據(jù)驅(qū)動多語言多容器技術(shù)21SCA 概要一套規(guī)范描述了一個使用面向服務的體系結(jié)構(gòu)建設(shè)應用程序和系統(tǒng)的模型擴展和補充實施服務的已有辦法建立如Web服務的開放標準,22What?. the “A” in SOA SCA將建立SOA應用的過程分解成兩個主要的部分組件的實現(xiàn)為外部提供服務為外部提供服務組件的組裝將服務引用與真實的服務連接起來,使用各組件之間建立真實而不是虛擬的程序調(diào)用與數(shù)據(jù)傳遞通道。23What?. the “A” in SOASCA規(guī)范著重強調(diào)要將服務的實現(xiàn)和服務的組裝與實現(xiàn)的細節(jié)進行解藕與底層平臺的細節(jié)解藕合與如何調(diào)用服務的具體方式進行解藕合SCA組件在“業(yè)務邏

10、輯”層面是進行設(shè)計使用最少的中間件API24What?. the “A” in SOA25What?. the “A” in SOA支持多種編程語言 面向?qū)ο蠛瓦^程語言 Java, PHP, C+, COBOL 以XML為核心技術(shù)的語言BPEL and XSLT 描述性語言SQL and XQuery 26What?. the “A” in SOASCA還支持多種程序設(shè)計風格異步程序設(shè)計和面向消息的程序設(shè)計同步程序設(shè)計,即調(diào)用返回的程序設(shè)計風格靜態(tài)程序設(shè)計動態(tài)程序設(shè)計基于連接的非連接的27What?. the “A” in SOA同時支持多種服務調(diào)用方式Web services Messagi

11、ng systems CORBA IIOP 重點關(guān)注服務的申明,不依賴于服務的具體實現(xiàn)技術(shù)BindingsInfrastructure capabilities28What?. the “A” in SOA29SCA 和SOA 基礎(chǔ)結(jié)構(gòu)Assembly ModelClient ModelSCAESBService RegistryRoutingTransportsPolicyTransactionsSecurityClusteringQoS ContainerSCA JavaSpringEJBComposition, Visualization and ManagementArchitectu

12、ral DesignDevelopmentOperations一系列文檔, 即組裝模型linking of components through wiring independent of implementation language 客戶端以及服務實現(xiàn)規(guī)范implementation of service components and of service clients Java & C+ specificationsBEPL30SCA家族說明發(fā)布的SCA白皮書Changes in the SCA Assembly specification since the 0.9 release

13、The Recursive Assembly Model WS-BPEL and SCA White Paper EJB Integration White Paper JAX-WS Services Integration PHP and SCA White Paper SCA Bindings for Web Services, JMS and EIS/JCA 31SCA家族說明SCA規(guī)范草案SCA Assembly Model V0.96 SCA Client and Implementation Model for Java (V0.95) SCA Client & Implement

14、ation for BPEL (V0.95) SCA Client & Implementation for Spring (V0.95) SCA Client & Implementation for C+ (V0.95) SCA Policy Framework SCA Web Service bindings SCA JMS Binding SCA EIS/JCA Bindings 32SCA家族說明DevelopersOSOA (Open SOA Collaboration)33開發(fā)者 和 支持者Supporters34開發(fā)者 和 支持者SCA vs. WS-* Specificati

15、ons提供了一個統(tǒng)一的描述服務實現(xiàn)的模型更容易組成服務網(wǎng)絡在組裝時客戶化服務實現(xiàn)提供了一個業(yè)務邏輯層的服務實現(xiàn)模型沒有像JDBC, JCA, JMS這樣的技術(shù)API支持多種服務綁定方式,包括Web服務WSDL,SOAPRMI, IIOPOthers定義了具體的數(shù)據(jù)轉(zhuǎn)輸格式和協(xié)議互操作獨立于編程模型需要將服務接口顯式定義到WSDL文件中35Scenario 1: Integrate 2 EJBs, 1 JavaBean, and two Web Services into a JSP based web application:36SCA vs. J2EEWithout SCADeveloper

16、 hardcodes EJB access, JavaBean, and Web Service invocation in their web applicationSpecific low-level APIs must be used for each technology (EJB, JavaBean, Web Service)Tight Coupling: Additional coding required to replace one EJB with another EJBIf one component needs to be invoked asynchronously,

17、low level coding is necessaryStructure of the composite application is hard to visualizeWith SCADeveloper wires EJB access, JavaBean, and Web Services together using a Visual Tool.Developer uses one wiring editor for all components (developer does not need to use specific APIs) no low level APIs at

18、allLoose Coupling: New components can be wired into existing applications easilyNo additional coding needed to invoke a component asynchronouslyStructure of the solution captured in assembly modelScenario 2: Integrate 1 Rule, 1 Web Service, 1 EJB, and 1 CICS Transaction into a BPEL Business Process:

19、37SCA vs. J2EEWithout SCADeveloper uses wizards to generate WSDL for each componentTight Coupling: Business process must be modified if a service is replaced by another serviceIf one component needs to be invoked asynchronously, a complex set of steps are required to build an asynchronous service.In

20、tegration Developer = Highly skilled component developerWith SCADeveloper assembles components developed by other developers or creates business components using Wizards/Tools. The assembler doesnt care how each component is implementedLoose Coupling: Business process does not need to be modified if

21、 a new service replaces another service (the new service is simply rewired into the application)Simple to invoke a component asynchronouslyIntegration Developer = A developer who can build a composite application without low-level component development Skills38Roles/Tools/Runtime SCA= SCA ComponentS

22、erviceComponent DeveloperIntegration DeveloperRolesTasksRuntimeTask: Build/Assemble J2EE ComponentsTask: Build/Assemble Business ProcessesTask: Build MediationsUsesJavaApplicationDeveloperToolsProcess &IntegrationDeveloperToolsProcessServerESB / Connection ServerEJB1POJOWebServiceJSF1BusinessProcess

23、StateMachineBusiness RuleI/F or BOTransformAdapterMediation1Mediation2ApplicationServer (w/SCA)WebContainerEJBContainerProcessContainerMediationContainerSCA CompositeSCA CompositeSCA CompositeThis Person.uses this toolto perform this task to build this type of applicationand deploys it to this runti

24、me39SCA 應用程序架構(gòu)40基于SCA的服務組合Composite AComposite BComponentAComponent BComponent CComponent D ServiceRefe-renceRefe-renceRefe-renceComposite CServiceAServiceBSystemSDOSDOFlexible, powerful service construction Flexible, powerful assemblyFlexible, powerful binding Services are assembled and “wired” tog

25、ether. SCA allows wiring to be done using a diverse bindings such as WS-* and JMS SCA components may be implemented using a variety of technologies including POJOs, BPEL, Spring Beans, EJBs, etc. ServiceContents:Assembly ModelIntroduction, Overview, Composite, System, Binding, Extension ModelAppendi

26、x 1: Packaging and Deployment, XML Schemas, UML Model, SCA ConceptsAppendix 2:Policy, Security, Transactions, Reliable Messaging41服務裝配模型 provides:42服務裝配模型 提供一個統(tǒng)一的、語言無關(guān)的服務提供機制Java and C+ available now BPEL and interpretive languages (e.g. XSLT, XQuery) other languages via extensibility (including .NE

27、T)提供一個與底層技術(shù)無關(guān)的服務網(wǎng)絡建模與組合機制Service dependenciesResolution through wiring提供服務動態(tài)配置與管理的機制PropertiesProtocolsQualities of serviceDiagrams used to Represent SCA Artifacts43裝配模型概述 一個SCA的組合是一系列SCA組件的邏輯聚合。一個組合可以包含一個或多個服務組件、服務、引用或連接。一個組合還被賦予一系列屬性,通過配置這些屬性,可以實現(xiàn)對組合內(nèi)部組件的配置。從更高的邏輯層次進行SCA系統(tǒng)建模時,一個組合還可以被看作是一個服務組件的實現(xiàn)。

28、46服務組合的具體規(guī)范可以通過定義“Include”來實現(xiàn)對現(xiàn)有服務組合的復用SCA服務組合是一個部署的基本單元部署時,一個服務組合存儲成一個以.composite為擴展名的文本文件,文件遵循XML規(guī)范一個服務組合在XML中使用一個節(jié)點來表示, .composite文件的格式在SCA規(guī)范中作了詳細描述47服務組合的具體規(guī)范A sample一個.composite文件中,”composite”節(jié)點必須具有一個“name”屬性,屬性的值為該服務組合的名字“composite”節(jié)點中可以有0個或多個“service”節(jié)點”component”節(jié)點“reference”節(jié)點”wire”節(jié)點,還可以包含

29、0個或多個”include”節(jié)點。分別表示該組合使用了0個或多個服務實例,組件,引用,連接或現(xiàn)有服務組合的復用。49服務組合的具體規(guī)范component50服務組合的具體規(guī)范Components are configured instances of implementations.Components provide and consume services.Components are defined as subelements of a composite in an posite file.Implementation51服務組合的具體規(guī)范Component implementati

30、ons are concrete implementations of business function which provide services and/or consume services.SCA allows you to choose from any one of a wide range of implementation technologies, such as Java, BPEL or C+.Services, references and properties are the configurable aspects of an implementation, S

31、CA refers to them collectively as the component type.At runtime, an implementation instance is a specific runtime instantiation of the implementationInterface53服務組合的具體規(guī)范Interfaces define one or more business functions.Java interfacesWSDL 1.1 portTypesWSDL 2.0 interfacesCurrently supports:Component C

32、onfiguration54服務組合的具體規(guī)范Referencerepresent links to servicesuse bindings to describe the access methodsrepresented by a reference element57服務組合的具體規(guī)范Referencerepresent links to servicesuse bindings to describe the access methodsrepresented by a reference element58服務組合的具體規(guī)范Reference59服務組合的具體規(guī)范Serviceus

33、ed to publish services provided by implementationsaddressable by other components.60服務組合的具體規(guī)范Serviceused to publish services provided by implementationsaddressable by other components.61服務組合的具體規(guī)范Service62服務組合的具體規(guī)范Inclusion63服務組合的具體規(guī)范一個完整的運行環(huán)境,它往往是由一系列分布的互相連接的運行環(huán)境組成的配置信息往往跟組裝的規(guī)范沒有必然的聯(lián)系,盡可能的做的靈活,具有很強的

34、適應性一個純粹的概念,沒有具體的實體文件和它對應。由一系列composite文件組成的。是一個目錄或者某種抽象的容器,將composite文件部署到容器中就構(gòu)成了system的一部分??梢钥闯墒且幌盗衖nclude語句,將所有的composite文件包含進來。一個system中的composite并不是固定的,可以通過部署和刪除操作來改變整個系統(tǒng)的組成結(jié)構(gòu)。64System65System-exampleBinding被Service和Reference所使用。Reference使用binding來說明如何去調(diào)用一個service而service使用binding來說明客戶端應該如何來調(diào)用本服

35、務,這跟WSDL中的binding概念一致66BindingDifferent types of bindings:SCA serviceWeb servicestateless session EJBdata base stored procedureEIS service67BindingSCA提供一個簡單、一致的模型來創(chuàng)建和調(diào)用服務,他具有如下特點。從協(xié)議和中間件中解脫出來,著重關(guān)注業(yè)務邏輯;Java和C+規(guī)范均可使用用可以使用業(yè)務層面接口來訪問服務;支持遲綁定各種傳輸重用服務實現(xiàn)使用依賴injection, 因此并不需要使用SCA API 68客戶端和實現(xiàn)模型69客戶端和實現(xiàn)模型Ser

36、vice Implementation with SCA?Business LogicJ2EE 1.2J2EE 1.3J2EE 1.4J2EE 5JAX-RPCJAX-WSJSR109JSR181JSR277JSR-*SOAPWSDLWS-AddressingWS-SecurityWS-TransactionWS-Reliable MessagingWS-*AssemblyBinding Policy ProfilesImplementation Policy ProfilesFocus on the business logic not the enablement?Infrastructu

37、reInfrastructureContents (SCA Java version):基本組件實現(xiàn)模型基本客戶端模型錯誤處理異步編程Java APIJava 標注70客戶端和實現(xiàn)模型Brief Introduction (Java Version)SCA Java的客戶端實現(xiàn)模型制定了一系列Java類和接口用于實現(xiàn)SCA裝配模型中定義的概念??蛻舳四P涂梢院鸵延械木幊棠P鸵黄鹗褂?,或者構(gòu)建在已有的編程模型上,比如Spring和J2SE71客戶端和實現(xiàn)模型Brief Introduction (Java Version)裝配模型概念到Java的映射,例如組件,組件類型,服務,引用,屬性實現(xiàn)異步

38、和會話服務在Java的中的實現(xiàn)組件生命周期管理在Java中的實現(xiàn)指定服務和實現(xiàn)的作用域在Java中的實現(xiàn)72客戶端和實現(xiàn)模型Contents (C+ version):基本的組件實現(xiàn)模型基本的客戶端模型錯誤處理C+ API73客戶端和實現(xiàn)模型Specification Documents, API packages, Sample codes, etc. can be downloaded from OSOAs website:Apache Tuscany/tuscany/home.html74客戶端和實現(xiàn)模型服務數(shù)據(jù)對象SDO-Service Data ObjectsSDO規(guī)范草案Servi

39、ce Data Objects Specifications sdo的技術(shù)報告什么是SDO 2.1;PHP和SDO白皮書;比較SDO和數(shù)據(jù)訪問對象模式;比較SDO與EJB 3.0數(shù)據(jù)持久性76與SDO相關(guān)的規(guī)范文檔SDO是Service Data Object的縮寫用于訪問和更新數(shù)據(jù)。其特點就是對松耦合的數(shù)據(jù)進行了優(yōu)化,應用樂觀鎖支持Check in/Check out模型在SCA中,SDO是推薦使用的數(shù)據(jù)訪問模型,但并不是必須的SCA也支持其他的數(shù)據(jù)訪問模型,比如JAX-B(for Java)SCA和SDO配合使用是最合適的,SDO提供了一套與數(shù)據(jù)源無關(guān)的API接口SDO數(shù)據(jù)訪問服務本身也可

40、以認為是SCA的一個組件77SDO with SCA78SDOService Data Objects makes it easy to manage data exchange across services with heterogeneous data formats.Results (Data Graph)QueryRelationalAny data source(XML, JMS, JCA, etc.)Update (Data Graph)Web servicesSDO的核心規(guī)范提供了最基本的API接口用于訪問任何類型的的數(shù)據(jù)源。SDO核心規(guī)范對底層的的數(shù)據(jù)源不做任何假設(shè),因此SQ

41、L,XPath,XQuery以及其他任何數(shù)據(jù)訪問語言都可以作為SDO的查詢語言。這也意味著關(guān)系數(shù)據(jù)庫,對象數(shù)據(jù)庫和XML數(shù)據(jù)源都可以作為SDO的后端存儲。SDO的架構(gòu)基于無連接數(shù)據(jù)圖( disconnected data architecture )的概念。在無連接數(shù)據(jù)圖模型中,客戶端從數(shù)據(jù)源接收一個數(shù)據(jù)圖,更新圖中的數(shù)據(jù),并將更新的數(shù)據(jù)傳回數(shù)據(jù)源。通常更新操作是并行優(yōu)化執(zhí)行的,這意味著,如果數(shù)據(jù)圖中任何一個數(shù)據(jù)在客戶端提交之前已經(jīng)被更新過,那么這個更新請求就會被拒絕,客戶端必須提供相應的錯誤處理。79SDO(Java) Architecture1. SDO Core;這個核心規(guī)范包含了程序員

42、需要面對的主要的組件,包括Data object和data graph。同時這個核心規(guī)范也提供了 一套API用于對數(shù)據(jù)模型進行操作。這套數(shù)據(jù)模型和API使得應用程序可以無差別的對待異構(gòu)數(shù)據(jù)源。2. SDO Data Access Services:這是一個SCA服務,為客戶端提供數(shù)據(jù)訪問接口。這個服務從后端數(shù)據(jù)源讀取數(shù)據(jù)構(gòu)造數(shù)據(jù)圖,并且可以根據(jù)數(shù)據(jù)圖中的變化更新后端數(shù)據(jù)源。3. SDO-enabled Tools:這是一系列相關(guān)的輔助工具,包括代碼生成器(code generator),元模型轉(zhuǎn)換器(metamodel convertor),模式轉(zhuǎn)換器(schema converter),建模

43、工具(data modeling tool)等4. SDO-enabled Runtimes and Frameworks:這是一套運行時環(huán)境和框架,和各種SDO組件一起完成各種任務,比如將數(shù)據(jù)綁定到UI(useri nterface)組件上80SDO ArchitectureDisconnected data architecture81SDO Architecture82Relationshipwith Other TechnologiesData Object:數(shù)據(jù)對象保存具體的數(shù)據(jù),包括原始數(shù)據(jù)以及指向其他數(shù)據(jù)對象的引用。數(shù)據(jù)對象也包含了指向元數(shù)據(jù)(metadata)的引用,這使得SD

44、O的元數(shù)據(jù)能夠被讀取,包括數(shù)據(jù)的類型,關(guān)系和約束等。這方面和Java中的反射機制類似。Data Graph:數(shù)據(jù)圖是一個概念上的數(shù)據(jù)集合。具體的講,數(shù)據(jù)圖是一個有多個樹根(multi-rooted)的數(shù)據(jù)對象的集合。數(shù)據(jù)圖可以記錄所有對數(shù)據(jù)對象的操作,比如創(chuàng)建,刪除,更新等。Metadata: 元數(shù)據(jù)使得開發(fā)工具和運行時環(huán)境能夠動態(tài)地或者靜態(tài)的查看數(shù)據(jù)的屬性,包括數(shù)據(jù)的類型,關(guān)系和約束等SDO提供了一組與數(shù)據(jù)源無關(guān)的元數(shù)據(jù)APIData Mediator Service:數(shù)據(jù)訪問服務負責與后臺的數(shù)據(jù)源進行通信,完成構(gòu)造數(shù)據(jù)圖,更新數(shù)據(jù)圖等操作。83SDO(Java) Components84S

45、DO Components85SDO中核心組件的UML描述Data object將數(shù)據(jù)保存為一個屬性(property)的集合。這些屬性既可以是原始的數(shù)據(jù)類型,也可以是指向其他數(shù)據(jù)對象的引用Data Object可以通過SDO的元數(shù)據(jù)API進行內(nèi)觀( introspect),這使得程序可以在運行時獲取數(shù)據(jù)的類型,關(guān)系,約束等信息。Data object應該至少提供一組動態(tài)API用于讀取和修改對象,包括對象中的屬性(property)。這組動態(tài)API使用XPath表達式在data graph中定位data object。另一方面,靜態(tài)的Java接口也可以通過模型(model)或者模式(schem

46、a)生成。SDO中沒有定義靜態(tài)接口的生成方法,已有的工具可以直接應用到SDO中,比如JAXB的一些實現(xiàn)。Data object支持豐富的關(guān)系(relationship,其實就是量詞),包括1:1, 1:n, n:m,當對象進行復制刪除等操作的時候,這些關(guān)系由Data object負責管理。86SDO(Java)_Data ObjectData graph表示一個數(shù)據(jù)集合,具體的講,它保存了一個Data object的集合。Data graph是數(shù)據(jù)傳遞的最小單位。Data graph負責記錄數(shù)據(jù)的改變:包括添加,刪除,更新。可選的,Data graph可以記錄數(shù)據(jù)變更的整個歷史,提供類似版本管

47、理的功能。最終變更歷史會被ChangeSummary模塊訪問,并對后端數(shù)據(jù)源進行相應的更新。87SDO_Data Graph88SDO_Data Graph89SDO_MatadataVirtual Data Access90SDO(Java)_Use CasesRelational Database Access91SDO(Java)_Use CasesReading and Writing XML92SDO(Java)_Use CasesUse CaseSimplified BigbankIntroduction:BigBank是一虛擬金融機構(gòu),提供商業(yè)的和面向客戶的服務。BigBank的

48、客戶能夠查看帳戶信息,轉(zhuǎn)帳和借貸。Requirements:建立一服務查看帳戶,可被Web應用和Web服務客戶端訪問將應用分為兩個模塊,1.帳戶模塊(account module)來訪問遺留系統(tǒng)中的客戶信息, 2.Web前端模塊(web front-end module)除了能夠重用已有組件,還要能夠進行獨立的開發(fā)和測試服務94The Simplified BigBank ScenarioAccount module:95The Simplified BigBank ScenarioAccount module:bigbank.accountmodule該組件為一個客戶帳號服務用于訪問遺留系統(tǒng)中用戶的帳號信息,可以通過web服務的協(xié)議棧對其進行訪問遠程帳號服務組件,將支票,存款以及當前股票信息集中在一起contains:Account data service component代表了遺留系統(tǒng),為Account service提供支票賬戶,存款賬戶,股票賬戶的信息該賬戶組件調(diào)用一個外部的服務stackquoteservice為股票提供實時的報價Entry point將Account service發(fā)布成一個web服務,可以通過web服務客戶端訪問96The Simplified BigB

溫馨提示

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

評論

0/150

提交評論