摘 要 在分布式计算环境中,需要将不同种类、不同规模的计算资源进行集成和共享。门户系统使得分布式环境中的大规模资源管理成为可能。本文采用RIA技术,将RIA技术的优势与门户系统需求相结合,应用到分布式计算环境的门户系统设计中,建立了完整的基于RIA技术的门户系统。
1 引言
在分布式计算环境中,需要将不同种类、不同规模的计算资源进行集成和共享。然而,对于实际用户来说,关键是能够采用一致的、单一映像的方式对资源进行透明的调度和管理,并能够通过高效、动态的交互过程对资源进行监控。因此,需要一种能够为用户提供全局资源映像的虚拟透视图,即门户系统。门户系统使得分布式环境中的大规模资源管理成为可能。
目前具有代表性的门户系统实现包括Pluto、eXo、JetSpeed等。然而,门户系统往往非常庞大,开发复杂,部署和维护困难[1] ,在可用性和交互性方面较差,特别是在高效的资源管理和监控、准实时的动态交互等方面存在诸多问题。因此,传统的Web应用程序难以适应用户对门户系统更高的、全方位的体验要求。
RIA(Rich Internet Application)技术是集桌面应用程序的用户界面功能、响应时间以及高可用性与Web应用程序的快速、低成本部署以及互动多媒体通信的实时快捷于一体的新一代网络应用程序模型,为用户提供了一种直观、快速响应和丰富的交互体验的运行环境。其特点包括:通用的用户界面特性并提供在线和离线操作能力;在用户请求与服务调用之间进行异步处理;无刷新的高效互动等。RIA是Web开发和部署模式的一种演变,大大改善了传统Web应用程序交互单一、服务端数据传递缓慢等问题,为用户带来前所未有的体验。目前RIA技术的实现主要有Macromedia Flash/Flex、Laszlo、XUL等。
鉴于RIA技术的特点,本文采用Macromedia Flex实现分布式计算环境的门户系统。
2 Macromedia Flex简介
Macromedia Flex是为满足希望开发RIA应用程序的企业级程序员的需求而推出的表示服务器(Flex Presentation Server)和应用程序框架。表示服务器驻留在N层应用程序模型的表示层,它使用在客户端运行的可执行代码作为HTML的补充。Flex具有基于标准的编程方法和模型,以及工作流和强大的类库用以创建表示层,从而提供更有效、更真实的终端用户体验。
Flex表示服务器位于企业组织的N层架构模型的表示层中,为传统的Web应用提供了丰富的客户端方法。表示服务器以WAR文件格式部署在现有的Java应用程序服务器上,由 Flex应用程序框架与Flex运行时服务构成。Flex应用程序框架由MXML、ActionScrip及Flex类库构成。开发人员利用MXML及ActionScript编写Flex应用程序,利用MXML定义应用程序用户界面元素,利用ActionScript定义客户逻辑与程序控制。
利用Flex开发分布式计算环境的门户系统,应重点考虑Flex客户端组件与服务端的通讯模型。必须应用尽可能小且细粒度的组件来组建界面,并需要具有包含其它组件的能力,以及组件功能的中央控制、消息接收的中央控制、服务通讯的中央控制,同时采用分离的代码来控制界面逻辑和事件管理。
图1 客户端与服务端通信模块
如图1所示,客户端与服务端通信模块主要包括控制器和协调器来实现。控制器负责为用户界面控制所有的过程。它决定如何处理从远程服务器或从用户界面传来的事件。协调器负责从组件到远程服务的外部通讯。协调器还负责承载那些从远程服务回调的方法。
这种RIA应用程序的设计门户系统从以一个个相对独立的页面为中心转移到以组件为中心,使客户层的设计提升到一个新的层次,使得表示层更加灵活、高效,用户几乎感觉不到门户系统与服务端的通信。
3 基于Macromedia Flex的分布式计算环境门户系统
分布式计算环境基础平台为用户提供一个建立在异构环境中支持任务管理、调度、执行的底层协作平台,同时为其它模块或高层应用的开发提供通信和调用接口。
如图2所示,分布式计算环境采用Master/Worker协作体系,由Master作为主控结点协调各个Worker之间的运行,并监控、调度任务的执行状况。HTTP服务器提供Web界面,为用户提供任务实时提交、任务实时监控、任务结果收集、主配置信息等功能,同时减轻了Worker对Master直接访问的压力。用户的程序包括Master执行程序和Worker执行程序两部分,其中Master执行程序主要是初始化任务运行环境、分发任务、回收任务结果等;Worker执行程序获取任务并执行,执行结束后返回任务结果。在整个作业执行过程中,任务间通过共享区交换数据。
图2 Master/Worker协作体系
在分布式计算环境门户系统的设计中,不仅需要考虑分布式环境的基础结构、提供的服务类型、面对的用户群,还力图简化用户使用计算环境的过程,实现资源管理透明化和提供个性化服务,同时考虑了门户系统管理、部署等环节的方便快捷。如图3所示,主要功能包括:
1)单点登录
单点登录是门户的重要特性。当用户使用分布式计算环节时,不仅要登录到系统中,还要具有对网络资源管理、存取等使用权限。单点登录避免了用户在资源管理、作业调度等环节的反复认证,而由门户系统自动完成。
2)角色管理功能
门户系统使用者通常具有多种角色,包括匿名访问、一般用户、组管理员、门户管理员等。管理员可以对用户进行授权,并维护对资源的访问策略。
3)计算域管理
分布式计算环境能够对不同节点、不同网络中的计算资源进行统一管理,并根据网络划分为若干计算域。门户管理员可以对计算域进行增加、删除、修改、设置管理权限等操作。
4)计算资源管理
在不同的计算域中,门户系统能够自动维护当前可用的资源列表。
5)计算资源分布
门户系统能够以动态的可视化界面展现当前网络中不同管理域的计算资源分布比例。
6)作业管理
管理用户提交的计算作业,包括作业的挂起、恢复和放弃操作。提供给用户一个作业流程执行过程的图形化信息,实时反馈作业的执行情况。
7)提供个性化的用户界面
门户系统采用了基于Flex的组件化设计方式,允许根据用户权限对页面进行自由定制和布局。
门户系统的各个功能模块可以灵活部署和添加,达到接口集成、功能相互独立的目的。
根据RIA表示层的设计原则,Flex在门户系统设计中主要采用以下组件:
1)View 组件包含生成用户界面、操作用户界面的代码,映射数据到字段等内容;
2)Local Data Model 组件负责为Flex客户层保存数据;
3)Controller 组件负责为用户界面控制所有的过程,它决定如何处理从远程服务器或从用户界面传来的事件;
4)Mediator 组件负责从Flex客户层到主控节点的外部通讯,协调器还负责承载那些从远程服务回调的方法;
5)Cache 组件负责对从主控节点返回的数据进行缓存。
6)Visual Graph组件负责以动态的方式显示各个计算域中计算节点的分布情况,如图4所示。
图4 分布式计算环境门户系统的资源分布
门户系统与主控节点之间采用XML/HTTP协议进行通讯。以用户登录为例,Flex表示层通过Mediator向主控节点发送登录如下HTTPService请求,主控节点处理后由Controller返回登录信息、权限策略以及界面控制信息,从而实现不同权限策略下的用户具有不同的动态界面布局。
mx:HTTPService id="loginService" url="JSP/loginCheck.jsp"
mx:request
userType{loginTab.selectedIndex}/userType
userName{chu.text}/ userName
Strategy {ke.text}/ Strategy
passWord{password2.text}/ passWord
/mx:request
/mx:HTTPService
4 总结
分布式计算环境的广泛应用已越来越受到科学计算领域和企业的关注,而门户系统则是分布式计算环境能否真正投入应用的关键环节。如何实现一致的、单一映像的方式对资源进行透明的调度和管理,并能够通过高效、动态的交互过程对资源进行监控,以形成一种能够为用户提供全局资源映像的虚拟透视图,建立高效、便捷、功能强大的门户系统是需要认真研究的课题。
本文以RIA技术为基础,将RIA技术的优势与门户系统需求相结合,应用到分布式计算环境的门户系统设计中,建立了完整的基于RIA技术的门户系统。下一步的工作主要研究RIA技术与网格计算环境的结合与应用。
参考文献
1 D. Gannon, R. Bramley. Middleware Technology to Support Science Portals: a Gateway to the Grid [EB/OL). 2003.4
2 G Aloisio,M. Cafaro. Web-based access to the grid using the Grid Resource Broker Portal [EB/OL].
3 王林.RIA 技术概览[EB/OL].www.riacn.com,2005
4 Macromedia:Macromedia® Flex:创建企业Rich Internet Application 的表示层解决方案,2004
5 Andy:Extending Design Patterns into RIA,
6 吴是,申德荣,于戈,寇月,姜安琦.基于Jetspeed的服务网格门户的设计与实现.计算机科学,2004 31 ( 9A ) 68-70