webservice 学习1 技术基础
最近一直想把自己研究domino webservice的过程写一个学习笔记,以帮助更好的学习和理解webservice,今天开始总结第一篇WebService是一种跨编程语言和跨操作系统平台的远程调用技术
1 所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法。2 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。3 学习webservice需要掌握几点: 1.是跨语言的远程调用技术,把对象的方法让远程可以调用2.soap协议3.服务端要提供wsdl文件, wsdl文件的作用4.客户端调用原理,5.服务器端实现原理WebService使用SOAP协议实现跨编程语言和跨操作系统平台1 WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,
传递的参数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,
发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容
格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object accessprotocol,简单对象访问协议) 。
2 SOAP协议 = HTTP协议 + XML数据格式
SOAP协议是基于HTTP协议的,两者的关系就好比高速公路是基于普通公路改造的,在一条公路上加上隔离栏
后就成了高速公路。
WebService客户端只要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebService服务器,
WebService服务器再通过HTTP协议返回遵循某种格式的XML结果数据就可以了,WebService客户端与服务
器端不用关心对方使用的是什么编程语言。
3 HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了很好的支
持,WebService客户端与服务器端使用什么编程语言都可以完成SOAP的功能,所以,WebService很容易实现
跨编程语言,跨编程语言自然也就跨了操作系统平台。
WSDL文件
好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。
WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么
方法可以调用,所以,WebService务器端先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,
服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址
表示,服务通过什么方式来调用。
WSDL(webservicedescription language)是基于XML格式的,它是WebService客户端和服务器端都能理解
的标准格式,其中描述的信息可以分为what,where,how等部分!
WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,
要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:
?注册到UDDI服务器,以便被人查找
?直接告诉给客户端调用者,例如,在自己网站给出信息或邮件告诉。
Wsdl文件中的web服务的名称空间和连接的远程服务器本来相当于一个商标的产品不一定
只在自己的公司卖的道理,wsdl文件中包含了连接服务的地址和名称空间两个东西。
wsdl文件用于描述对外的一项服务,其中的<service>元素中包含多个<port>元素,
<port>元素中又包含多个<option>元素,每个<option>元素又包含一个<input>和
一个<output>元素,<input>元素和<output>元素的内容分别指向前面定义的一个<message>元
素。每个<port>元素对应一个Java类,其中的每个<option>元素对应Java类中的一个方法。
wsdl文件的组成,主要包括三个方面的内容:what(服务是什么),where(服务在哪里),
how(怎么调用服务)
UDDI是一种目录服务,企业可以使用它对Webservices进行注册和搜索。UDDI,
英文为“Universal Description, Discovery and Integration”,可译为“通用描述、发现与集成服务”。
UDDI[1]是一种规范,它主要提供基于Web服务的注册和发现机制,为Web服务提供三个
重要的技术支持:①标准、透明、专门描述Web服务的机制;②调用Web服务的机制;
③可以访问的Web服务注册中心。UDDI规范由OASIS(Organizationfor the
Advancement of StructuredImformationStandards)标准化组织制定。UDDI中核心数据由XML Schema定义,UDDI v3.0的信息模型
由6种主要信息构成:BusinessEntity、BusinessServic、BindingTamplate、tModel、PublisherAssertion和Subscription。
UDDI计划是一个广泛的,开放的行业计划,它使得商业实体能够(1)彼此发现,(2)定义他们怎样在internet上互相作用,并在一
个全球的注册体系架构中共享信息。UDDI是这样一种基础的系统构筑模块,他使商业实体能够快速,方便地使用他们自身的企
业应用软件来发现合适的商业对等实体,并与其实施电子化的商业贸易。
UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI规范利用了W3C和Internet工程任务
组织(IETF)的很多标准作为其实现基础,比如扩展标注语言(XML),HTTP和域名服务(DNS)这些协议。另外,在跨平台的设
计特性中,UDDI主要采用了已经被提议给W3C的SOAP(Simple Object Access Protocol,简单对象访问协议)规范的早期版本。
UDDI是一个分布式的互联网服务注册机制,它集描述(UniversalDescription)、检索(Discovery)与集成(Integration)为一体,其核心是
注册机制。UDDI实现了一组可公开访问的接 口,通过这些接口,网络服务可以向服务信息库注册其服务信息、服务需求者可
以找到分散在世界各地的网络服务。
UDDI 基于现成的标准,如可扩展标记语言(Extensible Markup Language,XML)和简单对象访问协议(Simple Object Access
Protocol,SOAP)。UDDI的所有兼容实现都支持UDDI规范。公共规范是机构成员在开放的、兼容并蓄的过程中开发出来的。
目的在于先生成并实现这个规范的三个连续版本,之后再把将来开发得到的成果的所有权移交给一个独立的标准组织。
程序开发人员通过UDDI机制查找分布在互联网上的WebService,在获取其WSDL文件后,就可以在自己的程序中以SOAP调用的
格式请求相应的服务了。
作用: 用来说明一个Web服务的一些信息类型,以便帮助服务的请求者确定如下问题:WHO,WHAT,WHERE,HOW.UDDI定
义如何查找Web服务(及其WSDL文件)。UDDI并不像WSDL和SOAP一样深入人心,因为很多时候,使用者知道Web服
务的位置(通常位于公司的企业内部网中)。