什么是Web服务?
Web服务使开发人员能够在任何平台,上使用任何编程语言,创建任何电子商务应用程序。
Web服务主要是对一-些已经存在的技术(HTTP、SMTP、XML)进行包装,因此,它是基于现有技术的一种整合技术。
通常一个Web服务 可以分为4个逻辑层:
1.数据层——最低层,Web服务需要的任何物理数据保存在此。
2.数据访问层——该层为业务层提供数据服务,它把业务逻辑从底层数据存储的改变中分离出来,这就能保护数据的完整性。
3.业务层——分为2个子层:
4.监听者——最高层,负责接收带有请求服务的输入消息,解析这些消息,并把请求发给业务面的相应方法。
Web服务的不同描述:
从不同侧面对Web服务有不同的描述,可以从功能角度描述、从组成框架及实现目标的角度描述、从语义角度描述、从网格计算的角度和信息检索的角度描述。尽管描述不同,但都有如下3点共同的特征:
1.应用的分布式:
Web服务对用户具有分布透明性。即服务请求者不必关心服务提供者的数据源格式是什么,某一请求需调用哪些业务,请求在Web上怎样被执行等都是透明的。
2.应用到应用的交互:在分布式环境中,若采用集中控制方式,则服务器有较大的负荷,且系统不
具有健壮性。因此,应用到应用的交互,使得Web服务更具可伸缩性。
3.平台无关性:由于Web服务采用简单、易理解的标准Web协议作为构件接口和协同描述的规范,完全屏蔽了不同软件平台的差异,具有可集成能力。
Web服务的特点:
从外部使用者的角度来看,Web服务是一种部署在Web上的对象/构件,它具有以下5个特征:
使用标准协议规范
使用协约的规范性
高度集成能力:由于Web服务采用简单、易理解的标准Web协议作为构件界面描述和协同描述规范,屏蔽了不同软件平台的差异,实现最高的集成性。
完好的封装性:Web服务既然是种部署在Web.上的对象,自然就具备对象的良好的封装性,对应使用者只能看到该对象提供的功能列表。
松散耦合:对于调用者而言,只要Web服务调用的界面不变,Web服 务实现的任何变更对调用者都是透明的。
一个完整的Web服务包括3种逻辑构件,服务提供、服务代理、服务请求,其服务模型如下图:
服务提供者:提供服务并进行注册,以使服务可用。
服务代理:起中介作用,它是服务的注册场所,充当服务提供者和服务请求者之间的媒介。
服务请求:在应用过程中通过向服务代理请求服务,调用所需服务。
与Web服务相关的操作有:
发布、发现、绑定
发布:服务提供者向服务代理发布所提供的服务。服务提供者可以决定发布(注册)或不发布(移去)服务。
发现:服务请求者向服务代理发出服务查询请求,服务代理接收该请求。
绑定:服务的具体实现。分析从注册服务器中得到的调用该服务所需的详细绑定信息,根据这些信息服务请求者就可以编程实现对服务的远程调用。
开发周期分为4个阶段:
(1) 构建阶段:包括开发和测试Web服务的实现、定义服务接口描述和定义服务实现描述。可以通过创建新的Web服务来提供Web服务的实现。
(2)部署阶段:向服务请求者或服务注册中心分布服务接口和服务实现的定义,以及把Web服务的可执行文件部署到执行环境( Web应用程序服务器)中。
(3)运行阶段:该阶段可以调用Web应用程序。此时服务请求者就可以进行查找和绑定操作。
(4)管理阶段:此阶段包括持续的管理和经营Web服务应用程序。该阶段应解决:安全性、可用性、性能、服务质量和业务流程等问题。
Web服务是种全新的体系结构, 为支持其特性,相关规范不断被推出。Web服务 要以一种可互操作的方式执行发布、发现和绑定这3个操作,必须有一个包含每层标准的Web服务栈。其结构由如下的5层组成:
①发现服务层:用来帮助客户端应用程序解析远程服务的位置,通过UDDI 协议实现。UDDI 使Web服务可以真正实现信息的次注册,到处访问”。
②描述服务层:为客户端应用程序提供正确地与远程服务交互的描述信息。通过WSDL ( Web服务描述语言)来实现。
③消息格式层:保证客户端应用程序和服务器端在格式设置上保持致,通过S0AP协议实现。S0AP (简单对象访问协议)定义了服务请求者与服务提供者之间的消息传输规范。,
④编码格式层:为客户端和服务器之间提供个标准的、独立于平台的数据交换编码格式,通过XML来实现。
⑤传输协议层:为客户端和服务器之间提供二者交互的网路通信协议,通过HTTP (超文本传输协议)和SMTP (简单邮件传输协议)来实现。
Web服务是近年来提出的一种新的面向服务的体系结构,它与传统的分布式体系结构相比,其优势有如下4点:
(1)高度的通用性和易用性Web服务利用标准的Internet协议(HTTP、SMTP),提高系统的开放性、通用性、扩展性。
(2)完全的平台、语言独立性Web服务进行了高程度的抽象,只要遵循Web服务的接口,即可进行服务的请求和调用。
(3)高度的集成性:Web服务实质上是通过服务的组合来完成业务逻辑的。因此,表现出高度的组装性和集成性。
(4)容易部署和发布:通过UDDI、WSDL 和S0AP等协议,很容易实现系统的部署。
XML是W3C制定的作为Internet.上数据交换和表示的标准语言,是一种允许用户定义自己的标记的元语言。
Web服务所提供的接口、对Web服务的请求、Web服务的应答数据都是通过XML来描述的。
Web服务的所有协议都是建立在XML基础上,故XML可称为Web服务的基石。
S0AP是一个基于XML, 在松散分布式环境中交换结构化信息的轻量级协议,它本身不定义任何应用
语言。它的组成包括如下4个部分:
①S0AP信封:是S0AP消息在句法上的最外层,它构造和定义了一个整体的表示框架,用来表示消息中包含什么内容,谁应当来处理这些内容,以及是可选的还是强制的。其组成如下页:
②S0AP编码规则:是一个定义传输数据类型的通用数据类型系统,它包括:程序语言、数据库中不同类型系统的公共特性。在系统中一个类型可以是简单类型,也可是复合类型。
③S0AP RPC表示:定义了远程过程调用和应答的协议。
④S0AP绑定:定义了一个使用底层传输协议来完成在结点间交换S0AP信封的约定。
SOAP消息结构图如下所示:
SOAP信封包括一个S0AP头和一个S0AP体:
S0AP头:是可选的。作用是在松散环境下且通信方之间没有达成一致的情况下,为SOAP消息增加特性的通用机制,扩展S0AP消息的描述能力。它是由中介者处理。
S0AP体:是必须的。包含需要传输给接收者的具体消息内容。它由S0AP最终接收者处理。
当服务提供者提供了项服务后,就需要一种方法来让使用者了解调用规则以便使用。WSD是一种XML格式,用于将网络服务描述为组端点,这些端点对消息进行操作。WSDL的模型图如下图所示:
WSDL文档在网络服务的定义中使用以下8个元素:
①定义:是整个WSDL文档的根元素,包含所有其它
WSDL元素。
②类型:包含与交换的消息相关的数据类型定义。
③消息:代表传输数据的抽象定义。
④操作:是对服务所支持的操作的抽象描述。
⑤端口类型:是一组指定的抽象操作和有关的抽象消息。
⑥绑定:由特定端口类型所定义的操作和消息指定格、式的协议细节。某个给定的端口类型可以有多个绑定。
⑦端口:通过为绑定指定一一个地址来定义一个端点。
⑧服务:表示相关端口的集合。
UDDI是一套基于Web的、分布式的、为Web服务提供信息注册中心的实现标准和规范。UDDI定义了4种核心数据结构类型,分别如下:
(1)业务实体结构
(2)业务服务结构
(3)绑定模板
(4) t模型结构
UDD核心数据结构关系图如下图所示:
UDD I的技术发现包括2方面:
注册:对核心数据结构类型进行发布和删除。
查询:对相关服务的各种信息进行查找和定位。
至今S0A还没有一个公认的定义,许多组织从不同角度、不同侧面对其进行了描述,其中:
W3C的定义:SOA为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。
W3C将服务定义为:服务提供者完成一组工作,为服务使用者交付所需的最终结果。
在上面图中:
所有功能都定义成独立的服务。
服务之间通过交互、协调作业,从而完成业务的整体逻辑。
所有服务通过服务总线或流程管理器来连接服务和提交服务请求的路径。
它与构件模型的区别:
服务模型的表示层从逻辑层分离出来,中间增加了服务对外的接口层。
服务接口的意义:
更多、更灵活的功能可以在服务接口中实现。通过服务接口的标准化描述,从而使得该服务可以提供给在任何异构平台和任何用户接口使用。
SOA模型的特征:
SOA是种粗粒度 、松耦合 的服务体系结构,其服务之间通过接口进行通信,不涉及底层编程接口和通信模型。它的特征有下面3点:
①松散耦合
将服务使用者与服务提供者在服务实现和客户如何使用服务方面隔离开来。它使服务实现能在不影响使用者的情况下进行修改。
服务使用者与服务提供者之间松散耦合。
②粗粒度服务服务粒度是指服务所公开功能的范围。
它分为:
细粒度——能够提供少量业务流程可用性的服务。
粗粒度——能够提供高层业务逻辑的可用性服务。
③标准化接口:SOA通过服务接口的标准化描述,使该服务可以提供给任何异构平台和任何用户接口中使用。
S0A的设计原则:
从建模的观点看,SOA的主要挑战:如何描述设计良好的操作、服务和流程抽象的特征以及如何系统地构造它们。为此提出了:面向服务的分析与设计(SOAD)原理
SO AD结构图如下,
它分3个层:
①基础设计层(第1层) :它采用了00AD的思想,目标是:能够进行快速而有效的设计、开发以及执行灵活且可扩展的底层服务构件。
②体系结构层(第2层) :它采用了EA的理论框架。
③业务层(第3层) :它采用了BPM规则。
SOA的实践原则:
SOA是一种企业系统体系结构,它是从企业的业务需求开始的,它的优势在于SOA提供了业务的敏
捷性。
业务的敏捷性是指企业对业务的变化能够快捷、有效的进行响应,为此SOA必须遵循如下2个原则:
①业务驱动服务,服务驱动技术在抽象层上,服务位于业务和技术之间,业务处于主导地位→业务的变化需要服务的重新编排和组合→服务变化会带来实现细节的变化。
②业务敏捷是基本的业务需求整个体系结构都必须满足敏捷性需求,因此在SOA中任何瓶颈都会影响到整个系统的灵活性。因此,SOA设计师要将敏捷的思想贯穿在整个系统设计中。
ERP(企业资源计划)是一个庞大、复杂的信息化系统,传统的设计、开发模式不满足要求,故提出了基于Web服务技术,按照“面向服务”的设计思想和开发模式,建立了基于Web服务的ERP体系结构,其结构图如下;它包括4层:
1.系统入口
2.服务集成器
3.原子服务库
4.数据库与数据仓库
原子服务包含2种服务单元: