何为WebService?

1,Web Service是什么
2,Web Service可以做什么
3,Web Service 什么时候用
4,Web Service如何构建和应用
1 Web service是什么
Web Service是什么,web service就是一种基于web 的服务,但这个服务需要供求双方按照规定去做才能实现的服务。
Web Service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把能调用这个Web service 的应用程序叫做客户端程序。
Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。
这种服务里包含几个概念:

UDDI:统一描述、发现和集成(Universal Description, Discovery, and Integration,UDDI)
UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准。 其中包含注册用户企业的地址、联系方法、已知的企业标识。行业类别,也包含关于该企业所提供的Web Service的技术信息。

WSDL:Web 服务描述语言(Web Services Description Language,WSDL)
Web Service描述语言WSDL就是用机器能阅读的方式提供的一个正式描述文档而基于XML的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读解析的的,又是人可阅读的。
当你向别人介绍你提供的WebService的功能和函数参数时候,你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web Service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web Service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的WebService。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。

SOAP:简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是一种标准化的通讯规范,主要用于Web服务(Web Service)中。它是用于交换XML编码信息的轻量级协议。SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器, 处理完成后,结果也写成XML作为RESPONSE送回用户端。简单的说 SOAP就是HTTP+XML处理的协议。
2 web service之咖啡连锁店采购的故事
网上有一个咖啡连锁店采购咖啡的故事,我结合自己的理解简化了一下这个故事,便于对Web Service的更好理解。
有一个咖啡连锁店的老板叫Coffee Break,要拓展自己销售的咖啡品种,他指示他的采购经理去寻找一些新的咖啡提供商,得到他们的咖啡全部价格,并且在需要时能够立即下订单,Coffee Break能够分析他们的价格,并决定选用哪一种咖啡,从哪个公司进货。
采购经理就将具体任务分配给软件工程师,软件工程师认为寻找新的咖啡提供商的最好办法是搜索UDDI注册中心.假定所有的咖啡供应商都在UDDI中注册了。(包含地址、联系方法、企业标识。行业类别,包含关于该企业所提供的Web Service的技术服务信息)。
软件工程师给UDDI发送指令 进行相关咖啡提供商信息的搜索。UDDI注册中心搜索完成后,注册中心将发回那些符合条件的咖啡经销商的信息。
工程师的下一步工作就是从这些分销商名单中列出他们的咖啡销售价格。
工程师分析这些咖啡经销商的信息,查看他们提供的Web Service 服务 分析WSDL文本,然后得到了获取咖啡销售价格的方法和相应的网址.他就通过访问web service的方式向那些具体的咖啡经销商网址发出请求,以获得其销售的咖啡价格。
每个咖啡分销商都会接受到这样的请求,在他发出销售价格之前,他也会先去查询一下产品的当前期货价格,这样Coffee Break就得到了最新的XML文本格式的咖啡价格。
而工程师这边的客户端 和 咖啡经销商web service服务端的信息交互 都是 基于SOAP协议发送xml文本来实现的。
Web Service 是将XML文本在各个网站之间传送和接受,以达到信息交换的目的。在接收和传送时依靠SOAP协议。
3 Web Service可以做什么
Web Servcie最主要的优点是: 即跨语言,跨平台的不同系统之间的通信。 现在企业内部的很多系统集成,企业和企业之间的系统集成的问题。Web Service是主要的解决方案。(服务重用,降低开发成本,只开放自己愿意开放的服务)。
4 Web service 什么时候用
Web Service ,RMI,Socket 是现在主要的系统交互方式。
RMI为Java平台的分布式计算提供了一个简单而直接的模型。因为Java的RMI技术是基于Java平台的,所以它将Java平台的安全性和可移植性等优点带到了分布式计算中。RMI大大扩展Java的网络计算能力,它为编写基于分布式对象技术的企业级Internet/Intranet应用提供了强大的系统平台支持。远程方法调用作为Java分布式对象技术成为Java核心的API之一(在java.rmi.* 包)。RMI的引入,使得Java程序之间能够实现灵活的,可扩展的分布式通信。
Socket的英文原义是“孔”或“插座”。通常也称作”套接字”,用于描述IP地址和端口,是一个通信链的句柄。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,象一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务。
java中也提供有Socket编程方式,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。
RMI是JAVA的首选远程调用协议,非常高效稳定,特别是在少数据量的远程调用方面,与其他通讯协议的差距尤为明显。Web Service的效率是其1/10
RMI与Socket相比,传输相同的有效数据,RMI需要占用更多的网络带宽资源。
一旦你的应用需要在client与server之间传输大量的数据,极端的,比如FTP应用,则RMI是不适合的,我们应该使用 Socket。

