Web Services简介

简单的说,你写了一个返回当前温度的程序,想把它放到网络上供其他人使用。

方法之一:你可以建立一个网站,将温度显示在页面上。用户使用浏览器,访问你的URL就可以看到当前温度了。

还有一种方式:另外一个人写了一个返回当前天气的程序,但是不包括当前温度。于是这个人想找一个可以得到当前温度的程序,这样就可以加上自己的天气信息,一并返回给用户了。

Web Services can convert your application into a Web-application。当第一个人将自己的程序转换成了一个web services,他就可以为互联网上的其他人提供自己程序的所有功能。至于其他人如何使用从web service得到的信息,并不是第一个人关心的。他只需要暴露出足够多的希望别人使用的功能就可以了。


其实第一种方式和第二种方式并没有本质的区别:都是向一个web-application发送请求,得到返回的信息,同时使用web-application提供的功能。

第一种方式中,浏览器是接收方。它得到请求的页面信息后加以处理并展示给用户。用户可以浏览,下载,发布消息等。但是一般网站提供的功能都很有限,大多是和页面相关的。

第二种方式中,用户程序是接收方。它得到请求的信息后,为自己所用。同时比起浏览页面,还可以做更多的事。因为只要是web services暴露出来的功能,你都可以使用。例如请求服务方将温度从摄氏度改为华氏度,然后发送给自己,最后显示在自己的程序里。


让我们把范围放小一点:我并不想让互联网上的用户使用我的程序,而是在某个系统内部。

例如有一个内部的搜索引擎,现在有一个component可以通过API访问这个引擎,并将结果以文件形式存储在某内部服务器上。

如果现在有另外一个部门的component,希望得到搜索结果并做一些处理后,展示在web页面上。这个component就需要知道如何使用API,并修改程序以便访问搜索引擎。

但是如果这个搜索引擎是一个web service,事情就简单很多。web service提供了标准的访问方法,以及自己的提供的功能。

component只要知道web services的地址,就能很方便的知道它的所有功能,如何使用,以及如何与它通信。

因此我们在搭建一个非对外的系统时,也常常提供某web services为其他downstream组件所用。

下面是正式一点的定义:

When all major platforms could access the Web using Web browsers, different platforms could interact. For these platforms to work together, Web-applications were developed.

两个作用:

Reusable application-components. 因此可以通过网络使用别人的程序,避免重复开发。

Connect existing software.  With Web services you can exchange data between different applications and different platforms.


说完了什么事web services,下面开始进入具体的说明。

Web services platform elements:

  • SOAP (Simple Object Access Protocol)
  • UDDI (Universal Description, Discovery and Integration)
  • WSDL (Web Services Description Language)
SOAP is an XML-based protocol to let applications exchange information over HTTP.  Or more simple: SOAP is a protocol for accessing a Web Service.而访问网站则使用http协议。

具体内容可以参考 :http://www.w3schools.com/soap/default.asp

WSDL is an XML-based language for locating and describing Web services and how to access them. 例如描述这个web services所暴露的功能。

具体内容可以参考:http://www.w3schools.com/wsdl/default.asp
UDDI is a directory service where companies can register and search for Web services. 开发人员如何得知,有哪些Web services可以使用呢?UDDI就是为了解决这个问题。

Any application can have a Web Service component.  Web Services can be created regardless of programming language.


Endpoint

我们在用java实现web service时会经常看到一个概念endpoint。

可以认为web service endpoint就是指一个web service 服务。

An endpoint may have a list of metadata documents, such as WSDL and XMLSchema documents, bound to it


本质上web service就是一个web application。只不过网站返回的是html(通过http协议),而web service返回的是xml(也是通过http协议)。

web service也需要使用http server(或称为web server)。一般.net就是IIS,其他的就是apache等。


最后是一个非常详细的web service参考书,英语的哟:

http://java.boot.by/wsd-guide/index.html





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值