soa原理、实现和应用

上传人:正** 文档编号:53756155 上传时间:2018-09-05 格式:PPT 页数:54 大小:1.14MB
返回 下载 相关 举报
soa原理、实现和应用_第1页
第1页 / 共54页
soa原理、实现和应用_第2页
第2页 / 共54页
soa原理、实现和应用_第3页
第3页 / 共54页
soa原理、实现和应用_第4页
第4页 / 共54页
soa原理、实现和应用_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《soa原理、实现和应用》由会员分享,可在线阅读,更多相关《soa原理、实现和应用(54页珍藏版)》请在金锄头文库上搜索。

1、SOA原理、实现方法与应用,Service Oriented Architecture,主要内容,1.1 SOA的定义,SOA的提出,SOA的概念最早是由Gartner于1996年提出的。由于SOA在系统结构和软件开发中带来了很多的优势,后来IBM、MS、BEA、Oracle在内的全球著名IT公司加入了定义、实现和推广SOA的行列。使得SOA得到了快速的发展。,SOA的概念,SOA是一种基于服务来组织计算资源,具有松耦合和间接寻址能力的软件体系结构。,SOA是一种体系结构,也是一种软件开发模型。,1.2 SOA与分布式体系结构,SOA作为一种体系结构,已经被各种分布式系统开发所采用。下面通过分

2、布式系统的发展来说明SOA体系结构的产生:,分布式系统经历了:,主机系统,“客户/服务器”两层结构,“客户/应用服务器/资源服务器”三层结构,多层体系结构,一般信息系统的分层体系结构,UI,利用数据库、文件系统 管理资源,应用逻辑实现系统功能,主机分布式体系结构,1、系统组成耦合 紧密 2、客户功能单一 3、没有外部系统的接口,两层分布式体系结构,1、客户、服务器之间的耦合紧密n-1 2、服务器成为处理瓶颈 3、更新代价高,三层分布式体系结构,1、浏览器和应用服务器是松耦合的。 2、应用服务器和资源服务器是松耦合的。 3、应用逻辑层可以部署在服务器集群上。 4、表示层和应用逻辑层是紧耦合的,使

3、得同一个表示层不能访问不同平台的应用逻辑。,四层分布式体系架构,克服了三层结构中:表示层和应用逻辑层紧耦合,把应用逻辑层封装成Web服务,这样表示层和应用逻辑层就能实现松耦合。,1.3 SOA和软件开发,SOA是一种软件开发模型,本质上是一种组件模型。,软件开发模型经历了:,命令式软件开发方法,面向对象的软件开发方法,面向构件的软件开发方法,面向服务的软件开发方法,命令式软件开发方法,命令式编程是对Von Neumann式计算机执行顺序的直接抽象。,过程只是对功能的抽象,因此只能片面地反映事物的性质。,面向对象软件开发方法,面向对象的三个特点: 1)继承性 2)封装性 3)多态性,面向对象软件

4、开发方法,面向对象的复用机制是通过继承实现过的,所以难以形成可复用的软件模块 面向对象的封装是对事物的抽象,因封装的粒度小,所以难以构成大的可复用的模块。总之,面向对象封装粒度小,难以形成大的可复用的模块。它的复用性主要体现在代码级,模块复用性差。,面向构件软件开发方法,面向构件是对象技术的延伸和发展,构件和对象技术都是对现实世界的抽象,都具有封装性,都已接口的方式被外界访问。构件和对象具有以下区别:,抽象视角不同。对象是对客观世界的基本实体的抽象,强调现实世界和实体的对应以及实体的建模。构件是对客观世界的实体或者实体联合能提供的功能的和服务的建模。,可复用程度和复用机制不同和对象相比,构件更

