SOS的实现教学讲解课件_第1页
SOS的实现教学讲解课件_第2页
SOS的实现教学讲解课件_第3页
SOS的实现教学讲解课件_第4页
SOS的实现教学讲解课件_第5页
已阅读5页,还剩201页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SOA的实现冯志勇天津大学计算机学院2008年10月SOA的实现冯志勇编程模型SCA(ServiceComponentArchitecture)服务组件架构SDO(ServiceDataObject)服务数据对象UseCase(SimplifiedBigbank)2大纲编程模型2大纲编程模型编程模型建立和部署应用软件和解决方案的模式。定义和代表应用软件的结构和运行4什么是编程模型?建立和部署应用软件和解决方案的模式。4什么是编程模型?定义复杂应用的结构和运行howtouseserviceshowtoaggregateservicestogether定义的关键要素howelementsarecreatedhowelementsarelinkedtogetherhowthesolutionisdeployed5SOA模型定义复杂应用的结构和运行5SOA模型来自基本服务概念的动力:6SOA模型“服务仅仅是一个抽象的概括了软件功能.”“开发者通过聚合服务构建服务,使用服务和开发解决方案.”“组成服务转变为综合的解决方案是一个关键的活动”来自基本服务概念的动力:6SOA模型“服务仅仅是一个抽象的概7SOA模型—概念视图7SOA模型—概念视图8SOA模型—元素8SOA模型—元素9SOA模型—元素IntegrationAssemblySCAAssemblyModelAssembleheterogeneouscomponentsintoservicenetworksSCABinding&PolicyModelExposecomponentsasServicesregardlessofunderlyingtechnologyDevelopmentSCAClient&

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

Makesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.InteroperabilityacrossHeterogeneousEnvironmentsSimplifiedCompositionandImplementationforServicesandDataBusinessProcessModeling&ManagementGovernance9SOA模型—元素IntegrationAssemblySCSOA模型中服务组件体系结构SCA&服务数据对象SDO基于SOA模型构建解决方案的新技术将SOA解决方案分解成合适的元素简化面向服务的业务逻辑及其相关联的数据表示10SOA模型中的SCA和SDOSOA模型中服务组件体系结构SCA&服务数据对象SDO10S服务组件体系结构(SCA)是一个规范,它描述用于使用SOA构建应用程序和系统的模型。它可简化使用SOA进行的应用程序开发和实现工作。SCA可简化使用SOA构建的业务应用程序的创建和重用。SCA提供了构建粗粒度组件的机制,这些粗粒度组件由细粒度组件组装而成,因而容易被集成。SCA将传统中间件编程从业务逻辑中分离出来,从而使程序员免受其复杂性的困扰使用SCA使得开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现11SOA模型中的SCA和SDO服务组件体系结构(SCA)是一个规范,它描述用于使用SOASDO—服务数据对象可简化数据访问;可简化数据表示;提供一致和统一的方式来访问数据,而不管数据的物理访问方式。12SOA模型中的SCA和SDOSDO—服务数据对象12SOA模型中的SCA和SDO通过使用SDO:开发者从访问后端数据源的技术细节中解脱出来;编程者得益于静态和动态的API支持;也得益于非连接编程的支持13SOA模型中的SCA和SDO通过使用SDO:13SOA模型中的SCA和SDOSCA&SDO可分开使用;SCA&SDO可一起使用以提供强有力和灵活的SOA的解决途径;在SOA模型的实现中,业务组件可表示为SCA组件,组件之间使用的数据可表示为SDO对象14SOA模型中的SCA和SDOSCA&SDO可分开使用;14SOA模型中的SCA和SDO实现应用的实现提供了灵活性。表现为:技术中性;可重用;合成;动态适应性灵活性是soa编程模型最大的优点之一:从业务的角度来说,灵活性有下面几方面的含义技术中立:与实现无关重用:服务和业务过程的重用,用清楚地定义和松散的服务耦合组合:通过sca中的服务装配,可以将服务组装在一起。对变化的动态适用性:当业务人员提交一个业务流程变化后,不需要等待很长时间就可以得到程序实现15SCA和SDO商业价值实现应用的实现提供了灵活性。表现为:技术中性;可重用;合成;ImprovedFlexibility16SCA和SDO商业价值ImprovedFlexibility16SCA和SDO商提高编程人员的生产效率松散耦合的服务模型能够使soa的开发团队中的人员并行工作,互相之间具有一定的独立性服务重用:重用不仅仅增加了服务业务的灵活性,同时也降低了开发soa应用的成本,提高了系统的开发效率。使用sca可以将一流资源和新建的组建用进行统一的建模。支持由低向上的应用开发方式。同时自顶向下的开发:soa支持自顶向下的应用开发方式。组建可以在实现之前就可以进行装配,而组建的实现可以放在开发周期之后完成。改进的组织管理:sca使用模型的概念。模型用来组织组建。技术中立:sca和sdo提供了对复杂过程和复杂数据对象的抽象。隐藏了服务提供者和服务消费者之间的的复杂关联细节。17SCA和SDO商业价值提高编程人员的生产效率17SCA和SDO商业价值IncreasedProgrammerProductivity18SCA和SDO商业价值SCASolutionJ2EESolutionIncreasedProgrammerProductiv有助于提高业务的敏捷性;将IT构建为组合应用;关注业务目标和业务过程;组合应用中粗粒度且松耦合服务19SOA的简单总结有助于提高业务的敏捷性;19SOA的简单总结SCA—服务组件架构SCA—服务组件架构SCAmodelsthe“A”inSOA-可重用服务组成的系统基于服务的系统的一个编程模型,:构造construction装配assembly部署deployment异质性元数据驱动多语言多容器技术21SCA概要SCAmodelsthe“A”inSOA-可重用一套规范描述了一个使用面向服务的体系结构建设应用程序和系统的模型扩展和补充实施服务的已有办法建立如Web服务的开放标准,22What?...the“A”inSOA一套规范22What?...the“A”inSOASCA将建立SOA应用的过程分解成两个主要的部分组件的实现为外部提供服务为外部提供服务组件的组装将服务引用与真实的服务连接起来,使用各组件之间建立真实而不是虚拟的程序调用与数据传递通道。23What?...the“A”inSOASCA将建立SOA应用的过程分解成两个主要的部分23WhatSCA规范着重强调要将服务的实现和服务的组装与实现的细节进行解藕与底层平台的细节解藕合与如何调用服务的具体方式进行解藕合SCA组件在“业务逻辑”层面是进行设计使用最少的中间件API24What?...the“A”inSOASCA规范着重强调要将服务的实现和服务的组装与实现的细节进行25What?...the“A”inSOA25What?...the“A”inSOA支持多种编程语言面向对象和过程语言

