Web服务(Web service)基础及相关术语简介

目录
[隐藏]

Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。Web services是建立可互操作的分布式应用程序的新平台。

Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进行查询和访问。

从深层次上看,Web Service是一种新的Web应用程序分支,它们是自包含、自描述、模块化的应用,可以在网络(通常为Web)中被描述、发布、查找以及通过Web来调用。Web Service便是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。它可以使用标准的互联网协议,像超文本传输协议HTTP和XML,将功能体现在互联网和企业内部网上。

Web Service支持协议

Web Service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web Service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。目前这些协议有:
1.XML和XSD
可扩展的标记语言XML是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web Service平台是用XSD来作为数据类型系统的。当你用某种语言如JAVA来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。
2.SOAP
SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML编码信息的轻量级协议。它有三个主要方面:
1) XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。
2) SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。
3) 在传输层之间的头是不同的,但XML有效负载保持相同。Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
3.WSDL
Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。
4.UDDI
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。
5、远程过程调用RPC与消息传递
  Web Service本身其实是在实现应用程序间的通信。我们现在有两种应用程序通信的方法:RPC远程过程调用 和消息传递。使用RPC的时候,客户端的概念是调用服务器上的远程过程,通常方式为实例化一个远程对象并调用其方法和属性。RPC系统试图达到一种位置上的透明性:服务器暴露出远程对象的接口,而客户端就好像在本地使用的这些对象的接口一样,这样就隐藏了底层的信息,客户端也就根本不需要知道对象是在哪台机器上。

Web Service 软件的支持

1.微软.NET
  
微软的.NET技术应该算是时下最为流行的Web Service 开发技术。首先因为其公司在以前相应的产品就占有相当大的市场份额,以至使新推出的.NET得以有比较稳定的用户群;其次也是更重要的是 .NET平台不仅延续了微软一贯的编程风格,而且还增加了许多支持Web 服务的关键性技术,使得.NET在操作的简单性和执行的稳定性,高效性上达到了一个非常好的结合。
  
微软的Visual Studio.NET便是一个便于 Web 服务的开发工具。微软的目标是,将其新编程语言——C#作为Web Service的首选语言。虽然C#看起来与Java类似,但是还有一些Java中没有的独特的功能。.NET技术中用于Web Service 开发的主要工具是ASP.NET从技术上说,ASPasp.net  提供了一些超出ASP以前版本的优点(例如:代码和HTML的分离,与脚本语言相比较,对“真正”的编程语言如 C# 的支持)。
  
2.IBM的WebSphere
  
IBM公司是业界第一家能够提供全面支持Web服务的电子商务基础设施中间件的公司。通过多年来与W3C(The World Wide Web Consortium)的共同努力,包括DB2、Lotus、Tivoli 和WebSphere在内的所有IBM软件都实现了对SOAP、WSDL、UDDI、Linux、XML、J2EE等开放技术和标准的全面支持。  IBM公司的WebSphere也是比较好的基础架构软件开发平台。WebSphere软件平台及开发工具包括WebSphere Studio Application Developer WSAD  基于J2EE、XML 和Web服务等开放标准,并具备 IBM 在可靠性、扩展性和安全性上的主要优势。WebSphere 是 IBM 在 Web Services策略中的核心平台,它支持所有开发、发布、部署 Web Services应用所必需的开放标准和技术,包括 UDDI,SOAP,J2EE,WSDL,和对 XML 技术集成的增强,这特使得它在全球有很多用户。
  
3.Borland的JBuilder
  
Borland公司在 JBuilder7中,用户可以用其Borland Web Services Kit for Java和Borland JBuilder MobileSet 3进行更快捷地开发Web Service和无线应用。这样将使开发者能够在同一个开发环境中轻松地创建和集成Web Service。今年新推出的JBuidler8更是针对Web Service开发更提供了方便和高效的方法。
  
