《概念和思想》PPT课件.ppt_第1页
《概念和思想》PPT课件.ppt_第2页
《概念和思想》PPT课件.ppt_第3页
《概念和思想》PPT课件.ppt_第4页
《概念和思想》PPT课件.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

Soa 概念和思想,中央软件部总体技术部 2008-02-18,2,目录,3,软件设计的发展历程,面向过程的编程:以C语言为最典型的代表,是一种紧密耦合的软件设计技术,面向对象的编程:将面向过程相关的函数封装起来,消除全局变量,使用接口对外提供具体功能,形成能够独立调用的对象,实现对象可重用,可扩展,可继承。,面向组件的编程:对面向对象程序进一步封装,提供实现远程调用的接口和位置透明的能力,如Jee/Corba/.Net平台。但他们有一共同的缺点,实现技术的不透明性。,面向服务的编程:在面向组件编程的基础上,进一步提供粗力度,松耦合以 及技术透明的组件,从而提高系统的扩展性和重用性。,4,什么是SOA,SOA是一个Diagram,不是一个具体的架构,就像经常说的OOD一样,描述 的是一组设计原则,什么是设计原则: Represents a highly recommended guideline for shaping solution logic in a certain way,看看OOD中的例子: 单一责任原则(SRP) 开闭原则(OCP) 替换原则(LSP) 依赖倒置原则(DIP)等等。,SOA也定义了类似的原则,5,驱动SOA的动力,SOA的重点就是找出解决上述问题的方法,6,服务的概念,A service can essentially act as a container of related capabilities. It is comprised of a body of logic designed to carry out these capabilities and a service contract that expresses which of its capabilities are made available for public invocation,举例子:ATM取款机服务所包含的capabilities 1. 取款功能 2. 余额查询功能 3. 存款功能,7,服务契约,A contract for a service establishes the terms of engagement, providing technical constraints and requirements as well as any semantic information the service owner wishes to make public.,主要包含四个部分: 1. 功能描述(定义business驱动的接口而不是technical驱动的接口) 2. 使用这些功能所需要的交互的数据信息的描述 3. 策略信息(技术约束、QOS等) 4. 其他非技术文档(SLA等),8,服务契约,A contract for a service establishes the terms of engagement, providing technical constraints and requirements as well as any semantic information the service owner wishes to make public.,9,服务耦合,Logic to Contract耦合: 先设计物理契约,然后再实现底层的逻辑 导致从实现逻辑到契约之间的单向的紧耦合 这是一个正面的设计方式,Contract to Logic耦合: 现有底层的实现逻辑,而后推导出最终的物理契约 导致从契约到实现逻辑之间的单向的紧耦合 这是一个负面的设计方式,Contract to Technology耦合 物理契约本身的设计,暴露了实现逻辑所使用的技术细节 导致从契约到实现逻辑之间的单向的紧耦合 这是一个负面的设计方式,Contract to Implementation耦合 物理契约的设计,暴露了实现逻辑内部的数据模型和数据结构 这是一个负面的设计方式,10,服务消费者耦合,Consumer-to-Implementation Coupling耦合: 消费者绕过契约,直接访问服务的实现逻辑 这是一个负面的设计方式,Consumer-to-Contract Coupling耦合: 消费者通过契约来访问服务 这是一个正面的设计方式,但是服务和契约之间的耦合最终会导致消费者和服务之间的耦合:,11,服务重用,Logic to Contract耦合,Contract to Logic耦合,Contract to Technology耦合,Contract to Implementation耦合,12,服务抽象,为什么抽象是必须的: 1. 容易导致Contract to Implementation耦合 2. 降低了服务自己升级、演化 的能力,服务抽象的几个方面: 1. Technology Information (技术实现和底层逻辑) 2. Functional Information (功能接口) 3. Programmatic Logic Information () 4. Quality of Service Information (服务的行为和约束),13,服务抽象,为什么抽象是必须的: 1. 容易导致Contract to Implementation耦合 2. 降低了服务自己升级、演化 的能力,服务抽象的几个方面: 1. Technology Information (技术实现和底层逻辑) 2. Functional Information (功能接口) 3. Programmatic Logic Information (实现逻辑,算法) 4. Quality of Service Information (服务的行为和约束),14,服务无状态性,尽可能利用各种手段,Contract to Logic耦合,Contract to Technology耦合,Contract to Implementation耦合,15,服务自治,自治的本意:一个系统能够自我决定自己的行为、演化而不受外部的因素的 制约的能力;,服务自治所带来的两个好处: 1. 系统行为的可预见性 2. 系统的可靠性,两种主要的服务自治类型: 1. 运行时:在运行情况下,服务控制自己逻辑的能力 持续的执行性能 高度的可靠性 行为的可预见性 2. 设计时:设计系统时的关注点 服务是否能够自由的升级、变更,The greater the amount of design-time autonomy, the greater the amount of attainable runtime autonomy,16,服务自治,17,服务可发现性,Logic to Contract耦合,Contract to Logic耦合,Co

温馨提示

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

评论

0/150

提交评论