认识Web Servcie

一、定义

         WebService是一种跨编程语言和跨操作系统平台的远程调用技术。从表面上看,WebService就是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。从深层看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Webservice ,只要我们可以通过Web service标准对这些服务进行查询和访问。

        基础的 Web Services 平台是XML + HTTP。XML 提供了一种可用于不同的平台和编程语言之间的语言。HTTP 协议是最常用的因特网协议。

二、元素

1.SOAP (Simple Object Access Protocol):

         SOAP 消息是 Web Service 架构中不同结点间传送信息的基本数据单元。一个 SOAP 消息是由 XML 消息头和一个 SOAP 封装( SOAP Envelope)组成的 XML文档。

1.SOAP 封装:

         SOAP 封装描述了该消息所包含的基本信息, SOAP 封装中包括一个可选的 SOAP 消息头( SOAP Header)和必需的 SOAP 消息体( SOAP Body)。

<?xmlversion="1.0" ?>

<env:Envelopexmlns:env="http://www.w3.org/soap-envelope">

<env:Header>

<data:headerBlock

xmlns:data="http://example.com/header"

env:role="http://example.com/role"

env:mustUnderstand="true">

...

</data:headerBlock>

...

</env:Header>

<env:Body>

<data:bodyBlockxmlns:data="http://example.com/header">

...

</data:bodyBlock>

...

</env:Body>

</env:Envelope>

2.SOAP 调用过程

          

         SOAP的基本思想是将数据/对象打包成 XML 格式的数据在网络环境中交换以达到服务调用的目的。发送者和接收者之间可以交换任何类型的消息数据。发送者利用XML 编码将消息进行打包 SOAP 消息,通过底层的网络传输协议进行传输,接收者收到消息并将消息进行解码获取所需要的数据。SOAP没有定义任何底层的传输协议,可以使用 HTTP、 FTP、 SMTP 或者 JMS,甚至是自定义协议来传输 SOAP报文, 在 Internet环境下一般使用 HTTP 协议。 从某种意义上讲,SOAP 可以简单理解“HTTP+XML+RPC”,即使用 HTTP 作为底层通信协议, XML作为数据传输的格式,实现 Web 环境下的远程服务调用( RPC)。


2.WSDL (Web Service Description Language):

        WSDL是一种用 XML 文档来描述 Web 服务的标准,是 Web 服务的接口定义语言。其内容包含了 Web 服务的基本属性信息,如 Web 服务所提供的操作、和Web 服务进行消息交换的数据格式和协议标准、 Web 服务的网络位置等信息。

WSDL 数据结构

        WSDL以端口集合的形式来描述 Web 服务, WSDL 服务描述包含对一组操作和消息的一个抽象定义,绑定到这些操作和消息的一个具体协议,和这个绑定的一个网络端点规范。WSDL文 档 分 为 两 种 类 型 : 服 务 接 口 (Service interface ) 和 服 务 实 现(Serviceimplementations)。

 

3.UDDI (Universal Description, Discovery andIntegration):

        UDDI是一套基于 Web 的、分布式的并为 Web 服务提供注册的信息注册中心的实现规范,同时也包含了一组使企业能将自身提供的 Web服务进行注册以使其它企业能够发现的访问协议实现标准。UDDI 标准包含一个独立于平台的框架,用于通过使用 Internet来描述服务,发现企业,并对企业服务进行集成。通过使用 UDDI,Web 服务提供者能够注册 Web服务,应用程序或服务使用者能够查找到所需要的 Web服务并了解如何与之连接和交互。

1.UDDI 数据模型

        UDDI商业注册通过使用一个 XML 文档来描述企业及其提供的 Web 服务。其做法类似于电信公司发布电话号码所使用的黄页,客户可以很方便的从上面查找到需要的信息。从概念上来说,UDDI 商业注册所提供的信息包括以下三部分内容:

  • 白页( White Page):有关企业的基本信息,包括了企业名称、经营范围的描述、联系信息和已知的企业标识等;
  • 黄页( Yellow Page):提供基于标准分类法的行业类别,能够使使用者在更大的范围内查找在注册中心注册的企业或服务;
  • 绿页( Green Page):关于该企业所提供的 Web 服务的技术信息和 Web 服务说明信息,并提供了指向这些服务所在实现的技术规范的引用和一些指针,指向基于文件的URL 的不同发现机制。

       UDDI注册中心是由 UDDI 规范的一种或多种实现组成,它们可以互操作以共享注册中心数据。 UDDI 商业注册中心是由通过被称为节点的一组 UDDI注册中心构成,能够对外公开访问,通过互操作共享注册中心数据。在很多 UDDI 运营商(如 IBM、 Microsoft、 HP 和SAP等)站点上都冗余的放着 UDDI 商业注册中心的全部条目,只有该站点才能够对这些条目进行更改。

