CN1798153A - 从部署服务器内为目标系统运行时优化应用的方法和系统 - Google Patents
从部署服务器内为目标系统运行时优化应用的方法和系统 Download PDFInfo
- Publication number
- CN1798153A CN1798153A CNA2005101291490A CN200510129149A CN1798153A CN 1798153 A CN1798153 A CN 1798153A CN A2005101291490 A CNA2005101291490 A CN A2005101291490A CN 200510129149 A CN200510129149 A CN 200510129149A CN 1798153 A CN1798153 A CN 1798153A
- Authority
- CN
- China
- Prior art keywords
- application
- client
- equipment
- optimization
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 52
- 238000005457 optimization Methods 0.000 claims abstract description 55
- 238000013515 script Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 claims description 11
- 230000015654 memory Effects 0.000 claims description 10
- 238000012360 testing method Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000295 complement effect Effects 0.000 claims description 3
- 230000008878 coupling Effects 0.000 claims 4
- 238000010168 coupling process Methods 0.000 claims 4
- 238000005859 coupling reaction Methods 0.000 claims 4
- 238000012546 transfer Methods 0.000 claims 3
- 230000005055 memory storage Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 12
- 230000018109 developmental process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 240000005373 Panax quinquefolius Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000004083 survival effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/64—Retargetable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种部署服务器,所述服务器可以包括简档数据存储、通用应用数据存储以及优化器。所述简档数据存储可以包含设备的多个属性并将不同的优化参数或优化例程与每个所述存储的属性相关联。所述通用应用数据存储可以包含至少一个以设备无关的方式编写的通用应用。所述优化器可以从一类不同的发出请求的设备接收应用请求,并响应于接收的请求动态地生成设备特定的应用。对于每个发出请求的设备,所述优化器可以确定发出请求的设备的属性,利用所述简档数据存储来标识用于所述发出请求的设备的优化参数或优化例程,以及根据来自所述简档数据存储的数据和根据从所述通用应用数据存储检索的通用应用来生成设备特定的应用。
Description
技术领域
本发明涉及实时软件部署,更具体地说,涉及用于从部署服务器内部为目标系统运行时优化应用的技术。
背景技术
平台无关的软件语言(例如来自加利福尼亚圣克莱拉的SunMicrosystems的JAVA编程语言)的革新代表了显著的技术进步,其允许以平台无关的语言编写软件,我们称这为一次编写、随处运行(WORA)的语言。平台无关的语言可以减少软件开发时间和系统维护时间(因为仅有一个版本的软件应用需要被开发和维护),可以缓解许多“锁定”情况,并且通常允许以平台中立(platform agnostic)方式发生应用的Web部署。但是,目前在系统和应用程序中经常需要和/或希望进行优化以改善性能并最小化由平台中立软件所消耗的资源。这些优化在存储器和计算资源非常珍贵的系统中尤为重要,许多移动计算设备、普适计算系统、嵌入式计算系统等属于这种情况。示例性资源保存优化可以包括,例如,从包中删除未使用的类、执行提前(AOT)编译、删除或修改代码路径、优化应用中的存储器利用等。
在某些情况下,优化和设备特定的定制变得不只是奢侈,在通用软件可以在设备上运行之前提供必要的预报。应当理解,在全球市场中的设备的类型和用途是极其琐碎和种类繁多的。也就是说,即使软件开发人员使用WORA语言来构建软件,设备的细微问题常常会导致生成的应用运行不佳或者甚至出现故障。例如,尽管个人数字助理(PDA)可以执行JAVA代码,但是PDA的存储器或处理器局限会导致代码执行期间的运行时错误。
在硬件方面的快速技术进步加剧了异类设备市场中固有的问题。由于市场压力和快速进步,同一制造商可以支持同等设备或设备线的多种配置,每种配置都具有不同的存储器和处理器规范。更成问题的是,相同设备类型的不同制造商可以在大致相同的设备中使用不同的技术。结果,商用市场中设备硬件和配置差异可以相对较大,由此负面地影响了平台无关的软件的生存能力。
在异类设备空间内实现软件的现有解决方案存在缺陷。一种初步的解决方案是,在软件开发生命周期的设计阶段期间,在每个设备的基础上定制和优化软件。但是,此解决方案很昂贵并且很大程度地消除了通过WORA技术获得的收益。进而,因为创建了新的设备,需要用于新设备的软件的新版本和/或优化,这导致支持和维护软件应用的持续成本。
另一种解决方案是在应用的运行时编译器中执行自适应优化。这样的解决方案可以在应用执行期间采集反馈信息,可以将反馈传送给编译器,并且可以根据反馈重新编译代码。缺点是需要大量的监视开销以运行地捕获反馈并连续地重新编译代码。开销的水平会超过从该解决方案得到的性能收益。进而,资源受限的设备通常没有足够的可分配资源来执行基础代码,更不用说自适应优化客户端中的基础代码所需的额外开销代码。
还有另一种跨不同基础部署代码的解决方案是建立客户端-服务器联系,其中执行的一部分发生在服务器处。可以为不同的设备开发不同的客户端,每个客户端均能够在其主机设备的资源约束内运行。客户端-服务器系统可以被进一步增强以包括负载平衡系统、内容缓存、并行计算、冗余服务器,以及其它用于消除客户端-服务器架构中常见的瓶颈和通信中断的网络技术。虽然此解决方案可以减轻对资源受限设备某些担心,但是其不能解决不同设备空间的根本问题。进而,此解决方案需要客户端与服务器之间的相对恒定的通信链接,在许多情况下,这是成本昂贵的和/或不利的。此外,客户端-服务器解决方案仍需要为不同设备构建不同的客户端,其中构建不同的客户端涉及上述的问题,这未被现有技术充分地解决。
还有一种类型的自适应设备解决方案通过译码解决了呈现和输入问题。例如,移动设备通常具有较小的屏幕和不同于限制较少的设备的默认输入模式(例如,与键盘输入相反的语音识别输入或手写识别输入)。译码试图将为一种类型的设备设计的输入和输出修改为不同类型设备的特性,以便例如为台式机浏览器设计的网页可以在启用Web的PDA设备中被清晰地呈现。译码解决方案解决不同设备之间的输入/输出差异(deltas),并且不优化目标平台的代码以便最小化资源消耗。因此,译码作为补充解决方案在此提出并且在其它方面与本发明无关。
发明内容
本发明详述了一种用于从部署服务器内部为目标系统运行时优化应用的系统、方法和装置。本发明可以被用在即需环境中,其中客户端可以从服务器请求应用或应用部分,服务器响应地提供所请求的应用。例如,JAVA运行时环境(JRE)是此类即需环境的一个实例,虽然本发明并不限于此方面。
根据本发明,可以开发并且在部署服务器内部署未针对特定设备或平台优化的称为通用应用的应用版本。所述部署服务器可以包括多个设备简档,其定义了可以请求应用交付的设备的属性。具有关联简档的设备可以将应用请求提交给所述部署服务器,所述服务器可以使用所述简档为发出请求的设备动态地优化所述通用应用。当所述简档如此指示时,所述部署服务器可以为接收设备以适当格式将所交付的应用与适合的运行时执行库以及例程一起打包。
本发明可以以各个方面和实施例来表达并且可以被解释为具有由此处包括的权利要求部分所定义的范围。根据本发明的一个方面,部署服务器可以包括简档数据存储、通用应用数据存储以及优化器。所述简档数据存储可以包含多个设备属性,并可以将不同的优化参数或优化例程与每个存储的属性关联。所述通用应用数据存储可以包含至少一个以设备无关的方式编写的通用应用。所述优化器可以从一类不同的请求设备接收应用请求,并且可以响应于接受到的请求动态地生成设备特定的应用。对于每个发出请求的设备,所述优化器可以确定发出请求的设备的属性,使用所述简档数据存储来标识所述发出请求的设备的优化参数或优化例程,并且根据来自所述简档数据存储的数据和根据从所述通用应用数据存储检索的通用应用来生成设备特定的应用。
本发明的另一个方面可以包括一种用于优化应用的计算机化方法。所述方法可以包括从客户端接收对应用的请求的步骤。所述方法可以将所述客户端与至少一个先前存储的简档相匹配,可以根据所述简档确定特定于所述客户端的属性,并且可以根据所确定的属性和所述应用的通用版本来动态地生成客户端优化的应用。所述客户端优化的应用可以被传送给所述客户端。
应当指出,本发明可以被实现为使控制计算机实现此处所述的功能的程序,或者被实现为使得计算机能够执行与此处公开的步骤对应的过程的程序。可以通过在磁盘、光盘、半导体存储器以及任何其它记录介质中存储所述程序来提供所述程序,或者通过网络分发所述程序。
附图说明
附图中示出了当前优选的实施例,但是可以理解,本发明并不限于此处所示的精确布置和工具:
图1是示出了根据此处公开的发明布置的实施例的用于部署为目标客户端优化的应用的系统的示意图;
图2是示出了根据此处公开的发明布置的实施例的优化应用的方法的流程图。
具体实施方式
图1是示出了根据此处公开的发明布置的实施例的用于部署为目标客户端优化的应用的系统100的示意图。在系统100中,可以在软件开发计算机105中开发通用应用120。通用应用120是任何未针对特定客户端115优化的应用。在一个实施例中,可以以平台无关的方式来编写通用应用120,以便最大化其中可以部署通用应用120的系统的数目。例如,可以以JAVA编程语言或者任何其它平台无关的语言来编写通用应用120。
在开发之后,通用应用120可以通过网络140被传送给部署服务器110,其可以被配置为响应客户端115的请求而部署应用和/或应用组件。当客户端115请求应用时,部署服务器110可以确定与该请求对应的先前存储的通用应用120,可以确定客户端115的能力,并且可以响应地生成客户端优化的应用122。可以通过网络142将生成的客户端优化的应用122传送给发出请求客户端115。因此,软件开发人员可以专注于编写设备无关的软件,并且软件消费者可以接收为他们的个人设备定制的软件。
软件开发服务器105可以代表设计、构建、测试、维护和/或管理通用应用120的软件开发环境内所使用的任何计算机或通信地链接并且互操作的计算设备的网络。
客户端115可以包括在主机设备上执行的机器可读的代码,所述主机设备能够从部署服务器110请求应用,接收应用122并执行应用122。客户端115可以在执行应用122时以自主的方式运行,或者在执行该应用122时要求与一个或多个位于远程的服务器进行操作上的通信交换。
客户端115不限于特定设备上主持的任何特定类型的软件,但是其旨在被广泛地解释为包括由琐碎和异类设备空间内的不同设备所主持的大量可能的客户端。客户端115可以驻留于其上的设备可以包括,但不限于,嵌入式设备、普适计算设备、移动设备、台式计算设备、笔记本计算设备等。例如,主持客户端115的设备可以是资源受限的设备,例如个人数字助理(PDA)、移动电话、平板计算机、机顶盒、嵌入交通工具的设备和/或普遍存在的计算设备。在另一个实例中,主持设备可以包括如台式计算机、笔记本计算机或内联网服务器这样的传统计算设备。主持客户端115的设备可以是物理设备或软件定义的虚拟设备。所述设备可以包括地理上为本地的硬件以及分布式联网的部件。
类似地,可以由集中式或分布式组件形成部署服务器110,所述组件以这样的方式互操作:可以生成客户端优化的应用122并将其传送给客户端115。在一个实施例中,部署服务器110可以是用于创建、测试电子商务应用并将其部署到移动和无线设备的集成开发环境的组件。在这样的实施例中,部署服务器110可以使用可从市场上购买的工具,例如MICROANALYZER和SMARTLINKER,它们都是来自纽约阿蒙克的国际商业机器公司(IBM)的WEBSPHERE STUDIO DEVICE DEVELOPER(WSDD)的组件。但是,部署服务器110并不限于此方面,其可以使用多种方法和组件来实现,如本领域技术人员应容易地理解的,因为在计算机科学领域存在许多部署服务器技术,它们可以与此处详述的发明布置结合使用。
部署服务器110可以在接收到通用应用120时为大量定义的客户端配置生成客户端优化的应用122,可以在接收到客户端请求时动态地生成客户端优化的应用122,或者是二者的组合。例如,部署服务器110可以(只要资源允许)在请求之前为普及的客户端配置生成客户端优化的应用122,并且可以即需地动态生成不十分普及的优化。在另一个实例中,部署服务器110可以以重复的方式执行优化脚本,使得从通用应用120生成优化的应用122所需的某些优化在接收到请求之前被执行,而其他优化在接收到请求之后被执行。
部署服务器110可以包括分析器150、优化器152以及捆绑器154,并且可以使用在简档存储130、参数存储132、通用应用存储134以及库存储136中保存的信息。每个数据存储130、132、134和136可以是部署服务器110的本地存储或者是可以通过网络144访问的位于远程的存储。
简档数据130可以存储设备的多个属性,并且可以将不同的优化参数或优化例程与每个存储的属性相关联。参数存储132可以存储客户端特定的参数、优化器特定的参数以及在优化过程中使用的脚本。通用应用数据存储134可以存储多个通用应用120,提前(在接收到请求之前)构建的客户端优化的应用122,以及在构建客户端优化的应用122中使用的通用应用120的部分优化。库存储136可以包括运行时库、模块、相关性表等,它们可以被用于确保客户端被传送客户端优化的应用122在客户端115上运行所需的任何或全部软件例程。
分析器150可以动态地分析其上驻留了客户端115的设备的能力。这些能力可以被转换成一个或多个属性,其可以遵循规定的标准。因此,尽管不同的客户端115可以以客户端特定或设备特定的方式来定义它们的能力,但是可以依照标准化的术语来存储设备简档(称为客户端属性)。例如,不同的中央处理单元(CPU)制造商使用不同的参考框架来定义CPU能力。不同的优化脚本和参数可以与不同的属性相关,其中的关系在参数存储132的表或者文件内指定。
优化器152可以从一类不同的客户端115接收应用请求,并且可以使用简档存储130、参数存储132以及通用应用存储134中的信息来生成客户端优化的应用122。例如,当生成客户端优化的应用122时,优化器152可以从通用应用120中删除不需要的类、方法和字段。在一个实施例中,优化器152可以包括来自IBM的SMARTLINKER或者由其它提供商提供的类似软件。
捆绑器154可以标识将被与设备特定的应用捆绑的机器可读的代码,以便使客户端优化的应用122在主持客户端115的设备上可以被执行。一旦标识了必要的库和软件例程,捆绑器154就可以从库存储136检索例程,并且可以将标识的机器可读的代码与客户端优化的应用122进行捆绑。捆绑器154还可以遵循任何由客户端115施加的格式限制。例如,捆绑器154可以根据需要将软件按客户端特定的格式(例如JAVA档案(JAR)格式)分组。客户端特定的格式和软件配置可以通过直接询问客户端115来确定,可以从来自客户端115的应用请求来分析,或者可以从简档存储130中存储的简档数据来确定。
为了说明运行中的系统100,客户端115可以发出请求,该请求在过程160中被解析。解析请求可以确定主持客户端115的发出请求的设备的细节。使用分析器150以及简档存储130和参数存储132中的信息也可以确定客户端细节。因此,如过程162所示,可以确定简档和优化参数。在过程164中,可以建立由优化器152使用的脚本。优化器152可以对照通用应用数据存储134中包含的文件来运行这些脚本,以便最终根据客户端特定的参数来生成优化的应用。
在一个实施例中,可以以模块化或逐步的方式来建立和执行所述脚本。因此,优化过程可以作为一系列分离的步骤发生。可替代地,优化过程可以包括直接生成客户端优化的应用122的单个步骤。无论何种方式,如过程166所示,优化器都可以产生优化的应用。在过程168中,优化的应用可以被传送给捆绑器154,以使得所有来自库存储136的必要例程和库可以与优化的应用一起被分组并被适当地格式化,以便创建交付给客户端115的客户端优化的应用122。
应当指出,只要使用编码的电磁信号来传送内容,网络140、142以及144可以以任何方式被实现。进而,任何通信设备(例如用户终端设备(CPE)、计算机、调制解调器、路由器、交换机、接入点等)都可以被包括在网络140、142以及144中。
网络140、142和144中的每个网络都可以以基于分组或基于电路的方式来传送内容。此外,网络140、142和144中的每个网络都可以通过陆上线路或无线数据通信方法来传送内容。例如,网络140、142和144中的每个网络都可以分别包括内联网、局域网、广域网或者其组合。在另一个实例中,网络140、142和144中的每个网络都可以包括电话网络,例如移动无线网络或者公共交换电话网络(PSTN)。
数据存储130、132和134可以将信息存储在任何记录介质(例如磁盘、光盘、半导体存储器等)中。进而,数据存储130、132和134中的每一个数据存储都可以使用任何信息保存技术,包括基于文件的存储技术或数据库存储技术。此外,数据存储130、132和134中的每一个数据存储都可以是固定到地理位置的存储区域或者是跨网络空间分布的存储区域。此外,数据存储130、132和134中的每一个数据存储都可以代表一个永久性存储区域(例如硬盘驱动存储空间)以及易失性存储区域(例如随机存取存储器(RAM)存储空间)。
应当理解,图1所示的布置只是为了说明目的并且本发明并不限于此方面。可归属于各种组件的功能可以以不同于此处说明的方式被组合或分离。例如,数据存储130、132和134可以被实现为单个数据存储。在本发明的另一个实施例中,软件开发计算机105和部署服务器110可以在单个软件开发和部署服务器内实现。
图2是示出了根据此处公开的发明布置的实施例的优化应用的方法200的流程图。方法200可以在其中应用可以被即需地部署到客户端的任何应用部署环境中执行。优化可以发生在部署阶段也可以发生在部署服务器内。例如,方法200可以在用于创建、测试电子商务应用并将其部署到移动和无线设备的集成开发环境(例如WebSphere Studio DeviceDeveloper(WSDD))中执行。在一个构想的布置中,方法200可以在系统100或其它此类系统中实现。
方法200可以在步骤205开始,在步骤205,在软件开发环境中编写的软件应用可以被发送给软件部署服务器。在一个实施例中,可以以平台中立的方式和语言来编写软件应用。例如,可以以JAVA编程语言或任何其它一次编写、随处运行(WORA)语言来编写软件应用。来自开发环境的软件版本可以是通用版本,该版本并没有针对任何特定的设备或平台进行优化。在步骤210中,可以接收来自客户端的对应用的请求。在步骤215中,可以分析所述客户端以确定该客户端的能力。例如,可以使用诸如来自IBM的MicroAna lyzer之类的分析程序来即需地动态执行分析。在另一个实例中,客户端可以向部署服务器登记,此时可以接收和存储有关能力的信息以便在需要时使用。
在步骤220中,可以根据客户端标识和/或确定的客户端能力来查询简档数据存储。在步骤225中,查询可以返回一个或多个简档。每个简档都可以被与参数和脚本关联。还可以根据一个或多个为特定于客户端、设备、简档、应用及其组合的信息选择和/或修改的通用脚本来为特定的客户端或应用动态地生成脚本。在步骤230中,可以由优化器引擎或一个或多个优化例程来处理所述参数和脚本。在步骤235中,所述处理可以得到客户端优化的应用。
例如,在一个实施例中,所述客户端优化的应用可以是通用应用的这样的版本:从包中删除了未使用的类并且应用处理细节适合于所述客户端的存储器和处理能力。所述客户端优化的应用还可以使用提前(AOT)和内联编译技术。例如,当以JAVA编程语言编写通用应用时,所述客户端优化的应用可以包括在链接时构建的预检验的字节码可执行文件(executables)。
在步骤240中,所述方法可以检查客户端执行所请求的应用所需的相关性、库、软件例程等。当找到了必须被捆绑到所请求的应用的项目时,可以将发现的项目与客户端优化的应用进行捆绑。此外,在可选的步骤245中,判定所述应用是否将按照特定的交付格式被提供给客户端。例如,某些客户端可能首选或甚至要求关联的软件例程、文件等为指定的格式,例如JAVA档案(JAR)格式。当指定了特定的格式时,交付的项目的捆绑可以按照指定的格式发生。在步骤250中,可以将所述客户端优化的应用和/或包括所述客户端优化的应用的捆绑包传送给客户端。
本发明可以以硬件、软件或硬件和软件的组合来实现。本发明可以以集中的方式在一个计算机系统中实现或者以分布的方式实现,在所述分布方式中,不同部件可以跨多个互连的计算机系统分布。任何种类的计算机系统或其它适于执行此处所述的方法的装置都是适合的。典型的硬件和软件的组合可以是具有计算机程序的通用计算机系统,当所述程序被加载和执行时,所述程序控制所述计算机系统以使得其执行此处所述的方法。
本发明还可以被嵌入计算机程序产品,其包括允许实现此处所述的方法的所有特征,并且当被加载到计算机系统中时,其能够执行这些方法。当前上下文中的计算机程序是指一组指令的以任何语言、代码或符号表示的任何表达,旨在使具有信息处理能力的系统直接执行特定的功能,或者执行以下两者之一或全部后执行特定的功能:a)转换为另一种语言、代码或符号;b)以不同的材料形式再现。
在不偏离本发明的精神或本质属性的情况下,可以以其它形式来实施本发明。因此,应当参考以下权利要求,而不是上述说明书,以此作为本
发明的范围的指示。
Claims (20)
1.一种用于优化应用的计算机化方法,所述方法包括以下步骤:
接收来自客户端的对应用的请求;
将所述客户端与至少一个先前存储的简档相匹配;
根据所述简档确定所述客户端特有的属性;
根据所述确定的属性和所述应用的通用版本动态地生成客户端优化的应用;以及
将所述客户端优化的应用传送给所述客户端。
2.根据权利要求1的计算机化方法,包括以下步骤:
根据所述确定的属性建立至少一个脚本;以及
在用于从所述应用的所述通用版本中删除不需要的类、方法以及字段的优化器引擎内处理所述至少一个脚本,其中所述客户端优化的应用由所述优化器引擎来生成。
3.根据权利要求1的计算机化方法,其中所述应用是JAVA编程语言应用,并且以字节码来编写所述客户端优化的应用,其中所述生成步骤在链接时预检验所述生成的字节码可执行文件。
4.根据权利要求1的计算机化方法,还包括以下步骤:
标识其上主持所述客户端的设备的硬件配置,其中所述匹配步骤基于所述硬件配置。
5.根据权利要求1的计算机化方法,还包括以下步骤:
响应于所述接收步骤,动态地分析所述客户端以确定所述客户端的能力,其中所述匹配步骤利用所述确定的能力。
6.根据权利要求1的计算机化方法,还包括以下步骤:
标识至少一个将被与所述客户端优化的应用一起捆绑的软件例程,以使得所述客户端能够执行所述客户端优化的应用;以及
将所述标识的至少一个软件例程与所述客户端优化的应用一起捆绑,其中所述传送步骤将包括所述标识的至少一个软件例程和所述客户端优化的应用的捆绑包传送给所述客户端。
7.根据权利要求6的计算机化方法,还包括以下步骤:
根据所述请求和所述简档中的至少一个,确定交付的应用将按照指定的交付格式被提供,其中所述捆绑步骤遵循所述指定的交付格式。
8.根据权利要求7的计算机化方法,其中所述指定的交付格式是JAVA档案(JAR)格式。
9.根据权利要求1的计算机化方法,还包括以下步骤:
从软件开发计算机将所述应用的所述通用版本发送给部署服务器,其中所述部署服务器执行所述接收、匹配、确定、生成以及所述传送步骤。
10.根据权利要求1的计算机化方法,其中所述计算机化方法是在用于创建、测试电子商务应用并将所述电子商务应用部署到移动和无线设备的集成开发环境中执行的即需软件部署方法。
11.一种机器可读的存储装置,其上存储有具有多个代码部分的计算机程序,所述代码部分可由机器执行以使得所述机器执行以下步骤:
接收来自客户端的对应用的请求;
将所述客户端与至少一个先前存储的简档相匹配;
根据所述简档确定所述客户端特有的属性;
根据所述确定的属性和所述应用的通用版本动态地生成客户端优化的应用;以及
将所述客户端优化的应用传送给所述客户端。
12.根据权利要求11的机器可读的存储装置,包括以下步骤:
根据所述确定的属性建立至少一个脚本;以及
在用于从所述应用的所述通用版本中删除不需要的类、方法以及字段的优化器引擎内处理所述至少一个脚本,其中所述客户端优化的应用由所述优化器引擎来生成。
13.根据权利要求11的机器可读的存储装置,还包括以下步骤:
响应于所述接收步骤,动态地分析所述客户端以确定所述客户端的能力,其中所述匹配步骤利用所述确定的能力。
14.根据权利要求11的机器可读的存储装置,还包括以下步骤:
标识至少一个将被与所述客户端优化的应用一起捆绑的软件例程,以使得所述客户端能够执行所述客户端优化的应用;以及
将所述标识的至少一个软件例程与所述客户端优化的应用一起捆绑,其中所述传送步骤将包括所述标识的至少一个软件例程和所述客户端优化的应用的捆绑包传送给所述客户端。
15.根据权利要求11的机器可读的存储装置,其中所述计算机化方法是在用于创建、测试电子商务应用并将所述电子商务应用部署到移动和无线设备的集成开发环境中执行的即需软件部署方法。
16.一种部署服务器,所述部署服务器包括:
简档数据存储,所述简档数据存储存储设备的多个属性并将不同的优化参数或优化例程与每个所述存储的属性相关联;
通用应用数据存储,所述通用应用数据存储存储至少一个以设备无关的方式编写的通用应用;以及
优化器,所述优化器被配置成从一类不同的发出请求的设备接收应用请求,并响应于接收的请求动态地生成设备特定的应用,对于每个发出请求的设备,所述优化器被配置成确定发出请求的设备的属性,利用所述简档数据存储来标识用于所述发出请求的设备的优化参数或优化例程,以及根据来自所述简档数据存储的数据和根据从所述通用应用数据存储检索的通用应用来生成设备特定的应用。
17.根据权利要求16的部署服务器,其中所述部署服务器是用于创建、测试电子商务应用并将所述电子商务应用部署到移动和无线设备的集成开发环境的组件。
18.根据权利要求16的部署服务器,其中所述优化器被配置成当生成所述设备特定的应用时从所述通用应用中删除不需要的类、方法和字段。
19.根据权利要求16的部署服务器,还包括:
分析器,所述分析器被配置成在接收到请求时动态地分析请求发出设备的能力,其中分析的能力确定了所述发出请求的设备的所述属性。
20.根据权利要求16的部署服务器,还包括:
捆绑器,所述捆绑器被配置成标识将被与所述设备特定的应用一起捆绑的机器可读的代码以便可以在所述设备上执行所述设备特定的应用,并且随后将所述标识的机器可读的代码与所述设备特定的应用一起捆绑,其中得到的捆绑包被提供给所述设备以响应发出的应用请求。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/023,855 US9535679B2 (en) | 2004-12-28 | 2004-12-28 | Dynamically optimizing applications within a deployment server |
US11/023,855 | 2004-12-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1798153A true CN1798153A (zh) | 2006-07-05 |
CN100550907C CN100550907C (zh) | 2009-10-14 |
Family
ID=36613269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101291490A Expired - Fee Related CN100550907C (zh) | 2004-12-28 | 2005-11-14 | 从部署服务器内为目标系统运行时优化应用的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9535679B2 (zh) |
CN (1) | CN100550907C (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101690109B (zh) * | 2007-07-07 | 2013-04-17 | 高通股份有限公司 | 用于使用外部过程的目标性内容分发的用户简档产生架构 |
CN105320499A (zh) * | 2014-06-04 | 2016-02-10 | 中国移动通信集团广西有限公司 | 一种应用程序的适配方法和相关装置 |
CN105359090A (zh) * | 2013-04-26 | 2016-02-24 | 纽约市哥伦比亚大学理事会 | 用于移动应用的系统和方法 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
CN107450923A (zh) * | 2017-07-28 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种定制基线分离的程序实现方法及装置 |
CN108780479A (zh) * | 2015-09-05 | 2018-11-09 | 万事达卡技术加拿大无限责任公司 | 用于对异常进行检测和评分的系统和方法 |
TWI695354B (zh) * | 2018-11-21 | 2020-06-01 | 呂英璋 | 電腦程式編程學習系統 |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438633B1 (en) | 2005-04-21 | 2013-05-07 | Seven Networks, Inc. | Flexible real-time inbox access |
US8495619B2 (en) * | 2005-06-29 | 2013-07-23 | Flexera Software Llc | Method and system for pre-deployment conflict checking |
US9606846B2 (en) * | 2005-07-29 | 2017-03-28 | Sap Se | System and method for dynamic proxy generation |
US20070027877A1 (en) * | 2005-07-29 | 2007-02-01 | Droshev Mladen I | System and method for improving the efficiency of remote method invocations within a multi-tiered enterprise network |
US20070168509A1 (en) * | 2005-12-30 | 2007-07-19 | Droshev Mladen I | System and method for remote loading of classes |
US9251498B2 (en) * | 2006-10-23 | 2016-02-02 | Oracle International Corporation | Facilitating deployment of customizations of enterprise applications |
US20080155068A1 (en) * | 2006-12-21 | 2008-06-26 | Palo Alto Research Center Incorporated | Support for sharing abstract applications |
US7853669B2 (en) | 2007-05-04 | 2010-12-14 | Microsoft Corporation | Mesh-managing data across a distributed set of devices |
US8151251B2 (en) * | 2007-05-31 | 2012-04-03 | Wipro Limited | e-Profiler: dynamic profiling and auditing framework |
US8239505B2 (en) * | 2007-06-29 | 2012-08-07 | Microsoft Corporation | Progressively implementing declarative models in distributed systems |
US8434146B2 (en) * | 2008-03-04 | 2013-04-30 | Apple Inc. | Access control based on development profiles |
US9753712B2 (en) * | 2008-03-20 | 2017-09-05 | Microsoft Technology Licensing, Llc | Application management within deployable object hierarchy |
US8484174B2 (en) * | 2008-03-20 | 2013-07-09 | Microsoft Corporation | Computing environment representation |
US9298747B2 (en) * | 2008-03-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | Deployable, consistent, and extensible computing environment platform |
US8572033B2 (en) | 2008-03-20 | 2013-10-29 | Microsoft Corporation | Computing environment configuration |
US20090248737A1 (en) * | 2008-03-27 | 2009-10-01 | Microsoft Corporation | Computing environment representation |
CN101571857A (zh) * | 2008-04-29 | 2009-11-04 | 国际商业机器公司 | 用于资源传送的方法和装置 |
US9329846B1 (en) * | 2009-11-25 | 2016-05-03 | Parakinetics Inc. | Cooperative program code transformation |
US9152411B2 (en) * | 2010-05-12 | 2015-10-06 | Microsoft Technology Licensing, Llc | Edge computing platform for delivery of rich internet applications |
US8935666B2 (en) * | 2010-06-30 | 2015-01-13 | Gordon G. MILLER, III | Systems and methods for dynamic mobile applications |
US9392051B2 (en) * | 2010-12-06 | 2016-07-12 | Google Inc. | Application distribution supplying a dedicated application to a terminal from an application deposited by the developer |
EP2715973A4 (en) * | 2011-05-25 | 2015-03-18 | Hewlett Packard Development Co | IMPLEMENTING NETWORK DEVICE COMPONENTS IN NETWORK DEVICES |
US8707289B2 (en) * | 2011-07-20 | 2014-04-22 | Google Inc. | Multiple application versions |
US9185513B1 (en) * | 2011-12-02 | 2015-11-10 | Google Inc. | Method and system for compilation with profiling feedback from client |
US9197720B2 (en) * | 2011-12-07 | 2015-11-24 | Yahoo! Inc. | Deployment and hosting of platform independent applications |
US20130159122A1 (en) * | 2011-12-15 | 2013-06-20 | Microsoft Corporation | Optimizer as an appstore service |
US9378026B2 (en) * | 2012-07-27 | 2016-06-28 | Daniel A. Dooley | Customizable application |
US9122560B2 (en) * | 2012-11-15 | 2015-09-01 | Verizon Patent And Licensing Inc. | System and method of optimization for mobile apps |
US9665535B1 (en) * | 2013-03-15 | 2017-05-30 | Ca, Inc. | System and method for utilizing mobile configuration services |
US20160062754A1 (en) * | 2013-04-30 | 2016-03-03 | Hewlett-Packard Development Company, L.P. | Coordinating Application Deployment with a Platform Tier |
GB2519516B (en) * | 2013-10-21 | 2017-05-10 | Openwave Mobility Inc | A method, apparatus and computer program for modifying messages in a communications network |
US9225599B2 (en) * | 2013-12-16 | 2015-12-29 | Software Ag | Method and system to adapt functionality to capabilities of client and data storage |
US9936002B2 (en) | 2014-02-21 | 2018-04-03 | Dell Products L.P. | Video compose function |
US9553925B2 (en) * | 2014-02-21 | 2017-01-24 | Dell Products L.P. | Front-end high availability proxy |
CN104050409B (zh) * | 2014-06-30 | 2016-10-05 | 安一恒通(北京)科技有限公司 | 一种识别被捆绑软件的方法及其装置 |
EP3021219A1 (en) * | 2014-11-17 | 2016-05-18 | Alcatel Lucent | Precompiled dynamic language code resource delivery |
US10019270B2 (en) | 2015-08-19 | 2018-07-10 | International Business Machines Corporation | Enhanced computer performance based on selectable device capabilities |
US10409560B1 (en) * | 2015-11-18 | 2019-09-10 | Amazon Technologies, Inc. | Acceleration techniques for graph analysis programs |
US10270886B1 (en) * | 2018-09-14 | 2019-04-23 | Cloudflare, Inc. | Method and system for dynamic optimization of a script library |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5966702A (en) * | 1997-10-31 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for pre-processing and packaging class files |
US6718364B2 (en) * | 1999-08-10 | 2004-04-06 | Sun Microsystems, Inc. | Method and apparatus for expedited file downloads in an applet environment |
US7092998B2 (en) * | 2000-01-14 | 2006-08-15 | Palm, Inc. | Software architecture for wireless data and method of operation thereof |
FR2809844B1 (fr) | 2000-05-31 | 2002-11-22 | Wokup Sa | Systeme de publication multi-terminal et procede de mise en oeuvre correspondant |
EP1299826A1 (en) * | 2000-07-03 | 2003-04-09 | Cadence Design Systems, Inc. | Circuit component interface |
US6996800B2 (en) * | 2000-12-04 | 2006-02-07 | International Business Machines Corporation | MVC (model-view-controller) based multi-modal authoring tool and development environment |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
AU2001269751A1 (en) * | 2001-02-16 | 2002-09-04 | Thinairapps, Inc. | Method and apparatus for the creation of mobile software applications |
CA2448932A1 (en) * | 2001-07-02 | 2003-01-16 | British Telecommunications Public Limited Company | Program installation process |
US20030084165A1 (en) | 2001-10-12 | 2003-05-01 | Openwave Systems Inc. | User-centric session management for client-server interaction using multiple applications and devices |
US7035930B2 (en) | 2001-10-26 | 2006-04-25 | Hewlett-Packard Development Company, L.P. | Method and framework for generating an optimized deployment of software applications in a distributed computing environment using layered model descriptions of services and servers |
US7310673B2 (en) | 2001-12-21 | 2007-12-18 | Hewlett-Packard Development Company, L.P. | Network resource assignment system and method |
US20030135851A1 (en) * | 2002-01-17 | 2003-07-17 | Laura Dickey | Method and system for concentration of applications during installation in target devices |
US7454458B2 (en) | 2002-06-24 | 2008-11-18 | Ntt Docomo, Inc. | Method and system for application load balancing |
US20040098715A1 (en) * | 2002-08-30 | 2004-05-20 | Parixit Aghera | Over the air mobile device software management |
US6964042B2 (en) | 2002-12-17 | 2005-11-08 | Bea Systems, Inc. | System and method for iterative code optimization using adaptive size metrics |
WO2004063900A2 (en) | 2003-01-10 | 2004-07-29 | Nexaweb Technologies, Inc. | System and method for network-based computing |
US7779405B2 (en) * | 2003-03-14 | 2010-08-17 | At&T Intellectual Property I, L.P. | Run-time determination of application delivery |
US7562353B2 (en) * | 2003-05-16 | 2009-07-14 | Hewlett-Packard Development Company, L.P. | Methods and systems for transforming Java applications of behalf of another device |
US7676802B2 (en) * | 2003-07-23 | 2010-03-09 | Nokia Corporation | System, and associated method, for downloading an application |
US7512944B2 (en) * | 2004-07-15 | 2009-03-31 | Sap Aktiengesellschaft | Brokers for managing computer-implemented installations |
-
2004
- 2004-12-28 US US11/023,855 patent/US9535679B2/en not_active Expired - Fee Related
-
2005
- 2005-11-14 CN CNB2005101291490A patent/CN100550907C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101690109B (zh) * | 2007-07-07 | 2013-04-17 | 高通股份有限公司 | 用于使用外部过程的目标性内容分发的用户简档产生架构 |
CN105359090A (zh) * | 2013-04-26 | 2016-02-24 | 纽约市哥伦比亚大学理事会 | 用于移动应用的系统和方法 |
CN105320499A (zh) * | 2014-06-04 | 2016-02-10 | 中国移动通信集团广西有限公司 | 一种应用程序的适配方法和相关装置 |
CN108780479A (zh) * | 2015-09-05 | 2018-11-09 | 万事达卡技术加拿大无限责任公司 | 用于对异常进行检测和评分的系统和方法 |
CN108780479B (zh) * | 2015-09-05 | 2022-02-11 | 万事达卡技术加拿大无限责任公司 | 用于对异常进行检测和评分的系统和方法 |
CN105373401A (zh) * | 2015-10-27 | 2016-03-02 | 上海钢富电子商务有限公司 | 软件包自动发布方法和系统 |
CN105373401B (zh) * | 2015-10-27 | 2018-09-07 | 上海找钢网信息科技股份有限公司 | 软件包自动发布方法和系统 |
CN107450923A (zh) * | 2017-07-28 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种定制基线分离的程序实现方法及装置 |
TWI695354B (zh) * | 2018-11-21 | 2020-06-01 | 呂英璋 | 電腦程式編程學習系統 |
Also Published As
Publication number | Publication date |
---|---|
US20060143601A1 (en) | 2006-06-29 |
CN100550907C (zh) | 2009-10-14 |
US9535679B2 (en) | 2017-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100550907C (zh) | 从部署服务器内为目标系统运行时优化应用的方法和系统 | |
US9063765B2 (en) | System and methods for distributed execution of computer executable programs utilizing asymmetric translation | |
CN1189817C (zh) | 从因特网访问传统应用程序 | |
US10452363B2 (en) | Methods and systems for evaluating bytecode in an on-demand service environment including translation of apex to bytecode | |
US6789255B1 (en) | Determining update availability via set intersection over a sub-optimal pathway | |
US7694291B2 (en) | Build optimizer tool for efficient management of software builds for mobile devices | |
CN1231839C (zh) | 客户机-服务器环境中优化可移植操作的装置和方法 | |
US6792607B1 (en) | Databinding using server-side control objects | |
CN1170236C (zh) | 在客户机与服务器之间控制通信的方法和设备 | |
US6560618B1 (en) | On-demand generation, packaging, and delivery of archive files | |
US8806468B2 (en) | On-demand loading of types of software code of a program executing on a computing device | |
CN100476721C (zh) | 提供模块化本机方法启用系统的方法、和装置和系统 | |
CN108510082A (zh) | 对机器学习模型进行处理的方法及装置 | |
CN1645339A (zh) | 在嵌入式系统模拟器上调试应用程序的方法 | |
CN102073490A (zh) | 转译数据库语言的方法及装置 | |
US20060041871A1 (en) | Resource description framework transcoder repository and methods for exposing data assets | |
US20090204593A1 (en) | System and method for parallel retrieval of data from a distributed database | |
US20050125462A1 (en) | Component-based adaptation system and method | |
WO2002065277A2 (en) | Method and system for incorporating legacy applications into a distributed data processing environment | |
CA2538561C (en) | System and method for conversion of web services applications into component based applications for devices | |
CN102799444A (zh) | 跨平台打包程序的方法及装置 | |
CN116069811A (zh) | 使用用户定义的函数扩展数据库外部函数 | |
CN1853167A (zh) | 具有可扩展预配置的动态内容处理的系统和方法 | |
CN101533409B (zh) | 一种网络浏览器系统和控制方法 | |
CN1825277A (zh) | 代码变形 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091014 |