`
zwtlong
  • 浏览: 167783 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Web service到底是什么?在什么情况下你应该使用Web service

阅读更多
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。

传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。

关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。

许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C++、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的"高级程序到程序交流(APPC)"等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。

什么是Web Service

对这个问题,我们至少有两种答案。从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web service 的应用程序叫做客户。例如,你想创建一个Web service ,它的作用是返回当前的天气情况。那么你可已建立一个ASP页面,它接受邮政编码作为查询字符串,然后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,客户端需要发送下面的这个HTTP GET请求:

http://host.company.com/weather.asp?zipcode=20171

返回的数据就应该是这样:

21,晴

这个ASP页面就应该可以算作是Web service 了。因为它基于HTTP GET请求,暴露出了一个可以通过Web调用的API。当然,Web service 还有更多的东西。

下面是对Web service 更精确的解释: Web services是建立可互操作的分布式应用程序的新平台。作为一个Windows程序员,你可能已经用COM或DCOM建立过基于组件的分布式应用程序。COM是一个非常好的组件技术,但是我们也很容易举出COM并不能满足要求的情况。

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

新平台

Web service平台需要一套协议来实现分布式应用程序的创建。任何平台都有它的数据表示方法和类型系统。要实现互操作性,Web service平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统。在传统的分布式系统中,基于界面(interface)的平台提供了一些方法来描述界面、方法和参数(译注:如COM和COBAR中的IDL语言)。同样的,Web service平台也必须提供一种标准来描述Web service,让客户可以得到足够的信息来调用这个Web service。最后,我们还必须有一种方法来对这个Web service进行远程调用。这种方法实际是一种远程过程调用协议(RPC)。为了达到互操作性,这种RPC协议还必须与平台和编程语言无关。下面几个小节就简要介绍了组成Web service平台的这三个技术。

XML和XSD

可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。

XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。在第二章中,我们将深入XSD,学习怎样转换自定义的数据类型(例如类)到XSD的类型。

SOAP

Web service建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的RPC方法来调用Web service。实际上,SOAP在这里有点用词不当:它意味着下面的Web service是以对象的方式表示的,但事实并不一定如此:你完全可以把你的Web service写成一系列的C函数,并仍然使用SOAP进行调用。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。第三章我们会讨论SOAP,并结识SOAP消息的各种元素。

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的代码。
0 0 0
(请您对文章做出评价)
分享到:
评论

相关推荐

    C#Web Service C#Web Service C#Web Service

    在C#中,Web Service通常基于SOAP(Simple Object Access Protocol)协议,它是一种轻量级的XML消息格式,用于在不同的应用之间传输数据。创建C# Web Service的过程主要包括以下几个步骤: 1. **定义服务接口**:...

    service now web service

    ### Service Now Web Service知识点 #### 一、简介与概述 **Service Now Web Service**是一种集成解决方案,它允许不同应用程序之间通过网络进行通信。Service Now 支持多种类型的 Web 服务,包括作为提供者...

    使用Web Service获取天气预报

    知识点1:什么是Web Service? Web Service是一种基于网络的远程调用技术,允许不同的应用程序之间进行交互和数据交换。Web Service通常使用 SOAP(Simple Object Access Protocol)协议来传输数据,并且可以使用...

    web service 精典入门教程

    "Web Service 精典入门教程" 本篇教程旨在为读者提供一个完整的 Web Service 入门指南,涵盖了 Web Service 的基本概念、架构、SOAP 协议、WSDL 文件、_WS-Security 等重要知识点。 Web Service 基本概念 Web ...

    asp.net写的web service例子

    这个例子是为初学者设计的,旨在演示如何创建和使用Web Service,以及如何在ASP.NET环境中调用这些服务。 Web Service是一种通过HTTP协议进行通信的服务,允许不同系统之间交换数据。它基于SOAP(Simple Object ...

    web service 教程

    webservice 从表面上看Web service 就是一个应用程序它向外界暴露出一个能够通过Web进行调用的API。这就是说你能 够用编程的方法通过Web来调用这个应用程序。 对Web service 更精确的解释 Web ...

    D6 SOAP_WEB SERVICE

    标题"D6 SOAP_WEB SERVICE"指的是使用Delphi编程语言开发基于SOAP(简单对象访问协议)的Web服务。在本文中,我们将深入探讨这个主题,了解如何使用Delphi构建Web服务以及SOAP在其中的作用。 首先,让我们了解一下...

    Web Service Proxy Wizard的介绍,安装,以及如何使用

    Web Service Proxy Wizard 是一个工具,它为Visual Studio 6.0的开发者提供了一种方法,可以将Web服务封装成一个代理组件(.dll),这个组件可以在设计时通过早期绑定(Early Binding)像其他COM组件一样使用。...

    《实战Delphi6/Kylix2/SOAP/Web Service程序设计篇》(

    5. **实例分析**:书中将提供实际项目案例,展示如何在不同场景下应用SOAP和Web Service技术,如电子商务、数据库访问、数据交换等。 6. **安全性和错误处理**:讨论如何处理网络安全问题,如HTTPS、数字签名和加密...

    D6 SOAP_WEB SERVICE程序设计.part1.rar

    delphi下soap编程指导 第一章 SOAP和Web Service的概念 第二章 组件模型、Internet/Intranet和SOAP 第三章 开发Web Service 第四章 什么是SOAP 第五章 SOAP和数据封装 ...第十四章 在Internet上使用Web Service

    web service ppt

    在Web Service的技术栈中,WSDL(Web Service Description Language)是用于定义服务接口的规范,它描述了服务的地址、操作和输入/输出消息的结构。SOAP(Simple Object Access Protocol)则是一个轻量级的消息协议...

    PB11开发Web Service应用

    "PB11 開發Web Service 應用.pdf"文档很可能会包含具体的实例,指导开发者如何从头开始创建一个简单的Web Service,包括定义服务接口、实现业务逻辑、发布服务以及在PB11中创建客户端进行调用等步骤。 五、学习资源...

    Web service应用实例

    这通过在`<system.web>`节点下添加`<webServices>`节点,并在其下配置`<protocols>`子节点来实现。 **3. 发布Web Service** 发布Web Service前,先生成网站,然后通过“发布网站”选项选择目标目录。例如,若Web ...

    什么是Web Service

    Web Service的核心在于提供了跨平台、跨语言的互操作性,使得开发者可以在不考虑底层技术差异的情况下构建分布式应用。 #### 使用场景 Web Service在以下场景中非常有用: - **跨平台集成**:当需要在不同的操作...

    Java完整的Web Service示例代码,学会做web service程序

    1. **生成客户端代理类**:基于服务端的WSDL(Web Service Description Language)文件,你可以使用XFire的工具(如xsi或wsimport)来生成客户端所需的代理类。这些类提供了调用远程Web服务的方法。 2. **配置...

    SAP web Service 基础教程

    SAP Web Service 是一种基于 SOAP 协议和 WSDL 语言的 Web 服务实现方案,在 SAP 系统中,开发和消费 SOAP 方式的 Web Service 十分方便。本教程将详细介绍 SAP Web Service 的基础知识,包括 SOAP、WSDL、SAP 系统...

    web service第一次启动慢

    web service在第一次启动时出现启动缓慢的问题,通常是指在运行或访问web service时遇到的启动延迟现象。这种问题可能会在不同的web service应用中出现,尤其是在首次连接或部署新服务时更为常见。web service是一种...

    xfire开发Web Service接口详解

    2. 添加依赖:将XFire的JAR文件添加到你的项目类路径中,如果你使用的是Maven或Gradle,可以配置相应的依赖项。 四、创建Web Service 1. 定义服务接口:使用Java接口定义服务的方法,这些方法将暴露为Web服务操作。...

    Web_Service与SAP_ECC系统服务发布与调用

    发布 Web Service 服务可以让其他系统调用 SAP ECC 系统的功能和数据,而调用外部异构系统发布的 Web Service 服务可以让 SAP ECC 系统使用外部系统的功能和数据。 发布 Web Service 服务: 在 SAP ECC 系统中,...

    使用XFire+Spring构建Web Service

    【使用XFire+Spring构建Web Service】是一种高效且灵活的方法,尤其适合于那些希望利用Spring框架的优秀特性来开发Web Service应用的开发者。XFire是一个先进的Web Service框架,与Axis2并列为新一代的选择,因其...

Global site tag (gtag.js) - Google Analytics