2.调用过程

        UDDI提供一种统一的 Web 服务注册环境,用于存储和发布商业组织所提供的 Web 服务,便于 Web 服务使用者查找和调用服务。如图 10-8所示,软件公司、标准组织或开发人员在 UDDI 商业注册中心中注册所要发布的 Web 服务的类型和描述信息;实施人员完成 Web服务的开发和部署工作后,在UDDI 中注册业务描述信息及其所发布的服务; UDDI 为每个服务和注册分配唯一的标识;市场、搜索引擎或业务应用等服务使用者利用 UDDI提供的服务查询接口查询服务注册信息,发现位于其它公司的 Web 服务来促进自己的业务集成;服务使用者可以调用其需要的服务并应用到自己的架构和业务流程中。

 

三、WebService优点

1、跨防火墙的通信

        如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用Web Service,可以直接使用Microsoft SOAPToolkit或.net这样的SOAP客户端,也可以使用自己开发的SOAP客户端,然后把它和应用程序连接起来。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次调用中间层组件时,都跳转到相应的"结果页"。

2、应用程序集成

        企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行的一台主机上的程序中获取数据;或者把数据发送到主机或其它平台应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据"暴露"出来,供其它应用程序使用。

XML Web services提供了在松耦合环境中使用标准协议(HTTP、XML、SOAP 和 WSDL)交换消息的能力。消息可以是结构化的、带类型的,也可以是松散定义的。

3、B2B的集成

         B2B指的是Business to Business,as in businesses doing business with otherbusinesses,商家(泛指企业)对商家的电子商务,即企业与企业之间通过互联网进行产品、服务及信息的交换。通俗的说法是指进行电子商务交易的供需双方都是商家(或企业、公司),她们使用了Internet的技术或各种商务网络平台,完成商务交易的过程。

WebService是B2B集成成功的关键。通过WebService,公司可以只需把关键的商务应用"暴露"给指定的供应商和客户,就可以了,WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。 用WebService来实现B2B集成的最大好处在于可以轻易实现互操作性。只要把商务逻辑"暴露"出来,成为Web Service,就可以让任何指定的合作伙伴调用这些商务逻辑,而不管他们的系统在什么平台上运行,使用什么开发语言。这样就大大减少了花在B2B集成上的时间和成本。

4、软件和数据重用

        WebService在允许重用代码的同时,可以重用代码背后的数据。使用Web Service,再也不必像以前那样,要先从第三方购买、安装软件组件,再从应用程序中调用这些组件;只需要直接调用远端的WebService就可以了。另一种软件重用的情况是,把好几个应用程序的功能集成起来,通过Web Service"暴露"出来,就可以非常容易地把所有这些功能都集成到你的门户站点中,为用户提供一个统一的、友好的界面。 可以在应用程序中使用第三方的WebService 提供的功能,也可以把自己的应用程序功能通过Web Service 提供给别人。两种情况下,都可以重用代码和代码背后的数据。


从以上论述可以看出,Web Service在通过Web进行互操作或远程调用的时候是最有用的。不过,也有一些情况,Web Service根本不能带来任何好处,Web Service有一下缺点:

1、 单机应用程序

        目前,企业和个人还使用着很多桌面应用程序。其中一些只需要与本机上的其它程序通信。在这种情况下,最好就不要用WebService,只要用本地的API就可以了。COM非常适合于在这种情况下工作,因为它既小又快。运行在同一台服务器上的服务器软件也是这样。当然WebService 也能用在这些场合,但那样不仅消耗太大,而且不会带来任何好处。

2、 局域网的一些应用程序

     在许多应用中,所有的程序都是在Windows平台下使用COM,都运行在同一个局域网上。在这些程序里,使用DCOM会比SOAP/HTTP有效得多。与此相类似,如果一个.net程序要连接到局域网上的另一个.net程序,应该使用.netRemoting。其实在.net Remoting中,也可以指定使用SOAP/HTTP来进行Web Service调用。不过最好还是直接通TCP进行RPC调用,那样会有效得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值