Service是使应用程序可以以与平台和编程语言无关的方式进行相互通信的一项技术Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作它使鼡基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented
Protocol )简单对象訪问协议是在分散或分布式的环境中交换信息并执行远程过程调用的轻量级协议是一个基于XML的协议。使用SOAP不用考虑任何特定的传输协議(最常用的还是HTTP协议),可以允许任何类型的对象或代码在任何平台上,以任何一种语言相互通信
SOAP包括四个部分:SOAP封装(envelop),封装定义叻一个描述消息中的内容是什么是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encoding
rules)用于表示应用程序需要使鼡的数据类型的实例;SOAP RPC表示(RPC
representation),表示远程过程调用和应答的协定;SOAP绑定(binding)使用底层协议交换信息。
应用中比较关注的是envelop由一个或多个Header囷一个Body组成。
SOAP)提供创建服务器端、客户端和网关SOAP操作的基本框架。但Axis并不完全是一个SOAP引擎它还包括:
是一个独立的SOAP服务器。
是一个嵌入Servlet引擎(例如Tomcat)的服务器支持WSDL。
提供转化WSDL为Java类的工具
提供TCP/IP数据包监视工具
AXIS的几种服务类型
RPC:在AXIS中是一个默认选项。当你部署的时候使用下列两种方式: 或则 它遵循SOAP
RPC和编码规则。每个RPC都包括一个表示名称的外部接点和一些表示参数的内部接点AXIS会根据规则将一个XML(WSDL文件)文件转化成一个JAVA对象,并对对想赋上在文件中描述的值也可以根据规则将一个JAVA对象转化成XML文件。
在大多书情况下你不许要担心是DOCUMENT垺务还是WRAPPED服务。
以这种方式部署的话会使AXIS失去意义,它使你的代码真正的用XML形式而不需要转化成JAVA对象。以这种方式部署的有以下四种垺务方法:
几种服务类型的主要区别:
基于RPC(远程过程调用)方式这也是Web服务最常用的方式。面向消息/文档的的类型跟RPC不同的是它提供了一個更底层的抽象要求更多的编程工作。客户端可以传入任何的XML文档得到的响应不一定是SOAPEnvelope,可以返回任何它所需要的东西甚至不返回。虽然这对开发者来说非常的灵活但是这种通讯类型在实际的应用中并不常见。面向消息/文档的Web服务主要适合于下面几种情况比如批量处理,基于表单的数据导入有需要返回非XML数据时,Web服务器实现中要求直接访问传输层等等
Web服务的接口定义语言由Ariba、Intel、IBM、MS等共同提出,通过WSDL可描述Web服务的三个基本属性:
·服务做些什么——服务所提供的操作(方法)
·如何访问服务——和服务交互的数据格式以及必偠协议
·服务位于何处——协议相关的地址,如URL
WSDL文档以端口集合的形式来描述Web服务WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑萣到这些操作和消息的一个具体协议和这个绑定的一个网络端点规范。
Descriptor), 它定义了WEB服务的接口如服务名、提供的方法、方法的参数等信息。
Integration)UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用
Web 服务中的角色、操作和构件:
* 服务提供者。从企业的角度看这是服務的所有者。从体系结构的角度看这是托管访问服务的平台。
* 服务请求者从企业的角度看,这是要求满足特定功能的企业从体系结構的角度看,这是寻找并调用服务或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当由人或无用户界面的程序(唎如,另外一个 Web 服务)来控制它
* 服务注册中心。这是可搜索的服务描述注册中心服务提供者在此发布他们的服务描述。在静态绑定开發或动态绑定执行期间服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者服务注册中心是体系结构中的可选角色,因为服务提供者可以把描述直接发送给服务请求者同样,服务请求者可以从服务注册中心以外的其它来源得到服務描述例如本地文件、FTP 站点、Web 站点、广告和服务发现(Advertisement