.

面试官知道WebService吗

一、什么是WebService

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

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

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

WebService是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebService可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。

WebService是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。可将Web服务视作Web上的组件编程。

1历史

web广泛用到的技术:

◆TCP/IP:通用网络协议,被各种设备使用

◆HTML:通用用户界面,可以使用HTML标签显示数据

◆Java:写一次可以在任何地方运行的通用编程语言

◆XML:通用数据表达语言,在web上传送机构化数据的容易方法

他们的特点是其开放性,跨平台性,开放性正是Webservices的基础。

2Web发展的趋势

内容更动态化

◆带宽Bandwidth更便宜,易于获得

◆存储器Storage更便宜,更易获得

◆普遍式计算变得更加重要:大量的设备,例如移动电话,页面,电脑,pc,已经在Internet上变得普遍,平台变得更多元化,象XML这样的跨平台技术变得更重要

3WebServices扮演什么角色?

上述的这些趋势意味着,更加智能的处理,操作和汇总内容变得十分重要。让我们看看按照Webservices角度所预示的四个趋势:

◆内容更加动态:一个webservice必须能合并从多个不同源来的内容,可以包括股票,天气,新闻等,在传统环境中的内容,如存货水平,购物订单或者目录信息等,都从后端系统而来

◆带宽更加便宜:webservices可以分发各种类型的内容(音频,视频流等)

◆存储更便宜:webservices必须能聪明地处理大量数据,意味着要使用数据库,LDAP目录,缓冲,和负载平衡软件等技术保持可扩展能力

◆普遍式计算更重要:webservices不能要求客户使用某一版本的windows的传统浏览器,必须支持各种设备,平台,浏览器类型,各种内容类型。

4两种重要技术

要达到这样的目标,Webservices要使用两种技术:

◆XMLXML是在web上传送结构化数据的伟大方式,Webservices要以一种可靠的自动的方式操作数据,HTML不会满足要求,而XML可以使webservices十分方便的处理数据,它的内容与表示的分离十分理想

◆SOAPSOAP使用XML消息调用远程方法,这样webservices可以通过HTTP协议的post和get方法与远程机器交互,而且,SOAP更加健壮和灵活易用。

其他象UDDI和WSDL技术与XML和SOAP技术紧密结合用于服务发现。/SPAN

组成Webservice平台的这三个技术。

二、SOAP是什么

SOAP是SimpleObjectAccessProtocol(简单对象访问协议)的缩写。

SOAP是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议.

对于Soap的理解:

第一步理解:SOAP=HTTP+XML

第二步理解:SOAP把XML的使用代码化为请求和响应参数编码模式,并用HTTP作传输。

SOAP是把成熟的基于HTTP的WEB技术与XML的灵活性和可扩展性组合在了一起。

第三步理解:具体地讲,一个SOAP实现可以简单地看作遵循SOAP编码规则的HTTP请求和响应。

注意:SOAP是一个协议,与编程语言无关。实际上,许多语言已经开始支持SOAP,如:Java,C,C++以及JavaScript。

Soap的起源?Soap解决的问题?

SOAP最初由微软发起研究,用以解决MTS/COM资源消耗大,不够轻巧等问题,后逐渐被IBM等巨头接纳并加入研究,现已提交W3C,成为WebService应用传输标准。SOAP技术主要用于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。

SOAP意思是简单对象访问协议(SimpleObjectAccessProtocol)。的确如它的名字一样,SOAP是很简单的。它是一个基于XML的协议,允许程序组件和应用程序彼此使用一种标准的Internet协议--HTTP来通讯。SOAP是一种独立的平台,它不依赖程序语言,它是简单的,弹性的,很容易扩展的。目前,应用程序能够彼此使用一种基于DCOM和CORBA技术的远程过程调用(RPC)来进行相互通讯,但HTTP不被设计为这个目的。RPC在Internet上应用是非常困难的,它们会出现许多兼容性和安全性的问题,因为防火墙和代理服务器通常都会阻断(block)这些类型的流量。应用程序之间最好的通讯方式是通过HTTP协议,因为HTTP是支持所有Internet浏览器和服务器的。基于这个目的,SOAP协议被创建出来。

SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encodingrules),用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示(RPCrepresentation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。

虽然这四个部分都作为SOAP的一部分,作为一个整体定义的,但他们在功能上是相交的、彼此独立的。特别的,信封和编码规则是被定义在不同的XML命名空间(namespace)中,这样使得定义更加简单。

三、UDDI

UDDI目录条目是介绍所提供的业务和服务的XML文件。UDDI目录条目包括三个部分。

“白页”介绍提供服务的公司:名称、地址、联系方式等等;

“黄页”包括基于标准分类法的行业类别;

“绿页”详细介绍了访问服务的接口,以便用户能够编写应用程序以使用Web服务。

服务的定义是通过一个称为类型模型(或tModel)的UDDI文档来完成的。多数情况下,tModel包含一个WSDL文件,用于说明访问XMLWebService的SOAP接口,但是tModel非常灵活,可以说明几乎所有类型的服务。

UDDI目录还包含若干种方法,可用于搜索构建您的应用程序所需的服务。例如,您可以搜索特定地理位置的服务提供商或者搜索特定的业务类型。之后,UDDI目录将提供信息、联系方式、链接和技术数据,以便您确定能满足需要的服务。

UDDI允许您查找提供所需的Web服务的公司。如果您已经知道要与谁进行业务合作,但尚不了解它还能提供哪些服务,这时该如何处理呢?WS-Inspection规范(英文)允许您浏览特定服务器上提供的XMLWebService的集合,从中查找所需的服务。

四、wsdl

WebServiceDescriptionLanguage(WSDL):用来定义WebService交换的文件格式以及提供服务方式的说明文件

WSDL表示Web服务说明语言,是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。WSDL对于SOAP的作用就象TLD对于Tiglib的作用。由于WSDL是XML文档,因此很容易进行阅读和编辑;但大多数情况下,它由软件生成和使用。

要查看WSDL的值,可以假设您要调用由您的一位业务伙伴提供的SOAP方法。您可以要求对方提供一些SOAP消息示例,然后编写您的应用程序以生成并使用与示例类似的消息。WSDL通过明确的表示法指定请求消息必须包含的内容以及响应消息的样式。

WSDL文件用于说明消息格式的表示法以XML架构标准为基础,这意味着它与编程语言无关,而且以标准为基础,因此适用于说明可从不同平台、以不同编程语言访问的XMLWebService接口。除说明消息内容外,WSDL还定义了服务的位置,以及使用什么通信协议与服务进行通信。WSDL文件定义了编写使用XMLWebService的程序所需的全部内容。

当前,许多SOAP工具包都包括从现有程序接口生成WSDL文件的工具,但却几乎没有直接用于编写WSDL的工具,而且WSDL的工具支持也很不完整。但不久就会出现编写WSDL文件的工具,接着还会有生成代理和存根的工具(与COMIDL工具很相似),这些工具将成为多数SOAP实现方案的一部分。到那时,WSDL将成为创建XMLWebService的SOAP接口的首选方法。由W3C制定的标准




转载请注明:http://www.abachildren.com/jbzs/3789.html