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

下載本文檔

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

文檔簡介

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

2、d togetherhow the solution is deployed5SOA 模型來自基本服務(wù)概念的動力:6SOA模型“服務(wù)僅僅是一個(gè)抽象的概括了軟件功能 .”“開發(fā)者通過聚合服務(wù)構(gòu)建服務(wù),使用服務(wù)和開發(fā)解決方案.”“組成服務(wù)轉(zhuǎn)變?yōu)榫C合的解決方案是一個(gè)關(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模型中服務(wù)組件體系結(jié)構(gòu)SCA&服務(wù)數(shù)據(jù)對象SDO基于SOA模型構(gòu)建解決方案的新技術(shù)將SOA解決方案分解成合適的元素簡化面向服務(wù)的業(yè)務(wù)邏輯及其相關(guān)聯(lián)的數(shù)據(jù)表示10SOA模型中的SCA和SDO服務(wù)組件體系結(jié)構(gòu)(SCA)是一個(gè)規(guī)范,它描述用于使用 SOA 構(gòu)建應(yīng)用程序和系統(tǒng)的模型

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

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

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

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

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

10、輯”層面是進(jìn)行設(shè)計(jì)使用最少的中間件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è)計(jì)風(fēng)格異步程序設(shè)計(jì)和面向消息的程序設(shè)計(jì)同步程序設(shè)計(jì),即調(diào)用返回的程序設(shè)計(jì)風(fēng)格靜態(tài)程序設(shè)計(jì)動態(tài)程序設(shè)計(jì)基于連接的非連接的27What?. the “A” in SOA同時(shí)支持多種服務(wù)調(diào)用方式Web services Messagi

11、ng systems CORBA IIOP 重點(diǎn)關(guān)注服務(wù)的申明,不依賴于服務(wù)的具體實(shí)現(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 客戶端以及服務(wù)實(shí)現(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提供了一個(gè)統(tǒng)一的描述服務(wù)實(shí)現(xiàn)的模型更容易組成服務(wù)網(wǎng)絡(luò)在組裝時(shí)客戶化服務(wù)實(shí)現(xiàn)提供了一個(gè)業(yè)務(wù)邏輯層的服務(wù)實(shí)現(xiàn)模型沒有像JDBC, JCA, JMS這樣的技術(shù)API支持多種服務(wù)綁定方式,包括Web服務(wù)WSDL,SOAPRMI, IIOPOthers定義了具體的數(shù)據(jù)轉(zhuǎn)輸格式和協(xié)議互操作獨(dú)立于編程模型需要將服務(wù)接口顯式定義到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 應(yīng)用程序架構(gòu)40基于SCA的服務(wù)組合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服務(wù)裝配模型 provides:42服務(wù)裝配模型 提供一個(gè)統(tǒng)一的、語言無關(guān)的服務(wù)提供機(jī)制Java and C+ available now BPEL and interpretive languages (e.g. XSLT, XQuery) other languages via extensibility (including .NE

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

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

29、0個(gè)或多個(gè)”include”節(jié)點(diǎn)。分別表示該組合使用了0個(gè)或多個(gè)服務(wù)實(shí)例,組件,引用,連接或現(xiàn)有服務(wù)組合的復(fù)用。49服務(wù)組合的具體規(guī)范component50服務(wù)組合的具體規(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服務(wù)組合的具體規(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服務(wù)組合的具體規(guī)范Interfaces define one or more business functions.Java interfacesWSDL 1.1 portTypesWSDL 2.0 interfacesCurrently supports:Component C

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

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

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

35、務(wù),這跟WSDL中的binding概念一致66BindingDifferent types of bindings:SCA serviceWeb servicestateless session EJBdata base stored procedureEIS service67BindingSCA提供一個(gè)簡單、一致的模型來創(chuàng)建和調(diào)用服務(wù),他具有如下特點(diǎn)。從協(xié)議和中間件中解脫出來,著重關(guān)注業(yè)務(wù)邏輯;Java和C+規(guī)范均可使用用可以使用業(yè)務(wù)層面接口來訪問服務(wù);支持遲綁定各種傳輸重用服務(wù)實(shí)現(xiàn)使用依賴injection, 因此并不需要使用SCA API 68客戶端和實(shí)現(xiàn)模型69客戶端和實(shí)現(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):基本組件實(shí)現(xiàn)模型基本客戶端模型錯(cuò)誤處理異步編程Java APIJava 標(biāo)注70客戶端和實(shí)現(xiàn)模型Brief Introduction (Java Version)SCA Java的客戶端實(shí)現(xiàn)模型制定了一系列Java類和接口用于實(shí)現(xiàn)SCA裝配模型中定義的概念??蛻舳四P涂梢院鸵延械木幊棠P鸵黄鹗褂?,或者構(gòu)建在已有的編程模型上,比如Spring和J2SE71客戶端和實(shí)現(xiàn)模型Brief Introduction (Java Version)裝配模型概念到Java的映射,例如組件,組件類型,服務(wù),引用,屬性實(shí)現(xiàn)異步

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

39、ce Data Objects Specifications sdo的技術(shù)報(bào)告什么是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ù)。其特點(diǎn)就是對松耦合的數(shù)據(jù)進(jìn)行了優(yōu)化,應(yīng)用樂觀鎖支持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ù)訪問服務(wù)本身也可

40、以認(rèn)為是SCA的一個(gè)組件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ù)源接收一個(gè)數(shù)據(jù)圖,更新圖中的數(shù)據(jù),并將更新的數(shù)據(jù)傳回?cái)?shù)據(jù)源。通常更新操作是并行優(yōu)化執(zhí)行的,這意味著,如果數(shù)據(jù)圖中任何一個(gè)數(shù)據(jù)在客戶端提交之前已經(jīng)被更新過,那么這個(gè)更新請求就會被拒絕,客戶端必須提供相應(yīng)的錯(cuò)誤處理。79SDO(Java) Architecture1. SDO Core;這個(gè)核心規(guī)范包含了程序員

