论文部分内容阅读
摘要:分布式资源泛指所有能够通过网络远程使用的实体,包括计算机软件、计算机硬件、设备仪器和知识资源4类。在本文中,重点关注计算机软件资源和设备仪器两类分布式资源。其中,计算机软件资源中主要关注异构的分布式数据库;设备仪器中关注遥感卫星的高光谱、多光谱、可见光、红外、SAR等传感器。
关键词:分布式资源;软件资源;设备仪器
詹煜卓,李航
(沈阳师范大学软件学院,辽宁沈阳 110034)
1 引言
随着网络资源的高速发展,为了实现网络环境下的对分布式资源的管理,需要解决以下几个问题:
(1)如何定义Web服务,在“无状态”Web环境中提供与“有状态”资源的交互?
(2)如何实现Web服务?
(3)如何构建模块化的软件系统,方便扩充,具有一定的鲁棒性?
(4)如何划分模块,如何在模块中封装对相关Web服务的调用?
针对这些问题本文提出了新的解决思路:遵循OASIS的WSRF的一系列规范定义WSDL文件;遵循WS-Notification系列规范在Web的无状态环境中模拟事件驱动。根据定义好的WSRF-WSDL,采用契约最先式(Contract-First)方式完成Web服务开发,采取OSGi(Open Service Gateway Initiative)的框架构建动态模块化的软件系统。一方面根据实际功能需求中的业务流程划分模块,对相关的Web服务使用WS-BPEL进行编制,使用WS-CDL进行编排;另一方面,根据非功能需求构建专门的负载均衡、并发控制和监控管理模块。
2 总体方案
(1)总体架构。
根据问题解决的思路,系统架构主要分为三个部分:资源实体(Resources Entities)、WSRF容器(WSRF Containers)和OSGi容器(OSGi Containers)。
①资源实体,包括资源获取和Web服务适配器两部分。
②WSRF容器,需要实现WSRF和WS-Notification系列规范,并提供一套标准API来构建有状态Web服务,具体实现可以选择使用Globus Toolkit 4。
③OSGi容器,需要实现OSGi框,具体实现可以选择使用Eclipse Equinox、Apache Felix和Spring-DM等容器。
在系统架构中存在着很多应用(Application)、模块(Bundle)和服务(Service),这些软件实体的实现方式也需要统一。应用、模块、服务等组件的实现架构分为三层:服务层、业务层和数据层。
(2)系统部署。
分布式资源管理可以部署在网格(Grid)这种网络环境中,系统部署的前提是确定网格的类型,本文重点关注高存储量网格。高存储量网格在需要将大量信息存储在多台计算机上时使用,从网格存储/检索信息这样的负载被分布到网格中。随着网格节点数目的增加,根据网格应用程序的不同,分配节点的性能可能需要随着网格节点的数量线性伸缩。通常单体应用程序难以扩展,而划分成很多小型组件的轻量级应用程序更加容易部署。本文中的基于WSRF和OSGi的系统架构非常适合进行网格环境下的部署。软件实体的网格部署有两个层面:应用程序(Application/Bundle/Service)和WSRF Web服务(WS-Resource)。
①应用程序。
遵循分布式OSGi(Distributed OSGi,RFC 119)可以把OSGi框架上注册的应用、模块和服务部署到分配节点和相应的支持节点上。
②WSRF Web服务。
WSRF Web服务部署在网格节点上,网格节点实现单资源服务/多资源服务对网格资源的操作。
3 关键技术
(1)异构数据库管理技术。
进行异构分布式数据库管理的关键是建立元数据库。异构数据库所属的不同机构可以将共享的数据的元信息添加到元数据库里,并本地维护好可提供下载功能的真实数据服务器,这样就实现了数据的分布式管理。元数据的设计最好能遵循国际、国内己有的元数据标准,同时最好能对异构的分布式数据库全部的空间数据建立全局的空间索引。进行异构分布式数据库管理还必须解决查询的处理和优化问题,对于这个问题解决的思路是:充分利用数据库本身的优化查询能力,将全局查询转换为数据库对应的局部子查询,并生成最优的查询执行计划,交付给相关的Web服务执行。
(2)网格调度技术。
网格调度的目标是要业务模块提交的Web服务编排和编制实现最优调度。网格调度过程包括以下步骤:
①网格调度模块接收业务模块提交的Web服务编排和编制请求,对请求进行分析,通过分析可以得出请求执行所需的Web服务资源信息。
②网格调度模块根据分析结果向WSRF容器的注册管理组件(Registry Administration)查询,注册管理组件返回满足条件的Web服务资源集合。
③网格调度模块从资源集中选择合适的资源分配给当前请求,形成一个调度集。
④网格调度模块将请求传送到所选Web服务资源执行。
实现网格调度的思路是:
①建立网格服务调度模型,以跨度(Makespan)、负载均衡(Load Balancing)、服务质量QoS和经济原则(Economic Principles)为性能指标。
②选择并实现一种网格调度算法,经典的网格调度算法有Min-min算法、Max-min算法和Max-int算法等。
(3)安全保障技术。
安全保障体系包括:鉴权、可说明性和有效性三方面。身份验证、授权访问、数据的机密性、数据的完整性等属于鉴权方面;审计属于可说明性方面;事务恢复、错误容忍属于有效性方面。上述内容主要由访问控制和日志管理完成。
(4)信息动态显示技术。
管理及监测结果需要将系统发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。因此信息的动态显示应该解决服务器实时的将更新的信息传送到客户端,即“服务器推”技术。
“服务器推”技术有两种解决思路:
①基于客户端Socket的“服务器推”技术。
②基于 HTTP 长连接的“服务器推”技术。
可以选择使用开源 Comet 框架Pushlet 来实现“服务器推”技术。
(5)研究意义。
通过实现分布式资源的管理把网络中分散的各种资源管理起来,使多个资源请求者可以共享使用网络中的同一个资源,并可以根据业务需要同时或先后使用网络中的多个资源。
关键词:分布式资源;软件资源;设备仪器
詹煜卓,李航
(沈阳师范大学软件学院,辽宁沈阳 110034)
1 引言
随着网络资源的高速发展,为了实现网络环境下的对分布式资源的管理,需要解决以下几个问题:
(1)如何定义Web服务,在“无状态”Web环境中提供与“有状态”资源的交互?
(2)如何实现Web服务?
(3)如何构建模块化的软件系统,方便扩充,具有一定的鲁棒性?
(4)如何划分模块,如何在模块中封装对相关Web服务的调用?
针对这些问题本文提出了新的解决思路:遵循OASIS的WSRF的一系列规范定义WSDL文件;遵循WS-Notification系列规范在Web的无状态环境中模拟事件驱动。根据定义好的WSRF-WSDL,采用契约最先式(Contract-First)方式完成Web服务开发,采取OSGi(Open Service Gateway Initiative)的框架构建动态模块化的软件系统。一方面根据实际功能需求中的业务流程划分模块,对相关的Web服务使用WS-BPEL进行编制,使用WS-CDL进行编排;另一方面,根据非功能需求构建专门的负载均衡、并发控制和监控管理模块。
2 总体方案
(1)总体架构。
根据问题解决的思路,系统架构主要分为三个部分:资源实体(Resources Entities)、WSRF容器(WSRF Containers)和OSGi容器(OSGi Containers)。
①资源实体,包括资源获取和Web服务适配器两部分。
②WSRF容器,需要实现WSRF和WS-Notification系列规范,并提供一套标准API来构建有状态Web服务,具体实现可以选择使用Globus Toolkit 4。
③OSGi容器,需要实现OSGi框,具体实现可以选择使用Eclipse Equinox、Apache Felix和Spring-DM等容器。
在系统架构中存在着很多应用(Application)、模块(Bundle)和服务(Service),这些软件实体的实现方式也需要统一。应用、模块、服务等组件的实现架构分为三层:服务层、业务层和数据层。
(2)系统部署。
分布式资源管理可以部署在网格(Grid)这种网络环境中,系统部署的前提是确定网格的类型,本文重点关注高存储量网格。高存储量网格在需要将大量信息存储在多台计算机上时使用,从网格存储/检索信息这样的负载被分布到网格中。随着网格节点数目的增加,根据网格应用程序的不同,分配节点的性能可能需要随着网格节点的数量线性伸缩。通常单体应用程序难以扩展,而划分成很多小型组件的轻量级应用程序更加容易部署。本文中的基于WSRF和OSGi的系统架构非常适合进行网格环境下的部署。软件实体的网格部署有两个层面:应用程序(Application/Bundle/Service)和WSRF Web服务(WS-Resource)。
①应用程序。
遵循分布式OSGi(Distributed OSGi,RFC 119)可以把OSGi框架上注册的应用、模块和服务部署到分配节点和相应的支持节点上。
②WSRF Web服务。
WSRF Web服务部署在网格节点上,网格节点实现单资源服务/多资源服务对网格资源的操作。
3 关键技术
(1)异构数据库管理技术。
进行异构分布式数据库管理的关键是建立元数据库。异构数据库所属的不同机构可以将共享的数据的元信息添加到元数据库里,并本地维护好可提供下载功能的真实数据服务器,这样就实现了数据的分布式管理。元数据的设计最好能遵循国际、国内己有的元数据标准,同时最好能对异构的分布式数据库全部的空间数据建立全局的空间索引。进行异构分布式数据库管理还必须解决查询的处理和优化问题,对于这个问题解决的思路是:充分利用数据库本身的优化查询能力,将全局查询转换为数据库对应的局部子查询,并生成最优的查询执行计划,交付给相关的Web服务执行。
(2)网格调度技术。
网格调度的目标是要业务模块提交的Web服务编排和编制实现最优调度。网格调度过程包括以下步骤:
①网格调度模块接收业务模块提交的Web服务编排和编制请求,对请求进行分析,通过分析可以得出请求执行所需的Web服务资源信息。
②网格调度模块根据分析结果向WSRF容器的注册管理组件(Registry Administration)查询,注册管理组件返回满足条件的Web服务资源集合。
③网格调度模块从资源集中选择合适的资源分配给当前请求,形成一个调度集。
④网格调度模块将请求传送到所选Web服务资源执行。
实现网格调度的思路是:
①建立网格服务调度模型,以跨度(Makespan)、负载均衡(Load Balancing)、服务质量QoS和经济原则(Economic Principles)为性能指标。
②选择并实现一种网格调度算法,经典的网格调度算法有Min-min算法、Max-min算法和Max-int算法等。
(3)安全保障技术。
安全保障体系包括:鉴权、可说明性和有效性三方面。身份验证、授权访问、数据的机密性、数据的完整性等属于鉴权方面;审计属于可说明性方面;事务恢复、错误容忍属于有效性方面。上述内容主要由访问控制和日志管理完成。
(4)信息动态显示技术。
管理及监测结果需要将系统发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。因此信息的动态显示应该解决服务器实时的将更新的信息传送到客户端,即“服务器推”技术。
“服务器推”技术有两种解决思路:
①基于客户端Socket的“服务器推”技术。
②基于 HTTP 长连接的“服务器推”技术。
可以选择使用开源 Comet 框架Pushlet 来实现“服务器推”技术。
(5)研究意义。
通过实现分布式资源的管理把网络中分散的各种资源管理起来,使多个资源请求者可以共享使用网络中的同一个资源,并可以根据业务需要同时或先后使用网络中的多个资源。