5. web service
5.1 web service简介
web service: WS是指由企业发布的完成某特别商务需求的在线应用服务,其他公司、合作伙伴的应用软件能够通过Internet来动态访问并使用这些在线服务。
与ws有关的标准:
- XML
- WSDL: 一个正式描述文档的语言
- SOAP: 用于交换XML编码信息的轻量级协议
- UDDI: 一个发展中的注册中心标准
- HTTP: 一个网际通信协议
web service的特点:
- 完好的封装性
- 松散耦合
- 协约的规范性
- 高度可集成
- 开放性
5.2 web services的体系结构
5.3 WSDL描述语言
- Types - 数据类型定义的容器,它使用某种类型系统(如 XSD)。
- Message - 通信数据的抽象类型化定义。
- Operation - 对服务所支持的操作的抽象描述。
- Port Type - 操作的抽象集合,这些操作由一个或多个端点支持。
- Binding - 特定端口类型的具体协议和数据格式规范。
- Port - 定义为绑定和网络地址组合的单个端点。
- Service - 相关端点的集合。
WSDL 文档将服务定义为网络端点或端口的集合。在 WSDL 中,由于端点和消息的抽象定义已从具体的网络部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将网络地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。因此,WSDL 文档在网络服务的定义中使用下列元素:
WSDL示例
5.4 简单对象访问协议SOAP
SOAP: SOAP规范是W3C发布的Web Services的基础技术,用于在分布式Web Services环境交换结构化信息。
SOAP是一种基于XML的、不依赖传输协议的表示层协议,用来在应用程序之间以对象的形式方便地交换数据。在SOAP的下层,可以是HTTP/HTTP,也可以是SMTP/POP3,还可以是为一些实际应用专门设计的特殊的通信协议。
SOAP四部分组成:
- SOAP信封(SOAP envelope):定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容,以及这些内容是可选的还是必需的;
- SOAP编码规则(SOAP encoding rules):定义了一系列机制,用以交换应用程序定义的数据类型的实例;
- SOAP RPC表示(SOAP RPC representation):定义了一个用来表示远程过程调用和应答的协定;
- SOAP绑定(SOAP binding): 定义了一个使用底层传输协议来完成在结点间交换SOAP信封的约定。
SOAP结构
SOAP示例:
soap:operation: 元素提供有关操作的总体信息。types 元素包含与交换的消息相关的数据类型定义。为了获得最大程度的互操作性和平台中立性,WSDL 选用 XSD 作为标准类型系统,并将其当作固有类型系统。
soap:header: 使用soap:header
元素可以定义在 SOAP 信包的 Header 元素内传输的标头。
soap:body: soap:body
元素指定如何在 SOAP Body 元素中显示消息片段。
5.5 统一描述、发现和集成-UDDI
UDDI: UDDI (Universal Description, Discovery, and Integration,UDDI)是一套基于Web的、分布式的、为Web Services提供信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Services注册,以使别的企业能够发现的访问协议的实现标准。
UDDI发现服务流程:
- 编写远程调用web服务的程序时, 程序员使用UDDI商业注册中心来定位
businessEntity
信息, 这些信息是由提供这些web服务的企业注册的 - 程序员可以进一步获得更详细的
businessEntity
信息, 或是得到一个完整的businessEntity
结构. 因为businessEntity
结构包含了有关已发布的web服务的所有信息, 因此程序员只需简单滴选择一个bindingTemplate
并保存留待以后使用 - 基于web服务在
bindingTemplate
的tmodel
中提供的调用规范的相关信息, 程序员可以按照该web服务的调用规范编写程序 - 在运行时, 程序可以按需要使用已保存下来的
bindingTemplate
的信息来调用web服务
五种主要的数据结构
关于各个结构的详细解释请自行查找
5.6 .NET Web Services
.NET框架: .NET框架是一个多语言组件开发和执行环境,他提供了一个跨语言的统一编程环境。.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。开发人员可以将远端应用程序提供的服务和单机应用程序的服务结合在一起,组成一个应用程序。例如:一个B2C的电子商务网站可以按这种方式组成在线交易,使用Microsoft Passport服务来验证用户身份,使用合作厂商的信用卡处理服务。