Web service

    由于一个错误的想法让我比较细致的了解了一下Webservice的概念.很多四五年前的资料上说,Web service是一项比较新的技术,那么今天来说已经不新了,尤其对于IT这个领域,昨天新,今天成熟,或许明天就被淘汰了.四五年前很多人说将来是webservice的天下,那么现在来说成为了必然的结果,尤其是云时代的进步.下面来了解一些相关概念,解决一下知道的问题.

,Web service的概念

           传统上,我们把计算机后台程序提供的功能,称为"服务"service)。比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个"服务"。通俗地说,"服务"就是计算机可以提供的某一种功能。

         根据来源的不同,"服务"又可以分成两种:一种是"本地服务"(使用同一台机器提供的服务,不需要网络),另一种是"网络服务"(使用另一台计算机提供的服务,必须通过网络才能完成)。

         举例来说,比如我有一套完成了答题的试卷,想要用计算机阅卷得出成绩,我们可以把"阅卷"看成一种服务,当然你可以使用"本地服务",在自己的计算机上安装一个阅卷的软件.也可以使用"网络服务",将试卷上传到某个网站,让服务器替你"阅卷",然后阅卷完成通过网络讲阅卷结果返回给你.更通俗的说发是,你想做一件事,可以自己做,得出结果.也可以让别人做,然后将结果传回给你.这是一种思想,更加的符合面向对象,同样的符合流水线的思想,极大的提高了效率.

            "网络服务"WebService)的本质一句话阐释,就是通过网络调用其他网站的资源。

            举例来说,善良公社的项目中需要用到地图,功能类似百度地图,当然我们完全没有必要重新做一个类似百度地图的东西,不说你短时间做不出来人家那样的,即使能做出来也完全没必要,费时费力费金钱.解决方案很简单,调用百度给提供的API.这里百度提供的就是一种Web service.达到了资源共享.

所以,Webservice让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图等等。

,Web Service架构和云

      如果一个软件的主要部分采用了"网络服务",即它把存储或计算环节"外包"给其他网站了,那么我们就说这个软件属于Web Service架构。

      Web Service架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。

      比如,如果你要开发一个相册软件,完全可以使用网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。总体上看,凡是不属于你核心竞争力的功能,都应该把它"外包"出去。

   越来越火的"云计算"或者"云服务",实际上就是Web Service的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给""去做。

,Web Service必定会成为主流的原因

(1)本地服务的缺陷

1.本地资源不足。很多数据和资料,本地得不到,只有向其他网站要。

2.成本因素。本地提供服务,往往是不经济的,使用专业网站的服务更便宜。

3.可移植性差。如果你想把本机的服务,移植到其他机器上,往往很困难,尤其是在跨平台的情况下。

(2)Web Service的优势

1.平台无关。不管你使用什么平台,都可以使用Web service

2.编程语言无关。只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Web service。这大大增加了web service的适用性,降低了对程序员的要求。

3.对于Web service提供者来说,部署、升级和维护Web service都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。

4.对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。

,在构建和使用Web Service,主要用到以下几个关键的技术和规则:

       1.XMLXSD:描述数据的标准方法:可扩展的标记语言(XML)是Webservice平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。 XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的。W3C制定的XMLSchema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Webservice平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合Webservice标准,所有你使用的数据类型都必须被转换为XSD类型。

     2.SOAP:表示信息交换的协议:Webservice建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的RPC方法来调用Webservice。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。

     3.WSDL:Web服务描述语言:你会怎样向别人介绍你的Webservice有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Webservice的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Webservice的时候,他们的工具(Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Webservice。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Webservice及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Webservice生成WSDL文档,又能导入WSDL文档,生成调用相应Webservice的代码。 

     4.UDDI:找到服务驱动器的的方法;UDDI是一种规范,它主要提供基于Web服务的注册和发现机制,为Web服务提供三个重要的技术支持:①标准、透明、专门描述Web服务的机制;②调用Web服务的机制;③可以访问的Web服务注册中心。

    web service技术很重要,或许你暂时没有用到,但是请相信,当你到达某一层次的时候肯定会有接触的.

评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码海拾贝2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值