六、Web服务体系结构

一、Web服务概述

什么是Web服务?

  • Web服务作为一种新兴的Web应用模式,是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。
  • Web服务就像Web_上的构件编程,开发人员通过调用Web应用编程接口,将Web服务集成进他们的应用程序,就像调用本地服务一样。

Web服务使开发人员能够在任何平台,上使用任何编程语言,创建任何电子商务应用程序。

  • 企业通过Web服务可以与世界各地的客户、合作伙伴实现无缝、高效的连接。
  • Web服务可以实现Internet.上不同服务器接口之间应用程序的相互调用。它还支持异构操作系统之间的连接。

Web服务主要是对一-些已经存在的技术(HTTP、SMTP、XML)进行包装,因此,它是基于现有技术的一种整合技术。

通常一个Web服务 可以分为4个逻辑层:
1.数据层——最低层,Web服务需要的任何物理数据保存在此。
2.数据访问层——该层为业务层提供数据服务,它把业务逻辑从底层数据存储的改变中分离出来,这就能保护数据的完整性。
3.业务层——分为2个子层:

  • 业务逻辑层:提供业务面使用的服务
  • 业务面层:提供一个简单的接口,直接映射到Web服务提供的过程。

4.监听者——最高层,负责接收带有请求服务的输入消息,解析这些消息,并把请求发给业务面的相应方法。

Web服务的不同描述:
从不同侧面对Web服务有不同的描述,可以从功能角度描述、从组成框架及实现目标的角度描述、从语义角度描述、从网格计算的角度和信息检索的角度描述。尽管描述不同,但都有如下3点共同的特征:

1.应用的分布式:
Web服务对用户具有分布透明性。即服务请求者不必关心服务提供者的数据源格式是什么,某一请求需调用哪些业务,请求在Web上怎样被执行等都是透明的。

2.应用到应用的交互:在分布式环境中,若采用集中控制方式,则服务器有较大的负荷,且系统不
具有健壮性。因此,应用到应用的交互,使得Web服务更具可伸缩性。

3.平台无关性:由于Web服务采用简单、易理解的标准Web协议作为构件接口和协同描述的规范,完全屏蔽了不同软件平台的差异,具有可集成能力。

Web服务的特点:

从外部使用者的角度来看,Web服务是一种部署在Web上的对象/构件,它具有以下5个特征:

  1. 使用标准协议规范

  2. 使用协约的规范性

  3. 高度集成能力:由于Web服务采用简单、易理解的标准Web协议作为构件界面描述和协同描述规范,屏蔽了不同软件平台的差异,实现最高的集成性。

  4. 完好的封装性:Web服务既然是种部署在Web.上的对象,自然就具备对象的良好的封装性,对应使用者只能看到该对象提供的功能列表。

  5. 松散耦合:对于调用者而言,只要Web服务调用的界面不变,Web服 务实现的任何变更对调用者都是透明的。

二、Web服务体系结构模型

1.Web服务模型

一个完整的Web服务包括3种逻辑构件,服务提供、服务代理、服务请求,其服务模型如下图:
在这里插入图片描述
服务提供者:提供服务并进行注册,以使服务可用。

服务代理:起中介作用,它是服务的注册场所,充当服务提供者和服务请求者之间的媒介。

服务请求:在应用过程中通过向服务代理请求服务,调用所需服务。

与Web服务相关的操作有:
发布、发现、绑定

发布:服务提供者向服务代理发布所提供的服务。服务提供者可以决定发布(注册)或不发布(移去)服务。

发现:服务请求者向服务代理发出服务查询请求,服务代理接收该请求。

绑定:服务的具体实现。分析从注册服务器中得到的调用该服务所需的详细绑定信息,根据这些信息服务请求者就可以编程实现对服务的远程调用。

2.Web服务开发生命周期

开发周期分为4个阶段:
(1) 构建阶段:包括开发和测试Web服务的实现、定义服务接口描述和定义服务实现描述。可以通过创建新的Web服务来提供Web服务的实现。
(2)部署阶段:向服务请求者或服务注册中心分布服务接口和服务实现的定义,以及把Web服务的可执行文件部署到执行环境( Web应用程序服务器)中。
(3)运行阶段:该阶段可以调用Web应用程序。此时服务请求者就可以进行查找和绑定操作。
(4)管理阶段:此阶段包括持续的管理和经营Web服务应用程序。该阶段应解决:安全性、可用性、性能、服务质量和业务流程等问题。

3. Web服务栈

