CN104220987A - 应用安装 - Google Patents
应用安装 Download PDFInfo
- Publication number
- CN104220987A CN104220987A CN201380020014.3A CN201380020014A CN104220987A CN 104220987 A CN104220987 A CN 104220987A CN 201380020014 A CN201380020014 A CN 201380020014A CN 104220987 A CN104220987 A CN 104220987A
- Authority
- CN
- China
- Prior art keywords
- shared resource
- application
- place
- example place
- described application
- 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
- 238000009434 installation Methods 0.000 title claims description 20
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000004590 computer program Methods 0.000 claims abstract description 24
- 238000003860 storage Methods 0.000 claims description 6
- 238000005192 partition Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 230000006870 function Effects 0.000 description 13
- 230000009471 action Effects 0.000 description 4
- 101150096185 PAAS gene Proteins 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101150095109 AFR2 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101150025253 AFR1 gene Proteins 0.000 description 1
- 235000006719 Cassia obtusifolia Nutrition 0.000 description 1
- 235000014552 Cassia tora Nutrition 0.000 description 1
- 244000201986 Cassia tora Species 0.000 description 1
- 101150037250 Zhx2 gene Proteins 0.000 description 1
- 102100025093 Zinc fingers and homeoboxes protein 2 Human genes 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种在运行时实例处安装应用的方法包括以下步骤:接收安装应用的请求,访问定义所述应用所需的共享资源的数据,访问定义已经安装在现有运行时实例处的共享资源的数据,选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及在所选择的运行时实例处安装所述应用。
Description
技术领域
本发明涉及在运行时实例处安装应用的方法和系统。
背景技术
“OSGi”是JavaTM的模块化技术。在OSGi中,包(bundle)是一个模块化单位。包的一个示例是二进制Java jar文件的原始人工制品,其具有描述包的身份和外观的附加包元数据。在此,包称为“包资源”,原始人工制品称为“人工制品资源”,并且包的元数据称为“元数据资源”。资源也称为对象。
Java以及所有基于Java的商标和徽标是Oracle和/或其子公司的商标或注册商标。
软件应用通常由个体模块组成。大多数应用模块(例如Java企业版(EE)EAR文件或OSGi应用)将使用一个或多个提供可重用功能的实用工具模块。通常,实用工具模块打包为应用模块的一部分,并且由应用模块使用也是应用模块一部分的元数据来引用。将应用模块安装到应用框架中通常涉及将应用模块和实用工具模块两者复制到硬盘上的单个目录。因此,如果安装利用一组公共实用工具模块的数个不同应用模块,则将具有存储在硬盘上的同一实用工具模块的多个副本,并且如果在同一应用框架运行时实例中运行应用模块,则可能还具有加载到存储器中的同一实用工具模块的数个版本。显然这将浪费磁盘和存储器使用,以及浪费将实用工具模块加载到存储器中花费的时间。
该问题的一种已知解决方案是使用共享资源概念,称为共享库(对于Java平台企业版或Java EE(JEE)应用)或公共包存储库中的共享包(对于OSGi应用)。从应用模块中提取可能对数个应用模块是公共的实用工具模块,并且将实用工具模块作为共享库或公共包安装在应用框架运行时实例中。在应用模块安装时,将应用模块链接到所需的共享库或包。作为该过程的结果,多个应用模块可以利用同一共享资源,即使磁盘上仅具有共享资源的一个副本。取决于应用框架,可能也仅具有加载到存储器中的共享资源的一个版本。
当应用模块开发人员和应用框架管理员可以协同工作以便在应用安装之前决定哪些实用工具模块应该用作公共资源时,共享资源方法非常适用。但是,如果要将应用模块部署到使用PAAS(平台即服务)云提供的应用框架,则不可能事先计划那些可以共享的资源。
因此,本领域需要解决上述问题。
发明内容
根据本发明的第一方面,提供一种在运行时实例处安装应用的方法,所述方法包括以下步骤:接收安装应用的请求,访问定义所述应用所需的共享资源的数据,访问定义已经安装在现有运行时实例处的共享资源的数据,选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及在所选择的运行时实例处安装所述应用。
根据本发明的第二方面,提供一种用于在运行时实例处安装应用的系统,所述系统包括:多个服务器,每个服务器被布置为运行一个或多个运行时实例;以及管理组件,所述管理组件连接到所述服务器并被布置为:接收安装应用的请求,访问定义所述应用所需的共享资源的数据,访问定义已经安装在现有运行时实例处的共享资源的数据,选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及在所选择的运行时实例处安装所述应用。
根据本发明的第三方面,提供一种用于在运行时实例处安装应用的计算机可读介质上的计算机程序产品,所述产品包括用于以下操作的指令:接收安装应用的请求,访问定义所述应用所需的共享资源的数据,访问定义已经安装在现有运行时实例处的共享资源的数据,选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及在所选择的运行时实例处安装所述应用。从另一方面看,本发明提供一种用于在运行时实例处安装应用的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并且存储由所述处理电路执行以执行一种用于执行本发明的步骤的方法的指令。
根据另一方面,本发明提供一种存储在计算机可读介质上并可加载到数字计算机的内部存储器中的计算机程序,所述计算机程序包括软件代码部分,当在计算机上运行所述程序时,所述软件代码部分用于执行本发明的步骤。
由于本发明,可提供一种机制,由此可以基于应用模块使用的实用工具模块,将所述应用模块自动定向到PAAS云中的个体机器和应用框架运行时实例。与安装具有它自己的任何实用工具模块副本的每个应用模块相比,该方法节省磁盘空间、存储器和中央处理单元(CPU)周期。这种节省有益于云中的个体机器和整个云。在诸如可以由许多不同应用共享的公共记录实用工具之类的共同重用的第三方模块的情况下,这尤其有利。
当应用模块部署到PAAS时,云管理软件分析所述应用模块以便确定其包含的实用工具模块。然后检查云中的现有应用框架运行时实例,以便查看任何实例是否具有已经例如作为共享库或作为OSGi包存储库中的包安装的匹配实用工具模块。所述应用模块优先地安装在这样的现有应用框架运行时实例上:所述实例已经安装与所述应用模块的实用工具模块匹配的共享资源。
在安装时,将来自新应用模块的所有实用工具模块转换为新共享资源或者链接到现有共享资源。所述应用针对云中提供尽可能多要求的服务器。所述应用从包括按价值的实用工具的应用到包括按引用的实用工具的应用的转换允许更灵活的部署。该方法意味着自动部署应用模块以便最佳地利用现有运行时能力和云的配置。具体地说,减少磁盘空间和进程内存,因为可以使用单个共享资源替换实用工具模块的多个副本。
优选地,所述方法还包括维护存储安装在现有运行时实例处的每个共享资源的标识符的表,并且其中访问定义已经安装在现有运行时实例处的共享资源的数据的步骤包括访问所述表。所述计算网络中的所述管理组件可以维护查找表,所述查找表记录跨所有现有运行时实例使用的所有共享资源。当需要在云中安装新应用时,这提供一种确定当前在云计算环境中部署的共享资源的简单方法。可以访问所述表以便查看当前在哪个特定运行时实例处安装哪些共享资源。
在使用上一段中所概述的表之后,所述方法可以有利地还包括在所选择的运行时实例处安装所述应用的步骤之后,使用在所选择的运行时实例处安装所述应用期间安装的每个新共享资源的标识符更新所述表。每次发出安装应用的请求并且针对该应用选择最佳运行时实例时,可以更新所述表以便反映由于所述安装而在所选择的运行时实例处变得可用的任何新共享资源。这提供共享资源的所述表的持续更新,这可以导致将来应用安装适合于反映更新后的表。
在理想情况下,所述方法还包括确定现有运行时实例处可用的空闲容量,并且其中选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例的步骤包括仅选择具有足够空闲容量以便安装所述应用的现有运行时实例。选择所述运行时实例以便用于正在安装的新应用也可以考虑每个可用运行时实例处可用的空闲存储器的数量。然后可以将适当运行时实例的选择仅限于那些具有足够空闲存储器的运行时实例。
有利的是,在所选择的运行时实例处安装所述应用的步骤包括从所述应用中删除那些已经存在于所选择的运行时实例处的共享资源,并且在所选择的运行时实例处安装所述应用的剩余组件。所述应用的安装可以限于仅安装那些除了已经存在于所选择的运行时实例处的共享资源之外的所需模块。这是最高效的安装所述应用的方法,并且将节省最多的处理器和带宽使用。
附图说明
现在将仅通过实例的方式参考附图描述本发明的优选实施例,这些附图是:
图1是根据本发明的一个优选实施例的运行时实例的示意图;
图2是根据本发明的一个优选实施例的在安装新应用之后的运行时实例的进一步示意图;
图3是根据本发明的一个优选实施例的应用和云计算环境的示意图;
图4是根据本发明的一个优选实施例的共享资源查找表的图;
图5、6和7是根据本发明的一个优选实施例的云计算环境的进一步示意图;以及
图8是根据本发明的一个优选实施例的安装应用的方法的流程图。
具体实施方式
图1示出运行时实例10的一个示例,其包括两个特定位置12和14。应用特定的模块安装在位置12中,共享资源安装在位置14中。两个应用16(标记为AM1和AM2)被示为安装在应用区域12中。每个应用16包括一个或多个应用特定的模块18和一个或多个共享资源20。应用AM1包括应用特定的模块M1以及共享资源R1和R2。同样,应用AM2包括应用特定的模块M2以及相同的共享资源R1和R2。
将应用AM1安装到运行时实例10中时,将应用特定的模块M1安装在位置12中,将共享资源R1和R2安装在位置14中。使用到共享资源R1和R2的链接替换应用AM1中的实际共享资源。随后,在运行时实例10处安装应用AM2时,仅将应用特定的模块M2安装在位置12中,不安装应用AM2中的共享资源R1和R2,因为它们已经存在于位置14中。使用到先前安装的共享资源20的链接安装应用AM2。
同样,当安装新应用16’时,检查该应用16’中的模块以便查看它们与已经安装在运行时实例10的位置14中的共享资源20的匹配程度。在这种情况下,新应用AM3包括应用特定的模块M3和共享资源R2(例如标准库)。在运行时实例处安装该新应用16’时,则仅需要将应用特定的模块M3安装在位置12中,并且可以使用到存在于位置14中的R2的已经安装的副本的链接替换应用AM3中的共享资源R2。
图2示出在安装第三应用16’(在图中标记为AM3)之后的运行时实例10。应用特定的模块18(标记为M3)将安装在位置12中,将不安装共享资源20(标记为R2),因为已经具有安装在位置14中的该特定共享资源20的副本。使用到安装区域14中的共享资源R2的位置的链接替换应用中的共享资源R2。这意味着不在同一运行时实例10处安装相同共享资源的重复副本。仅在位置14处安装新共享资源。
针对图1和2描述的方法提供一种用于在运行时实例10处安装应用的高效过程,并且还提供运行时实例10处可用的资源的高效使用。当安装应用时,减少内存使用,并且使用更少的带宽。安装在同一运行时实例10处的所有将来应用都将经历相同过程:仅安装那些尚未安装在位置14处的共享资源20。将检查要安装的每个新应用16以便标识应用16中的那些应用特定的模块以及是可能已经存在的共享资源的那些模块。
运行时实例10存在于服务器上,该服务器为客户机设备提供对运行时实例10托管的应用16的访问。客户机设备将发出运行应用16的请求,并且将在可用服务器上的运行时实例10处安装副本以便为客户机设备用户提供对应用16的访问。安装的应用16将包括一个或多个应用特定的模块18和一个或多个共享资源20。共享资源20是在某种意义上基本标准化的组件(例如库),并且可以由同一计算环境中的不同应用使用。
图3示出更复杂的计算环境,其基本是包括服务器网络的云22,每个服务器提供一个或多个运行时实例10。云22是计算资源,其通常经由用户将启动以便访问可用计算功能的会话,为客户机设备提供处理和存储功能。管理组件28将管理会话的建立和应用的安装,用户将经由其本地客户机设备访问应用。组成云22的底层硬件资源对客户机设备不可见,用户不知道提供其计算资源的底层进程。
在该图中,示出要安装在云22中的某处的新应用16。必须在现有运行时实例10中安装该应用16,或者必须专门针对新应用16创建新实例。该应用16包括诸如应用特定的模块18之类的模块和共享资源20。从应用16到云22的箭头上示出的问号指示最佳在何处安装应用16的开放问题。云22中的管理组件28必须对云22中的运行时实例10执行分析。
该分析确定在云22中安装新应用16的最合乎逻辑的位置,下面更详细地描述该过程。总的来说,在接收安装应用16的请求之后,管理组件28访问定义应用16所需的共享资源20的数据,并且访问定义已经安装在现有运行时实例10处的共享资源20的数据。管理组件28选择具有最大数量的对于应用16所需的共享资源20是公共的已安装共享资源20的现有运行时实例10,并且在所选择的运行时实例10处安装应用16。
图4示出共享资源查找表(LUT)24,该表可以用于存储安装在现有运行时实例10处的每个共享资源20的标识符26。基本上,查找表24包括行,其中每行专用于在表24中由其标识符26表示的特定共享资源20。每行还包含运行时实例10的列表,这些运行时实例包含该行的特定共享资源20。尽管图4的表24将每个共享资源20示为仅存在于单个运行时实例10处,但在实际实现中,每个共享资源20极有可能存在于多个运行时实例10处。
在查找表24中使用的共享资源标识符26可以是通常在特定技术环境中使用的文件、模块或库的名称。此外或备选地,如果可能具有多个用于同一共享资源20的名称,则可以使用有关共享资源20的预定义散列函数创建共享资源标识符26。这将允许管理组件28标识组成所接收的新应用16的一部分的任何共享资源20。管理组件28将针对每个新共享资源执行散列函数以便获得共享资源标识符26。
管理组件28存储和维护表24,并且可以在安装新应用16时不断地更新表24。例如,可以接收包括四个共享资源20的新应用16,其中两个共享资源20已经存在于特定运行时实例10中,但两个共享资源20对于管理组件而言是全新的。将在已经存在两个公共共享资源20的特定运行时实例10处安装新应用16,并且将更新表24以便显示现在于该特定运行时实例10处安装了先前未知的两个新共享资源20。
图5示出将新应用16’安装在云22中的某处时要采取的第一过程步骤。用户将应用模块部署到云22。在部署时,控制管理组件28运行的软件的云22执行以下步骤:首先检测501应用模块的类型,例如检测为JEE ear文件或OSGi应用文件。可以使用文件扩展名或有关编程环境结构的知识,以便检测存在于新应用16’中的不同应用模块类型,新应用16’要安装在已经安装在云22中的运行时实例10处。
使用应用模块类型知识,管理组件28标识502实用工具模块,例如从ear文件中的Enterprise Java Beans(EJB)jar文件清单引用的jar文件,或者OSGi应用中按价值包括的包。将转换所有实用工具模块以便变成共享库或共享包,即使仅由单个应用模块使用也是如此。这些模块可以被视为共享资源20。应用16’中具有通用性并且不特定于该特定应用的任何模块都可以是共享资源20。这些是可以在同一运行时实例10中的应用16之间重用的模块。
直到涉及用于新应用16’的编程语言,运行云22的控制软件的管理组件28是中性的。只要应用16’包括分离模块,而其中多个分离模块可以在应用16之间共享,便可以采用在此描述的方法处理使用云22安装的任何新应用16’。在图5中所示的步骤一和二中,管理组件28检查组成新应用16’的模块并标识该应用16’中的“实用工具模块”,以便执行在云22中更高效地安装该应用16’。
图6示出过程中的后续步骤。管理组件28针对新应用16’中的每个共享资源20创建603标识符26。该资源标识符26将用于与其它共享资源20相比较以便检查相等性。该标识符可以经由散列函数生成,或者可以基于名称或者可以仅是组成共享资源20的字节。管理组件28使用共享资源查找表24在云22中搜索604已经安装至少一个共享资源20的所有应用框架运行时10,管理组件28例如通过搜索查找表24,将共享资源标识符26映射到在其上安装这些标识符的运行时10。这些运行时10被视为安装新应用16’的潜在候选者。
管理组件28然后在运行时10上安装605应用模块18,该运行时10最佳满足以下准则集合,因为它具有尽可能多的公共共享资源20并且具有足够的空闲容量以便满足应用模块18的性能要求。在安装时,管理组件28根据需要创建任何新共享资源/从应用模块18到现有共享资源20的链接。通过这种方式,管理组件28针对新应用16’选择最高效的位置。该效率减少必须安装的数据量,并且还减少安装过程的带宽要求,同时只需管理组件28的最少额外工作。
在图5和6的示例中,新应用16’包括两个标记为R1和R2的共享资源20。根据查找表24,标记为AFR1的运行时实例10具有已经存在的共享资源R1。但是,标记为AFR2的运行时实例10具有存在的共享资源R1和R2两者,如可以从查找表24再次看到的那样。这意味着该运行时实例AFR2是安装新应用16’的更好位置,因此管理组件28在该运行时实例10处安装新应用16’,如图6中的箭头所示。
如果无法找到匹配运行时10以便安装新应用16’,则管理组件28如通常那样从云22供应新运行时10并将应用模块18和新共享资源20安装在其上。最后,管理组件28使用任何新创建的共享资源标识符26和在其上安装这些标识符的运行时10更新共享资源查找表24。这提供动态表24,每次安装新应用16’时将不断地更新该表,并且当接收到在云22中安装应用16的用户请求时,将针对每个新应用16’延续运行时安装的效率。
图7将管理组件28示为云计算网络22中的服务器。管理组件28与组成云计算环境22的其它服务器30通信。大量不同机器将组成云22,云22包括服务器30和服务于云22中的多个组件的专用存储设备。涉及安装新应用16的管理组件28可以由计算机程序产品控制,该计算机程序产品可以从诸如CD-ROM 32之类的计算机可读介质提供。当处理新应用16的安装时,使用计算机程序产品的指令控制管理组件28的处理器。
在图8的流程图中总结了计算机程序产品上的指令体现的过程。在运行时实例10处安装新应用16的方法包括以下步骤:接收801安装应用16的请求,访问802定义应用16所需的共享资源20的数据,访问803定义已经安装在现有运行时实例10处的共享资源20的数据24,选择804具有最大数量的对于应用16所需的共享资源20是公共的已安装共享资源20的现有运行时实例10,以及在所选择的运行时实例10处安装805应用16。
在本发明的一个优选实施例中,将有关在何处找到共享资源的记录存储在查找表24中。本领域的技术人员应该理解,可以在多个不同人工制品中(例如在关系数据库中)存储和访问此类记录。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法、计算机程序产品或计算机程序。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是—但不限于—电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括例如在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各个方面的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。Java以及所有基于Java的商标和徽标是Oracle和/或其子公司的商标或注册商标。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其它设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article ofmanufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
附图中的流程图和框图显示了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
为了避免疑义,此处在说明书和权利要求中使用的术语“包括”不应被解释为“仅由...组成”。
Claims (12)
1.一种在运行时实例处安装应用的方法,所述方法包括以下步骤:
接收安装应用的请求,
访问定义所述应用所需的共享资源的数据,
访问定义已经安装在现有运行时实例处的共享资源的数据,
选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及
在所选择的运行时实例处安装所述应用。
2.根据权利要求1的方法,还包括维护存储安装在现有运行时实例处的每个共享资源的标识符的表,并且其中访问定义已经安装在现有运行时实例处的共享资源的数据的步骤包括访问所述表。
3.根据权利要求2的方法,还包括在所选择的运行时实例处安装所述应用的步骤之后,使用在所选择的运行时实例处安装所述应用期间安装的每个新共享资源的标识符更新所述表。
4.根据权利要求1、2或3的方法,还包括确定现有运行时实例处可用的空闲容量,并且其中选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例的步骤包括仅选择具有足够空闲容量以便安装所述应用的现有运行时实例。
5.根据任一上述权利要求的方法,其中在所选择的运行时实例处安装所述应用的步骤包括从所述应用中删除那些已经存在于所选择的运行时实例处的共享资源,并且在所选择的运行时实例处安装所述应用的剩余组件。
6.一种用于在运行时实例处安装应用的系统,所述系统包括:
多个服务器,每个服务器被布置为运行一个或多个运行时实例,以及
管理组件(28),所述管理组件连接到所述服务器并被布置为:
接收安装应用的请求,访问定义所述应用所需的共享资源的数据,
访问定义已经安装在现有运行时实例处的共享资源的数据,选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例,以及
在所选择的运行时实例处安装所述应用。
7.根据权利要求6的系统,其中所述管理组件还被布置为维护存储安装在现有运行时实例处的每个共享资源的标识符的表,并且其中所述管理组件被布置为当访问定义已经安装在现有运行时实例处的共享资源的数据时,访问所述表。
8.根据权利要求7的系统,其中所述管理组件还被布置为在所选择的运行时实例处安装所述应用的步骤之后,使用在所选择的运行时实例处安装所述应用期间安装的每个新共享资源的标识符更新所述表。
9.根据权利要求6、7或8的系统,其中所述管理组件还被布置为确定现有运行时实例处可用的空闲容量,并且当选择具有最大数量的对于所述应用所需的所述共享资源是公共的已安装共享资源的现有运行时实例时,仅选择具有足够空闲容量以便安装所述应用的现有运行时实例。
10.根据权利要求6至9中的任一权利要求的系统,其中所述管理组件被布置为当在所选择的运行时实例处安装所述应用时,从所述应用中删除那些已经存在于所选择的运行时实例处的共享资源,并且在所选择的运行时实例处安装所述应用的剩余组件。
11.一种用于在运行时实例处安装应用的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,其可由处理电路读取并且存储由所述处理电路执行以执行根据权利要求1至5中的任一权利要求的方法的指令。
12.一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,所述计算机程序包括软件代码部分,当在计算机上运行所述程序时,所述软件代码部分用于执行权利要求1至5中的任一权利要求的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1206824.3A GB2501287A (en) | 2012-04-18 | 2012-04-18 | Installing applications at selected runtime instances |
GB1206824.3 | 2012-04-18 | ||
PCT/IB2013/051765 WO2013156877A1 (en) | 2012-04-18 | 2013-03-06 | Application installation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104220987A true CN104220987A (zh) | 2014-12-17 |
CN104220987B CN104220987B (zh) | 2017-04-05 |
Family
ID=46209264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380020014.3A Active CN104220987B (zh) | 2012-04-18 | 2013-03-06 | 应用安装的方法和系统 |
Country Status (9)
Country | Link |
---|---|
US (1) | US9038059B2 (zh) |
EP (1) | EP2807556A4 (zh) |
JP (1) | JP5719487B2 (zh) |
KR (1) | KR20140129042A (zh) |
CN (1) | CN104220987B (zh) |
GB (1) | GB2501287A (zh) |
IL (1) | IL234244A (zh) |
IN (1) | IN2014CN04868A (zh) |
WO (1) | WO2013156877A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066308A (zh) * | 2017-04-19 | 2017-08-18 | 深圳天珑无线科技有限公司 | 编译处理方法及装置 |
CN107463414A (zh) * | 2017-08-21 | 2017-12-12 | 北京小米移动软件有限公司 | 应用安装方法及装置 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2980867B1 (fr) * | 2011-10-04 | 2013-10-18 | Inside Secure | Procede et systeme pour executer une transaction sans contact autorisant de multiples applications et de multiples instances d'une meme application |
US9128792B2 (en) * | 2012-09-28 | 2015-09-08 | Wal-Mart Stores, Inc. | Systems and methods for installing, managing, and provisioning applications |
GB2506596A (en) * | 2012-10-02 | 2014-04-09 | Ibm | Managing a set of software modules in a runtime environment |
US20140280957A1 (en) * | 2013-03-15 | 2014-09-18 | Silicon Graphics International Corp. | Dynamic Assembly and Dispatch of Controlling Software |
US9652215B2 (en) * | 2014-12-30 | 2017-05-16 | Microsoft Technology Licensing, Llc | Application installation/uninstallation across multiple systems |
US9965262B2 (en) | 2015-05-21 | 2018-05-08 | International Business Machines Corporation | Application bundle pulling |
US10530660B2 (en) | 2015-05-21 | 2020-01-07 | International Business Machines Corporation | Application bundle preloading |
US10152516B2 (en) | 2015-05-21 | 2018-12-11 | International Business Machines Corporation | Managing staleness latency among application bundles |
US9888057B2 (en) | 2015-05-21 | 2018-02-06 | International Business Machines Corporation | Application bundle management across mixed file system types |
US10389794B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
US10389850B2 (en) | 2015-05-21 | 2019-08-20 | International Business Machines Corporation | Managing redundancy among application bundles |
AU2016284040B2 (en) | 2015-06-23 | 2020-04-30 | Covidien Lp | Robotic surgical assemblies |
US10713029B2 (en) * | 2017-10-31 | 2020-07-14 | Accenture Global Solutions Limited | Manifest-enabled analytics platform deployment engine |
US11055087B2 (en) * | 2018-03-16 | 2021-07-06 | Google Llc | Leveraging previously installed application elements to install an application |
US11409569B2 (en) * | 2018-03-29 | 2022-08-09 | Xilinx, Inc. | Data processing system |
CN112764909B (zh) * | 2021-01-27 | 2022-10-11 | 联思智云(北京)科技有限公司 | 一种基于云架构工作站的共享方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163807A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Weighted selection of target systems for distributed software installation |
CN1661584A (zh) * | 2004-02-25 | 2005-08-31 | 英特维数位科技股份有限公司 | 具远程遥控特性的操作系统共享应用程序的架构及其方法 |
CN1983192A (zh) * | 2005-12-12 | 2007-06-20 | 国际商业机器公司 | 用于在逻辑分区之间共享操作系统内核的方法和系统 |
CN1989486A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
US20100257520A1 (en) * | 2009-04-07 | 2010-10-07 | Navarro Luis A | Determining and Downloading Portions of a Software Application in a Computer System |
CN102413246A (zh) * | 2011-11-29 | 2012-04-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统切换共享应用的方法及移动终端 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6117187A (en) * | 1997-09-30 | 2000-09-12 | Hewlett-Packard Company | Automatic generation of a software installation package |
US6442754B1 (en) * | 1999-03-29 | 2002-08-27 | International Business Machines Corporation | System, method, and program for checking dependencies of installed software components during installation or uninstallation of software |
US6938058B2 (en) * | 1999-08-23 | 2005-08-30 | Eisenworld, Inc. | Apparatus and method for transferring information between platforms |
US6948059B1 (en) * | 2000-09-28 | 2005-09-20 | Rockwell Automation Technologies, Inc. | Component loader for industrial control device providing resource search capabilities |
US7418700B2 (en) * | 2001-01-29 | 2008-08-26 | Microsoft Corporation | System and method to facilitate installation and/or removal of components |
US20040003390A1 (en) * | 2002-06-27 | 2004-01-01 | Microsoft Corporation | System and method for installing a software application in a non-impactfull manner |
GB2394570A (en) * | 2002-10-21 | 2004-04-28 | Ncr Int Inc | Installing software components according to component characteristics |
US7590623B2 (en) * | 2005-01-06 | 2009-09-15 | International Business Machines Corporation | Automated management of software images for efficient resource node building within a grid environment |
JP4455403B2 (ja) * | 2005-05-17 | 2010-04-21 | キヤノン株式会社 | 管理方法及び管理装置 |
US8726233B1 (en) * | 2005-06-20 | 2014-05-13 | The Mathworks, Inc. | System and method of using an active link in a state programming environment to locate an element |
WO2007030796A2 (en) * | 2005-09-09 | 2007-03-15 | Salesforce.Com, Inc. | Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment |
US8024430B2 (en) * | 2005-10-14 | 2011-09-20 | Computer Associates Think, Inc. | System and method for installing software |
JP5014871B2 (ja) * | 2006-05-16 | 2012-08-29 | パナソニック株式会社 | プログラム起動装置、プログラム起動方法、起動処理プログラム及び集積回路 |
KR100835269B1 (ko) * | 2006-12-07 | 2008-06-05 | 한국전자통신연구원 | 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법 |
US8577937B1 (en) * | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US8170997B2 (en) | 2009-01-29 | 2012-05-01 | Microsoft Corporation | Unbundled storage transaction services |
JP2010225099A (ja) * | 2009-03-25 | 2010-10-07 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
US8375223B2 (en) | 2009-10-30 | 2013-02-12 | Red Hat, Inc. | Systems and methods for secure distributed storage |
TW201142709A (en) * | 2009-12-11 | 2011-12-01 | Ibm | A method, system and computer program for deciding whether to install a first application within one of a plurality of candiate environments |
US8984503B2 (en) | 2009-12-31 | 2015-03-17 | International Business Machines Corporation | Porting virtual images between platforms |
US20110258461A1 (en) | 2010-04-16 | 2011-10-20 | Twinstrata, Inc | System and method for resource sharing across multi-cloud arrays |
JP2011221597A (ja) * | 2010-04-05 | 2011-11-04 | Hitachi Solutions Ltd | クローンディスク作成方法およびプログラム |
US8627426B2 (en) * | 2010-04-26 | 2014-01-07 | Vmware, Inc. | Cloud platform architecture |
KR101008927B1 (ko) | 2010-07-15 | 2011-01-18 | 최승일 | 클라우드 방식의 디스크 공유 시스템 및 그 방법 |
-
2012
- 2012-04-18 GB GB1206824.3A patent/GB2501287A/en not_active Withdrawn
-
2013
- 2013-03-06 CN CN201380020014.3A patent/CN104220987B/zh active Active
- 2013-03-06 EP EP13779073.9A patent/EP2807556A4/en not_active Withdrawn
- 2013-03-06 WO PCT/IB2013/051765 patent/WO2013156877A1/en active Application Filing
- 2013-03-06 IN IN4868CHN2014 patent/IN2014CN04868A/en unknown
- 2013-03-06 KR KR1020147023392A patent/KR20140129042A/ko not_active Application Discontinuation
- 2013-03-06 JP JP2014560499A patent/JP5719487B2/ja active Active
- 2013-03-15 US US13/837,583 patent/US9038059B2/en active Active
-
2014
- 2014-08-21 IL IL234244A patent/IL234244A/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163807A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Weighted selection of target systems for distributed software installation |
CN1661584A (zh) * | 2004-02-25 | 2005-08-31 | 英特维数位科技股份有限公司 | 具远程遥控特性的操作系统共享应用程序的架构及其方法 |
CN1989486A (zh) * | 2004-05-20 | 2007-06-27 | Sap股份公司 | 在运行时系统中共享对象 |
CN1983192A (zh) * | 2005-12-12 | 2007-06-20 | 国际商业机器公司 | 用于在逻辑分区之间共享操作系统内核的方法和系统 |
US20100257520A1 (en) * | 2009-04-07 | 2010-10-07 | Navarro Luis A | Determining and Downloading Portions of a Software Application in a Computer System |
CN102413246A (zh) * | 2011-11-29 | 2012-04-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种多系统切换共享应用的方法及移动终端 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066308A (zh) * | 2017-04-19 | 2017-08-18 | 深圳天珑无线科技有限公司 | 编译处理方法及装置 |
CN107463414A (zh) * | 2017-08-21 | 2017-12-12 | 北京小米移动软件有限公司 | 应用安装方法及装置 |
CN107463414B (zh) * | 2017-08-21 | 2020-10-30 | 北京小米移动软件有限公司 | 应用安装方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2015509638A (ja) | 2015-03-30 |
US20130283259A1 (en) | 2013-10-24 |
JP5719487B2 (ja) | 2015-05-20 |
IL234244A (en) | 2017-07-31 |
US9038059B2 (en) | 2015-05-19 |
WO2013156877A1 (en) | 2013-10-24 |
EP2807556A1 (en) | 2014-12-03 |
IN2014CN04868A (zh) | 2015-09-18 |
GB201206824D0 (en) | 2012-05-30 |
EP2807556A4 (en) | 2015-02-18 |
GB2501287A (en) | 2013-10-23 |
CN104220987B (zh) | 2017-04-05 |
KR20140129042A (ko) | 2014-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104220987A (zh) | 应用安装 | |
CN110297689B (zh) | 智能合约执行方法、装置、设备及介质 | |
US9529817B2 (en) | Pro-active self-healing in a distributed file system | |
US20190080118A1 (en) | Container update system | |
US20110078681A1 (en) | Method and system for running virtual machine image | |
US10411961B2 (en) | Image management in cloud environments | |
US20070118572A1 (en) | Detecting changes in data | |
US10310900B2 (en) | Operating programs on a computer cluster | |
US10169348B2 (en) | Using a file path to determine file locality for applications | |
US9600486B2 (en) | File system directory attribute correction | |
US10705829B2 (en) | Software discovery using exclusion | |
US10853141B2 (en) | Resource provisioning in distributed computing environments | |
US20200366660A1 (en) | System and methods for securely storing data for efficient access by cloud-based computing instances | |
WO2022095844A1 (zh) | 一种云硬盘挂载方法及其装置 | |
US20140237087A1 (en) | Service pool for multi-tenant applications | |
US10891309B2 (en) | Data duplication detection in an in memory data grid (IMDG) | |
US9176974B1 (en) | Low priority, multi-pass, server file discovery and management | |
US8943031B2 (en) | Granular self-healing of a file in a distributed file system | |
US11947495B1 (en) | System and method for providing a file system without duplication of files | |
CN115098469A (zh) | 数据库迁移方法及装置、电子设备和可读存储介质 | |
US20130081007A1 (en) | Providing continuous application availability during application update | |
US10095849B1 (en) | Tag-based programming interface authentication | |
US20230195901A1 (en) | Model-based upgrade recommendations using software dependencies | |
US20240103818A1 (en) | Annotation driven just in time and state-based rbac policy control | |
CN118409757B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |