基于网格的Web服务

时间:2022-10-13 03:54:28

基于网格的Web服务

收稿日期:2006-07-11

作者简介:洪国辉(1946-),男,江苏无锡人,武汉科技大学中南分校信息工程学院教授。

(武汉科技大学中南分校 信息工程学院,湖北 武汉 430223)

摘要:传统意义上的分布式计算与并行计算,分别只是空间与时间上的并发,对资源的共享与利用程度有限。本文提出一种基于网格计算(grid computing)的Web服务(Web Services)概念,即所谓服务网格,其目标是对一定的网格域上的资源进行整合,提供简单一致的接口,有效地提供内容服务、计算服务、存储服务、交易服务等,同时实现空间与时间的并发,促进分布在网络上,特别是lnternet上的计算资源,通信资源,存储资源,数据资源,信息资源的充分共享与高效利用。

关键字:网格;Web服务;服务网格

1 什么是网格

网格(grid)又称作计算网格(computational grid),网格计算(grid computing)。早期称作元计算(metacomputing)。“网格是构筑在因特网上的一组新兴技术,它将高速互联网、高性能计算机、大型数据库、传感器、远程设备等融为一体,为科技人员和普通老百姓提供更多的资源、功能和交互性”。简单地讲,网格是把整个因特网整合成一台巨大的超级计算机、实现计算资源、存储资源、数据资源、信息资源、知识资源、专家资源的全面共享。当然,网格并不一定非要这么大。我们也可以构造地区性的网格,如大学校区网格、企事业内部网格、局域网网格、甚至家庭网格和个人网格。事实上,网格的根本特征是资源共享而不是它的规模。

现在关于网格技术的研究一般有两个侧重点:

一是美国联邦政府及欧洲一些国家过去十多年来资助的高性能计算项目。这类项目研究的目标是将跨地域的多台高性能计算机、大型数据库、贵重科研设备(电子显微镜、雷达阵列、粒子加速器、天文望远镜等)、通信设备、可视化设备和各种传感器整合成一个巨大的超级计算机系统,支持科学计算和科学研究,这一类的侧重点是用网格实现高性能及高可用性的计算。

还有一类是把网格看成是未来的互联网,简单地讲,传统因特网实现了计算机硬件的连通,Web实现了网页的连通,而网格试图实现互联网上所有资源的全面连通,包括计算资源、存储资源、通信资源、软件资源、信息资源、知识资源等。

我们这里所讨论的网格技术的含义倾向于后者。我们所关注的目标,其一是使局域网内或者更广泛范围内的普通个人计算机(基于Intel芯片的,Windows或Linux操作系统的)能实现各种资源的共享,特别是闲置资源,即每台个人计算机都可以拥有自己独立执行的事务与独立存储的数据,只是在空闲的时候,或是有较多的空闲资源的时候,将这部分资源共享出来,由网格内部或外部的计算资源请求者申请使用。我们的另一个关注点,是服务的互联,特别是针对常规的应用,以及电子商务流程中的应用,而不仅仅是科学计算。

为了实现以上的目标,下列问题是需要研究及解决的:

1.1 网格计算的理论模型:应用如何在网格中分割与分布?特别是对于常规(generic)的应用?现有的网格应用,多是限定于特定的问题及应用域,如高能物理计算,气象预报,三维图形的渲染与生成,这使得网格的应用范围受到很大限制,也制约了网格在实际应用中的发展。

1.2 网格体系结构:即网格的拓扑结构,网格硬件框架,网格的软件体系,资源如何被集成、管理和共享。

1.3 网格计算的协议和框架:协议栈,框架规约。

1.4 网格计算支撑环境的设计与实现:包括开发、部署、管理等软件支撑环境。

1.5 网格程序设计和应用开发界面:提供给网格服务客户的单一、规定、简单的应用接口,使得客户商能方便地进行调用,而无需学习复杂的API及并行算法。

2 什么是Web services