Web服务是种全新的体系结构, 为支持其特性,相关规范不断被推出。Web服务 要以一种可互操作的方式执行发布、发现和绑定这3个操作,必须有一个包含每层标准的Web服务栈。其结构由如下的5层组成:
在这里插入图片描述
①发现服务层:用来帮助客户端应用程序解析远程服务的位置,通过UDDI 协议实现。UDDI 使Web服务可以真正实现信息的次注册,到处访问”。
②描述服务层:为客户端应用程序提供正确地与远程服务交互的描述信息。通过WSDL ( Web服务描述语言)来实现。
③消息格式层:保证客户端应用程序和服务器端在格式设置上保持致,通过S0AP协议实现。S0AP (简单对象访问协议)定义了服务请求者与服务提供者之间的消息传输规范。,
④编码格式层:为客户端和服务器之间提供个标准的、独立于平台的数据交换编码格式,通过XML来实现。
⑤传输协议层:为客户端和服务器之间提供二者交互的网路通信协议,通过HTTP (超文本传输协议)和SMTP (简单邮件传输协议)来实现。

Web服务体系结构的优势

Web服务是近年来提出的一种新的面向服务的体系结构,它与传统的分布式体系结构相比,其优势有如下4点:
(1)高度的通用性和易用性Web服务利用标准的Internet协议(HTTP、SMTP),提高系统的开放性、通用性、扩展性。
(2)完全的平台、语言独立性Web服务进行了高程度的抽象,只要遵循Web服务的接口,即可进行服务的请求和调用。
(3)高度的集成性:Web服务实质上是通过服务的组合来完成业务逻辑的。因此,表现出高度的组装性和集成性。
(4)容易部署和发布:通过UDDI、WSDL 和S0AP等协议,很容易实现系统的部署。

三、Web服务的核心技术

1.作为Web服务基础的XML

XML是W3C制定的作为Internet.上数据交换和表示的标准语言,是一种允许用户定义自己的标记的元语言。

Web服务所提供的接口、对Web服务的请求、Web服务的应答数据都是通过XML来描述的。

Web服务的所有协议都是建立在XML基础上,故XML可称为Web服务的基石。

2.简单对象访问协议(SOAP)

S0AP是一个基于XML, 在松散分布式环境中交换结构化信息的轻量级协议,它本身不定义任何应用
语言。它的组成包括如下4个部分:
①S0AP信封:是S0AP消息在句法上的最外层,它构造和定义了一个整体的表示框架,用来表示消息中包含什么内容,谁应当来处理这些内容,以及是可选的还是强制的。其组成如下页:
②S0AP编码规则:是一个定义传输数据类型的通用数据类型系统,它包括:程序语言、数据库中不同类型系统的公共特性。在系统中一个类型可以是简单类型,也可是复合类型。
③S0AP RPC表示:定义了远程过程调用和应答的协议。
④S0AP绑定:定义了一个使用底层传输协议来完成在结点间交换S0AP信封的约定。

SOAP消息结构图如下所示:
在这里插入图片描述
SOAP信封包括一个S0AP头和一个S0AP体:

S0AP头:是可选的。作用是在松散环境下且通信方之间没有达成一致的情况下,为SOAP消息增加特性的通用机制,扩展S0AP消息的描述能力。它是由中介者处理。

S0AP体:是必须的。包含需要传输给接收者的具体消息内容。它由S0AP最终接收者处理。

3. Web服务描述语言(WSDL )

当服务提供者提供了项服务后,就需要一种方法来让使用者了解调用规则以便使用。WSD是一种XML格式,用于将网络服务描述为组端点,这些端点对消息进行操作。WSDL的模型图如下图所示:
在这里插入图片描述
WSDL文档在网络服务的定义中使用以下8个元素:
①定义:是整个WSDL文档的根元素,包含所有其它
WSDL元素。
②类型:包含与交换的消息相关的数据类型定义。
③消息:代表传输数据的抽象定义。
④操作:是对服务所支持的操作的抽象描述。
⑤端口类型:是一组指定的抽象操作和有关的抽象消息。
⑥绑定:由特定端口类型所定义的操作和消息指定格、式的协议细节。某个给定的端口类型可以有多个绑定。
⑦端口:通过为绑定指定一一个地址来定义一个端点。
⑧服务:表示相关端口的集合。

4.统一描述、发现和集成协议(UDDI)

UDDI是一套基于Web的、分布式的、为Web服务提供信息注册中心的实现标准和规范。UDDI定义了4种核心数据结构类型,分别如下:

(1)业务实体结构
(2)业务服务结构
(3)绑定模板
(4) t模型结构

UDD核心数据结构关系图如下图所示:
在这里插入图片描述
UDD I的技术发现包括2方面:

注册:对核心数据结构类型进行发布和删除。
查询:对相关服务的各种信息进行查找和定位。