5、强调可复用性。面向对象实现可复用是通过继承实现的,但继承并不是实现复用的一种很好的方法,因为继承使得子类对父类产生了很强的依赖性。构件实现可复用性是通过构件的包容和聚合机制实现的。实现了复用者和被复用者的松耦合。,粒度不同构件的封装粒度一般大于对象的封装粒度。,面向构件的软件开发方法“局限性”:,现有的构件技术,都是和具体的OS平台相关的,这样构件的生产者和构件的使用者就有严格的要求,即构件使用者和构建的生产者是紧耦合的。,构件技术是可以产生可复用的软件模块的,但这只是说当用构件技术“从零开始”进行开发时才是这样的,面向构件技术无法复用已有的、用不同技术开发的软件模块,既不能把已有的“遗留系统

6、”进行“构件化”。,面向服务软件开发方法,面向服务的软件开发方法是构件技术在分布式环境下(特别是在Internet环境下)的延伸和发展。,面向服务的软件开发具有不同于构件的新特点:,开放性-遵循开放的标准 自描述性-服务的调用者只需要服务的描述信息就可以完 全掌握服务的所用信息,包括调用方法 实现无关性-服务的消费者无需知道服务的实现语言和 和实现平台 封装的粒度大于构件,从软件开发方法的角度来看SOA技术的发展。,软件开发技术的发展是不断加大软件模块的封装粒度,从而使得软件模块间的耦合度减少。SOA的产生是为了适应分布式环境(特别是Internet环境)需求的又一种软件开发方式。,2.1 S

7、OA基本原理,SOA原理概述,SOA是一种服务导向的组件模型。服务是指软件中的一些处理过程或是服装成独立业务模块的程序逻辑单元,可以通过标准协议通过网络来访问和调用,而且接口公开。服务提供者开发出各种有用的服务,经过严格测试后把服务发布到公共的服务注册表上,服务消费者通过查找服务注册表查找到所需要的服务,然后就可以使用所需要的服务了。,SOA框架组成部分,SOA结构有三部分组成:,1、服务提供者 2、服务注册中心 3、服务消费者,服务提供者,服务提供者,服务提供者是一个可以通过网络寻址的实体,它接收和执行消费者的请求。把自己的服务注册到服务注册中心,以便服务消费者能够发现和访问该服务。,它主要

8、完成以下功能: 1)定义可提供的服务功能 2)设计并实现这些功能 3)用WSDL描述这些服务,并用UDDI在服务注册中心发布WSDL文档,服务注册中心,服务注册中心,服务注册中心是包含可用服务的网络可寻址目录,它是接受并存储服务描述的实体,供服务消费者查询服务只用,服务提供者将服务的描述信息发布到服务注册中心。服务的信息包括与该服务交互的所有所有内容,如网络位置、传输协议和消息格式等。,它主要完成以下功能: 1)增加、删除和修改已经发布的服务的服务信息。 2)按照用户的请求从注册表中查询服务数据。,服务消费者,服务消费者,服务消费者可以是:一个应用程序、需要一个服务的另外一个服务或者一个软件模

9、块。它从注册中心查询需要的服务,并通过传输机制绑定服务,然后通过接口契约规定的格式来执行服务。,它主要完成以下功能: 1)发现提供服务的WSDL文档,通常通过访问服务注册表来实现。 2)在WSDL的基础上,通过SOAP协议来与要访问的服务通信。,2.1 SOA的特征,SOA是一种粗粒度、松耦合的软件架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。,这种模型具有以下的特征: 1)松散耦合 2)粗粒度服务 3)标准化的接口 4)无状态的服务,松散耦合和粗粒度,从软件开发和系统结构的角度来看,SOA是耦合度最低的一种实现方法。服务的请求者和提供者时间是松耦合的,即服务请求

10、者不必关心服务的具体实现细节,如程序实现语言,部署平台等。这样的松散耦合是通过“服务描述”实现的。 1)服务的接口是通过标准的方式进行描述。 2)服务的请求者通过消息的方式,而不是通过API和文件格式请求服务。,标准化的接口和无状态服务,SOA通过服务接口的标准化描述,而接口是通过标准的方式进行描述的,从而使得该服务可以提供给在任何异构平台和任何用户接口使用。该接口隐藏了实现服务的细节,允许独立于实现服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。,服务应该独立的、自包含的。在实现时它不需要从一个请求到另一个请求的信息或状态。服务不依赖于其他服务的上下文和状态。,3.1 SOA的实现