经常的应用更新是当今电子商务应用部署所面临的最大问题,如何提升企业的响应能力,削减响应开支,提升企业的竞争力,是所有的e化企业必须面对的。

同时,企业间的纵向、横向合作与融合,使得企业间信息交换、服务访问、系统交互愈发频繁,如何在N*N的复杂拓扑环境下,实现信息系统的快速开发,便捷部署与灵活维护?答案也许就是Web services。

Web services是新一代的Web应用。它是自包含、自描述的应用模块,能在Web上被、定位并调用。Web services执行各种功能,包括简单的请求应答到复杂的商业处理。

一个典型的Web services可能提供股票竞价服务,或是进行信用卡处理。一个Web services一经部署,其它应用(或其它Web services)就能发现并调用之。

Web services其实并不是全新的技术,而只是集成了一系列成熟的、为业界所广泛支持的协议,它定义了一个面向服务的、基于软件组件的应用体系结构。其中最基础的协议是SOAP、WSDL与UDDI。

SOAP(Simple Object Access Protocol):简单对象访问协议,规定了如何用XML文档来表示数据对象,它同时规定了一种RPC风格的远程Web方法调用,其调用参数及返回值均以XML文档来描述。

WSDL(Web services Description Language):Web服务描述语言,它为Web服务提供者制定了一套标准的规范来描述其提供的Web服务与Web方法。WSDL指定了Web服务的具体内容与调用接口。

UDDI(Universal Description,Discovery,and Integration):统一描述、发现及集成协议,提供一种动态机制,使客户方能够按特定的服务供应商或公司来搜索指定的Web服务(“White Page”),或是按所需的服务来搜索特定的供应商(“Yellow Page”)。

Web服务作为Internet环境下的软件组件的基本角色,就技术而言,无论从哪个角度来看,Web服务都是对象/组件技术在Internet中的延伸。它并不是要取代现有的Corba、DCOM等分布式技术(恰恰相反,Web services能利用这些技术来构建),而是要在更高的抽象层次,及更广泛的分布领域,以一种新概念的软件组件形式,来实现分布式服务的融合与集成。

3 服务网格――因特网上的中间件

将网格与Web services相结合,就构成了所谓服务网格,即利用网格作为Web services的基础设施,同时也利用Web services作为网格中信息传递的服务框架。

我们根据规模及服务特性,划分出两种层次的服务网格:

3.1 网格节点为普通的PC台式机或服务器,节点数一般在100个以内,操作系统为Windows或Linux等。

网格有一个单一的服务入口点(称之为portal,提供Web services),对于每一Web services请求,由Portal来进行任务分割及分布,由网格节点合作完成服务请求,最后由Portal聚集所有的返回信息并整合成标准的服务响应返回给服务请求者(客户端)。

特点:

3.1.1 网格对于服务是透明的。由网格来完成服务,但网格对客户端是不可见的。任务由portal来负责分布及收集返回信息。

3.1.2 网格节点是“瘦”服务器形式。由于java applet是在沙箱中运行,对宿主机不会产生破坏,而且java有良好的可移植性,节点一般采用java applet或java application的方式来向portal申请任务(pull方式),或由portal指派任务(push方式),节点机上因此也无需太多太复杂的支撑环境,部署相对简单。因此整个网格的任务调度、处理控制及资源管理功能也相对较弱。

3.1.3 整个网格对外是一个Web services的概念,是以网格为基础架构所提供的Web services。

例子:

有这样一家医院,有一个内部的信息网,大约有100台左右的PC机,以及10台左右的可联网的医疗设备(如CT机)。有两类计算密集的应用,一类是对医疗仪器所采集的数据进行分析、处理及可视化,如脑部扫描的数据分析及层面图生成;另一类是收集的各项医疗数据的分析及决策支持系统。这两项应用的计算量都比较大,以单台机来处理,力不从心。可以构建这样一个网格服务,将大部时间都处在空闲状态的PC机构成一个网格,将前述的计算密集型应用分布到网格节点中并行执行,能获得较高的响应速度。如果计算资源仍有较大富余,可以将该网格服务挂到因特网上。计算资源通过网格得到了充分共享与合理利用。