四、面向服务的软件体系结构
1.SOA(面向服务的软件体系结构)的概念

至今S0A还没有一个公认的定义,许多组织从不同角度、不同侧面对其进行了描述,其中:
W3C的定义:SOA为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。
W3C将服务定义为:服务提供者完成一组工作,为服务使用者交付所需的最终结果。

一个完整的面向服务的体系结构(SOA)模型:
在这里插入图片描述

在上面图中:
所有功能都定义成独立的服务。
服务之间通过交互、协调作业,从而完成业务的整体逻辑。
所有服务通过服务总线或流程管理器来连接服务和提交服务请求的路径。

单个服务内部结构:
在这里插入图片描述

它与构件模型的区别:
服务模型的表示层从逻辑层分离出来,中间增加了服务对外的接口层。

服务接口的意义:
更多、更灵活的功能可以在服务接口中实现。通过服务接口的标准化描述,从而使得该服务可以提供给在任何异构平台和任何用户接口使用。

SOA模型的特征:
SOA是种粗粒度 、松耦合 的服务体系结构,其服务之间通过接口进行通信,不涉及底层编程接口和通信模型。它的特征有下面3点:
①松散耦合
将服务使用者与服务提供者在服务实现和客户如何使用服务方面隔离开来。它使服务实现能在不影响使用者的情况下进行修改。
服务使用者与服务提供者之间松散耦合。
②粗粒度服务服务粒度是指服务所公开功能的范围。
它分为:
细粒度——能够提供少量业务流程可用性的服务。
粗粒度——能够提供高层业务逻辑的可用性服务。
③标准化接口:SOA通过服务接口的标准化描述,使该服务可以提供给任何异构平台和任何用户接口中使用。

S0A的设计原则:

从建模的观点看,SOA的主要挑战:如何描述设计良好的操作、服务和流程抽象的特征以及如何系统地构造它们。为此提出了:面向服务的分析与设计(SOAD)原理
SO AD结构图如下,
它分3个层:
①基础设计层(第1层) :它采用了00AD的思想,目标是:能够进行快速而有效的设计、开发以及执行灵活且可扩展的底层服务构件。
②体系结构层(第2层) :它采用了EA的理论框架。
③业务层(第3层) :它采用了BPM规则。

在这里插入图片描述
SOA的实践原则:
SOA是一种企业系统体系结构,它是从企业的业务需求开始的,它的优势在于SOA提供了业务的敏
捷性。
业务的敏捷性是指企业对业务的变化能够快捷、有效的进行响应,为此SOA必须遵循如下2个原则:

①业务驱动服务,服务驱动技术在抽象层上,服务位于业务和技术之间,业务处于主导地位→业务的变化需要服务的重新编排和组合→服务变化会带来实现细节的变化。
②业务敏捷是基本的业务需求整个体系结构都必须满足敏捷性需求,因此在SOA中任何瓶颈都会影响到整个系统的灵活性。因此,SOA设计师要将敏捷的思想贯穿在整个系统设计中。

五、Web服务的应用实例

ERP(企业资源计划)是一个庞大、复杂的信息化系统,传统的设计、开发模式不满足要求,故提出了基于Web服务技术,按照“面向服务”的设计思想和开发模式,建立了基于Web服务的ERP体系结构,其结构图如下;它包括4层:

1.系统入口
2.服务集成器
3.原子服务库
4.数据库与数据仓库

在这里插入图片描述

  1. 系统入口层:用户单一的入口,它可以是程序、网络浏览器、任何能访问的服务单元,也可以通过手机、掌上电脑等通信设备访问系统。
  2. 服务集成器:是整个系统的核心部分。在实际运行过程中,系统自动调用相关的服务单元,这些对用户是透明的。它是用业务过程定义来驱动功能单元的执行。
  3. 原子服务库:是所有服务单元的集合。它包含: ERP系统自身的服务单元和其它系统的功能单元进行Web包装后得到的服务单元。

