论文部分内容阅读
互联网(Internet)在过去10年间快速发展,服务计算、云计算、移动计算等新概念、新技术层出不穷。伴随Internet变革,Internet上最主流的应用形态--Web应用也发生了演化。富互联网应用(Rich Internet Application)改进了传统Web应用,在保持后者易部署、易维护优点的同时,吸收了桌面应用富用户体验、本地存储、本地计算等特性。相比传统Web应用,富互联网应用更好地满足了Internet环境中应用的复杂需求。 富互联网应用的客户端部分被称为富客户端(Rich Client)。富客户端由富客户端应用与运行环境组成。其中富客户端应用负责与服务器、用户沟通并完成复杂的业务逻辑,并因此呈现出“模型-视图-控制器(Model-View-Controller)”的体系结构风格。富客户端应用运行在富客户端运行环境之上,利用运行环境的软硬件资源。而随着硬件设备和软件运行库(Runtime)的发展,不同富客户端运行环境在功能、性能等方面呈现出明显的差异。然而,在面对异构的运行环境时,Internet开放、动态的特点却使富客户端应用不可能预知其运行环境的特点。因此,富客户端应用不可避免地遭遇异构运行环境造成的适应性问题。 从富客户端应用的模型-视图-控制器体系结构风格透视其面临的适应性问题,可以发现富客户端应用的不同部分面临不同的自适应子问题,包括:数据模型面临的存储环境适应问题;控制器面临的计算环境适应问题以及视图面临的显示环境适应问题。 本文关注于富客户端运行环境自适应技术与方法的研究,并依如下思路解决这一问题:首先,提出特定于富客户端运行环境的存储、计算、视图自适应方法;接着,利用一个模型-视图-控制器的富客户端构件模型将应用分解,实现对不同自适应问题的分而治之;最后,通过一个集成了构件模型和自适应方法的运行时刻支撑机制(中间件)来实现富客户端运行环境自适应的整体解决方案。 本文主要包括以下工作与贡献: 首先,本文提出面向富客户端存储、计算、显示环境的三种自适应方法。这些方法针对富客户端的特点,特定于富客户端应用与运行环境,可以良好地处理富客户端模型、视图、控制器面临的自适应问题。这些方法包括: ·多源数据按需访问方法:针对异构存储环境,本文提出富客户端多源数据按需访问方法,屏蔽富客户端存储环境的异构性。数据访问方法支持应用以一致的方式访问不同位置、不同访问接口的异构数据源,屏蔽不同数据源数据格式的差异。在此基础上,该方法会根据当前运行环境,自动选择最适宜当前应用的可用数据源以及相关的存储、缓存策略。 ·控制器函数的服务器端运行方法:针对异构计算环境,本文提出控制器函数服务器端运行方法。当富客户端应用运行在计算能力较差的运行环境时,该方法会将复杂控制器函数迁移到服务器端运行,具体迁移步骤包括:服务器-客户端的函数执行语境对接,被迁移的函数重写,函数运行语境提取与服务器端重建,函数运行以及结果返回。 ·特定屏幕的视图分割与适应方法:针对异构显示环境,本文提出视图分割与屏幕适应方法。该方法基于运行时刻的文档结构模型树,以此保证方法的动态性和完备性。其将视图的文档结构模型树切分成若干棵子树,每棵子树实际对应一个分割后的子视图。当富客户端应用运行尺寸较小的屏幕上时,将这些子视图将被在多个屏幕上分别显示。 在以上自适应方法的基础上,本文还提出一种符合富客户端应用体系结构风格的模型-视图-控制器构件模型以及相应的构件组装模型。通过将构件拆分为模型、视图、控制器三部分,该构件模型可以更好地对富客户端应用的结构进行组织,进而将不同的自适应问题加以划分,实现对自适应问题的“分而治之”。因此,该构件模型是整体性解决富客户端运行环境自适应问题的基础。 最后,本文整合自适应方法与构件模型的工作,实现了一个支持运行环境自适应的运行时刻支撑机制——即富客户端运行环境自适应中间件。开发人员使用本文给出的构件模型与组装模型开发富客户端应用。这些应用将运行于该中间件之上,中间件会对应用使用的构件以及构件之间的组装逻辑加以管理,并利用自适应服务帮助应用正确、有效地使用运行环境中的软硬件资源。本文还通过一系列实验,验证各个自适应服务以及构件容器具备良好的伸缩性、可用性以及适应效果。