3.2 网格上的节点是Web services的服务提供者。

网格上有Broker(者)作为服务入口点,Broker不仅提供服务定位功能,更重要的是提供服务集成功能,即将分布在节点上的各Web services视作软件组件,根据服务请求的需要,动态地组合各种组件,以形成新的、集成化的服务。

特点:

3.2.1 网格依赖Web services来实现。这里的网格,主要不是面向科学计算,而是面向服务,特别是集成各种现有基础服务,以形成更高级别的、可为客户所定制的服务。它主要关注如何消除信息孤岛和知识孤岛,实现信息资源和知识资源的智能共享。

3.2.2 为了满足企业级的高强度的单一服务请求,网格节点一般具有高性能、高可用性两大特性,如现在正处在研究应用阶段的集群(cluster)技术,以保证Web services的可靠提供。这里的节点,甚至可以是上面提到的网格服务,比如企业级的服务提供者,其服务由内部的PC机组成的网格来实现,对外界依然是透明的。

3.2.3 网格节点是松散耦合的,各网格节点都是自治系统,且多属于不同的企业或组织。但作为服务入口点的Broker(这里的Broker可以且应该有很多个,以便满足不同的服务集成需要),应该对相关子服务的可用性、可靠性、性能、代价,以及容错及服务智能路由和重定向负有相当的责任,客户应无需了解服务是如何被分割分发成子服务,同时开发接口也应统一简单清晰。

3.2.4 服务网格模式是可以递归实现的。即网格节点也可以是一个服务网格。如一个决策支持服务网格中的某一节点是提供交通信息服务的,该节点同时也可以是一个由各种交通服务提供商所提供的特定交通工具信息服务所组成的服务网格。这就如同组件软件的开发模式,组件也可以是由组件组装而成,以实现重用与灵活构建。

3.2.5 服务与网格的概念同时存在。对客户(服务请求者)而言,既可以使用各节点提供的单一服务,也可以使用由Broker提供的集成服务,也可以自己定制所需的服务(即自己按需组装)。

例子:

自助旅游服务。假设将来某一天,一家人要驱车去西双版纳自助旅游。车上装有智能计算机系统,并可以无线方式接入因特网,它首先自动搜索因特网上的旅游决策服务的提供商名录,找到合适的决策服务提供商,并向提供商提交自己的决策策略(如服务质量优先,或价格优先),提供商本身并不存储及提供相关的交通、气象、酒店、景点等相关信息,它会到因特网上去查找相应的名录,根据用户提供的相关信息(如路线、时间等)搜索相应的特定服务提供商,访问它们的相关服务,并在多家提供商间进行决策,收集到这些服务所提供的信息后,决策服务提供商根据自己的决策模型,为客户提供一套完整的方案与相应信息。

而在旅游进行的过程中,汽车是通过GIS与GPS,以及出发前得到的相关信息与知识,自动驾驶的。同时它要实时地访问期间各交通点的交通状况传感器所构成的网格服务,根据实时的道路交通状况,来调整车速与行进路线。

4 结语

服务网格是因特网上的中间件。现有的资源,诸如网络、超级计算机、服务器、操作系统、数据库、文件系统等都是网格的底层设施,网格之上是应用程序,这些应用程序通过服务网格调用、共享网上资源来完成任务。服务网格作为这样一种中间件,一种新概念的组件软件模型,必将成为近阶段研究与应用的热点。

参考文献

[1]李建阳.网格与Web服务结合应用研究[J].西南民族大学学报.自然科学版,2006(2).

[2]张军强,孙冰.Web服务与网格计算的融合[J].大众科技,2005(09).

[3]刘高原.基于Web服务的网格服务研究[J].华东交通大学学报,2005(04).

上一篇:《中南论坛》发刊词 下一篇:染料的环境污染及其处理方法