Java,PHP,C++,COBOL以XML为核心技术的语言BPELandXSLT描述性语言SQLandXQuery26What?...the“A”inSOA支持多种编程语言26What?...the“A”inSCA还支持多种程序设计风格异步程序设计和面向消息的程序设计 同步程序设计,即调用——返回的程序设计风格 静态程序设计 动态程序设计 基于连接的 非连接的27What?...the“A”inSOASCA还支持多种程序设计风格27What?...the“同时支持多种服务调用方式WebservicesMessagingsystemsCORBAIIOP重点关注服务的申明,不依赖于服务的具体实现技术BindingsInfrastructurecapabilities28What?...the“A”inSOA同时支持多种服务调用方式28What?...the“A”29SCA和SOA基础结构AssemblyModelClientModelSCAESBServiceRegistryRoutingTransportsPolicyTransactionsSecurityClusteringQoSContainerSCAJavaSpringEJBComposition,VisualizationandManagementArchitecturalDesignDevelopmentOperations29SCA和SOA基础结构AssemblyModelC一系列文档,即组装模型linkingofcomponentsthroughwiringindependentofimplementationlanguage客户端以及服务实现规范implementationofservicecomponentsandofserviceclientsJava&C++specificationsBEPL30SCA家族说明一系列文档,即30SCA家族说明发布的SCA白皮书ChangesintheSCAAssemblyspecificationsincethe0.9releaseTheRecursiveAssemblyModelWS-BPELandSCAWhitePaperEJBIntegrationWhitePaperJAX-WSServicesIntegrationPHPandSCAWhitePaperSCABindingsforWebServices,JMSandEIS/JCA31SCA家族说明发布的SCA白皮书31SCA家族说明SCA规范草案SCAAssemblyModelV0.96SCAClientandImplementationModelforJava(V0.95)SCAClient&ImplementationforBPEL(V0.95)\SCAClient&ImplementationforSpring(V0.95)SCAClient&ImplementationforC++(V0.95)SCAPolicyFrameworkSCAWebServicebindingsSCAJMSBindingSCAEIS/JCABindings32SCA家族说明SCA规范草案32SCA家族说明DevelopersOSOA(OpenSOACollaboration)33开发者和支持者Developers33开发者和支持者Supporters34开发者和支持者Supporters34开发者和支持者SCAvs.WS-*Specifications提供了一个统一的描述服务实现的模型更容易组成服务网络在组装时客户化服务实现提供了一个业务逻辑层的服务实现模型没有像JDBC,

JCA,

JMS…这样的技术API支持多种服务绑定方式,包括Web服务WSDL,SOAPRMI,