总之,在Web Service开发上,.NET 和Java都是很好的选择,尽管两者现在都有一些需要完善的地方,但是就目前来说,它们还是最好的开发手段和技术。具体选择哪种开发工具,也是仁者见仁,智者见智的问题。从根本上说,这两种方法没有孰优孰劣的问题,只是根据使用者对这两种方法的掌握程度和对具体语言的偏爱程度来决定。

web service相关术语

1、SOA

Web服务建立于Service-Oriented Architecture(面向服务的体系结构,简写SOA)基础之上,SOA是最新的分布式计算技术。

2、SOAP消息

Simple Object Access Protocol(简单对象访问协议)

SOAP与其它分布式对象协议最为主要的区别在于它是基于XML的(传统的IIOP(CORBA)或JRMP(RMI)协议是基于二时进制的)。SOAP有自己的XML Schema定义,并大量依赖于用户自定义XML Schema。每一条经网络被送出的SOAP消息,都包含了标准SOAP元素与应用数据的XML文档。SOAP用作在HTTP、SMTP、FTP等Internet协议之上使用绑定进行传送的消息交换协议。SOAP提供传输数据的标准方式,充当在服务提供方和服务请求方之间激活服务的消息交换服务

3、WSDL

Web Service Definition Language(web服务定义语言)

是一种用来描述web service及其访问信息的XML文档,它与编程语言、平台和协议无关。WSDL的协议无关性意味着,它可以用于描述任何类型的web service,而不仅仅是基于HTTP的SOAP类型,它包含web服务4个方面的重要信息:

4、UDDI

Universal Description,Discovery and Integation(通用描述、发现和集成)

它定义了在互联网上发布和寻找web service的标准. 与XML、SOAP、WSDL不同,它并非web service的基础。但是在Java EE中,它被认为是web service的一个基本要素。web服务代理方将UDDI用作注册web服务提供方的标准,而服务请求方则通过UDDI注册表通信来查找并调用服务。可UDDI可以实现为公共注册表,以支持全球的团体,也可实现为私有的注册表

实现web服务的操作步骤

(1)web服务提供方创建SOAP代理接口和基于WSDL的服务描述

(2)web服务提供方注册/发布服务

(3)web服务代理方(通常是一个UDDI注册表)将服务描述存储为绑定模块或URL

(4)web服务请求方从UDDI注册表查找服务及绑定信息

(5)web服务请求方激活并获得攻取WSDL

(6)双方使用SOAP RPC或SOAP Messaging交换机制来交换数据

常用的远程访问技术

1、RMI(remote method invocation)

客户和服务器端必须同时采用java语言,且网络不受约束(RMI使用RMI协议进行访问,无法穿透防火墙)

2、Hessian和Burlap

基于Http的轻量级远程服务,可以在不同编程语言间移植。Hessian使用二进制消息作为媒介,而burlap借助于xml实现客与服务器的交互

3、Http Invoker(spring的http调用器)

它与hessian/burlap类似,都是基于HTTP协议运行的,但是httpInvoder使用的序列化机制是由java本身提供

4、web services

Web service的出现为真正意义上的跨越硬件(设备)、操作系统(平台)、编程语言和应用系统的互操作能力提供了可能。有两种模型:

(1)基于RPC的通信模型定义基于请求/响应的同步通信。客户发出请求后,继续任何操作之前将等等服务器发回响应

(2)基于消息交换的通信模型,通信双方发送的不是一组参数,而是一个完整的文档,可以使用同步或异步通信方式。

jax-RPC(java api for xml-based RPC)

在j2ee 1.4下使用, RPC即Remote Procedure Call,名为远程过程调用

jax-WS(web service)

在java EE5和java6下使用

5、EJB

通过Remote接口提供自己的业务服务,使用JNDI定位远程服务

 

更多关于webservice的资料参考:http://www.ibm.com/developerworks/cn/webservices/

点赞 (0)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code