对应用进行递增性的适应性修改的方法和装置的制作方法

文档序号:6438284阅读:163来源:国知局
专利名称:对应用进行递增性的适应性修改的方法和装置的制作方法
技术领域
本发明涉及计算机软件应用,特别是为了在请求设备上运行对这样的应用进行的适应性修改(adaptation)。
背景技术
计算机软件应用可以被各式各样的设备经由网络远程访问。通常,这样的应用需要进行适应性修改以便能够在请求或访问此应用的特定设备上运行。适应性修改一般是在设计/实现应用或是在部署应用的时候进行的。然而,应用可以“随请求”(即在实际请求的时候)而针对特定的请求设备被适应性修改。另外,在请求的时候,访问设备的类型对于应用可能是已知的也可能是未知的。
对于已知请求设备类型的情形,当前的方法是在访问之前适应性修改并存储全部应用,这不利地导致了很大的资源占用,比如处理时间和存储器。
对于未知设备类型的情形,当前方法也是适应性修改全部应用。除了上述与已知设备类型相关的缺点以外,还存在与未知设备类型有关的其他缺点,比如增加了响应时间(用户等待时间)和在服务质量(QoS)方面增加了支持的难度。
编号为2001/0049286A1、标题为“用来在普及设备和后台系统之间进行自动连接和数据交换的设备注册服务器”(Device registry server forautomatic connection and data exchange between pervasive devices andbackend systems)的美国专利申请于2001年12月6日以Hansmann等人的名义被公布,并被转让给国际商业机器公司(IBM)。该说明书涉及到在移动设备和后台系统应用之间通信的改进。然而,其假定后台应用已经被定制为与该移动设备一起使用。
Indulska等人的、标题为“普及系统中的多媒体应用的基于垂直移交的适应性修改”(Vertical handover based adaption for multimediaapplications in pervasive systems)的论文,被收录在关于交互分布式多媒体系统和多媒体系统协议的国际联合研讨会(IDMS/PROMS 2002)的会议录中。然而,所述的适应性修改的形式是基于场境的,并使用了与用户设备、用户位置、应用要求和网络环境有关的场境信息。
存在这样的需要,即计算机软件应用响应用户请求进行递增性的适应性修改。

发明内容
根据本发明的各方面,给出了一种方法、一种装置和一种计算机程序产品,用于随要求的和递增性的对应用的适应性修改。
响应于用户对应用的一组件的请求,识别和适应性修改可能在将来被该用户请求的该应用的组件以便能够在此用户的设备上运行。可选地,只对被请求和被识别的组件进行适应性修改以便能够在请求设备上运行,这就可能使组件的适应性修改在规定的最大时间期间内完成。
可以进行可达性分析以识别从所请求的组件可到达的组件,并且可识别或者选择在所请求的组件的规定距离内的组件。可以基于与该应用有关的历史请求模式(pattern)进一步选择或识别所识别的组件。


