14.5 Web服务(Web Service)

  Web Service是Web服务器上的一些组件,客户端应用程序可通过Web发出HTTP请求来调用这些服务。通过ASP.NET开发人员可以创建自定义的Web Service或使用内置的应用程序服务,并从任何客户端应用程序调用这些服务。

14.5.1 什么是Web服务
  Web服务(Web Service)可以被看作是服务器上的一个应用单元,它通过标准的XML数据格式和通用的Web协议为其他应用程序提供信息。Web Service为其他应用程序提供接口从而能够实现特定的任务,其他应用程序可以使用Web Service提供的接口实现信息交换。
  Web Service的设计是为了解决不同平台,不同语言的技术层的差异,使用Web Service无论使用何种平台,何种语言都能够使用Web Service提供的接口,各种不同平台的应用程序也可以通过Web Service进行信息交互。
例如,当Web应用程序需要制作登录操作时,可以在Web页面进行登录操作设计,当Web应用逐渐壮大,当Web应用的某些应用可以发布到用户的操作系统时,就可以编写相应的应用程序来进行操作,如使用QQ类型的软件进行网站登录。但是这样做无疑产生了安全隐患,如果将服务器的用户名和地址等代码发布到本地,这样一些非法人员很可能能够通过反编译获取软件的信息,从而进行用户信息的盗取,而使用Web Service,本地应用程序可以调用Web应用中相应的方法来实现本地登录功能,而这些方法是存在于Web Service中。Web Service还具有以下特性:
1)实现了松耦合:应用程序与Web Service执行交互前,应用程序与Web Service之间的连接是断开的,当应用程序需要调用Web Service的方法时,应用程序与Web Service之间建立了连接,当应用程序实现了相应的功能后,应用程序与Web Service之间的连接断开。应用程序与Web应用之间的连接是动态建立的,实现了系统的松耦合。
2)跨平台性:Web Service是基于XML格式并切基于通用的Web协议而存在的,对于不同的平台,只要能够支持编写和解释XML格式文件就能够实现不同平台之间应用程序的相互通信。
3)语言无关性:无论是用何种语言实现Web Service,因为Web Service基于XML格式,只要该语言最后对于对象的表现形式和描述是基于XML的,不同的语言之间也可以共享信息。
4)描述性:Web Service使用WSDL作为自身的描述语言,WSDL具有解释服务的功能,WSDL还能够帮助其他应用程序访问Web Service。
5)可发现性:应用程序可以通过Web Service提供的注册中心查找和定位所需的Web Service。
  Web Service也是使用和制作分布式所需的条件,使用Web Service能够让不同的应用程序之间进行交互操作,这样极大的简化了开发人员的平台的移植难度。

14.5.2 Web服务体系结构
  要讲到Web Service体系结构就不得不提到SOA,SOA(Serveice-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
  在SOA中,接口采用中立的方式定义,接口只声明开发人员如何继承和实现该接口,接口的声明应该是中立的、不依赖于平台、语言而实现的。接口相当于如何规定开发人员规范的进行Web Service中功能的实现。SOA具有以下特点。
1)SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
2)SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。
Web Service体系结构则采用了SOA模型,Web Service模型包含三个角色,这三个角色包括服务提供者、服务请求者和服务注册中心,如图14-9所示。
Web Service体系结构
图14-9 Web Service体系结构
  其中,服务提供者也可以称为服务的拥有者,它通过提供服务接口使Web Service在网络上是可用的。服务接口是可以被其他应用程序访问和使用的软件组件,如果服务提供者创建了服务接口,服务提供者会向服务注册中心发布服务,以注册服务描述。相对于Web Service而言,服务提供者可以看作访问服务的托管平台。
  服务请求者也称为Web Service的使用者,服务请求者可以通过服务注册中心查找服务提供者,当请求者通过服务器中心查找到提供者之后,就会绑定到服务接口上,与服务提供者进行通信。相对于Web Service而言,服务请求者是寻找和调用提供者提供的接口的应用程序。
  服务注册中心提供请求者和提供者进行信息通信,当服务提供者提供服务接口后,服务注册中心则会接受提供者发出的请求,从而注册提供者。而服务请求者对注册中心进行服务请求后,注册中心能够查找到提供者并绑定到请求者。

14.5.3 Web服务协议栈
  在Web Service体系结构中,为了保证体系结构中的每个角色都能够正确和执行Web Service体系结构中的发布、查找和绑定操作,Web Service体系必须为每一层标准技术提供Web Service协议栈。Web Service协议栈如图14-10所示。
 Web Service协议栈示意图
图14-10 Web Service协议栈示意图
  在Web Service协议栈中,最为底层的是网络传输层,Web服务协议是Web Service协议栈的基础。用户需要通过Web服务协议来调用服务接口。网络传输层可以使用多种协议,包括HTTP、FTP以及SMTP。
  在网络传输层上一层的则是消息传递层,消息传递层使用SOAP作为消息传递协议,以实现服务提供者,服务注册中心和服务请求者之间进行信息交换。
  在消息传底层之上的是服务描述层,服务描述层使用WSDL作为消息协议,WSDL使用XML语言来描述网络服务,在前面的章节中也讲到,WSDL具有自我描述性,它能够提供Web服务的一些特定信息。服务描述层包括了WSDL文档,这些文档包括功能、接口、结构等定义和描述。
  在服务描述层之上的是服务发布层,该层使用UDDI协议作为服务的发布/集成协议。UDDI提供了Web服务的注册库,用于存储Web服务的描述信息。服务发布层能够为提供者提供发布Web服务的功能,也能够为服务请求者提供查询,绑定的功能。
  当Web Service中触发了事件,如服务提供者发布服务接口、服务请求者请求服务等,服务提供者首先使用WSDL描述自己的服务接口,通过使用UDDI在服务器发布层向服务注册中心发布服务接口。服务注册中心则会返回WSDL文档。当服务请求者对服务注册中心执行服务请求,请求着通过WSDL文档的描述绑定相应的服务接口。

加支付宝好友偷能量挖...


评论(0)网络
阅读(114)喜欢(0)Asp.Net/C#/WCF