WEB服务
1.什么是WEB服务
Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。
根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。
尽管W3C的定义涵盖诸多相异且无法介分的系统,不过通常我们指有关于主从式架构(Client-server)之间根据SOAP协议进行传递XML格式消息。无论定义还是实现,WEB服务过程中会由服务器提供一个机器可读的描述(通常基于WSDL)以辨识服务器所提供的WEB服务。另外,虽然WSDL不是SOAP服务端点的必要条件,但目前基于Java的主流WEB服务开发框架往往需要WSDL实现客户端的源代码生成。一些工业标准化组织,比如WS-I,就在WEB服务定义中强制包含SOAP和WSDL。
2.WEB服务的产生
为了实施电子商务,无论自身的IT部门还是外包的解决方案提供商,其给出的实施计划都是应用正式运营前的。一旦应用被部署之后,由于商务环境和商务需求的不断改进和不断变化,这些电子商务应用不可避免地需要被修订、需要被更新,以符合新的电子商务流程。
传统的解决方案是为每个需要的企业资源或外部资源编写连接代码,以使得应用得以运行。这些资源包括传统系统(legacy systems)和数据库、Web应用及Web资源。
传统解决方案的缺点:
1、 代码很难再定制;
2、由于每个应用都有其自己特有的基础架构,这些应用在部署、更改和维护上的代价都异常高昂;
3、不能被方便地继承;
4、不能随着企业商务的规模扩展而方便地实现应用的规模扩展。
Web服务的使用将改变目前的开发模式和应用部署的费用规模。各种Web服务构件实现了一定的电子商务功能,通过将各种电子商务的Web服务进行组合和集成以创建动态电子商务应用。Web服务能够统一地封装信息、行为、数据表现以及商务流程,而无需考虑应用所在的环境是使用何种系统和设备。
3.WEB服务特点[1]
Web服务作为一种新兴的Web应用模式,是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。
Web服务就像Web上的构件编程,开发人员通过调用Web应用编程接口,将Web服务集成进他们的应用程序,就像调用本地服务一样。
从外部用户看,Web服务是一种部署在Web上的对象/组件,具备完好的封装性、松散耦合、自包含、互操作、动态、独立于实现技术、构建于成熟技术、高度可集成、使用标准协议等特征。从实施对象看,把资源、计算能力提供给用户,需要以服务的形式完成。
Web服务通过WSDL来描述,通过SOAP作访问,在商业注册中心(UDDI)发布,从而使开发者和电子商务应用程序可以搜索并定位到该服务。在Web服务开发的过程中有三个清晰的角色定义,它们是服务的提供者(Service provider),服务的请求者(Service request)和服务的代理(Service broker),下图显示了它们之间的关系。
4.WEB服务体系结构的优势[1]
- (一)WEB服务的高度通用性
Web服务既然是一种部署在Web上的对象,自然具备对象的良好封装性,对于使用者而言,他能且仅能看到该对象提供的功能列表,而不必考虑web服务对象的内部组成,因此有易用性。Web服务对象内封装都是一些通用功能,因此也具有高度的复用性。
- (二)完全的平台、语言独立性
Web服务对象具有松散耦合的特性,这一特征也是源于对象/组件技术,当一个Web服务的实现发生变更的时候,调用者是不会感到这一点的,对于调用者来说,只要Web服务的调用界面不变,Web服务的实现任何变更对他们来说都是透明的,甚至是当Web服务的实现平台从J2EE迁移到了.NET或者是相反的迁移流程,用户都可以对此一无所知。其实现的核心在于使用XML/SOAP作为消息交换协议,也就是说web服务因此具有语言的独立性。
作为Web服务,其协约必须使用开放的标准协议(比如HTTP、SMTP等)进行描述、传输和交换。这些标准协议应该完全免费,以便由任意平台都能够实现。一般而言,绝大多数规范将最终有W3C或OASIS作为最终版本的发布方和维护方,因此web服务也拥有了平台独立性。
- (三)高度可集成性
由于Web服务采取简单的、易理解的标准Web协议作为组件界面描述和协同描述规范,完全屏蔽了不同软件平台的差异,无论是CORBA、DCOM还是EJB都可以通过这一种标准的协议进行互操作,实现了在当前环境下最高的可集成性。
5.WEB服务的协议架构[1]
WEB服务的协议架构大致可以描述成如下表:
服务发现层 | UDDI |
服务发布层 | UDDI |
服务描述层 | WSDL |
消息传输层 | SOAP |
数据表现协议层 | XML |
网络传输层 | HTTP,FTP,MQ,IIOP |
表格自底向上,每一层协议都为上一层提供服务。
- (一)UDDI
UDDI是统一描述、发现和集成(Universal Description, Discovery, and Integration)的缩写。它是一个基于XML的跨平台的描述规范,可以使世界范围内的企业在互联网上发布自己所提供的服务。
UDDI是OASIS发起的一个开放项目,它使企业在互联网上可以互相发现并且定义业务之间的交互。UDDI业务注册包括三个元件:
0、白页:有关企业的基本信息,如地址、联系方式以及已知的标识;
1、黄页:基于标准分类的目录;
2、绿页:与服务相关联的绑定信息,及指向这些服务所实现的技术规范的引用。
UDDI是核心的Web服务标准之一。它通过简单对象存取协议进行消息传输,用Web服务描述语言描述Web服务及其接口使用。
- (二)WSDL
WSDL(Web服务描述语言,Web Services Description Language)是为描述Web服务发布的XML格式。W3C组织(World Wide Web Consortium)没有批准1.1版的WSDL,但是2.0版本已经在制订中,2.0版将被作为推荐标准(recommendation)(一种官方标准),并将被W3C组织批准为正式标准。
WSDL描述Web服务的公共接口。这是一个基于XML的关于如何与Web服务通讯和使用的服务描述;也就是描述与目录中列出的Web服务进行交互时需要绑定的协议和信息格式。通常采用抽象语言描述该服务支持的操作和信息,使用的时候再将实际的网络协议和信息格式绑定给该服务。
- (三)SOAP
SOAP:简单对象访问协议,简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包
括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。
6.WEB服务的技术体系
一个Web服务被分为数据层(Data Layer)、数据访问层(Data Access Layer)、业务层(Business Layer)、业务面(Business Facade)和监听者(Listener)五个逻辑层。
在Web服务中,通信是基于Internet协议(例如HTTP、SMTP、FTP等)互相传递XML消息的通信协议规范,描述采用一种基于XML的语言描述和定义接口与绑定,发布和发现把Web服务提交到注册中心而让用户通过中介发现Web服务。
7.WEB服务的发现和定制
首先,服务发现功能在Internet上搜寻已有的程序和数据。若满足用户需求功能的Web服务,则调用需求分析功能分解用户的服务需求,进入服务定制过程。
其次,需求分析功能在用户参与下准确定位用户需要的服务。
第三,把服务组装方案提交到执行用户具体服务的环境,对组装链接的计算资源进行验证与一致性测试。