摘要:随着Internet和weh技术的迅速发展,传统的分布式计算技术已经不能很好的适用于Web环境。正是基于这种情况,Web Service技术应运而生。Web Service是一个新概念,它的系统架构、实现技术是现有应用的面向Internet的一个延伸。Web是为了程序到用户的交互,而Web Service是为程序到程序的交互作准备,web Service已成为IT产业近几年来探索的热点课题之一。
关键词:Web Service;特点;技术
1 Web Service关键技术
Web Service以技术栈的形式规范了Web Service体系中的各类关键技术,包括服务的描述、发布、实现以及消息的传输等,
1.1 XML和HTTP。
这是Web Service最基本的平台。}玎 P是—个在Internet上广泛使用的协议,为Web Service部件通过Internet交互奠定了协泌基础,并具有穿透防火墙的良呼特陛。可扩展标记语言XML是一种元语言,是一种新的Internet上的数据交换标准,与HTML使用标签来描述外观和数据不同,XML严格地定义和描述可移植的结构化数据,它是Web Service得以实现的语言基础。Web Service的其它协议规范都是以XML形式来描述和表达的。
1.2 SOAP。
简单对象访问协议(S0A Simple Object Access Protocol)是一个基于可扩展标识语言(XML,The Extensible Markup Language),在分布式的环境中交换信息的简单的协议。它建立在HTTP协议之上,可以说它是HTTP与XML的结合。SOAP为在—个松散的、分布式的环境中使用XML对等的交换结构化的和类型化的信息提供了一种简单的机制。SOAP本身并不定义任何应用语义,如编程模型或特定语义实现;实际上它通过提供—个有标准组件的包模型和在模块中编码数据的机制,定义了—个简单的表示应用程序语义的机制。这使SOAP能够被用于从消息传递到RPC的各种系统。
SOAP规范由三部分组成:
a.SOAP封装结构定义了一个整体框架用来表示消息中包含什么内容,准来处理这些内容已及这些内容是可选的还是必需的。
b.SOAP编码规则定义了用以交换应用程序定义的数据类型的实例的一系列机制。
c.SOAP RPC表示定义了—个用来表示远程过程调用和应答的协定。
SOAP的消息由三部分组成:SOAP信封(Envelope),SOAP头(Header) SOAP体(Body)。
SOAP体包含用于执行方法调用所需要的信息,例如方法名称和参数等。该部分是强制必需的。
SOAP头包含其他的一些附加数据,例如安全或事务信息。该部分是可选的。
SOAP信封将SOAP头和SOAP体封装在一起。
下面是一个SOAP请求示例,请求—个通过产品编号获得产品价格的服务(服务名称是Get—ProductPrice,它接受—个“ProductID”参数):
<SOAP-ENV:Envelope
xmlns:SOAP-ENV-“http://schemas.xmlsoap.org/soap/envelope/”
SOAP-ENV:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/”>
<S0AP—ENV:Body>
<m:GetProductPrice xmlns:m=“Some—URI”>
<ProductID>SD9001</ProductID >
</m:GetProductPrice>
</S0AP—ENV:Body>
</SOAP—ENV:Envelope>
相应的SOAP响应可能如下所示:
<SOAP-ENV:Envelope
Xmlns:SOAP-ENV=“http://schemas.xmlsoap.org/soap/envelope/”
SOAP—ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/”/>
<S0AP—ENV:Body>
<m:GetProductPriceResponse xmlns:m=“Some-URI”>
<Price>45.6</Price>
</m:GetProductPriceResponse>
</S0AP—ENV:Body>
</SOAP-ENV:Envelope>
其中,Some—URI是服务提供者的地址,Get—ProductPriee是该提供者所提供的一个Web服务方法(Web Method) ,该方法接收一个产品标识的参数(ProductID),方法返回该产品的单价,返回信息包含在Response单元中。
1.3 WSDL。
随着通信协议和消息格式在Web社区中的标准化,以结构化方式来描述通信的可能性和重要性也在13益增加。Web服务描述语言eb Services Description Language,wsDL洒过定义XML语法将网络服务描述成具有消息交换功能的通信端点的集合,从而满足了这种需要,它取代了以往复杂的交互式数据语言(InteractiveData Language,IDL)。WSDL服务定义为分布式系统提供了描述文档,并且可以用作应用程序通信中所涉及的详细信息的自动化方法,客户端应用程序通过WSDL文档来了解Web Service的服务信息和调用接口。
WSDL文档将服务定义为网络端点或网络端口的集合。在WSDL中,端点和消息的抽象定义已从它们的具体网络部署或数据格式绑定中分离出来。
这样就可以重复使用抽象定义:
消息:对所交换数据的抽象描述。
端口类型:操作的抽象集合。
一种特定端口类型的具体协议和数据格式规范构成了—个可重复使用的绑定。—个端口是通过将—个网络地址和—个可重复使用的绑定相关联来定义的;—个端口集合定义一种服务。
1.4 UDDI。
通用描述、发现和集成协议UDDI(Universal Description,Discovery and Integration),它是Web Service的信息注册规范,同时也定义了一种编程接口。通过UDDI提供的标准接口,企业可以发布自己的Web Service供其它企业查询、调用;也可以查询特定服务的描述信息,并动态绑定到该服务上。通过UDDI,Web Service可以真正实现信息的“一次注册,到处访问”。
1.5 WSFL。
WSFL (Web Service Flow Language)使用WSDL和WSEI(Web Service EndpointLanguage)来描述服务接El和它们的协议绑定。WSEL是用来描述非操作性的服务特征(如服务质量等)的—种语言。建立和实现基于计算机网络的分布式系统模式,是对传统模式的扬弃与创新。分布式应用系统是分布、开放的体系结构,具有良好的容错能力、可扩展和可重组陛,处于同一网络层次中的各个结点在逻辑结构上或地理位置上是分布的,无主从之分,能独立地、自主地完成各自的子任务,但为完成系统的整体任务,彼此间还需进行大量的交互活动,包括信息、资料的交流与共享,相互协商、协调与合作以协同完成任务。其基本目标是将现有的各种在地理位置上或逻辑上分布的异构系统,连接到计算机网络中去,以提高各个子系统间的信息交流与合作能力,进而实现资料、资源的共享。
2 Web Service的优势及前景
随着Web Service应用的日益广泛,基于Web Service的公共技术标准SOAP,WSDL/UDDI/WSFL或是已经成为事实上的行业标准,或是正在制订的过程中。作为Web Service的体系结构的领导者,IBM和Microsoft也开始在全球推广Web Service技术。
2.1 web Service的优势。
web Service有四大优势:
a.互操作性增强。在服务提供者和服务请求者之间的交互是独立于平台和语言的,这种交互需要—个WSDL文档描述服务,也需要一个网络协议国常是H,ITrP协议)o互操作中的服务提供者和服务请求者不必知道互相使用的平台和语言。
b.即时集成(Justin—time intepen)。服务发现的过程时动态发生的(通过UDDI注册中心等),一旦服务请求者发现了服务,服务提供者的WSDL文档就被用来将服务请求者和服务绑定到一起。这意味着服务请求者服务提供者与服务注册中心一起工作以创建自动配置的、应的、健壮的系统。
c.通过封装降低复杂性。服务请求者和服务提供者只考虑自己要用于交互的接口,服务请求者不知道服务提供者如何实现它的服务,服务提供者也不知道—个服务请求者如何使用他的服务,这些细节在请求者和提供者内部封装了。
d.有效利用传统应用系统。使用—个应用程序生成—个SOAP包装器,然后生成一个WSDL文档将应用程序转换成一个Web Service的过程是相当直接的,这意味着,传统应用系统可以以一种新的方式使用。另外,与传统应用系统相关的基础结构,例如安全、目录服务、事务等也可以被包装成—个服务。
2.2 Web Service在Intemet上的应用集成。
在新—代的分布式应用系统中,必须解决不同组件模型、开发工具、程序语言和应用系统之间在Intemet环境中互相沟通和合作的问题,因此软件界势必要一种标准的沟通机制,而这种机制正式现在的SOAP。
以往的组件通信机制总是属于某一或几个厂商所制订的标准,很难在整个企业界形成为一的同一和认可,所以造成了不同组件的应用系统难于集成的情况,但现在的SOAP是独立于任何厂商的一种标准协议,它是以XML的标准格式来封装通信信息的一种沟通机制,其中封装的通信信息以文本形式来表达,任何组件模型、开发工具、程序语言和应用系统以及操作系统只要支持XML和文本格式,就可以完全支持SOAP。这使得SOAP成为了lnternet上应用系统集成的关键。
使用SOAP协议与DCOM和CORBA技术相结合创建未来的分布式计算应用后,可以真正的解决现在分布式应用的缺陷。由于系统中直接使用了SOAP来沟通和交换数据,不在需要特定的Bridge技术,增加了执行效率,降低应用系统的复杂度,进而增加直用系统的稳定性。当企业需要集成不同的应用系统时,可以在系统间直接使用SOAP来沟通,不管对方的系统是基于什么架构和使用什么软件技术开发的,都可 哽利的进行系统的集成。如果在系统开发中进一步使用Web Service,那么就可以重复使用Internet上各个企业提供的功能和资源,实现在Internet上无缝集成的目标。
S0A/Web Service有强大的集成能力,所有的应用系统和设备都可以通过其标准来沟通、协调,并相互调用。S0AP/Web service还可以建立新—代的分布式系统,在Web Service可以封装好不同的服务提供者提供的服务,让客户段通过一致的接口调用,不再需要使用特定的API接口;而服务的核心本身可以使用SOAP/Web Service技术动态的调整和集成,这样的架构是非常适合于使用在lntemet和动态的环境中的。男外,SOAP/Web Service架构还提供了最好的即插即用的解决方案,任何—个新的web服务或是现存的应用程序都可以方便的加入到Web Service架构的系统中,为用户提供新的服务。
从上面的分析可以看到,使用SOAP/Web Service构建lnternet上的分布式系统具有传统解决方案所没有的巨大优势,相信不用多久,SOAP/Web Service的互操作时代就会来临。