IIOPOthers定义了具体的数据转输格式和协议互操作独立于编程模型需要将服务接口显式定义到WSDL文件中35SCAvs.WS-*Specifications提供了Scenario1:Integrate2EJBs,1JavaBean,andtwoWebServicesintoaJSPbasedwebapplication:36SCAvs.J2EEWithoutSCADeveloperhardcodesEJBaccess,JavaBean,andWebServiceinvocationintheirwebapplicationSpecificlow-levelAPIsmustbeusedforeachtechnology(EJB,JavaBean,WebService)TightCoupling:AdditionalcodingrequiredtoreplaceoneEJBwithanotherEJBIfonecomponentneedstobeinvokedasynchronously,lowlevelcodingisnecessaryStructureofthecompositeapplicationishardtovisualizeWithSCADeveloperwiresEJBaccess,JavaBean,andWebServicestogetherusingaVisualTool.Developerusesonewiringeditorforallcomponents(developerdoesnotneedtousespecificAPIs)–nolowlevelAPIsatallLooseCoupling:NewcomponentscanbewiredintoexistingapplicationseasilyNoadditionalcodingneededtoinvokeacomponentasynchronouslyStructureofthesolutioncapturedinassemblymodelScenario1:36SCAvs.J2EEWithoScenario2:Integrate1Rule,1WebService,1EJB,and1CICSTransactionintoaBPELBusinessProcess:37SCAvs.J2EEWithoutSCADeveloperuseswizardstogenerateWSDLforeachcomponentTightCoupling:BusinessprocessmustbemodifiedifaserviceisreplacedbyanotherserviceIfonecomponentneedstobeinvokedasynchronously,acomplexsetofstepsarerequiredtobuildanasynchronousservice.IntegrationDeveloper=HighlyskilledcomponentdeveloperWithSCADeveloperassemblescomponentsdevelopedbyotherdevelopersorcreatesbusinesscomponentsusingWizards/Tools.Theassemblerdoesn’tcarehoweachcomponentisimplementedLooseCoupling:Businessprocessdoesnotneedtobemodifiedifanewservicereplacesanotherservice(thenewserviceissimplyrewiredintotheapplication)SimpletoinvokeacomponentasynchronouslyIntegrationDeveloper=Adeveloperwhocanbuildacompositeapplicationwithoutlow-levelcomponentdevelopmentSkillsScenario2:37SCAvs.J2EEWitho38Roles/Tools/RuntimeSCA=SCAComponentServiceComponentDeveloperIntegrationDeveloperRolesTasksRuntimeTask:Build/AssembleJ2EEComponentsTask:Build/AssembleBusinessProcessesTask:BuildMediationsUsesJavaApplicationDeveloperToolsProcess&IntegrationDeveloperToolsProcessServerESB/ConnectionServerEJB1POJOWebServiceJSF1BusinessProcessStateMachineBusinessRuleI/ForBOTransformAdapterMediation1Mediation2ApplicationServer(w/SCA)WebContainerEJBContainerProcessContainerMediationContainerSCACompositeSCACompositeSCACompositeThisPerson...usesthistool…toperformthistask… …tobuildthistypeofapplication…anddeploysittothisruntime38Roles/Tools/RuntimeSCA=SCA39SCA应用程序架构39SCA应用程序架构40基于SCA的服务组合CompositeAComposite

BComponentAComponentBComponentCComponentD

ServiceRefe-renceRefe-renceRefe-renceCompositeCServiceAServiceBSystemSDOSDOFlexible,powerfulserviceconstructionFlexible,powerfulassemblyFlexible,powerfulbindingServicesareassembledand“wired”together.SCAallowswiringtobedoneusingadiversebindingssuchasWS-*andJMSSCAcomponentsmaybeimplementedusingavarietyoftechnologiesincludingPOJOs,BPEL,SpringBeans,EJBs,etc.

Service40基于SCA的服务组合CompositeCompositContents:AssemblyModelIntroduction,Overview,Composite,System,Binding,ExtensionModelAppendix1:PackagingandDeployment,XMLSchemas,UMLModel,SCAConceptsAppendix2:Policy,Security,Transactions,ReliableMessaging41服务装配模型

Contents:41服务装配模型provides:42服务装配模型

提供一个统一的、语言无关的服务提供机制JavaandC++availablenowBPELandinterpretivelanguages(e.g.XSLT,XQuery)otherlanguagesviaextensibility(including.NET)提供一个与底层技术无关的服务网络建模与组合机制ServicedependenciesResolutionthroughwiring提供服务动态配置与管理的机制PropertiesProtocolsQualitiesofserviceprovides:42服务装配模型提供一个统一的、语言无关DiagramsusedtoRepresentSCAArtifacts43装配模型概述