原子服务包含2种服务单元:

  • 功能服务单元:完成业务操作和数据处理
  • 控制服务单元:决定业务流程的流向并实现权限管理。
  1. 数据库与数据仓库:传统的ERP是构建在关系型数据库上,而数据仓库是指一个“面向主题的、集成的、稳定的、随时间变化的数据集合,用以支持经营管理中的决策制定过程”数据进入仓库之前,经过加工和集成,以实现将原始数据从面向应用到面向主题的转变。
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WSDL (Web Services Description Language) 是一种用于描述 Web 服务的语言。它使用 XML 格式来描述 Web 服务和如何访问它们。 Web 服务体系结构中的 WSDL 实现可以提供以下信息: - 服务所在的位置 (URL) - 服务所提供的功能 (例如,查询数据库、检查天气预报等) - 调用服务所需的输入参数 - 服务返回的输出结果 通常,WSDL 文件会包含一个描述 Web 服务的接口的 XML 文档,以及如何访问该接口的详细信息。有了 WSDL 文件,客户端程序就可以使用特定的工具生成代码来调用 Web 服务。 ### 回答2: Web服务体系结构是一种基于网络的架构,它允许不同平台和应用程序之间进行通信和交互。其中,WSDL(Web Services Description Language)是一种用于描述Web服务的XML格式语言。 WSDL可以被用来描述一个Web服务的功能、输入输出等细节。一般来说,一个简单的Web服务体系结构的WSDL实现会包含以下几个部分: 1. 服务接口(Service Interface):描述Web服务可提供的功能和操作,包括输入参数、输出参数和返回类型等。例如,一个简单的Web服务可能提供一个计算两个数相加的功能。 2. 绑定(Binding):将服务接口与具体的协议和传输机制绑定在一起。例如,绑定可以指定该Web服务使用SOAP协议进行通信,并通过HTTP协议进行传输。 3. 服务地址(Service Address):指定Web服务的网络地址,客户端可以通过该地址访问并调用服务。例如,一个Web服务的地址可以是一个URL(Uniform Resource Locator)。 4. 数据类型(Data Types):定义服务接口中所使用的数据类型。例如,对于前述计算两个数相加的功能,可能需要定义整数类型作为输入参数和返回值的数据类型。 通过这些部分的描述,WSDL实现可以为Web服务提供者和消费者提供一个统一的规范和约定,使得它们之间能够理解和相互协作。同时,WSDL实现还可以被用来生成客户端代码,使得客户端可以轻松地调用Web服务。 总而言之,WSDL实现是描述Web服务体系结构的一种XML格式语言,它定义了服务接口、绑定、服务地址和数据类型等方面的细节。通过WSDL实现,Web服务的提供者和消费者可以共同遵守一套标准和约定,实现不同平台和应用程序之间的互操作性。 ### 回答3: Web服务描述语言(WSDL)是一种用于描述和定义Web服务体系结构的XML语言。它允许开发人员描述一个Web服务的接口、访问地址、操作和消息格式等细节。以下是一个简单的描述Web服务体系结构的WSDL实现: ``` <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions name="MyWebService" targetNamespace="http://www.example.com/webservice" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.com/webservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema targetNamespace="http://www.example.com/webservice"> <xsd:element name="GetEmployeeRequest"> <xsd:complexType> <xsd:sequence> <xsd:element name="EmployeeID" type="xsd:int"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="GetEmployeeResponse"> <xsd:complexType> <xsd:sequence> <xsd:element name="EmployeeName" type="xsd:string"/> <xsd:element name="EmployeeEmail" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> </wsdl:types> <wsdl:message name="GetEmployeeRequestMessage"> <wsdl:part name="parameters" element="tns:GetEmployeeRequest"/> </wsdl:message> <wsdl:message name="GetEmployeeResponseMessage"> <wsdl:part name="parameters" element="tns:GetEmployeeResponse"/> </wsdl:message> <wsdl:portType name="MyWebServicePortType"> <wsdl:operation name="GetEmployee"> <wsdl:input message="tns:GetEmployeeRequestMessage"/> <wsdl:output message="tns:GetEmployeeResponseMessage"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MyWebServiceSoapBinding" type="tns:MyWebServicePortType"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/> <wsdl:operation name="GetEmployee"> <soap:operation soapAction="http://www.example.com/webservice/GetEmployee" style="rpc"/> <wsdl:input> <soap:body use="literal" namespace="http://www.example.com/webservice"/> </wsdl:input> <wsdl:output> <soap:body use="literal" namespace="http://www.example.com/webservice"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MyWebService"> <wsdl:port name="MyWebServicePort" binding="tns:MyWebServiceSoapBinding"> <soap:address location="http://www.example.com/webservice"/> </wsdl:port> </wsdl:service> </wsdl:definitions> ``` 在上述WSDL实现中,我们定义了一个名为"MyWebService"的Web服务,它包含一个名为"GetEmployee"的操作。该操作接收一个名为"EmployeeID"的整数输入参数,并返回一个包含"EmployeeName"和"EmployeeEmail"的响应。WSDL还定义了消息、端口类型、绑定和服务等相关细节。 这段WSDL实现描述了Web服务的接口、访问地址和操作等信息,使得服务的使用者能够了解如何与该服务进行交互,并正确构造请求和解析响应。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值