11、技术,3.1 CORBA组件实现方法,3.2 DCOM组件实现方法,3.2 远程方法调用(RMI)实现方法,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。,4.1 SOA的一种实现Web Service,Web服务是构架早XML和Internet技术上的分布式计算技术,其目的是利用已经管饭使用的Internet协议在分布节点之间传递称为消息的XML文档。,Web服务是有URL标识的软件应

12、用,其接口和绑定可以通过XML来定义和描述并且可以被发现,与其他软件通过基于Internet的协议以XML消息交换的方式直接交互。,Web服务的关键技术,从上面对Web服务的描述可以看出Web服务由三项关键技术构成:,通信:Web服务需要一种能基于Internet协议(如HTTP、SMTP和FTP等)互相传递XML消息的通信协议规范。 描述:Web服务的接口和绑定需要用一种基于XML的语言来描述和定义。 发现和发布:Web服务消费者可以通过中介发现Web服务,而Web服务的元信息也需要发布到中介上。,4.2 Web服务的体系结构,Web服务的规范,传输规范:Web服务可以利用多种网络协议实现X

13、ML消息的传输。Web服务可以利用HTTP(GET/PUT/POST/DELETE)、FTP、SMTP、CORBA的IIP和Java的JMS等协议。,消息规范:Web服务之间的通信是通过传递SOAP协议的XML消息实现的。,描述规范:用WSDL语言可以描述Web服务。描述包括一系列操作的名称及其输入,输出参数、出错信息和接口的绑定。,发布和发现规范:UDDI是主流的Web服务注册中心规范,消息扩展规范:在SOAP提供基本的传输基础上,可以扩展SOAP消息的头结构。,4.3 Web服务的通信,SOAP协议,信封:SOAP消息的根元素,包含一个SOAP Header和一个SOAP Body,消息头

14、:可选,包括安全性、事务处理等,消息体:必选,代表消息的实际负载。由两种风格:RPC风格和文档风格。,uuid:00909090-ewew-ewew-rrrd-dddo-dscfw23124221Happyunder processing,一个SOAP协议的结构,基本SOAP消息体系结构,首先Web服务客户端到服务中心发现感兴趣的服务,然后从服务提供者处得到服务的描述WSDL文档。一旦得到了WSDL文档,Web客户端就可以获得了Web服务的相关信息:服务提供的接口、接口地址、接口访问方式。SOAP服务器会对SOAP请求进行解析,调用相应的方法。,SOAP解析器,SOAP和HTTP的绑定,SOA

15、P消息可以和各种网络协议进行绑定,因此SOAP和HTTP的绑定是可选的,但是由于所有的OS都支持HTTP,所以所有的SOAP实现方案都支持HTTP的绑定。,SOAP协议示例,Package waremanagerproject; Package org.apache.axix.client.Call; Import org.apache.axis.client.Service; Import org.apache.axis.encoding.XmlType; Public class WareManageClient Public WareManageClient() Public stati

16、c void main(String args) throws ExeceptiontryString endpoint = http:/8080/axis/service/WareManage;String method = “getStocks”;Service service = new Service();Call call = (Call)service.Create();Call.setTargetEndpointAddress(new .URL(endpoint);Call.setOperationName(method);call.setProperty(Call.NAMESPACE, “urn:wareManage”);call.addParameter(“ID”,XMLType.XSD_STRING,ParameterMode.IN);Call.setReturnType(XML_TYPE,SOAP_INT);String ID = “00002”;Integer response = (Integer)call.invoke(new Object ID);System.out.println(“Got result :” + response);Catch(Exeception e)System.out.println(e); ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号