您的位置:首页 > 运维架构 > 网站架构

小曹学SOA1——web服务平台体系架构(WSPA)

2016-07-22 09:34 267 查看
1、部署Web服务的平台
(1)能够部署Web服务的平台有Java EE的JWS,Axis,Systinet Server,XFire;
(2)无论是什么平台,都必须提供3个核心子系统:调用子系统(Invocation)、序列化子系统(Serialization)、以及部署子系统(Deployment)。
(3)通常Web Service的服务端与客户端使用的方法签名是不一样的,使用的编程语言也是不同的,因为如果两端使用的都是同样的Java类库,那么通过Java RMI就能够完成这样的调用。 

2、调用子系统的含义(Invocation)
(1)服务器端调用

接受来自网络传输层(例如http、jms端点)的SOAP消息;
调用处理器(handler)来对消息进行预处理(例如对消息进行持久化,或者处理SOAP消息标头);
决定消息的目标服务,换句话说就是消息应该调用哪个WSDL操作;
在确定了目标WSDL操作后,决定调用哪个Java类/方法。确定的Java类/方法称为Java目标,决定Java目标的过程称为分发(dispatching);
把SOAP消息传递给序列化(Serialization)子系统,将它反序列化为Java对象,这些Java对象将作为参数传递给Java目标;
使用序列化子系统生成的参数来调用Java目标,而后得到目标方法返回的Java对象;
把返回的Java对象再传递给序列化子系统,将它序列化为与目标WSDL操作指定的返回消息一致的XML元素;
把返回的XML元素包装成与目标WSDL操作相一致的SOAP响应消息;
把SOAP响应消息传回给网络传输层以发送消息。

(2)客户端调用

创建一个web服务端点的实例,该服务端点实现一个Java接口,用JWS的术语来说,这种接口叫做服务端点接口(Service End Point,SEI)。调用子系统有一个或多个工厂方法可以用于创建SEI实例,我们可以方便的创建这些实例,也可以用JNDI来访问它们。通常情况下,SEI实例是用Java代理和调用处理器(Invocation
Handler)来实现的;
处理SEI实例的调用;
获得传递给SEI的参数,把它们传递给序列化子系统,然后序列化为与目标服务的WSDL指定的XML模式一致的XML元素;
基于目标服务的WSDL,把参数元素封装到SOAP消息中;
调用处理器,它基于服务质量(Quality of Service,QoS)和其他需求对消息进行后续处理(如持久化或处理SOAP消息标头);
把消息传递给网络传输,向目标Web服务交付消息;
接收来自网络传输的SOAP消息响应;
把SOAP响应消息传递给序列化子系统,把它反序列化为Java对象,该Java对象是SEI的返回类型指定类的实例;
返回反序列化的SOAP响应消息,完成SEI的调用。

3、序列化子系统的含义(Serialization)
Web Services容器里面有许多SOAP端点,每个SOAP端点与一组Web服务相关联,一个端点有一个与之关联的WSDL接口,该接口定义了能在这个端点上执行的操作。
(1)在调用过程中序列化子系统的角色

接收来自Web服务代理的参数;
将参数(java类的一个实例)序列化为imported:xxx的一个实例;
将参数组合到wrapper:xxx的实例中;
将wrapper:xxx实例传递给Web服务代理,再嵌入SOAP消息中,并发送到SOAP端点。

序列化子系统是通过Java接口调用Web服务这一过程核心的。
这些从Java类到目标XML Schema组件的转换称为类型映射,为了实现这种映射,序列化引擎需要一套映射策略,序列化上下文由一组映射策略组成。
(2)实现类型映射的机制

标准绑定:这种映射是由Java类到XML Schema的标准绑定预先定义的。Java类与XML Schema是一对一的关系,JWS采用的就是这种方法,并且允许用户进行定制。JAXB和JAX-WS规范描述了标准绑定;
源代码标注:JWS使用这种方法提供标准绑定之上的映射定制。目标Java类源代码中的标注可以修改标准绑定的行为,指定如何将Java类映射为XML Schema组件,如何对Web服务的WSDL描述进行调整;
算法:类型映射嵌入序列化子系统执行的算法中。JAX-RPC 1.1和Axis 1.x采用的就是这种方法;
基于规则的映射:将类型映射指定为一些规则,这些规则的创建和编辑可以独立于序列化子系统,序列化子系统只负责这些规则的解释执行。SOA-J和Castor序列化框架就是用这种方法。

4、部署子系统
(1)部署子系统的职责



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  soa