DiagramsusedtoRepresentSCASOS的实现教学讲解课件SOS的实现教学讲解课件一个SCA的组合是一系列SCA组件的逻辑聚合。一个组合可以包含一个或多个服务组件、服务、引用或连接。一个组合还被赋予一系列属性,通过配置这些属性,可以实现对组合内部组件的配置。从更高的逻辑层次进行SCA系统建模时,一个组合还可以被看作是一个服务组件的实现。46服务组合的具体规范一个SCA的组合是一系列SCA组件的逻辑聚合。46服务组合的可以通过定义“Include”来实现对现有服务组合的复用SCA服务组合是一个部署的基本单元部署时,一个服务组合存储成一个以.composite为扩展名的文本文件,文件遵循XML规范一个服务组合在XML中使用一个<composite>节点来表示,.composite文件的格式在SCA规范中作了详细描述47服务组合的具体规范可以通过定义“Include”来实现对现有服务组合的复用47AsampleAsample一个.composite文件中,”composite”节点必须具有一个“name”属性,属性的值为该服务组合的名字“composite”节点中可以有0个或多个“service”节点”component”节点“reference”节点”wire”节点,还可以包含0个或多个”include”节点。分别表示该组合使用了0个或多个服务实例,组件,引用,连接或现有服务组合的复用。49服务组合的具体规范一个.composite文件中,”composite”节点必component50服务组合的具体规范Componentsareconfiguredinstancesofimplementations.Componentsprovideandconsumeservices.Cponent50服务组合的具体规范ComponentsImplementation51服务组合的具体规范Componentimplementationsareconcreteimplementationsofbusinessfunctionwhichprovideservicesand/orconsumeservices.SCAallowsyoutochoosefromanyoneofawiderangeofimplementationtechnologies,suchasJava,BPELorC++.Services,referencesandpropertiesaretheconfigurableaspectsofanimplementation,SCAreferstothemcollectivelyasthecomponenttype.Atruntime,animplementationinstanceisaspecificruntimeinstantiationoftheimplementationImplementation51服务组合的具体规范CompoSOS的实现教学讲解课件Interface53服务组合的具体规范Interfacesdefineoneormorebusinessfunctions.JavainterfacesWSDL1.1portTypesWSDL2.0interfacesCurrentlysupports:Interface53服务组合的具体规范InterfacesComponentConfiguration54服务组合的具体规范ComponentConfiguration54服务组合的SOS的实现教学讲解课件SOS的实现教学讲解课件Referencerepresentlinkstoservicesusebindingstodescribetheaccessmethodsrepresentedbyareferenceelement57服务组合的具体规范Reference57服务组合的具体规范Referencerepresentlinkstoservicesusebindingstodescribetheaccessmethodsrepresentedbyareferenceelement58服务组合的具体规范Reference58服务组合的具体规范Reference59服务组合的具体规范Reference59服务组合的具体规范Serviceusedtopublishservicesprovidedbyimplementationsaddressablebyothercomponents.60服务组合的具体规范Service60服务组合的具体规范Serviceusedtopublishservicesprovidedbyimplementationsaddressablebyothercomponents.61服务组合的具体规范Service61服务组合的具体规范Service62服务组合的具体规范Service62服务组合的具体规范Inclusion63服务组合的具体规范Inclusion63服务组合的具体规范一个完整的运行环境,它往往是由一系列分布的互相连接的运行环境组成的配置信息往往跟组装的规范没有必然的联系,尽可能的做的灵活,具有很强的适应性一个纯粹的概念,没有具体的实体文件和它对应。由一系列composite文件组成的。是一个目录或者某种抽象的容器,将composite文件部署到容器中就构成了system的一部分。可以看成是一系列include语句,将所有的composite文件包含进来。一个system中的composite并不是固定的,可以通过部署和删除操作来改变整个系统的组成结构。64System一个完整的运行环境,它往往是由一系列分布的互相连接的运行环境65System--example65System--exampleBinding被Service和Reference所使用。Reference使用binding来说明如何去调用一个service而service使用binding来说明客户端应该如何来调用本服务,这跟WSDL中的binding概念一致66BindingBinding被Service和Reference所使用。6Differenttypesofbindings:SCAserviceWebservicestatelesssessionEJBdatabasestoredprocedureEISservice67BindingDifferenttypesofbindings:67SCA提供一个简单、一致的模型来创建和调用服务,他具有如下特点。从协议和中间件中解脱出来,着重关注业务逻辑;Java和C++规范均可使用用可以使用业务层面接口来访问服务;支持迟绑定各种传输重用服务实现使用依赖injection,因此并不需要使用SCAAPI