RMI技术比较socket的网络编程主要有以下几个方面:
第一、RMI是面向对象的,而后者不是。
第二、RMI是与语言相绑定的。比如当你使用Java RMI技术的时候,客户端与服务器端都必须使用Java开发。而socket的网络编程是使用独立于开发语言的,甚至独立于平台。基于Socket的网络编程,客户端与服务器端可以使用不同开发语言和不同的平台。
RMI的使用约束是 交互的两个系统都必须是Java语言。
Socket的使用主要应用于c/s的系统架构中。
Web Service 是基于SOAP的服务,实现起来最简单,而且交互的系统没有语言限制。

在搭建应用实现方面的容易程度方面
应用容易程度 Web Service>RMI>Socket
5 Web Service如何构建和应用
在 java语言方面现在主要的Web Service框架是Axis2, Xfire, Cxf
新一代的 Web Services 框架如 Axis2、CXF 都是由原来的项目中逐渐演化而来的,Axis2 是由大家熟悉的 Axis 1.x 系列演化过来,而 Apache CXF 则是由 Celtix 和 XFire 项目整合而生。
Axis2很久没更新了,Xfire转做CXF,而 CXF适用于spring2.0,spring1.0不支持
如果应用程序需要多语言的支持,Axis2 应当是首选了; 如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择。

Webservice中的四种技术——XML、WSDL、SOAP、UDDI。在一套完整的Webservice服务中,这四种技术各有其自己的实现价值,下面分别来介绍一下各自的用途
1.XML
XML是用来标记数据的(对于XML标签详细介绍,可以参考W3C),因为上面我们说过,webservice不依赖于某一门特定的编程语言。而不同的系 统可能是使用不同的编程语言来开发,(如上:项目A使用PHP开发,项目B使用Java开发)所以说就需要一种方式来交换数据,这种方式同样不依赖于某种 编程语言,大多数软件都集成了XML标签,因此使用XML格式的数据来实现数据的交换。
2.SOAP
SOAP是一种特殊的协议,用来传输数据。当调用方一旦发现提供Webservice接口的地址,它将会使用SOAP协议和提供Webservice的系统进行连接。
3.WSDL
WSDL用来描述客户端可以调用的接口的规则,所有这些规则定义在WSDL文件中,当有客户端发起调用的时候,Webservice提供方会参考这个WSDL规则来验证数据请求的合法性。
4.UDDI
UDDI列出了那些服务是可以被访问的。当一个系统需要数据的时候,首先它会先查找UDDI,找出从除了自己之外的那些可以获取到自己需要的数据的服务,然后进行链接获取数据。这一点有点类似于DNS的功能。
以上分别介绍了这四项技术在整个Webservice架构中的角色,下面我们将这四项连起来,看一下整个Webservice的架构是如何实现的。
首先,Webservice的提供方会在WSDL文件中新建一些接口的规则,然后将WSDL文件发送给UDDI进行报道注册。服务请求方(也就是调用 Webservice接口的一方)会先连接UDDI来查询哪一个提供方有自己需要的数据,找到以后然后连接这个服务提供方,此时和提供方使用SOAP协议 进行交互。当服务方收到请求以后,首先会对这个请求进行验证,验证的依据就是先前新建的WSDL规则。验证通过以后服务方会向请求方发送XML格式的数 据,此时同样是使用SOAP协议进行交互。当请求方收到XML数据以后,请求方会使用XSD来验证此XML数据的合法性。验证通过以后再进行数据的处理。
整个过程可以用下图反映

以上就是整个Webservice的实现过程。看此过程总感觉和WEB应用的流程有些类似,首先需要将域名和ip地址绑定,在DNS中报道注册。当用户访 问的时候,首先会带着域名去访问DNS服务器,DNS会解析域名到对应的ip地址,并将此信息返回给用户,用户得到ip以后,会根据ip去访问对应的网站 服务,此时用户和WEB服务之间使用的是HTTP协议。
以上就是我对Webservice的理解,至于Webservice在什么情况下使用合适,我也不好说,我只能说这个得根据实际情况来定。我做的项目有 限,虽说在网上看到过Webservice的使用场景,但是有些情况我并没有接触过,使用Webservice的益处和弊端也不好下结论。如果以后有幸接 触到使用Webservice的其他的项目,我会再进行补充,更新此文章。当然如果大家有什么好的建议,欢迎在下面留言,大家共同探讨,共同进步。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值