下面参照附图仅以示例的方式描述实施例,在附图中图1是一个本发明的实施例可以在其中被实施的网络环境的示意图;图2是一个计算机软件应用的流图;图3是一个方法的流程图,此方法按照本发明的实施例进行适应性修改计算机软件应用的组件;
图4是一个算法的流程图,此算法按照本发明另一个实施例识别和适应性修改计算机软件应用的组件;图5是一个本发明的实施例可以在其中被实施的计算机系统的示意图。
具体实施例方式
这里说明了一种用于计算机软件应用的递增性的、随要求的适应性修改的方法、装置和计算机程序产品。对该方法、装置和计算机程序产品的说明具体参照了可以经由因特网访问的应用,然而,这并不意味着本发明受如此限制,因为本发明的原理可普遍应用到其他网络,比如私有或专有网络。
被客户机访问的应用应当与该客户机的特定要求相兼容。客户机可包括一个带有硬件要求的设备,所述硬件要求比如有屏幕尺寸、屏幕分辨率、图像显示能力、应用可使用的存储器、CPU速度、带宽等。客户机设备的软件要求可包括,比如说,由驻留在客户机上的浏览器所支持的标记语言(例如,WML 1.3),若有的话还可包括客户端脚本,以及可用的某种操作系统支持。应用可包括一通用应用。然而,其他种类的应用可能是特别为具备相似性能的一组客户机/设备而编写的。这样的应用需要被适应性修改以满足客户/设备的要求。在设备端被处理的应用的组件和被发送到设备上的数据都需要被适应性修改。
比如,假定有一个Web应用是为一通用客户机而开发的。此应用包括两种类型的组件——用标记语言编写来实现用户交互的视图(例如,HTML或WML页面),和包含数据和/或业务逻辑的组件(例如,java bean)。Web应用部署在服务器端。当客户机访问应用时,基于用户输入把视图发送到客户机。每个视图都担当应用流图中的一个节点,并且java bean调用担当从一个节点到另一个的边。既然视图被显示在客户端上,那么视图需要用设备浏览器所支持的标记语言编写并且必须满足存储器的限制。设备浏览器无法显示的或导致页面尺寸大于存储器限制的任何图像都必须被去除。因此,在服务器端的Web应用的视图需要被适应性修改以满足每个客户机/设备的要求。
图1所示为一个本发明的实施例可以在其中被实施的网络环境。一个远程设备110经由因特网120和服务器130访问计算机软件应用140。应用140可以驻留在服务器130或另外的服务器(未示出)上。远程设备110可包括一个计算设备,如个人计算机(PC)、个人数字助理(PDA)、移动电话、或任何其他可买到的或专有的计算设备。对图1网络环境的修改,以及其他的网络环境也适合实施此发明的实施例,这对本领域技术人员来说很好理解。比如,网络不限于单个远程设备110,而是可包括众多用于访问应用140的远程设备,它们与远程设备110相似或不相似。
图2所示为一个计算机软件应用例如图1中的应用140的流图200,其中每个顶点表示应用140的一个组件,每个边表示组件之间的一个过渡。举例来说,应用140的组件可包括可在因特网网站上获得的页面。因此一过渡可代表远程设备110的用户对某个特定组件(页面)的选择。被远程设备110的用户所访问的每个组件需要为了远端设备110的使用而进行适应性修改。同样地,被不同于远程设备110的远程设备所访问的每个组件也都需要进行适应性修改从而被此远程设备使用。
图3所示为一种对计算机软件应用的组件进行适应性修改的方法。在步骤310中来自一设备的请求被接收到,此设备由该应用的用户所操作。在步骤320,响应于此请求,识别可能被该用户请求的、应用的组件。在步骤330,对所识别的组件进行适应性修改以便能够在该请求设备上运行。
所识别的组件可在规定的最大时间期间内被适应性修改以遵守服务质量(QoS)约束。可以基于可由用户选择的遍历该应用的各控制流路径的一种表示,来识别用来进行适应性修改的组件。应用的组件可包括由用户选择的因特网网页。不太可能被用户请求的、应用的组件最好不被适应性修改,以节约系统资源,改进系统响应时间。
可以使用各种方法来基于当前被用户选择的一组件而识别用来进行适应性修改的、应用的组件。这样的方法的例子包括图形分析和基于统计算法、学习算法和响应时间算法的方法。
图形分析图形分析可被用于识别依存图(dependency graph)中的子图。然后每个子图整体(即包括关节点、桥、环路、预取技术等)进行适应性修改。比如,进行可达性分析以确定从当前组件可到达的一组组件。然后,只有对这些可到达的组件才进行适应性修改。
为本发明公开的目的,此图包括一应用流图。关节点是根节点之外的这样一节点,当其被移除时,将图分成不止一个部分。桥接包括图的这样一个边,它的移除使图变得不连通。环路包括图中的一个回路。
参照图2的流图200,组件270是从组件230不可到达的。组件230、250和240是相互排斥的;就是说,组件230、250和240中的每一个都不能从另一个到达。组件280有可能被用户从组件230请求。当组件230是当前组件时组件270不需要被适应性修改,因为组件270是从组件230不可到达的。组件290可以总是被适应性修改,因为这个组件可能从流图200的所有路径被访问。
统计统计方法是基于用户先前所请求或所选择的组件的模式。只有那些最有可能被用户选择或请求的组件才被适应性修改,以用于用户的特定设备。对于这个方法,假设用户遍历流图的历史模式被存储起来。然后,计算用户选择从当前组件可到达的每个组件的概率。假设组件(b)是从组件(a)可到达的,可根据如下贝叶斯方法来确定从组件(a)选择组件(b)的概率 举例来说,假设在用户对图2所表示的应用的遍历中,与组件270相比,组件260更经常跟随组件250。根据统计方法,组件260应比组件270更早地被适应性修改。另外,直到用户特别请求时才需要适应性修改组件270。
学习在学习方法中,嵌入式学习算法从历史请求模式和先前的错误预测中学习,以动态地识别最有可能被请求的组件。可以使用强化学习算法来执行此方法,此强化学习算法把惩罚与错误预测联系起来,而且使选择后续组件的概率更偏向于最近的历史模式而不是较旧的历史模式。
作为使用图2中的流图200的例子,有可能的是,虽然组件250从历史上看最经常被组件260所跟随,但组件250从近期看是被组件270所跟随,尤其对于用户U是这样。因此由组件250选择组件270的概率将比由组件250选择组件260的概率更高,尤其对于用户U是这样。结果,对于用户U来说,对组件270进行适应性修改的优先级应该比对组件260进行适应性修改的优先级更高。
响应时间在这种方法中,对与当前组件邻近的能够在期望的响应时间内被适应性修改的最大数目的组件进行适应性修改。首先,计算适应性修改各个组件Ci所需要的时间ti。然后,给定一个最大响应时间T并从当前组件开始,将时间ti按BFS(宽度优先搜索)顺序累加,直到累加的时间的和小于、但尽可能接近于最大响应时间T。BFS顺序是如此遍历一图的顺序,从而当一个特定节点被访问时,则此节点的所有相邻节点也都被访问。
使用图形分析的实施例图4所示为一个使用图形分析来识别和适应性修改一应用的组件的方法。
在步骤410,从一设备接收到对该应用的一组件的请求。如果没指定特定的组件,就选择应用的起始组件作为所请求的组件。在步骤420,通过进行可达性分析来识别从所请求的组件可到达的组件。在步骤430,确定前瞻距离(lookahead distance)是固定的还是可变的。前瞻距离包括一个大于或等于1的整数值并代表两个组件之间的过渡的数目。例如,图2中的组件210和240之间的距离是1,组件210和280之间的距离是2,组件220和290之间的距离是3。在不同的前瞻距离被应用于不同的组件的情况下,可以为每个组件ci确定一个可变的前瞻距离ki。可以根据服务质量(QoS)约束来确定距离k和ki。用于进行确定的因素可包括用于适应性修改一个或多个组件所必需的时间量和/或用户用多长时间来响应当前的请求,如果用户响应的话。通常期望前瞻距离有高的值,尤其在资源能力可用的时候。然而,距离k的数值过高会导致用户无法接受的长响应时间。
如果前瞻距离是固定的,就选择在当前所请求的组件的固定距离k内的可到达的组件,并且处理继续进行到步骤470。如果前瞻距离是可变的,就在步骤450中为当前所请求的组件ci确定一个可变的距离ki。在步骤460,选择在当前所请求的组件ci的距离ki内的可到达的组件。随后,在步骤470,对在步骤440或步骤460中所选择的组件进行适应性修改以便能够在请求设备上运行。为了在请求设备上运行而已经被适应性修改过的任何组件不必再次被适应性修改。
参照图2的流图200,假定距离k=1(通过选择),并且还没有对流图200的组件进行适应性修改,以便能够在某个特定设备或具备与适应性修改有关的共同特点的一组设备中运行。在用户请求后,就对组件210进行适应性修改。在对组件210进行适应性修改期间或之后,识别组件220、230和240是在距组件210 k=1的距离内可到达的。通过在多线程内执行算法,可在对另一个组件进行适应性修改期间识别需要适应性修改的组件。一旦完成了对组件210的适应性修改,就对组件220、230和240进行适应性修改。如果用户的下一个请求是对组件230的,就只有组件280由于在组件230的距离k=1内而被识别用于适应性修改。然而,如果用户的下一个请求是对组件220的,就只有组件250由于在组件220的距离k=1内而被识别用于适应性修改。
计算机硬件和软件图5为计算机系统500的示意图,此系统能被用于实施这里所述的方法。具体地,提供了计算机系统500用于执行计算机软件,此软件被编程为帮助实现用于对计算机软件应用进行适应性修改的方法。该计算机软件在计算机系统500上所安装的操作系统例如MS Windows XPTM或LinuxTM下执行。
该计算机软件含有一组编程的逻辑指令,此逻辑指令可被计算机系统500执行来命令计算机系统500实现那些指令所指定的预定功能。该计算机软件可以用包括一组指令的任何语言、代码或符号来表达或纪录,该组指令旨在致使兼容的信息处理系统直接地或是转换成其他语言、代码或符号之后实现特定功能。
该计算机软件程序包括用计算机语言所写的语句。可以使用编译器把计算机程序处理成适合操作系统执行的二进制格式。该计算机程序被编程为包含实现前述的特定方法步骤的各种软件组件或代码装置。
计算机系统500的组件包括计算机520,输入设备510、515和视频显示器590。计算机520包括处理单元540,存储单元550,输入/输出(I/O)接口560,通信接口565,视频接口545,和存储设备555。对于前述的单元、接口和设备中的任何一种,计算机520都可包括不止一个。
处理单元540可包括一个或多个执行操作系统和在操作系统下执行的计算机软件的处理器。存储单元550可包括随机存取存储器(RAM),只读存储器(ROM),闪速存储器和/或本领域已知的任何其他类型的存储器,用来在处理单元540的指导下使用。
视频接口545被连接到视频显示器590上,并提供用于在视频显示器590上显示的视频信号。操作计算机520的用户输入是经由输入设备510和515而提供的,它们分别包括一键盘和一鼠标。存储设备555包括一磁盘驱动器或任何其他合适的非易失存储介质。
计算机520的组件中每一个都与总线630相连,总线630包括数据、地址和控制总线,以允许各组件经由总线530互相通信。
计算机系统500可以经由通信接口565使用连到网络580上的通信信道585来与一个或多个其它相似的计算机连接,网络585表示为因特网。
该计算机软件程序可以作为计算机程序产品被提供,并且可以被记录在便携式存储介质上。在这种情况下,该计算机软件程序可由计算机系统500从存储设备555中访问。或者,计算机软件可由计算机520直接从网络580上访问。在任何一种情况下,用户都可以使用键盘510和鼠标515与系统500交互,以操作在计算机520上执行的、编程的计算机软件。
已经为了说明的目的对计算机系统500进行了说明。因此,上述说明涉及适合于实施前述方法和计算机程序产品的特定类型的计算机系统的例子。其他配置或类型的计算机系统也一样可以很好地被用于实施前面所述的方法和计算机程序产品,如对本领域技术人员来说容易理解的。例如,可以使用像个人数字助理(PDA)或移动电话这样的手持式计算机来实施前面所述方法和计算机程序产品。
结论前面描述了一种用于有选择性地适应性修改计算机软件应用的组件的方法、设备和计算机软件产品。有利的是,这样的组件只需要根据要求和在被要求的时候被适应性修改,从而更好地利用计算资源和改进对用户的服务质量(QoS)。
上述详细说明仅提供了示范性实施例,而并不意味着限定了本发明的范围、适用性和配置。更确切地说,对示范性实施例的说明给本领域技术人员提供了使得能够实施此发明的实施例的说明。可以在各元件的功能和安排上作各种变化,而不偏离如后面的权利要求中所述的本发明的精神和范围。
权利要求
1.一种用来对计算机软件应用进行递增性的适应性修改的方法,所述方法包括以下步骤从所述应用的用户所操作的设备接收一个对所述应用的一组件的请求;响应于所述请求,识别可能在将来被所述用户请求的、所述应用的组件;以及适应性修改所述被识别的组件以便能够在所述请求设备上运行。
2.权利要求1的方法,其中只有所述被请求和被识别的组件被适应性修改以便能够在所述请求设备上运行。
3.权利要求1的方法,其中所述组件在规定的最大时间期间内被适应性修改。
4.权利要求1的方法,其中所述应用的组件包括因特网网页。
5.权利要求1的方法,包括以下进一步的步骤响应于所述请求,进行可达性分析以识别从所述被请求的组件可到达的组件;以及其中所述识别步骤包括从所述被识别的可到达的组件中选择在所述被请求的组件的规定距离内的组件。
6.权利要求5的方法,其中所述规定的距离包括一个大于或等于1的整数值,所述数值代表所述应用的两个组件之间的过渡的数目。
7.权利要求1的方法,其中所述识别步骤包括基于与所述应用有关的历史请求模式,识别被请求的概率高的组件。
8.权利要求7的方法,其中所述历史请求模式与来自基本相似的请求设备的请求有关。
9.权利要求8的方法,其中识别所述组件要考虑到先前进行的对可能被请求的组件的错误识别。
10.权利要求1的方法,其中所述识别步骤包括识别与所述被请求的组件邻近的、能在规定的时间期间内被适应性修改的最大数目的组件。
11.一种用来对计算机软件应用进行递增性的适应性修改的方法,所述方法包括以下步骤接收来自一设备的对所述应用的一组件的请求;响应于所述请求,识别从所述被请求的组件可到达的组件;从所述被识别的可到达的组件中选择在所述被请求的组件的规定距离内的组件;以及适应性修改所述的被选择的组件以便能够在所述的请求设备上运行。
12.一种用于对计算机软件应用进行适应性修改的装置,所述装置包括至少一个通信接口,用来发送和接收数据;一个存储单元,用来存储将被处理单元执行的数据和指令;以及一个处理单元,其耦合到所述至少一个通信接口和所述存储单元上,所述处理单元被编程为从被所述应用的用户所操作的设备接收一个对所述应用的一组件的请求;响应于所述请求,识别可能在将来被所述用户请求的、所述应用的组件;以及适应性修改所述被识别的组件以便能够在所述请求设备上运行。
13.权利要求12的装置,其中所述处理单元被编程为只适应性修改所述被请求和被识别的组件以便能够在所述请求设备上运行。
14.权利要求12的装置,其中所述组件在规定的最大时间期间内被适应性修改。
15.权利要求12的装置,其中所述应用的组件包括因特网网页。
16.权利要求12的装置,其中所述处理单元被进一步编程为响应于所述请求,进行可达性分析以识别从所述被请求的组件可到达的组件;以及识别在所述被请求的组件的规定距离内可到达的组件来进行适应性修改。
17.权利要求16的装置,其中所述规定的距离包括一个大于或等于1的整数值,所述数值代表所述应用的两个组件之间的过渡的数目。
18.权利要求12的装置,其中所述处理单元进一步被编程为,基于与所述应用有关的历史请求模式,识别被请求的概率高的组件。
19.权利要求18的装置,其中所述历史请求模式与来自基本相似的请求设备的请求有关。
20.权利要求19的装置,其中所述处理单元进一步被编程为,识别组件要考虑到先前进行的对可能被请求的组件的错误识别。
21.权利要求12的装置,其中所述处理单元进一步被编程为,识别与所述被请求的组件邻近的、能在规定的时间期间内被适应性修改的最大数目的组件。
22.一种对计算机软件应用进行适应性修改的装置,所述装置包括至少一个通信接口,用来发送和接收数据;一个存储单元,用来存储将被处理单元执行的数据和指令;以及一个处理单元,其耦合到所述至少一个通信接口和所述存储单元上,所述处理单元被编程为接收来自一设备的对所述应用的一组件的请求;响应于所述请求,识别从所述被请求的组件可到达的组件;从所述被识别的可到达的组件中选择在所述被请求的组件的规定距离内的组件;以及适应性修改所述被选择的组件以便能够在所述请求设备上运行。
23.一种计算机程序产品,包括一计算机可读介质,此介质包括被记录在其中的计算机程序,此程序用来对计算机软件应用进行适应性修改,所述计算机程序产品包括计算机程序代码装置,用来从所述应用的用户所操作的设备接收一个对所述应用的一组件的请求;计算机程序代码装置,用来响应于所述请求而识别可能在将来被所述用户请求的、所述应用的组件;以及计算机程序代码装置用来适应性修改所述被识别的组件以便能够在所述请求设备上运行。
24.权利要求23的计算机程序产品,其中只有所述的被请求和被识别的组件被适应性修改以便能够在所述请求设备上运行。
25.权利要求23的计算机程序产品,其中所述组件在规定的最大时间期间内被适应性修改。
26.权利要求23的计算机程序产品,其中所述应用的组件包括因特网网页。
27.权利要求23的计算机程序产品,进一步包括用来响应于所述请求而进行可达性分析以识别从所述被请求的组件可到达的组件的计算机程序代码装置;以及用来从在所述被请求的组件的规定距离内的所述可到达的组件之中识别组件来进行适应性修改的计算机程序代码装置。
28.权利要求27的计算机程序产品,其中所述规定距离包括一个大于或等于1的整数值,所述数值代表所述应用的两个组件之间的过渡的数目。
29.权利要求2 3的计算机程序产品,其中所述用来识别的计算机程序代码装置包括这样的计算机程序代码装置,其用来基于与所述应用有关的历史请求模式而识别被请求的概率相对较高的组件。
30.权利要求29的计算机程序产品,其中所述历史请求模式与来自基本相似的请求设备的请求有关。
31.权利要求30的计算机程序产品,其中识别所述组件要考虑到先前进行的对可能被请求的组件的错误识别。
32.权利要求23的计算机程序产品,其中所述用来识别的计算机程序代码装置包括这样的计算机程序代码装置,其用来识别与所述被请求的组件邻近的、能在规定的时间期间内被适应性修改的最大数目的组件。
33.一种计算机程序产品,它包括一计算机可读介质,此介质包括被记录在其中的计算机程序,此程序用来对计算机软件应用进行适应性修改,所述计算机程序产品包括用来接收来自设备的对所述应用的一组件的请求的计算机程序代码装置;用来响应于所述请求而识别从所述被请求的组件可到达的组件的计算机程序代码装置;用来从所述被识别的可到达的组件中选择在所述被请求的组件的规定距离内的组件的计算机程序代码装置;以及适应性修改所述被选择的组件以便能够在所述请求设备上运行。
全文摘要
响应于用户对应用的一组件的请求,识别和适应性修改可能在将来被该用户请求的、应用的组件,以便能够在此用户的设备上运行。可选地,只有被请求和被识别的组件才被适应性修改以便能够在请求设备上运行,这就可能使组件的适应性修改在规定的最大时间期间内完成。可以进行可达性分析以识别从所请求的组件可到达的组件,并且在所请求的组件的规定距离内的组件可以被识别或者被选择。可以基于与该应用有关的历史请求模式进一步选择或识别所识别的组件。
文档编号G06F9/44GK1648855SQ200410091070
公开日2005年8月3日 申请日期2004年11月16日 优先权日2003年12月5日
发明者A·康杜, A·A·纳纳瓦蒂 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1