Webservice技术在web开发中算是一个比较常见技术。这个对于大多数的web开发者,别管是java程序员还是.NET程序员应该都不是很陌生。今天我就和大家一起来学习一下webservice的基本内容。此篇文章作为webservice的开篇,首先我们来看一下什么是webservice。他能干什么用呢?
什么是webservice?
WebServices是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。用简单点的话说,就是系统对外的接口!一个企业开发出某种功能之后,我就对外提供一个接口。别人如果也想要这个功能的话直接通过internet调用我所提供的接口。就可以实现相同的功能。当然了这些功能可以收费的。
它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问WebService,通过WebService内部执行得到所需结果.WebService可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务
Webservice的相关技术
在构建和使用WebService时,主要用到以下几个关键的技术和规则:
1.XML:描述数据的标准方法. 可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
2.SOAP:简单对象访问协议. 是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。
SOAP协议=HTTP协议+XML数据格式
WebService采用HTTP协议传输数据,采用XML格式封装数据
3.WSDL:Web服务描述语言. 是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书。
它是WebService客户端和服务器端都能理解的标准格式,其中描述的信息可以分为what,where,how等部分!
what:服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么)
where:服务的网络地址用哪个url地址表示
how:服务通过什么方式来调用
WSDL文件保存在Web服务器上,通过一个url地址访问WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:注册到UDDI服务器,以便被人查找。直接告诉给客户端调用者,例如,在自己网站给出信息或邮件告诉。
4.UDDI(UniversalDescription,DiscoveryandIntegration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。可译为“通用描述、发现与集成服务”。
实际上,WebService的主要目标是跨平台的可互操作性。为了达到这一目标,WebService完全基于XML(可扩展标记语言)、XSD(XMLSchema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。
Webservice的工作过程:
下面我们用几个图的实例来简单理解一下webservice
如何实现实时天气预报?
如何使用安付通进行货款支付?
Web服务在其中起到的作用:
由上面的图我们可以看出:WebService的出现
1.让任何平台上的用任何语言编写的服务进行交互。
2.将应用程序功能概念化成任务,从而形成面向任务的开发和工作流。这使得更抽象的软件能够为工作在业务层面具有较少软件分析技术的用户所用。
3.允许松耦合,这意味着,每当其中某个或多个服务在设计或实现中发生改变时,服务应用程序之间的交互不会因此而中断。
4.使现有的应用程序能适应不断变化的业务条件和客户需求。
5.向现有或遗留软件应用程序提供服务接口,而无需改变原来的应用程序,从而使这些应用程序完全可以运行在这种服务环境下。
6.引入其他一些与原有功能无关的管理或操作管理功能,比如可靠性、责任性和安全性等等,从而在业务计算环境中增加其通用性和实用性。
Webservice应用场景
1.跨防火墙的通信
如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆JSP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。
如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件,从而省掉建立JSP页面的那一步。要调用WebService,可以直接使用SOAP这样的客户端,也可以使用自己开发的SOAP客户端,然后把它和应用程序连接起来。不仅缩短了开发周期,还减少了代码复杂度,并能够增强应用程序的可维护性。同时,应用程序也不再需要在每次调用中间层组件时,都跳转到相应的“结果页”。
2.应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的、在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。通过WebService,应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用。
长项三:B2B的集成
用WebService集成应用程序,可以使公司内部的商务处理更加自动化。但当交易跨越供应商和客户、突破公司的界限时会怎么样呢?跨公司的商务交易集成通常叫做B2B集成。
WebService是B2B集成成功的关键。通过WebService,公司可以把关键的商务应用“暴露”给指定的供应商和客户。例如,把电子下单系统和电子发票系统“暴露”出来,客户就可以以电子的方式发送订单,供应商则可以以电子的方式发送原料采购发票。当然,这并不是一个新的概念,EDI(电子文档交换)早就是这样了。但是,WebService的实现要比EDI简单得多,而且WebService运行在Internet上,在世界任何地方都可轻易实现,其运行成本就相对较低。不过,WebService并不像EDI那样,是文档交换或B2B集成的完整解决方案。WebService只是B2B集成的一个关键部分,还需要许多其它的部分才能实现集成。
长项四:软件和数据重用
软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用,另一种形式是二进制形式的组件重用。当前,像表格控件或用户界面控件这样的可重用软件组件,在市场上都占有很大的份额。但这类软件的重用有一个很大的限制,就是重用仅限于代码,数据不能重用。原因在于,发布组件甚至源代码都比较容易,但要发布数据就没那么容易,除非是不会经常变化的静态数据。
参考资料:百度百科webservice