说说Web Service

来源:互联网 发布:招聘游戏程序员 编辑:程序博客网 时间:2024/06/05 03:22

说到一门技术,上来还是先扯扯它是什么?它是怎么来的?它有什么用?用在哪?它有哪些实现?


它是什么?它怎么来的?

WebService,顾名思义,就是基于网络的服务。从表面上看,它就是一个向外界暴露一些可以通过网络调用的API的应用程序。

我们一般把一个后台进程(Daemon)提供的功能叫做服务(service)。服务又分“本地服务”和“网络服务”。比如,XX安全卫士会在后台运行,扫描和监控一些系统行为,这种功能就是“本地服务”,因为它的服务对象时本地用户。再比如,我在电脑上部署了一个Apache服务器,它可以提供一些站点访问功能,这种功能就是“网络服务”。从工作模式上看,Web Service和普通的Web程序(如ASP、JSP等)没有本质区别,都是基于HTTP传输的程序(这个程序通过网络提供出一些对外接口,用于与外界信息互通)。只不过Web Service使用的数据都是基于XML规范的。

WebService的全称是XML Web Service WebService,它是为了实现跨平台、语言而实现的一套接口标准或者规范。Web Service 使用的是Internet上统一开放的标准HTTP,TCP/IP,XML,HTML,SOAP,WSDL等,所以Web Service可以在任何支持这些协议、标准的环境中使用,进而WebService也是一种跨平台、语言的技术实现。Web Service的最大优点就是实现了跨平台的信息互通。

这里也简单扯扯,Web Service中使用到的一些协议和标准。

1.   XML

全称Extensible Markup Language(可扩展标记语言),它是标准通用标记语言的一个子集。在Web Service中,一般用XML来记录数据。

2.   SOAP

全称Simple Object Access Protocol(简单对象访问协议),一种基于XML的信息通信(通过HTTP或SMTP通信)协议,用于不同平台、不同语言的程序之间的网络通信。

3.   WSDL

全称Web Services Description Language(网络服务描述语言),用来描述Web服务和说明如何与Web服务通信的XML语言(记录Web Service的接口信息等,通常用来辅助生产服务器和哭护短代码及配置信息)。

4.   UUDI

全称UniversalDescription,Discovery and Integration(通用描述,发现与集成服务),一种目录服务,提供基于Web的注册和发现机制。

有这么一种说法,Web Service = SOAP + HTTP + WSDL


它有什么用?

比如说,我想做一个天气预报或者股票类的APP,但我有不想自己花时间去收集和整理这些天气或者股票的实时数据,那怎么办呢?把收集数据的工作交给别人去做呗,这时候就可以用到Web Service了。Web Service的核心理念是,自己开发核心业务(掌控核心竞争力),把非核心业务(如数据存储或者某些计算操作)交给别人完成(有点类似于“外包”了)。WebXml上提供了一些常用的Web Service,可以在自己的APP中使用。天气预报的Web Service在这里,可以看到这个wsdl文件中记录了很多的API,可以在我们的APP中使用(WebXml对于免费用户有访问次数限制,付费用户另谈)。

利用Web Service可以很好地实现数据的增删改查、短信服务等。


它有哪些实现方式?

Web Service在不同的平台上(C#、J2EE)实现方式各有不同,但原理是相通的。因为C#没玩过,所以只说说J2EE上的Web Service实现。
1、Apache CXF 和 XFire
Apache CXF是一个开源易用的Web服务框架。CXF = Celtix + XFire。XFire框架是CXF框架的前身。XFire可以很好地与Spring集成,CXF也一样。官网http://cxf.apache.org/。可以在Eclipse中开发基于CXF框架的WebService服务。
2、Axis2 和 Axis
Axis2是Axis的下一代Web服务框架。http://axis.apache.org/
它需要用到两个包:
axis2-1.6.2-bin.zip(包含Axis2的所有jar文件)
axis2-1.6.2-war.zip(用于将Web Service发布到Web服务器)。


谈谈Web的趋势

1、数据传输:XML使用越来越少,JSON使用越来越多,这也难怪,传输同样的信息量,XML文件更大,而JSON显得更轻便。

2、 服务架构:服务器端能处理的东西越来越多。随着越来越多的“云”出现,包括云计算、云服务、云OS等,大量的数据交互发生在网络中,客户端变得越来越“轻”,在一个浏览器中几乎可以满足我们日常所需(电影、电视、游戏、办公等)。

 

0 0
原创粉丝点击