42、需要面對的主要的組件,包括Data object和data graph。同時(shí)這個(gè)核心規(guī)范也提供了 一套API用于對數(shù)據(jù)模型進(jìn)行操作。這套數(shù)據(jù)模型和API使得應(yīng)用程序可以無差別的對待異構(gòu)數(shù)據(jù)源。2. SDO Data Access Services:這是一個(gè)SCA服務(wù),為客戶端提供數(shù)據(jù)訪問接口。這個(gè)服務(wù)從后端數(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:這是一套運(yùn)行時(shí)環(huán)境和框架,和各種SDO組件一起完成各種任務(wù),比如將數(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中的反射機(jī)制類似。Data Graph:數(shù)據(jù)圖是一個(gè)概念上的數(shù)據(jù)集合。具體的講,數(shù)據(jù)圖是一個(gè)有多個(gè)樹根(multi-rooted)的數(shù)據(jù)對象的集合。數(shù)據(jù)圖可以記錄所有對數(shù)據(jù)對象的操作,比如創(chuàng)建,刪除,更新等。Metadata: 元數(shù)據(jù)使得開發(fā)工具和運(yùn)行時(shí)環(huán)境能夠動態(tài)地或者靜態(tài)的查看數(shù)據(jù)的屬性,包括數(shù)據(jù)的類型,關(guān)系和約束等SDO提供了一組與數(shù)據(jù)源無關(guān)的元數(shù)據(jù)APIData Mediator Service:數(shù)據(jù)訪問服務(wù)負(fù)責(zé)與后臺的數(shù)據(jù)源進(jìn)行通信,完成構(gòu)造數(shù)據(jù)圖,更新數(shù)據(jù)圖等操作。83SDO(Java) Components84S

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

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

47、理的功能。最終變更歷史會被ChangeSummary模塊訪問,并對后端數(shù)據(jù)源進(jìn)行相應(yīng)的更新。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是一虛擬金融機(jī)構(gòu),提供商業(yè)的和面向客戶的服務(wù)。BigBank的

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

溫馨提示

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

評論

0/150

提交評論