基于Web Services的系统架构分析,本文主要内容关键词为:架构论文,系统论文,Web论文,Services论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
数字图书馆中,联合目录系统、电子资源库系统、馆际互借系统、跨库检索系统、参考咨询系统、用户认证系统等构成了数字图书馆服务体系。这些信息系统有效地支持了数字图书馆用户的资源查询、资源确认、资源获取等需要。然而用户学习研究过程中所需资源间复杂的交叉的溯源性、归属性、同类性等关系,给组织资源的信息系统提出了要求:只有准确地揭示资源之间的关系,才能实现信息系统与服务系统间的充分无失误的交互,从而支持用户的学习研究。Web Services构筑了与平台无关、语言无关的技术层,为系统中实体的交流、关系的组织、集合的构建、服务的沟通等提供了解决方案。我们可以在从事系统架构的时候,从另一种角度去思考和解决Web环境中服务发现、资源集成和政策控制等问题。
1 基本的Web Services架构
W3C的Web Services工作组给出了Web Services Architecture的基本规范[1],它可以作为搭建一个基于Web Services的信息系统架构的指导。一个基本的Web Services Architecture由服务框架、资源框架、消息框架和政策框架四个部分组成(如图1所示)。
附图
图1 Web Services Architecture元模型
在Web Services Architecture元模型中,服务的识别和使用依赖于消息的传递和交换;资源及资源集合构成了服务的基础,同时服务发现是定位未知的符合特定功能需求的Web资源描述的一系列动作或操作,在Web Services环境中,被发现的资源通常是服务描述;服务的完成可由请求方代理和提供方代理之间的消息交换来表现;消息交换模式和传输过程构成了政策制定的依据,政策确保了资源和服务的拥有权、获取权和使用权。
面向服务框架,着重于服务与服务的动作,是Web Services Architecture中最复杂的。它包括一些关键概念:服务被代理识别和使用;服务通过请求方和提供方之间交换消息的语义被传递和转达;服务被人或组织拥有和控制;元数据是服务的关键属性,它描述了服务接口细节,描述了服务语义的传输绑定,描述了服务的规则限制。服务(Service)是一种资源,它表达了完成服务任务的能力。服务能执行一个或多个任务,有自己的服务接口、服务语义和标识符,有与服务拥有者相关的一个或多个服务角色,它可被服务提供方代理识别,并被服务请求方代理使用。服务接口(Service Interface)是服务实施的抽象界限,主要定义了服务间交互的消息类型、消息交换模式等。服务语义(Service Semantics)是服务交互的行为,表达了服务提供方实体与需求方实体之间的一种“合同”,即服务使用的需求和结果。服务描述(Service Description)是描述服务接口和服务语义的一系列文档。一个服务描述包括服务接口和服务行为的细节,这包括了它的数据类型、操作、传输协议信息和地址,同时也包括分类和其他元数据来支持发现和利用;服务描述还有其他一些潜在用途可用于服务的搭建和实施,可帮助人们去定位合适的服务,帮助需求者代理去自动发现恰当的提供方代理。服务任务(Service Task)是服务的一个动作/操作或几个动作/操作的联合体,它将服务的动作与目标状态联系在一起。简单地说,实施服务任务就是执行服务动作,并达到服务的目标状态。服务角色(Service Role)是一系列任务的抽象表示,它标识了人或组织结构提供的服务类型,指明了服务拥有者在处理消息和服务过程中的作用和利益。服务动作(Action)指的就是一个服务代理可以实施的任何操作,可以是接收一个消息、发送一个消息或者其他。服务设计(Choreography)定义了为取得一个服务目标状态而实施任务的多个合作的代理间交换消息的顺序和条件。服务设计可以使用一个或多个服务接口,定义了一系列代理间可能的消息交换模式,它是从属于特定的服务任务的,定义了服务间交换消息和任务之间的关系,可以看作是控制参与服务的操作顺序、状态和条件的模型。服务性能(Capability)就是服务代理支持或请求的功能。服务性能有自己的标识符和性能的语义描述才能被支持它的代理所发现。作为在Web环境中的一个服务必须要宣布自己能支持的特定功能。 一个需要该功能的服务代理就会选择这个服务,或者一个服务指明它需要使用具有特定功能的某请求代理,那么请求代理就会在此基础上选择或避开该服务。同时这也是一种协商过程,可以人工或自动地选择相关功能。同时服务的执行和完成都有一个或多个应用规则和政策对其进行指导和约束。
面向资源框架,着重于人或机构拥有的资源。资源是支撑Web和Web Services的基本概念,资源(Resource)是由RFC2396具体定义的具有唯一标识符的任何事物。这里更重视的是与Web Service相关的有特定所属权和拥有权的资源概念。资源描述(Resource Description)是允许和帮助资源发现的机器可读的数据或文档。资源发现服务就是通过资源描述去选择和许可机器代理去发现资源。为了实现此目的,资源描述就要包括资源定位信息、获取信息及政策信息。当资源是一个Web Services时,资源描述还要包括启动服务和使用服务信息。
面向消息框架,着重于消息内容、消息结构和消息传输,它的核心实体是消息。消息(Message )是从一个服务代理向另一个服务代理传送数据的一个基本单元。消息的主要部分由信封、头标和消息体组成。消息信封中包含消息接收方和消息的地址信息,头标承载了消息的标识信息,消息体包括了消息的内容和指向实际数据资源的名称。消息框架的重点结构就是:消息发送方按消息地址发送消息,消息接收方负责接收消息,地址用于描述如何和到何处传送消息,消息发送方和消息接收方用于发送和接收地址信息的方法依赖于使用的传输机制。消息传输(Message Transport)是服务代理用于传输消息的机制,例如HTTP、TCP、SMTP等。消息传输必须知道足够的地址信息才能去传送消息,同时它可由不同的传输规则控制。传输规则(Delivery Policy)是控制传递信息方法的规则,起到了联系特定消息和特定消息传输机制的作用。 消息的传输依赖于一定的模式,消息交换模式(Message Exchange Pattern)是一个与应用语义无关的模板,它描述了在系统间交换消息的基本模式,也描述了依照这种模式交换的多个消息间的关系及消息交换时正常性和非正常性终止情况。
面向政策框架,着重于关于资源、服务和服务行为规范,它的核心是政策(Policy),还包括政策主题、政策描述、许可政策、限制政策和政策监督等。政策是对人、组织机构及他们拥有的服务代理的行为的约束,包括许可和限制。政策主题(Domain)是界定政策的主题,定义了政策应用的范围。政策描述(Policy Description)是对政策或政策集合的机器可处理的描述文档,它的内容包括对于获取资源、获取服务、实施操作等的代理行为的许可或限制条件。要明确的是,政策描述本身并不是政策,但是它定义政策并且决定了政策执行的状态。许可(Permission)是规定代理或资源的许可操作和状态的一种政策。当一个服务代理允许去执行特定操作、获取特定资源或达到特定状态,可以说实施这些努力是正确的。一个代理没有必需的许可,那么它的实施动作就是失败的,相反就是限制(Obligation)。政策监督(Policy Guard)是确保政策或政策集合实施的机制,用于保证资源或服务的拥有者加强政策的实施和管理。政策监督分为许可监督和审核监督两种类型,它们分别针对于许可政策和限制政策两种核心政策类型。
2 基于Web Services的系统架构分析
2.1 服务框架的应用分析 面向服务框架(Services Oriented Architecture,SOA[2])可以看作是松散耦合的Web Services架构。它主要建立在服务的提供者、服务的登记和服务的需求者三个角色的交互上,而交互的内容包括服务的发布、查找和绑定。在SOA中,所有的实体都是服务需求者,也是服务提供者。SOA提供了连接分布环境、分布应用、分布网络服务器和应用服务器的方式,而且服务间传递和交换的都是标准化消息,所以服务提供者将专注于服务的构建,而不必考虑搭建网络和服务的安全支持等问题[3]。
Nokia移动通讯的SOA[4] 支持应用程序接口使用SOAP、HTTP、XML在Nokia移动设备上进行Web Services的创建、使用和操作。它允许开发者分别为Web Services使用者(WSC)和Web Services提供者(WSP)创建服务应用。应注意的是,大部分Web Services应用都是使用HTTP和SOAP协议,但Nokia SOA还支持通信的会话初始协议(Session Initiation Protocol,SIP)。
服务登记在SOA 中的作用就是实现服务发布与发现。 统一描述、 发现和集成(Universal Description,Discovery,and Integration,UDDI)[5] 规范定义了Web Services的发布与发现方法,而关键是Web服务描述(Web Services Description Language,WSDL)与UDDI的匹配问题。从技术上讲,wsdl:port-Type元素和wsdl:binding元素与uddi:tmodel实体匹配,wsdl:service元素与uddi:businessService实体匹配,wsdl:port元素与uddi:bindingTemplate实体匹配[6]。一个理想的服务、操作和类型的匹配模式如下:创建类别分类表用于标识一个操作或类型作为一个实体;创建操作参考分类表用于联系一个服务和它的操作;创建输入类型参考分类表用于联系一个操作和它的输入类型;创建输出类型参考分类表用于联系一个操作和它的输出类型;为每种数据类型、操作创建一个服务或分类规范(tmodel)存入类别分类表;使用操作参考分类表,以服务为纽带,联系各种操作和操作数据[7]。
2.2 资源框架的应用分析 W3C的Web Services Architecture中面向资源框架为Web资源发现、资源集合和资源管理提供了基础。它的资源发现服务是用于发布和搜索资源描述。一个发现服务只有匹配特定功能需求或语义需求的资源描述能用于发现和检索。
最典型的就是在教育学习系统环境中,教育资源和内容以Web Service的形式提供,将最原始的教学资源对象(例如课文文本、课文图片等)作为最小逻辑内容单元,用元数据(例如LOM,Learning Object Metadata)对其进行描述,使该资源对象成为发现单元,用以发现与其逻辑相关的其他资源对象,同时它也是联系单元,在基于小单元的基础上建设拥有更多教育资源的更大的教育和学习环境[8]。除了元数据描述支持资源发现外,教育内容描述表明了关于教学对象用途的教育功能,它支持学生或老师去发现教学对象。教学对象构造描述表明了教学对象的技术功能,它支持开发者将该教学对象集成到教学环境中来。学习技术标准框架(Learning Technology Standard Architecture,LTSA)为这类环境提供了灵活的教学组分/内容的集成。LTSA使用LOM来作为发现机制和联系框架,Web Services描述只描绘了集成教学对象的技术要领。LTSA的内容和存储元素都是教学对象,它把两个教学对象看成两个可交互的实体,那么交互接口描述就定义了如何从一个对象提供的服务与另一个对象交互,目的就是将教学对象纳入一个Web Services Architecture中。它对教学对象的接口描述就采用Web Services Framework(WSF)的形式,WSF的功能就是提供表达服务功能的特性, 提供对服务的定位和支持的协议。
基于Web Services的门户网站的资源整合也很有特点。一般来说,门户网站访问不同来源的信息资源和应用并以集成的、可视化的方式组织呈现给用户。以前较常用的是RSS(RDF Site Summary[9])技术,它定义了频道描述框架和内容收集机制,通过对频道及其所含资源的描述实现对作为资源集合的网站描述。很多网站都愿意把自己的信息以RSS的方式给第三方做进一步的处理和提供服务,例如一些新闻网站。由于要依赖门户网站的基础结构来展示集成的各种数据和资源,而各种不同的信息资源和应用程序有着不同的格式和加工机制给资源整合带来了一定难度。OASIS提供的远程门户网站Web服务(OASIS Web Services for Remote Portlets,WSRP[10])是基于Web Services的门户资源集成应用,它可看作是一个中间程序,利用WSDL对每一个远程的Web Services进行描述,即将Web Services作为业务接口来使用,再利用Web服务交互应用程序(Web Services for Interactive Applications,WSIA[11])为其提供一个创建可视Web Services框架实现门户资源的集成显现。同时这种方法也存在一些挑战,因为每创建一个门户页面,便会产生许多的Web Services,门户又必须和其他服务器上的Web Services交互,传统的HTTP通讯框架连接浏览器和服务器的方式对于这样频繁和大范围内的Web Services交互是不太可靠的。
2.3 政策框架的应用分析 政策应用于试图获得资源和服务的代理,也应用于创建资源和发布资源的人或机构。政策有很多类型,有些是关于以特定方式获取资源,有些是关于服务请求方代理和提供方代理实施的许可动作等。政策还可以用于定义安全属性、服务属性的质量、管理属性和应用属性。
一个基于Web Services的获取控制政策框架的基本原理是在选择了可用政策后,对每个政策而言,针对请求来评价所有的政策声明,如果一个政策评价为真,那么返回一个真实应答,否则就选择另一个政策。如果没有任何政策满足该请求,那么获取行为就被否定(exception)了。在此框架中有一个政策存储库作为政策管理方(Policy Administration Point,PAP),提供了一个插入、编辑、删除政策的管理接口,它返回所有被请求的方法或服务的相关政策;有一个政策评价方(Policy Evaluation Point,PEP)向PAP请求应用政策、检查请求并为政策决定方(Policy Decision Point,PDP)返回最终决定,如果至少有一个政策满足了,那么认可这个请求,否则发出一个反对消息(exception);PDP识别服务与获取控制框架之间的接口,然后列出服务获取的状态[12]。
Web Services应用政策的目的是处于服务安全的考虑,现在有多种基于XML的安全语言提供了Web Services的安全解决方案。例如,SAML(OASIS Security Services)、Web Services Security是交换安全信息语言, XACML ( OASIS eXtensible Access Control Markup Language)、Web Services Policy是定义安全控制规则的语言。在Web Services Policy[13] 中,一个政策是政策声明的集合。政策声明表达了满足获取政策主题的选择、需求或属性,它由使用政策的操作者们来声明的,那么一个政策声明的描述语言表述称为政策表述。
3 开放Web Services框架
以上从Web Services涉及的基本实体要素和应用系统进行了分析。如果从Web Services的服务领域还可分为面向商务的Web Services、面向消费者的Web Services、面向设备的Web Services和面向系统的Web Services。不管是面向何种实体、何种需要,一个开放的Web Services框架如图2所示。
附图
图2 开放Web Services框架
这样的开放Web Services框架包括5个层次。最底端的协议层提供各种服务所需的标准传输规范和协议规范,包括支持Web的HTTP、支持加密传输的SSL/TLS、支持超文本传输的HTML、支持跨平台的Java、支持开发分布事务应用的J2EE、支持远程调用消息交换的SOAP、支持远程Java服务的JAX、支持丰富数据类型描述的XML—Schema和支持文档对象调用的DOM等。平台层是支持各种类型Web服务搭建、部署和实现的基础平台规范,包括支持轻便计算操作系统接口的POSIX、 支持网络文件系统的NFS、支持文件传输的FTP、支持动态IP地址分配的DHCP、支持计算机联网的TCP、支持更大地址空间的IPV6、支持移动网络互联的MobileIPV4、支持跨平台音频接口的OSSAPI、支持点对点多协议发送的PPP、支持小型计算机系统接口的SCSI等。标识与政策层包含了Web服务标识、认证、政策管理等规范,支持对上层服务的应用需要,包括支持目录访问的LDAP、支持目录服务标记的DSML、支持Web服务统一标识的UDDI、支持数字签名的电子商务交互的ebXML、支持基于规则的策略接口的JAAS、支持Web隐私保护的P3P、支持使用控制的XACML、支持W3C数字签名规范的XMLDsig、支持网络服务质量的Qos等。服务层提供Web服务的描述、封装、传送、发布和集成规范,有三个部分:a.服务传送,包括指示Web服务描述和资源位置的RDF、支持远程同步处理的SyncML、支持远程存储服务的RSS、支持无线访问和传输的WML、支持移动设备压缩HTML内容的cHTML、支持Java智能卡传输服务的JavaCard等;b.服务容器,包括支持异构系统服务封装的WebServices技术、支持多类型数据邮件的IMAP、支持安全即时通讯服务的SIP、支持移动设备短消息服务的SMS、支持日程管理程序的iCal等;C.服务发现和集成,包括支持Web服务登记的UDDI、支持模块化电子商务交互的ebXML、支持跨平台消息服务的JMS、支持分布对象服务的COBRA、支持不同系统间业务流程沟通的BPSS、支持电子数据交换的EDI、支持Web服务工作流无缝集成的WSFL、支持用户消息检查Web服务提供的WSIL等。最高层是应用接口层,对Web服务接口和外部系统应用进行管理,提供接口定义,从而完成内部服务与外部服务交互[14~15]。
目前SUN公司的Sun ONE、Microsoft公司的.NET、IBM的WebSphere都支持这种开放式Web Services架构,能够为所有接入设备提供访问平台、可让众多的网络设备及Web服务提供商之间进行通讯,让Web服务用户与Web 服务提供商之间根据各自所需进行有效的沟通。实现智能Web服务之间的相互沟通、网络接入设备的统一、用户有效利用Web服务,才是Web服务时代的目标。
标签:web技术论文; web代理论文; 类型系统论文; 代理模式论文; web开发论文; 信息集成论文; 功能分析论文; services论文; 框架论文;