`

webservice的原理及概念

 
阅读更多

1 webservice

所谓webservice就是定义了一套标准的调用过程:

a 服务器首先用一套标准的方法向外界描述它所提供的服务的内容,就属于WSDL

b 客户端需要以一种标准的协议来调用此服务,这属于SOAP.

c 服务提供者将服务内容放在一个公共的网址让大家查询,就属于UDDI.

 

2 命名空间

命名空间其主要目的通过加一个命名属性,使名称保持唯一性。WSDL有大量的使用

命名空间的地方。本质上WSDL是一个XML文件,作为一个XML文件,为了区别同名的元素,就需要采用命名空间的概念。

 

3 WSDL的本质:服务内容的标准化描述

WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务

的描述语言。其主要目的在于web service的提供者将自己的web服务的所有相关内

容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应

的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息

,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息

传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。

 

4 SOAP的本质:标准的传输协议

SOAP是web service的标准通信协议,SOAP为simple object access protocoll的

缩写,简单对象访问协议. 它是一种标准化的传输消息的XML消息格式。

 

5 UDDI的本质:服务的公共网址

将web service进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己的

web service进行注册发布供使用者查找.

然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么

服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有

IBM等4家UDDI商用注册网站。

因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的

URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务

方完全可以不进行UDDI的注册。

 

Web 服务有两层含义:1、是指封装成单个实体并发布到网络上的功能集合体;2、是指功能集合体被调用后所提供的服务。

Web Service 是为其它应用提供数据和服务的应用逻辑单元,应用程序通过标准的Web 协议和数据格式获得Web Service,如HTTP 、XML 和SOAP 等,每个Web Service 的实现是完全独立的。

简单地讲,Web 服务是一个URL 资源,客户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现的,这一点与传统的分布式组件对象模型不同。

Web 服务的体系结构是基于Web 服务提供者、Web 服务请求者、Web 服务中介者三个角色和发布、发现、绑定三个动作构建的。简单地说,Web 服务提供者就是Web 服务的拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web 服务请求者就是Web 服务功能的使用者,它利用SOAP 消息向Web 服务提供者发送请求以获得服务;Web 服务中介者的作用是把一个Web 服务请求者与合适的Web 服务提供者联系在一起,它充当管理者的角色,一般是UDDI 。这三个角色是根据逻辑关系划分的,在实际应用中,角色之间很可能有交叉:一个Web 服务既可以是Web 服务提供者,也可以是Web 服务请求者,或者二者兼而有之。显示了Web 服务角色之间的关系: 其中,“发布”是为了让用户或其他服务知道某个Web 服务的存在和相关信息; “查找(发现)”是为了找到合适的Web 服务; “绑定”则是在提供者与请求者之间建立某种联系。

 

实现一个完整的Web 服务包括以下步骤:

◆ Web 服务提供者设计实现Web 服务,并将调试正确后的Web 服务通过Web 服务中介者发布,并在UDDI 注册中心注册 ; (发布)

◆ Web 服务请求者向Web 服务中介者请求特定的服务,中介者根据请求查询 UDDI 注册中心,为请求者寻找满足请求的服务; (发现)

◆ Web 服务中介者向Web 服务请求者返回满足条件的Web 服务描述信息,该描述信息用WSDL 写成,各种支持Web 服务的机器都能阅读;(发现)

◆ 利用从Web 服务中介者返回的描述信息生成相应的SOAP 消息,发送给Web 服务提供者,以实现Web 服务的调用;(绑定)

◆ Web 服务提供者按SOAP 消息执行相应的Web 服务,并将服务结果返回给Web 服务请求者。(绑定)

一、webservice概述 
  简单的说webservice就是一些站点开放一些服务出来,也可以是你自己开发的service,也就是一些方法,通过URL,指定某一个方法名,发出请求,站点的这个服务(方法),接收请求后,根据传入的参数做一些处理,然后将处理后的结果以XML形式返回给你,你的程序就解析这些XML参数,然后显示出来或做其他操作。 
例如:很多大的站点提供有天气预报的webservice、查询某网站的数据的webservice,只要你发送请求过来,它就返回天气预报、某网站的数据,然后你把结果显示处来。
二、webservice的用途和好处 
  实际上,webservice的主要目标是跨平台的可互操作性,为了达到这个目标,webservice完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作行、分布式应用程序的新平台,由此可以看出,在以下三种情况下,使用webservice会带来极大的好处。
三、Web Service的几个很重要的概念 
1、SOAP
 
   2、SOAP是Web Service的基本通信协议。因为SOAP与DCOM和CORBA在概念上有相同之处,所以很多人在问:“SOAP是怎样激活对象的?”或“SOAP在使用什么命名服务(Naming Service)?”。或许在执行SOAP的过程当中会用到这些,但这些并不在SOAP规范要考虑的范畴之内。SOAP只是定义SOAP消息的XML格式(XML Format),如果你用一对SOAP标记(SOAP Elements)把XML文档括起来,那么这个就是一个SOAP消息,这不是很简单吗? 
         SOAP规范还定义了怎样用XML来描述程序数据(Program Data),怎样执行RPC(Remote Procedure Call)。这些可选的规范是为了构建RPC-style的应用程序(客户端SOAP消息包含函数名和在函数中用到的参数,而服务器端SOAP消息包含执行函数之后的结果)。大多数SOAP解决方案都支持RPC-style应用程序,因为很多程序员已对DCOM或CORBA熟悉。SOAP还支持Document-style应用程序(SOAP消息只包含XML文本信息)。Document-style应用程序有很好的灵活性,所以很多用RPC很难构建的Web Service用这种方式构建。 
        最后SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。这并不代表SOAP只能用HTTP来作为传输协议,MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。 
        很多大公司根据SOAP规范,都开发出了自己的SOAP解决方案。这些解决方案都是相对于某种语言。比如说Microsoft SOAP toolkit2.0把COM函数转换成SOAP消息,而Apache toolkit把JAVA函数转换成SOAP消息。这样难免带来一些兼容性问题。 
        现在SOAP的很多另人瞩目的特性已成为现实(SOAP已经运行于不同的硬件和软件平台),而且有70多个解决方案。之所以SOAP被人们所爱戴,是因为SOAP比其他同类技术(CORBA、DCE)简单易用。 
        安全性对于应用程序来说是很重要的。那么SOAP的安全性如何呢?对于把HTTP作为传输协议的SOAP来说是没有问题的,因为HTTP协议已经有很好的安全构架。那么用其他传输协议会出现安全问题吗?不是的,你不必担心,因为已经有这方面的规范了。
2、WSDL 
WSDL是一种XML文档,它定义SOAP消息和这些消息是怎样交换的。IDL(Interface Description Language)是用于COM和CORBA的,WSDL是用于SOAP的。WSDL是一种XML文档,所以我们可以阅读和编辑,但很多时候是用工具来创建、由程序来阅读。 
举个例子,你要使用供应商的Web Service构建应用程序。你可以向供应商索取使用Web Service的范例,然后按照范例来构建应用程序。这样可能出现意料不到的错误,比如说,你在程序中使用的客户代码的数据类型是integer,而供应商使用的数据类型是string.。WSDL详细定义客户端消息的格式,需要什么样的参数,这样可以避免不必要的错误。 
3、 UDDI 
  UDDI可以比喻成电话本,电话本里记录的是电话信息,而UDDI记录的是Web Service信息。你可以不把Web Service注册到UDDI。但如果要让全球的人知道你的Web Service,最好还是注册到UDDI。 
UDDI目录说明文件也是一个XML文档,它包括三个部分。“白页(White Paper)”说明提供Web Service的公司(人)信息,比如说名称、地址和联系方式等等。“黄页(Yellow Paper)”说明UDDI目录的分类,比如说金融、服务和印刷等等。“绿页(green Paper)”说明接口(Web Service 提供的)的详细信息。UDDI提供多种查询方式,来帮助你找到需要的Web Service。如果你查询与财务有关的Web Service,那么UDDI会提供详细的信息。

分享到:
评论

相关推荐

    WebService从入门到上手企业开发(上)

    黑马程序员_WebService从入门到上手企业开发(上) 视频含有 webservice的基本概念,实现天气查询,通讯原理等功能 上传的代码给百度云链接,此链接永不失效

    J2EE学习笔记

    6.8:JFreeChat原理及应用: 191 6.9:几种常用协议 192 7.0:SOA原理 200 8:搜索引擎专题 205 9:CMS(内容发布管理系统)专题 206 10:OA引擎专题 207 11:AJAX专题 207 第七章:JSP和SERVLETS 207 7.1:Jsp 207 7.2:...

    xfire的简单实例

    有关WebService的概念、原理、数据发现、描述、绑定等过程、方式也不说了。这里就只关注如何快速开发出来一个通用的、易懂的Hello World例子。

    Java思维导图xmind文件+导出图片

    Nginx Location ReWrite 等语法配置及原理分析 Nginx提供https服务 基于Nginx+lua完成访问流量实时上报Kafka的实战 Netty 高性能NIO框架 IO 的基本概念、NIO、AIO、BIO深入分析 NIO的核心设计思想 Netty产生...

    普联架构设计技术方案.pptx

    二、软件开发平台方案 普联软件开发平台概念 数据存储原理 业务模型及业务搭建原理 指标模型及指标搭建原理 分析模型及分析方法 业务流程管理 BIS平台及开发平台外延 普联架构设计技术方案全文共28页,当前为第2页...

    067_《Delphi7组件与分布式应用开发》

    贯穿实例深入浅出地介绍了Delphi 7支持的组件技术、VCL库的扩充的一般方法、可视组件的开发与发布、ActiveX控件技术、COM/DCOM/COM+的基本概念与原理、在Delphi 7中使用COM/DCOM/COM+、CORBA技术体系、应用CORBA、...

    C#帮助文档

    本文档总结了 C#.Net 相关的知识点,涵盖了面向对象编程、ASP.NET、委托、事件、索引器、应用程序域、CTS、CLS、CLR 等多个方面,旨在帮助开发者更好地理解 C#.Net 的相关概念和技术。 1. 访问权限修饰符 C#.Net ...

    svcLessSpy:svc WebShell

    WCF统一了多重分布式技术:Webservice、.NetRemoting、.Net企业服务、微软的消息队列(MSMQ),在WCF的结构中有下面几个概念:契约(ServiceContract):契约是属于一个服务公开的公共接口,定义了服务端公开的服务方

    嵌入式Linux程序设计案例与实验教程-实例代码

    5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1 phoneME简介132 5.7.2 软件移植过程与效果132 5.8 嵌入式浏览器konqueror移植133 5.8.1 konqueror简介133 5.8.2 软件...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第三部分

    5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1 phoneME简介132 5.7.2 软件移植过程与效果132 5.8 嵌入式浏览器konqueror移植133 5.8.1 konqueror简介133 5.8.2 软件移植过程...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第二部分

    5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1 phoneME简介132 5.7.2 软件移植过程与效果132 5.8 嵌入式浏览器konqueror移植133 5.8.1 konqueror简介133 5.8.2 软件移植过程...

    嵌入式Linux程序设计案例与实验教程(配套光盘)第一部分

    5.6.1 软件移植的概念131 5.6.2 软件移植过程131 5.7 J2ME-phoneME移植132 5.7.1 phoneME简介132 5.7.2 软件移植过程与效果132 5.8 嵌入式浏览器konqueror移植133 5.8.1 konqueror简介133 5.8.2 软件移植过程...

    asp.net知识库

    体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 中收集的小功能点 asp.net2.0中的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    5.5.3 RMI的基本原理 220 5.6 同时作为客户端和服务器的 RMI程序 222 5.6.1 开发客户端程序 222 5.6.2 开发服务器端程序 223 5.7 本章小结 225 第6章 利用JMS实现企业消息处理 226 6.1 面向消息的架构和JMS概述 227 ...

    Visual C#网络编程技术与实践源代码

     9.3.3 主页面与登录相关的WebService数据访问模块  9.3.4 发表主题相关的Web Service访问模块  9.3.5 投票相关的Web Service访问模块  9.3.6 管理相关的Web Service访问模块  9.4 主页面与登录模块  ...

    最新Java面试宝典pdf版

    53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序...

    Java面试宝典2010版

    10、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 11、说说weblogic中一个Domain的缺省目录结构?比如要将一个简单的helloWorld.jsp...

    Java面试笔试资料大全

    53、线程的基本概念、线程的基本状态以及状态之间的关系 34 54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 34 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序...

Global site tag (gtag.js) - Google Analytics