68客户端和实现模型68客户端和实现模型69客户端和实现模型ServiceImplementationwithSCA?BusinessLogicJ2EE1.2J2EE1.3J2EE1.4J2EE5JAX-RPCJAX-WSJSR109JSR181JSR277JSR-*SOAPWSDLWS-AddressingWS-SecurityWS-TransactionWS-ReliableMessagingWS-*AssemblyBindingPolicyProfilesImplementationPolicyProfilesFocusonthebusinesslogicnottheenablement?InfrastructureInfrastructure69客户端和实现模型ServiceImplementatiContents(SCAJavaversion):基本组件实现模型基本客户端模型错误处理异步编程JavaAPIJava标注70客户端和实现模型Contents(SCAJavaversion):70BriefIntroduction(JavaVersion)SCAJava的客户端实现模型制定了一系列Java类和接口用于实现SCA装配模型中定义的概念。客户端模型可以和已有的编程模型一起使用,或者构建在已有的编程模型上,比如Spring和J2SE71客户端和实现模型BriefIntroduction(JavaVersiBriefIntroduction(JavaVersion)装配模型概念到Java的映射,例如组件,组件类型,服务,引用,属性实现异步和会话服务在Java的中的实现组件生命周期管理在Java中的实现指定服务和实现的作用域在Java中的实现72客户端和实现模型BriefIntroduction(JavaVersiContents(C++version):基本的组件实现模型基本的客户端模型错误处理C++API73客户端和实现模型Contents(C++version):73客户端和实SpecificationDocuments,APIpackages,Samplecodes,etc.canbedownloadedfromOSOA’swebsite:ApacheTuscany/tuscany/home.html74客户端和实现模型SpecificationDocuments,APIp服务数据对象SDO

--ServiceDataObjects服务数据对象SDO

--ServiceDataObjecSDO规范草案ServiceDataObjectsSpecificationssdo的技术报告什么是SDO2.1;PHP和SDO白皮书;比较SDO和数据访问对象模式;比较SDO与EJB3.0数据持久性76与SDO相关的规范文档SDO规范草案76与SDO相关的规范文档SDO是ServiceDataObject的缩写用于访问和更新数据。其特点就是对松耦合的数据进行了优化,应用乐观锁支持Checkin/Checkout模型在SCA中,SDO是推荐使用的数据访问模型,但并不是必须的SCA也支持其他的数据访问模型,比如JAX-B(forJava)SCA和SDO配合使用是最合适的,SDO提供了一套与数据源无关的API接口SDO数据访问服务本身也可以认为是SCA的一个组件77SDOwithSCASDO是ServiceDataObject的缩写77SD78SDOServiceDataObjectsmakesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.Results(DataGraph)QueryRelationalAnydatasource(XML,JMS,JCA,etc.)Update(DataGraph)Webservices78SDOServiceDataObjectsmakeSDO的核心规范提供了最基本的API接口用于访问任何类型的的数据源。SDO核心规范对底层的的数据源不做任何假设,因此SQL,XPath,XQuery以及其他任何数据访问语言都可以作为SDO的查询语言。这也意味着关系数据库,对象数据库和XML数据源都可以作为SDO的后端存储。SDO的架构基于无连接数据图(

disconnecteddataarchitecture

)的概念。在无连接数据图模型中,客户端从数据源接收一个数据图,更新图中的数据,并将更新的数据传回数据源。通常更新操作是并行优化执行的,这意味着,如果数据图中任何一个数据在客户端提交之前已经被更新过,那么这个更新请求就会被拒绝,客户端必须提供相应的错误处理。79SDO(Java)ArchitectureSDO的核心规范提供了最基本的API接口用于访问任何类型的的1.SDOCore;这个核心规范包含了程序员需要面对的主要的组件,包括Dataobject和datagraph。同时这个核心规范也提供了一套API用于对数据模型进行操作。这套数据模型和API使得应用程序可以无差别的对待异构数据源。2.SDODataAccessServices:这是一个SCA服务,为客户端提供数据访问接口。这个服务从后端数据源读取数据构造数据图,并且可以根据数据图中的变化更新后端数据源。3.SDO-enabledTools:这是一系列相关的辅助工具,包括代码生成器(codegenerator),元模型转换器(metamodelconvertor),模式转换器(schemaconverter),建模工具(datamodelingtool)等4.SDO-enabledRuntimesandFrameworks:这是一套运行时环境和框架,和各种SDO组件一起完成各种任务,比如将数据绑定到UI(userinterface)组件上80SDOArchitecture1.SDOCore;这个核心规范包含了程序员需要面对的主Disconnecteddataarchitecture81SDOArchitectureDisconnecteddataarchitecture82Relationship

withOtherTechnologies82Relationship

withOtherTechDataObject:数据对象保存具体的数据,包括原始数据以及指向其他数据对象的引用。数据对象也包含了指向元数据(metadata)的引用,这使得SDO的元数据能够被读取,包括数据的类型,关系和约束等。这方面和Java中的反射机制类似。DataGraph:数据图是一个概念上的数据集合。具体的讲,数据图是一个有多个树根(multi-rooted)的数据对象的集合。数据图可以记录所有对数据对象的操作,比如创建,删除,更新等。Metadata:元数据使得开发工具和运行时环境能够动态地或者静态的查看数据的属性,包括数据的类型,关系和约束等SDO提供了一组与数据源无关的元数据APIDataMediatorService:数据访问服务负责与后台的数据源进行通信,完成构造数据图,更新数据图等操作。83SDO(Java)ComponentsDataObject:数据对象保存具体的数据,包括原始数据84SDOComponents84SDOComponents85SDO中核心组件的UML描述85SDO中核心组件的UML描述Dataobject将数据保存为一个属性(property)的集合。这些属性既可以是原始的数据类型,也可以是指向其他数据对象的引用DataObject可以通过SDO的元数据API进行内观(introspect),这使得程序可以在运行时获取数据的类型,关系,约束等信息。Dataobject应该至少提供一组动态API用于读取和修改对象,包括对象中的属性(property)。这组动态API使用XPath表达式在datagraph中定位dataobject。另一方面,静态的Java接口也可以通过模型(model)或者模式(schema)生成。SDO中没有定义静态接口的生成方法,已有的工具可以直接应用到SDO中,比如JAXB的一些实现。Dataobject支持丰富的关系(relationship,其实就是量词),包括1:1,1:n,n:m,当对象进行复制删除等操作的时候,这些关系由Dataobject负责管理。86SDO(Java)__DataObjectDataobject将数据保存为一个属性(propertyDatagraph表示一个数据集合,具体的讲,它保存了一个Dataobject的集合。Datagraph是数据传递的最小单位。Datagraph负责记录数据的改变:包括添加,删除,更新。可选的,Datagraph可以记录数据变更的整个历史,提供类似版本管理的功能。最终变更历史会被ChangeSummary模块访问,并对后端数据源进行相应的更新。87SDO__DataGraphDatagraph表示一个数据集合,具体的讲,它保存了一个88SDO__DataGraph88SDO__DataGraph89SDO__Matadata89SDO__MatadataVirtualDataAccess90SDO(Java)__UseCasesVirtualDataAccess90SDO(Java)RelationalDatabaseAccess91SDO(Java)__UseCasesRelationalDatabaseAccess91SDReadingandWritingXML92SDO(Java)__UseCasesReadingandWritingXML92SDO(JUseCase—SimplifiedBigbankUseCase—SimplifiedBigbankIntroduction:BigBank是一虚拟金融机构,提供商业的和面向客户的服务。BigBank的客户能够查看帐户信息,转帐和借贷。Requirements:建立一服务查看帐户,可被Web应用和Web服务客户端访问将应用分为两个模块,1.帐户模块(accountmodule)来访问遗留系统中的客户信息,

2.Web前端模块(webfront-endmodule)除了能够重用已有组件,还要能够进行独立的开发和测试服务94TheSimplifiedBigBankScenarioIntroduction:94TheSimplifiedAccountmodule:95TheSimplifiedBigBankScenarioAccountmodule:95TheSimplifieAccountmodule:bigbank.accountmodule该组件为一个客户帐号服务用于访问遗留系统中用户的帐号信息,可以通过web服务的协议栈对其进行访问远程帐号服务组件,将支票,存款以及当前股票信息集中在一起contains:Accountdataservicecomponent代表了遗留系统,为Accountservice提供支票账户,存款账户,股票账户的信息该账户组件调用一个外部的服务stackquoteservice为股票提供实时的报价Entrypoint将Accountservice发布成一个web服务,可以通过web服务客户端访问96TheSimplifiedBigBankScenarioAccountmodule:96TheSimplifieWebfront-endmodule:97TheSimplifiedBigBankScenarioWebfront-endmodule:97TheSimWebfront-endmodule:bigbank.webclientmoduleprovidesbrowser-basedfunctionalityforloggingintothesystemandaccessingaccountinformation.contains:loginservice&profileservicecomponentsexternalaccountserviceassemblythatconfiguresandwirestheelements98TheSimplifiedBigBankScenarioWebfront-endmodule:98TheSim创建bigbank.accountmoduleAccountDataServiceImplementationAccountDataServiceComponentStockQuoteWebServiceExternalServiceAccountServiceImplementationAccountServiceComponentAccountServiceWebServiceEntryPoint99开发创建bigbank.accountmodule99开发创建bigbank.webclientmoduleLoginServiceImplementation提供了LoginService的实现,然后将其定义成一个SCAcomponentProfileServiceImplementation提供了ProfileService的实现,然后将其定义成为一个SCAcomponentAccountService是一个外部引用,通过Web服务的协议栈访问。LoginHTMLPage和LoginServlet负责处理用户提交的Web请求,最终SummaryJSP通过调用AccountService获取帐户信息,并将结果通过HTML显示给web用户。100开发创建bigbank.webclientmodule100开创建bigbank.accountsubsystem创建bigbank.webclientsubsystem模块和子系统部署101部署创建bigbank.accountsubsystem101部102部署102部署SOA的编程模型,SCA和SDO的概念,SCA和SDO是SOA编程模型的重要组成部分。应用案例:Bigbank,这个案例基本覆盖了SCA和SDO的基本概念103总结SOA的编程模型,103总结SCASpecification/technologies/commonj/index.jsp/developerworks/library/specification/ws-sca//devcenter/sca//technology/webservices/sca//scaSDOSpecification/technologies/commonj/index.jsp/developerworks/library/specification/ws-sdo//technology/webservices/sca/http://www.xcalia/xdn/specs/sdohttp://scaSCASampleapplication“Buildingyourfirstapplication–SimplifiedBigBank”/technologies/commonj/index.jsp/developerworks/library/specification/ws-sca//devcenter/sca//technology/webservices/sca//scaWS-IBasicProfile/deliverables/workinggroup.aspx?wg=basicprofile104ReferencesSCASpecification104ReferencesSOA的实现冯志勇天津大学计算机学院2008年10月SOA的实现冯志勇编程模型SCA(ServiceComponentArchitecture)服务组件架构SDO(ServiceDataObject)服务数据对象UseCase(SimplifiedBigbank)106大纲编程模型2大纲编程模型编程模型建立和部署应用软件和解决方案的模式。定义和代表应用软件的结构和运行108什么是编程模型?建立和部署应用软件和解决方案的模式。4什么是编程模型?定义复杂应用的结构和运行howtouseserviceshowtoaggregateservicestogether定义的关键要素howelementsarecreatedhowelementsarelinkedtogetherhowthesolutionisdeployed109SOA模型定义复杂应用的结构和运行5SOA模型来自基本服务概念的动力:110SOA模型“服务仅仅是一个抽象的概括了软件功能.”“开发者通过聚合服务构建服务,使用服务和开发解决方案.”“组成服务转变为综合的解决方案是一个关键的活动”来自基本服务概念的动力:6SOA模型“服务仅仅是一个抽象的概111SOA模型—概念视图7SOA模型—概念视图112SOA模型—元素8SOA模型—元素113SOA模型—元素IntegrationAssemblySCAAssemblyModelAssembleheterogeneouscomponentsintoservicenetworksSCABinding&PolicyModelExposecomponentsasServicesregardlessofunderlyingtechnologyDevelopmentSCAClient&

ImplementationModelSimplifyimplementationofbusinessservicesbyfocusingonbusinesslogicnotoninfrastructureSDO-ServiceDataObject

Makesiteasytomanagedataexchangeacrossserviceswithheterogeneousdataformats.InteroperabilityacrossHeterogeneousEnvironmentsSimplifiedCompositionandImplementationforServicesandDataBusinessProcessModeling&ManagementGovernance9SOA模型—元素IntegrationAssemblySCSOA模型中服务组件体系结构SCA&服务数据对象SDO基于SOA模型构建解决方案的新技术将SOA解决方案分解成合适的元素简化面向服务的业务逻辑及其相关联的数据表示114SOA模型中的SCA和SDOSOA模型中服务组件体系结构SCA&服务数据对象SDO10S服务组件体系结构(SCA)是一个规范,它描述用于使用SOA构建应用程序和系统的模型。它可简化使用SOA进行的应用程序开发和实现工作。SCA可简化使用SOA构建的业务应用程序的创建和重用。SCA提供了构建粗粒度组件的机制,这些粗粒度组件由细粒度组件组装而成,因而容易被集成。SCA将传统中间件编程从业务逻辑中分离出来,从而使程序员免受其复杂性的困扰使用SCA使得开发人员集中精力编写业务逻辑,而不必将大量的时间花费在更为底层的技术实现115SOA模型中的SCA和SDO服务组件体系结构(SCA)是一个规范,它描述用于使用SOASDO—服务数据对象可简化数据访问;可简化数据表示;提供一致和统一的方式来访问数据,而不管数据的物理访问方式。116SOA模型中的SCA和SDOSDO—服务数据对象12SOA模型中的SCA和SDO通过使用SDO:开发者从访问后端数据源的技术细节中解脱出来;编程者得益于静态和动态的API支持;也得益于非连接编程的支持117SOA模型中的SCA和SDO通过使用SDO:13SOA模型中的SCA和SDOSCA&SDO可分开使用;SCA&SDO可一起使用以提供强有力和灵活的SOA的解决途径;在SOA模型的实现中,业务组件可表示为SCA组件,组件之间使用的数据可表示为SDO对象118SOA模型中的SCA和SDOSCA&SDO可分开使用;14SOA模型中的SCA和SDO实现应用的实现提供了灵活性。表现为:技术中性;可重用;合成;动态适应性灵活性是soa编程模型最大的优点之一:从业务的角度来说,灵活性有下面几方面的含义技术中立:与实现无关重用:服务和业务过程的重用,用清楚地定义和松散的服务耦合组合:通过sca中的服务装配,可以将服务组装在一起。对变化的动态适用性:当业务人员提交一个业务流程变化后,不需要等待很长时间就可以得到程序实现119SCA和SDO商业价值实现应用的实现提供了灵活性。表现为:技术中性;可重用;合成;ImprovedFlexibility120SCA和SDO商业价值ImprovedFlexibility16SCA和SDO商提高编程人员的生产效率松散耦合的服务模型能够使soa的开发团队中的人员并行工作,互相之间具有一定的独立性服务重用:重用不仅仅增加了服务业务的灵活性,同时也降低了开发soa应用的成本,提高了系统的开发效率。使用sca可以将一流资源和新建的组建用进行统一的建模。支持由低向上的应用开发方式。同时自顶向下的开发:soa支持自顶向下的应用开发方式。组建可以在实现之前就可以进行装配,而组建的实现可以放在开发周期之后完成。改进的组织管理:sca使用模型的概念。模型用来组织组建。技术中立:sca和sdo提供了对复杂过程和复杂数据对象的抽象。隐藏了服务提供者和服务消费者之间的的复杂关联细节。121SCA和SDO商业价值提高编程人员的生产效率17SCA和SDO商业价值IncreasedProgrammerProductivity122SCA和SDO商业价值SCASolutionJ2EESolutionIncreasedProgrammerProductiv有助于提高业务的敏捷性;将IT构建为组合应用;关注业务目标和业务过程;组合应用中粗粒度且松耦合服务123SOA的简单总结有助于提高业务的敏捷性;19SOA的简单总结SCA—服务组件架构SCA—服务组件架构SCAmodelsthe“A”inSOA-可重用服务组成的系统基于服务的系统的一个编程模型,:构造construction装配assembly部署deployment异质性元数据驱动多语言多容器技术125SCA概要SCAmodelsthe“A”inSOA-可重用一套规范描述了一个使用面向服务的体系结构建设应用程序和系统的模型扩展和补充实施服务的已有办法建立如Web服务的开放标准,126What?...the“A”inSOA一套规范22What?...the“A”inSOASCA将建立SOA应用的过程分解成两个主要的部分组件的实现为外部提供服务为外部提供服务组件的组装将服务引用与真实的服务连接起来,使用各组件之间建立真实而不是虚拟的程序调用与数据传递通道。127What?...the“A”inSOASCA将建立SOA应用的过程分解成两个主要的部分23WhatSCA规范着重强调要将服务的实现和服务的组装与实现的细节进行解藕与底层平台的细节解藕合与如何调用服务的具体方式进行解藕合SCA组件在“业务逻辑”层面是进行设计使用最少的中间件API128What?...the“A”inSOASCA规范着重强调要将服务的实现和服务的组装与实现的细节进行129What?...the“A”inSOA25What?...the“A”inSOA支持多种编程语言面向对象和过程语言

Java,PHP,C++,COBOL以XML为核心技术的语言BPELandXSLT描述性语言SQLandXQuery130What?...the“A”inSOA支持多种编程语言26What?...the“A”inSCA还支持多种程序设计风格异步程序设计和面向消息的程序设计 同步程序设计,即调用——返回的程序设计风格 静态程序设计 动态程序设计 基于连接的 非连接的131What?...the“A”inSOASCA还支持多种程序设计风格27What?...the“同时支持多种服务调用方式WebservicesMessagingsystemsCORBAIIOP重点关注服务的申明,不依赖于服务的具体实现技术BindingsInfrastructurecapabilities132What?...the“A”inSOA同时支持多种服务调用方式28What?...the“A”133SCA和SOA基础结构AssemblyModelClientModelSCAESBServiceRegistryRoutingTransportsPolicyTransactionsSecurityClusteringQoSContainerSCAJavaSpringEJBComposition,VisualizationandManagementArchitecturalDesignDevelopmentOperations29SCA和SOA基础结构AssemblyModelC一系列文档,即组装模型linkingofcomponentsthroughwiringindependentofimplementationlanguage客户端以及服务实现规范implementationofservicecomponentsandofserviceclientsJava&C++specificationsBEPL134SCA家族说明一系列文档,即30SCA家族说明发布的SCA白皮书ChangesintheSCAAssemblyspecificationsincethe0.9releaseTheRecursiveAssemblyModelWS-BPELandSCAWhitePaperEJBIntegrationWhitePaperJAX-WSServicesIntegrationPHPandSCAWhitePaperSCABindingsforWebServices,JMSandEIS/JCA135SCA家族说明发布的SCA白皮书31SCA家族说明SCA规范草案SCAAssemblyModelV0.96SCAClientandImplementationModelforJava(V0.95)SCAClient&ImplementationforBPEL(V0.95)\SCAClient&ImplementationforSpring(V0.95)SCAClient&ImplementationforC++(V0.95)SCAPolicyFrameworkSCAWebServicebindingsSCAJMSBindingSCAEIS/JCABindings136SCA家族说明SCA规范草案32SCA家族说明DevelopersOSOA(OpenSOACollaboration)137开发者和支持者Developers33开发者和支持者Supporters138开发者和支持者Supporters34开发者和支持者SCAvs.WS-*Specifications提供了一个统一的描述服务实现的模型更容易组成服务网络在组装时客户化服务实现提供了一个业务逻辑层的服务实现模型没有像JDBC,

JCA,

JMS…这样的技术API支持多种服务绑定方式,包括Web服务WSDL,SOAPRMI,

IIOPOthers定义了具体的数据转输格式和协议互操作独立于编程模型需要将服务接口显式定义到WSDL文件中139SCAvs.WS-*Specifications提供了Scenario1:Integrate2EJBs,1JavaBean,andtwoWebServicesintoaJSPbasedwebapplication:140SCAvs.J2EEWithoutSCADeveloperhardcodesEJBaccess,JavaBean,andWebServiceinvocationintheirwebapplicationSpecificlow-levelAPIsmustbeusedforeachtechnology(EJB,JavaBean,WebService)TightCoupling:AdditionalcodingrequiredtoreplaceoneEJBwithanotherEJBIfonecomponentneedstobeinvokedasynchronously,lowlevelcodingisnecessaryStructureofthecompositeapplicationishardtovisualizeWithSCADeveloperwiresEJBaccess,JavaBean,andWebServicestogetherusingaVisualTool.Developerusesonewiringeditorforallcomponents(developerdoesnotneedtousespecificAPIs)–nolowlevelAPIsatallLooseCoupling:NewcomponentscanbewiredintoexistingapplicationseasilyNoadditionalcodingneededtoinvokeacomponentasynchron

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论