介绍Web Services
Web services是通过网络工作的。你可以在网络上找到他们——所有的web services都有一个自描述信息,告诉你他有什么功能,以及调用每一个功能需要的参数。然后,当然了,你可以调用他们,通过RPC(Remote Procedure Call远程方法调用)等方式。
如果你将你的web services发布在万维网上(大部分情况下如此),那么你和你的客户端必然是使用HTTP协议来实现数据传输的,因为HTTP协议的跨平台性,所以web services对客户端和服务器端的软硬件平台没有要求。可是具体的数据形式呢?比如我们的web services采用java编写,而客户端用vb编写,java和vb中的数据类型差异很大,比如int和Integer,为了消除语言间的鸿沟,Web services采用SOAP(Simple Object Access Protocol一般译为简单对象传输协议)作为数据传输的格式。
SOAP实际上是由XML文档组成的,自然,XML文档具有平台无关性,并且其良好的结构也比较适合描述一般的数据。好了,HTTP + SOAP(XML),这就是web services跨平台,跨语言的秘密。
Web Services架构
Web Serivecs架构提出了三个角色:服务提供者,请求者,代理者。
关于服务提供者和请求者,相信无需多言,前者封装业务逻辑,提供功能;后者通过访问服务提供者调用相应功能,获取反馈结果。那么为什么请求者不直接访问服务提供者,而需要代理着这么一个中间层呢?
从技术上讲,代理者并不是一定要存在,然而,通过将监听请求,验证身份这些与业务逻辑无关的功能从服务提供者中独立出来,专门形成一个代理者,无疑可以让服务端的代码更简洁,更易维护。举例来说,女生小A想当歌星,第一步是去酒吧唱歌,因为这个时候还没有出名,联系她的人不多,小A自己就能安排所有的事宜。后来小A出名了,联系她的人络绎不绝,这是她会做一件所有明星都会做的事儿——为自己找一个经纪人。相信大家可以看出经纪人和代理者在功能上的相同之处。
Web Services标准
Web services中使用了如下的标准
SOAP (Simple Object Access Protocol)
WSDL (Web Services Descriptio Language)
UDDI (Universal Description, Discovery and Integration)
XSIL (Web Services Inspection Language)
JAX-RPC(Java API for XML-based Remote Procedure Call)
WS-I (Web Services Interoperability)
SAAJ (SOAP with Attachments API for Java)
SOAP
SOAP是一种中立的信息传递协议。SOAP消息都是XML格式的。虽然SOAP协议没有指明一定要用HTTP协议传输消息,但我们一般还是都采用HTTP协议发送请求的SOAP消息和回应的SOAP消息。
SOAP消息的具体格式:每一个SOAP消息都有一个根元素Envelope(信封),它包含header和body两个部分。Header包含了上下文数据,可以不存在,而body包含了具体的消息,必须存在。下面是一个通过HTTP协议请求Borland公司股票价格的SOAP消息。
POST 网络地址 HTTP/1.1
Host: www.stock.com
Content-Type: text/xml; charset="utf-8"
Content-Length: SOAP消息长度
SOAPAction: "urn:stock-quote-services"w
<SOAP-ENV:Envelope xmlns:SOAP-ENV="命名空间" SOAP-ENV:encodingStyle="命名空间">
<SOAP-ENV:Body>
<m:GetLastTradePrice xmlns:m="Some-URI">
<symbol>Borland公司股票代码</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
WSDL
如果你提供了一个很好的web services,但是别人不知道你的web services能做什么,以及如何调用,那么它一点用都没有,我们必须为他写一个说明文档。WSDL就是做这个的,WSDL采用XML格式描述web services的用途,和调用它需要的参数,这样客户端就可以通过WSDL文件获致web services的信息。我觉得,你可以将WSDL文件理解成web services的使用说明书。
UDDI
UDDI用来发布我们提供的web services,当我们写好了一个web services,并且为他建立了WSDL文件,剩下的事情宣传自己,让用户能够找到我们的web services。这个过程有点像电信的“黄页服务”,企业为了扩展自己的业务,将电话号码登记在黄页上,电信局免费将黄页送给用户,用户就可以在上面找到自己感兴趣企业的电话。UDDI就像黄页,如果web services分布在不同的主机上(比如做为客户端,我们想要的分别访问sohu提供的天气预报服务和sina提供的股票查询服务,我们没有必要直接去sohu或者sina的主机上去寻找服务,而是在提供UDDI服务的主机上寻找,这样,我们的程序就不用直接关联到sohu或者sina,提高了灵活性),那么一个集中管理信息的UDDI则十分重要。
WSIL
WSIL的作用和UDDI是一样的,不同的是实现方法。UDDI是一种集中式的管理,将所有主机上的服务集中注册在一台服务器上;WSIL一般只搜索一个站点的提供的web service,然后提供查询服务。
JAX-RPC
可以说,JAX-RPC是web services在java语言中的具体实现方式,客户端和服务器段代码都是通过JAX-RPC进行通讯的。
在实际的通讯过程中,JAX-RPC会自动在客户端生成Stubs代码,在服务器端生成Ties代码,然后客户端通过Stubs访问Ties,Ties访问web service调用具体方法然后返回值。stubs和ties都应用了代理模式。
WS-I
对web services来说,最重要的是什么呢?性能?安全性?稳定性?如果答案是这些,那么web services也许根本没有存在的必要。请记住,web services诞生的目的是为了让运行在不同平台上的不同开发语言间,可以互相调用各自的方法,标准才是web services的生命。Web Services协作组织推出的WS-I就是这样的一套标准,它提供了一系列规范、测试工具、使用场景和简单的实例。
SAAJ
一句话,SAAJ提供了Java语言通过internet传输XML文档的方法。
分享到:
相关推荐
Web Services平台架构是构建分布式应用程序的一种重要方法,它允许不同系统和平台之间的应用程序通过网络进行交互。在Java平台上开发Web Services,我们可以利用一系列的技术和标准,以实现跨平台的互操作性。 首先...
在java开发services中,会用到: 1.webservices-api.jar 2.webservices-extra.jar 3.webservices-rt.jar 4.webservices-tools.jar 5.webservices-extra-api.jar 此压缩文件里就是这五个jar文件。
WebServices是一种基于互联网的、用于应用程序之间交互的技术。在本项目"WebServices 天气预报"中,开发者提供了一个简单的天气预报应用,旨在帮助初学者理解WebServices的工作原理及其在C# WinForm环境中的实现。这...
WEB SERVICES原理与研发实践
Web Services技术架构是一种基于互联网的、开放的、标准的接口技术,它允许不同的应用程序之间进行交互和数据交换。这一概念由微软的MCT(Microsoft Certified Trainer)和MVP(Microsoft Most Valuable ...
Exchange Web Services 2.2
例如,你可以使用`webservices-api`和`webservices-extra-api`来定义服务接口和数据模型,`webservices-rt`来处理服务的运行时逻辑,而`webservices-tools`则帮助你在开发过程中进行验证和调试。 总的来说,"web...
【Web Services概述】 Web Services是一种计算分布式问题的技术,它允许不同系统间的应用程序通过网络进行通信,从而实现数据的共享和程序的互操作性。Web Services的核心目标是促进系统的整合、标准化,并提供一种...
### Web Services 学习基础 #### 一、Web Services 概述 Web Services 是一种用于在不同平台上交换数据和服务的标准方式。它允许不同系统之间进行通信,并且可以在各种不同的编程语言和技术栈中运行。Web Services...
首先,我们需要理解“Java端写的https webservices”。在Java中,可以使用JAX-WS或JAX-RS等标准来创建Web Services。这些服务可以通过HTTPS协议对外提供,从而允许远程客户端通过安全连接进行调用。在Java端,设置...
Web Services是一种基于网络的、平台无关的交互方式,它允许不同系统之间交换数据和服务。在.NET框架下,创建和使用Web Services相对简单,这得益于微软提供的强大支持。本篇文章将深入探讨.NET环境下Web Services的...
### 基于Web Services的旅游系统设计与实现 #### 概述 本文探讨了基于Web Services技术构建的旅游系统的设计与实现方案。随着信息技术的进步和互联网的普及,特别是Web Services技术的成熟,旅游行业的信息化水平...
### MyEclipse+XFire开发Web Services #### 实验背景与目标 随着互联网技术的发展,Web Services作为一种重要的软件架构模式,在分布式系统中的应用越来越广泛。它允许不同平台、语言的应用程序通过标准协议(如...
本书的内容涵盖了Web Services的各种关键技术、Web Services的整体体系架构和应用体系架构,以及Web Services应用的设计和开发。本书以Web Services技术系列为主线,逐一详细分析解释包括Web Services的各种核心技术...
1. `webservices-api.jar`: 这个jar包包含了JAX-WS(Java API for XML Web Services)的核心API,它是Java平台上的标准Web服务规范。JAX-WS提供了创建、部署和消费Web服务的全面支持。它定义了诸如`javax.xml.ws`...
而“Web Services资料”这个文件可能包含了关于Web服务的广泛知识,包括基本概念、设计模式、最佳实践以及相关的技术文档和教程。 总的来说,Web服务是一种强大的工具,它促进了系统的互操作性和可重用性。通过掌握...
RESTful Web Services是一种广泛应用于现代Web开发中的设计模式,它基于Representational State Transfer(表述性状态转移)原则,旨在创建高效、分布式的网络应用程序。本资料《RESTful Web Services中文高清版.pdf...
【webservices调用方法】与【TOMCAT+AXIS进行WEBSERVICE开发的配置和HELLOWORLD程序】相关的知识点: 1. **Web Services**:Web Services是一种通过网络进行通信的软件,允许不同系统间的互操作性。它们使用标准的...