Webservice学习笔记一,基本术语

来源:互联网 发布:win7能用的vb百度云 编辑:程序博客网 时间:2024/05/21 18:48

原文:http://blog.csdn.net/xuenzhen123/archive/2009/12/29/5098054.aspx


1  Web Service基本概念

Web Service主要是为了使原来各孤立的站点之间能够相互通信、共享资源而提出的一种接口。 Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows、Linux)中使用。其中,SOAP协议(Simple Object Access Protocal,简单对象访问协议)是一个用于分散和在分布式环境下交换网络信息的基于XML的通信协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通信。它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。Web Service是构造分布式、模块化应用程序的最新技术发展趋势。

因此,我们可以这样定义Web Service:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过 UDDI 进行注册。Web Service 体系结构的主要优点之一是,它允许在不同平台上以不同语言编写的各种程序以基于标准的方式相互通信。相对以前的方案而言,Web Service 的另一大优点是使用标准的Web协议——XML、HTTP和TCP/IP,相对易用和通用。

微软在其.NET战略中,对其主推的Web服务做了大肆的宣扬。现在,Web服务正如火如荼地发展着,相关的各项新技术层出不穷。Web服务的发展正构筑着互联网时代美好的明天。在本节中,将向大家介绍Web服务的一些基本知识,以及如何用ASP.NET来创建Web服务和调用Web服务。

2  Web Service的应用场景

以前,分布式的应用程序逻辑需要使用分布式的对象模型,通过使用DCOM、CORBA、RMI之类的基本结构,开发人员仍可拥有使用本地模型所提供的丰富资源和精确性,并可将服务置于远程系统中。

当已经有中意的中间件平台(RMI、Jini、CORBA、DCOM等)时,我们为什么还要为Web而烦恼呢?中间件确实提供了强大的服务实现手段,但是,这些系统有一个共同的缺陷,那就是它们无法扩展到互联网上:它们要求服务的客户端与系统提供的服务本身之间必须进行紧密耦合,即要求一个同类基本结构。然而这样的系统往往十分脆弱:如果一端的执行机制发生变化,那么另一端便会崩溃。例如,如果服务器应用程序的接口更改,那么客户端便会崩溃。为了能扩展到互联网运用,我们需要一种松散耦合的基本结构来解决这个问题。在些情况下就迎来了Web服务的诞生。Web Service技术是一种基于标准的Web协议的可编程组件,我们可以把Web Service看做Web上的组件,Web服务提供者开放一系列的API,开发人员通过调用这些API来集成Web服务,构建自己的应用程序。

1.SOAP

SOAP(Simple Object Access Protocal)是在分散或在分布式环境中交换信息的简单协议,它基于XML协议,以XML形式提供了一个简单且轻量的用于在分散或分布环境下交换结构化和类型信息的机制,其本身并没有定义任何应用程序语义,如编程模型或特定语义的实现,而是通过提供一个有标准组件的包模型和在模块中编码数据的机制定义了一个简单的表示应用程序语义的机制,使其能够用于从信息传递到RPC的各种系统。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP最引人注目的特征是它可以在许多不同的软件和硬件平台上实现。这意味着 SOAP 可用于连接企业内部和外部的不同系统。过去曾试过多种方法以提出一个可用于系统集成的通用通信协议,但它们都没有像SOAP一样获得广泛的认可。为什么呢?因为与许多早期的协议相比,SOAP更小巧,而且更简单和易于实现。HTTP的普及和SOAP的简单性使你几乎可以在任何环境下调用它们,因此成为XML Web Service的理想基础。

2.WSDL

你会怎样向别人介绍你的Web Service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,甚至口头告诉需要使用你的Web Service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web Service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web Service。解决方法是使用机器能阅读的方式提供一个正式的描述文档。Web Service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web Service生成WSDL文档,又能导入WSDL文档,生成调用相应Web Service的代码。

3.UDDI

UDDI(通用发现、说明和集成)是Web服务的黄页。是一套基于Web的、分布式地为Web Service 提供信息注册中心的实现标准,同时包含一组能使企业将自身提供的Web Service注册使得别的企业能够发现的访问协议。与传统黄页一样,你可以搜索提供所需服务的公司,阅读以了解所提供的服务,然后与某人联系以获得更多信息。

 

 

趣味理解

Web Service好比一个服务供应商,给其他厂家提供基础服务,其他厂家再将这个服务包装成自己的产品或者服务提供给别人或自己使用。有点像OEM了。既然两个公司需要合作,不可能靠一句话就可以的,就需要一些标准和规范的东西来实现。那么:

SOAP 就像两个公司之间签的合同,约束双方按一定规矩和标准办事。

WSDL 则像说明书,告诉别人你有什么,能给别人提供什么服务。

UDDI 好比你的公司需要在黄页或工商注册,企业的主营业务登记,方便别人查询。当然,你也可以不在 UDDI 中注册,就像在地下室开展业务,靠的是口头吆喝;但是如果你希望拓展市场,则需要 UDDI 以便能被客户发现,更方便地找到你。

Web Service是创建可互操作的分布式应用程序的新平台。Web Service 的主要目标是跨平台的可互操作性。为了达到这一目标,Web Service 是完全基于XML、XSD等独立于平台、独立于软件供应商的标准的。Web Service在应用程序跨平台和跨网络进行通信的时候是非常有用的。Web Service适用于应用程序集成、B2B集成、代码和数据重用,以及通过Web进行客户端和服务器的通信的场合。

当然,Web Service也不是万能的,你不能到处滥用Web Service。在有些情况下,Web Service 会降低应用程序的性能,而不会带来任何好处。例如,一台机器或一个局域网里面运行的同构应用程序就不应该用Web Service 进行通信。

到现在为止,我们已经讨论了如何与 Web Service 通信(SOAP),Web Service是怎样进行说明的(WSDL),以及如何查找 Web Service(UDDI)。这些内容构成了一套基本规范,为应用程序的集成和聚合提供了基础。根据这些基本规范,公司可以构建实际的解决方案,并从中获益。

原创粉丝点击