声明式服务总体设计ppt课件_第1页
声明式服务总体设计ppt课件_第2页
声明式服务总体设计ppt课件_第3页
声明式服务总体设计ppt课件_第4页
声明式服务总体设计ppt课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

.,声明式服务设计,关于DService框架的总体介绍,罗佳2009-12,.,目录,简介面向服务构件模型Dservice概述Dservice框架架构及主要处理流程Dservice构件开发,.,基于构件,什么是构件构件是一个物理的、可替换的系统组成部分,它包装了实现体且提供了对一组接口的实现方法。构件自身必须相容于接口且实现接口,接口表示了驻留在构件内的成分所实现的服务。这些服务定义了的一个整合的行为,并从一些构件实例提供给其它客户端构件实例。(OMG对构件的定义)为什么使用构件通过用构件替代框架内部相互协作的类,以增大构成应用成分的粒度;利用构件的接口调用和组装实现框架扩展机制;提升软件的复用度;.,.,面向服务,Service-OrientedComputing一种典型使用服务作为其功能的组成部分的设计模式。,.,面向服务的特点,松耦合服务消费者不需要知道关于服务实现的任何细节。延迟绑定服务消费者只需要在运行时通过注册中心索取自己需要的服务实现。动态性服务消费者使用服务时不依赖于服务注册中心每次都给相同的服务对象。位置透明服务提供者和消费者都不需要知道对方所处的位置或环境(如本地、远程、多种协议等。),.,面向服务构件模型,.,面向服务构件模型的原则,一个服务提供一种功能。一个服务是使用特定的语法、行为通过服务规范来被其他的服务所依赖。构件可以通过公开的服务规范来使用服务。面向服务交互模式被用来解决构件在运行时对服务的依赖问题。构件被描述为具有服务规范相同的特征。整个环境通过服务规范来提供一个服务的可替换性。,.,面向服务与基于构件相结合的优势,结合之前传统的基于构件模型能够识别规范并适配组装不同的实现,但是他阻碍不同实现间运行时的动态变化。传统的面向服务模型在运行时通过服务规范具有动态性,但是仅靠服务规范是无法表达自己的需求的。,结合之后即具有运行时面向服务的动态性,又可以根据自己的需求来自由组合实际的应用。,.,面向服务构件模型分析方法,1.将应用完全分解抽象成为服务,并确保各个服务在语意和行为上相对独立。,.,分析方法(2),2.服务定义好之后就可以定义一系列构件,实现这些服务,如果确认服务是相关的,则可以在一个构件中实现他们。,.,分析方法(3),3.使用一个核心构件通过服务组合起其他构件,该构件用于处理和引导业务逻辑的执行。,.,DService概述,.,OSGi框架与服务,OSGiserviceplatform是一个开放并且提供统一接口标准的体系框架,基于这个体系框架,各方开发人员可以协调地联合起来开发,部署以及管理向用户提供的各种服务。,OSGi服务层定义了一个和生命周期层紧密结合的动态协作模型。一个服务(service)就是一个通过服务登记来注册到一个或者多个Java接口下的Java对象。,.,使用OSGi服务开发的局限性,需要组合服务以提供更高层的服务。需要开发人员自己管理服务的发布、解除、发现并跟踪服务等非功能性需求。需要服务提供者启动时主动激活服务,延长启动时间。服务提供者无法按需分配服务占用的资源。侵入式开发,完全依赖OSGi框架的API,.,DeclarativeServices,DeclarativeServices是一个基于OSGi框架面向服务的构件模型。DeclarativeServices采用服务组件的延迟加载以及组件生命周期管理的方式来控制对于内存的占用以及快速的启动.在DeclarativeServices中,Component可以是Service的提供者和引用者.DeclarativeServices使用XML来描述构件。,.,DService简介,DService框架是提供了一个简单的、可扩展的、基于POJO的面向服务构件开发模型;是基于OSGi扩展规范中的DeclarativeServicesSpecification的参考实现;他提供声明元数据的方式开发OSGi环境中的服务构件,由框架管理构件实例,从而简化了因管理动态环境而导致的非功能性需求;他可以通过集成功能性或非功能性方面构件快速开发出一个业务构件。非侵入式编程,开发人员只需要关心自己的业务逻辑。,.,设计目标,简化开发:所有的构件实现都是简单的POJO,不需要依赖任何DService或者OSGi规范的API。关注点分离:通过方面构件的引入,每一类方面构件负责处理某一方面的问题,实现关注点的分离,从而简化设计和开发的复杂度。延迟激活:服务构件模型必须允许延迟激活一个服务构件,延迟激活允许直到需要的时候才加载和创建服务构件对象,因此,可以减少资源的开销。向后兼容:服务构件模型必须提供和已经存在的OSGi服务模型相似的操作。,.,特性,简化开发方式服务的动态性管理服务对象依赖注入面向方面开发的支持,构件延迟实例化构件框架高可扩展性可扩展的元数据编译期代码织入,.,特性(1),简化开发方式:开发一个应用之需要开发若干POJO和相应的xml元数据,不再需要关注非业务的需求。非侵入式开发:无OSGi或DService相关API。容器管理构件:容器控制组装构件和控制构件生命周期。服务的动态性管理:Dservice框架与OSGi框架相结合,任何关于服务的管理都由DService框架来完成。发布服务:框架将以服务工厂的形式为构件发布服务。引用服务:框架自带服务跟踪器,监听OSGi环境的服务。受管服务:构件实现的服务可以受管于ConfigurationAdmin。,.,特性(2),服务对象依赖注入:框架可以为构件实例管理所有的服务依赖。依赖注入:包括方法注入和字段注入绑定策略:声明引用服务对象的策略引用基数:是引用单个还是多个指定规范的服务,是可选的还是强制的引用。面向方面开发的支持:开发人员可以实现自己的拦截器,拦截构件实例中的公共方法,拦截点可以位于方法前、方法后、出异常后和最终(finally)。切入点表达式:需要拦截的方法也可以用过简单的表达式来进行匹配,或者开发人员自己定义需要拦截方法的规则,.,特性(3),构件延迟实例化:构件实例可以等到需要他时才被创建,这样可以避免启动占用太多的时间和空间。可扩展:Dservice框架的高可扩展性可以让开发人员自己为框架动态的增加其自定义的功能(比如提供一个远程的OSGi服务、使用JMX等)。编译期代码织入:生成子类继承用于开发的构件实现类,保持用户代码纯洁、可调试。,.,Dservice框架的组成结构,.,子模块构成,.,loong-dservice-ImplE-R图,.,DService框架主要流程,.,构件容器类图,.,容器启动流程,.,构件工厂类图,.,启动工厂、生产实例,启动构件工厂,生产构件实例,.,构件实例类图,.,构件实例处理流程,.,发布服务的构件(方面构件),.,发布服务流程,.,引用服务的构件(方面构件),.,引用服务的构件启动流程,.,引用服务构件-服务消失,.,DServiceMaven插件,.,DService构件编译流程,.,元数据解析模块,.,DService构件开发,.,环境,工具JDK1.5或以上版本Maven2.0.9或以上版本/download.htmlEclipse3.4或以上版本/downloads/packages/eclipse-ide-java-developers/galileorM2eclipse/update/MavenplugingroupId:org.apache.felixartifactId:maven-b

温馨提示

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

评论

0/150

提交评论