SOAP及其應用

轉載自:http://space.itpub.net/22434610/viewspace-614821

一、概述
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议。SOAP 技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。

SOAP为在一个松散的、分布的环境中使用XML对等地交换结构化的和类型化的信息提供了一个简单且轻量级的机制。SOAP本身并不定义任何应用语义,如编程模型或特定语义实现,它只是定义了一种简单的机制,通过一个模块化的包装模型和对模块中特定格式编码的数据的重编码机制来表示应用语义。SOAP的这项能力使得它可被很多类型的系统用于从消息系统到RPC(Remote Procedure Call)的延伸。


SOAP由四部分组成:
1)SOAP envelop (SOAP信封),它构造定义了一个整体的表示框架,可用于表示在消息(message)中的是什么,谁应当处理它,以及这是可选的还是强制的。

2)SOAP encoding rules (SOAP编码规则),它定义了一个编序机制用于交换应用程序定义的数据类型的实例。

3)SOAP RPC representation (SOAP RPC表示),它定义了一个用于表示远端过程调用和响应的约定。

4)SOAP binding (SOAP绑定),它定义了一个使用底层传输协议来完成在结点间交换SOAP信封的约定。

SOAP的主要设计目标是简明性和可扩展性。这就意味着有一些传统消息系统或分布式对象系统中的特性将不包含在SOAP的核心规范中。这些特性包括:


分布式垃圾收集;

批量消息传输/处理;

对象引用 (需要分布式垃圾收集的支持);

对象激活 (需要对象引用的支持)。


SOAP定义了一种消息交互机制,它描述了如何用XML对信息进行编码。通常,SOAP用于在运行时解释远程调用的参数值,并且使用特定的编码方式将这些值填充在XML文档中。然后,XML数据通过HTTP协议传输至远程服务器,当然有时也使用其他传输协议。除此之外,还有许多远程方法调用规范,例如,CORBA的 IIOP,DCOM的ORPC,以及Java的Remote Method Protocol。 SOAP的特点——也是最大的优点在于它是基于文本的(通过采用XML),而不是二进制,而且它不是某个制造商所特有的。、

SOAP使用通用的传输协议-----主要是HTTP。这不仅是SOAP的秘密武器,也是它成功的关键。由于公司的防火墙很少限制HTTP数据,(使用HTTP作为传输协议的)SOAP应该很容易通过防火墙。专用的分布式计算协议是不可能做到的。它们使用的网络地址通常不允许进入安装了防火墙的安全系统。  


  SOAP的另一优点在于XML。SOAP能够将以前无法通信和共享资源的系统集成在一起。目前,各种计算系统正逐渐支持XML。只要能够将XML文档传入系统,通常就可以找到用于读取和解释XML编码信息的
软件。为了支持远程计算,SOAP将方法调用参数保存为特有的二进制格式,并将这些参数作为XML信息传递到远程服务器,然后,服务器上相应的SOAP处理程序提 XML信息,并将它恢复为二进制形式进行处理。
 


二、分布式协议技术与SOAP关系
1、分布式协议技术CORBA、COM/DCOM/COM+和EJB
 
  
CORBA(Common Object Request Broker Architecture)公共对象请求代理体系结构是由OMG组织制订的一种标准的面向对象应用程序体系规范。由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成。其核心部分是对象请求代理ORB(Object Request Broker)。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB,客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机器上,也可以运行在其他机器上通过网络与客户进行交互。ORB截取客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、方法调用,并返回最终结果。CORBA 1.1 由对象
管理组织在 1991 年发布。定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 12 月发布定义了如何跨越不同的 ORB 提供者而进行通讯。

    CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBA Component Model)。Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(Naming Service)。服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。CORBA CCM(CORBA Component Model)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。

    COM/DCOM(Component Object Model / Distributed Component Object Model )是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。DCOM基于COM的应用程序、组件、工具等的基础之上,处理网络协议的低层次的细节问题,而不必关心太多的网络协议细节,从而使用户能够集中精力解决用户所要求的问题。DCOM位于应用程序的组件之间,将组件以不可见的方式胶合在一起组成具有完整功能的应用程序。COM+是随着Windows 2000的发布,Microsoft在COM的基础上针对应用层的需要而推出的一套组件框架技术。COM+不再局限于COM的组件技术,它更加注重于分布式网络应用的设计和实现,COM+继承了COM几乎全部的优势,同时又避免了COM实现方面的一些不足。COM+紧紧地与操作系统结合起来,通过系统服务为应用程序提供全面的服务。COM+不仅继承了COM,DCOM和MTS的许多特性,同时也新增了一些服务,比如负载平衡、内存数据库、事件模型、队列服务等。COM+新增的服务为COM+应用提供了很强的功能,建立在COM+基础上的应用程序可以直接利用这些服务而获得良好的企业应用特性。

EJB(Enterprise JavaBeans)是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。Sun EJB技术是在Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。

EJB是用于开发安全、可扩展、事务型以及多用户组件的一种分布式组件模型。简单地讲,EJB是(理想的)包含业务逻辑的可重用软件单元。正如JSP网页允许把应用程序和表示逻辑分开,EJB允许把应用程序逻辑与系统级服务分开,这样开发者可以集中精力于具体业务问题,而不是系统编程。这些企业小程序(bean)业务对象具有三种基本形式,同样也没有必要三者都实现,它们分别是会话(session)bean、实体(entity)bean和消息驱动(message-driven)bean。 企业级JavaBean是一种以组件为基础的分布式计算环境的结构体系,企业Bean是分布式的面向交易处理的企业应用系统的组件。

猜你喜欢

转载自xiayanhua-donghae.iteye.com/blog/605020