当前位置: 首页 > 专利查询>北京大学专利>正文

软件应用中计算逻辑的按需远程执行方法技术

技术编号:7662545 阅读:230 留言:0更新日期:2012-08-09 07:07
本发明专利技术提供一种软件应用中计算逻辑的按需远程执行方法。首先将软件应用的应用类分为执行位置固定类和执行位置可变类,再将应用类的程序代码从源结构转换为目标结构。通过所述目标结构将应用类之间的直接内存调用和远程调用转换成经由代理和端点进行的间接远程调用。并通过预测当一应用类远程执行时是否能改善该应用类所属的软件应用的性能,实现软件应用中计算逻辑的按需远程执行。本发明专利技术方法通过自动对软件应用的代码进行重构,将其转换为可按需远程执行的程序结构,实现对计算资源的按需占有,以提高性能并改善用户体验。

【技术实现步骤摘要】

本专利技术属于软件
,针对由于从原部署节点所获计算资源不足而导致的软件应用性能低下问题提供一种程序执行优化方法,具体涉及一种,适用于软件维护演化。
技术介绍
对计算资源(如CPU、内存等)的按需使用是软件应用增强其性能并改善用户体验的一种主要手段。所谓按需(on-demand),是指当计算资源不足时,应用可以占有并使用额外的资源,从而保障其高效运行;而当资源过剩时,应用又可以释放掉多余的资源,从而减 少浪费。随着Internet的飞速发展,软件应用所处的环境变得越来越开放。而开放性则进一步促使软件应用需要实现对计算资源的按需使用。例如,随着移动互联网的兴起,越来越多的软件应用被下载运行在不同能力的移动终端上。这些以智能手机为代表的移动终端所拥有的计算资源本身极其有限,常常导致应用性能低下,带来不佳的用户体验。并且由于不同型号的移动终端配置不同,在运行同一应用时也会产生不同的性能效果。因此,只有应用做到按需使用资源才能从根本上缓解开放环境下软硬件不匹配的矛盾,促进用户体验的改盡口 o对计算资源按需使用必须同时具备两个条件一是具有额外可用的资源;二是应用可以真正使用到这些资源。在Internet环境下,虽然网络单节点的计算资源仍然有限,然而互连起来的网络节点其整体所拥有的计算资源则极为丰富。当应用需要额外资源时,可以通过网络而获得其他节点所拥有的资源。因而,可以看到,实现对资源按需使用的根本还是在于应用自身。应用对分散资源的使用方式主要有两种复制式使用和分割式使用。复制式的资源使用方式通过对应用进行复制,将副本运行在额外的节点上,并在原应用和其副本前端加上负载平衡器来将用户请求转发到多个应用实例组成的集群上(Chuliang Weng,MingluLi, ZhigangWang, and Xinda Lu, Automatic Performance Tuning for the VirtualizedCluster System,29th IEEEInternational Conference on Distributed ComputingSystems, 2009, pp. 183 190)。这种方式可以有效地应对由于用户请求激增而导致地应用性能急剧下降的情况。然而,该方式的使用范围有限,主要用于web应用,但对于那些完整安装在智能手机等网络节点且与用户直接交互的本地应用来说却不适用。此外,有研究已经指出,这种以整个应用为粒度的复制在较大程度上会造成资源浪费(DuncanJohnston-Watt, Get Smart The Case for Intelligent Application Mobilityin theCloud, the Cloud Computing Journal, 2010)。原因在于,通常情况下不是组成应用的所有模块都急需资源。那些不急需资源但占有资源的模块会与那些真正急需资源的模块相竞争,反而导致资源没有充分被急需资源的模块所用,造成了隐性浪费。有介于此,分割式资源使用将组成应用的模块分别部署在不同的节点上,让那些真正急需资源的模块充分占有计算资源,以此实现对应用性能的保障和对资源的有效利用。在此基础上,又可将两种使用方式相结合,在较细粒度上实现复制式资源使用,以进一步高效地保障应用性能。由此可以看见,应用对计算资源的按需使用要以应用模块的按需分布式部署执行为保障,也就是说,需要实现应用中计算的按需远程执行。当从原有节点所获资源不足,导致应用性能下降时,可将应用中对资源需求较大的一部分计算转移到新获取的网络节点上执行,从而通过占有额外的资源来保障应用的整体性能;而当资源过剩或网络条件不佳导致获取额外资源的难度增大时,又可将计算移回,从而实现对资源的节省并保障应用正常运行。目前实现计算逻辑的远程执行主要有两种方式1)编写分布式应用。将应用中对资源消耗较大的计算在设计和实现时就安排到拥有较多资源的网络节点上运行。然而,由于分布式应用要求开发者处理远程方法调用、序列化、同步等与程序分布相关的问题,因而编写起来通常费时费力。即便是使用分布式中间件,开发者也必须编写特定于中间件但与程序业务逻辑无关的代码,带来相当的编程负担。此外,更重要的是,开发者很难在设计实现时就准确预料到应用对资源的使用,因而所开出的应用程序中的本地/远程调用方式通常固定不变,这就使得应用对资源难以实现真正的按需使用。2)通过程序转换器,自动将给定应用中的程序代码转换后分为两部分一部分继续留在原有节点上运行,而另一部分则被移动到其他网络节点上运行。这两部分之间所需要的跨网络的互操作代码由该转换器以打补丁的方式自动加入到原有应用当中,从而保证了转换后应用的正确运行。这种方式不要求开发者编写与程序分布相关的代码,可极大降低应用开发的难度。然而,现有工作中,一个被转换后应用中代码间的本地/远程调用方式仍然固定不变,导致当资源变化而需要调整计算的本地/远程调用关系时,必须停机、重转换、重启,因而难以实现应用在运行时对资源的按需使用。
技术实现思路
本专利技术的目的是提供一种,其核心是支持软件应用中的计算逻辑实现按需远程执行的设计模式,其主要手段是通过对软件应用代码进行重构,自动将原始应用转换为符合所提出的设计模式的计算逻辑可按需远程执行的应用。本专利技术的,其步骤包括I)将软件应用的应用类分为执行位置固定类(Anchored)和执行位置可变类(Movable);2)将所述应用类的程序代码从源结构转换为目标结构;所述目标结构包含代理(Proxy)和端点(Endpoint):所述代理与调用类运行于同一地址空间,负责将方法调用经由所述端点转发至在本地或远程运行的被调用类;所述端点负责识别所述被调用类的当前位置;3)将转换为所述目标结构的应用类封装为原始应用格式的应用和可远程执行的 软件制品,分别部署在原网络节点上和远程网络节点上;4)预测当一应用类远程执行时该应用类所属的软件应用的性能,如果该性能提高,则在远程执行该应用类,否则在本地执行该应用类。进一步地所述源结构包括直接内存调用结构和RCS(Remote CommunicationService,远程通讯服务)远程调用结构;当被调用类在远程运行时,所述端点利用RCS获得对被调用类的远程引用,调用类通过该引用而远程调用被调用类;当被调用类和调用类运行于同一地址空间时,所述端点直接获得对被调用类的内存引用,调用类通过该引用而直接调用被调用类。进一步地,所述软件制品包含执行位置可变类、代理类、端点以及相关资源文件。所述相关资源文件可以是图像文件、XML配置文件等。所述软件制品可以有多个副本分别运行在不同的网络节点上。进一步地,所述软件应用的性能可以采用多种衡量方式,比如可以采用时间开销、吞吐量开销、能耗开销中的一种或多种来衡量。进一步地,本专利技术可对转换为目标结构的应用类进行聚类,将相互间调用频繁的类在必要时作为一个整体放到远端执行。可以采用静态程序分 析方法或动态程序分析方法进行所述聚类。本专利技术的方法可作为一款单独的工具或是一款插件而集成到各种软件开发平台(如Eclipse,参见www. eclipse, org)或软件下载平台中(如豌豆夹手机精灵,参见www.wan本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:黄罡张颖刘譞哲梅宏
申请(专利权)人:北京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1