CN1866214A - 安装方法及设备 - Google Patents
安装方法及设备 Download PDFInfo
- Publication number
- CN1866214A CN1866214A CNA2006100783897A CN200610078389A CN1866214A CN 1866214 A CN1866214 A CN 1866214A CN A2006100783897 A CNA2006100783897 A CN A2006100783897A CN 200610078389 A CN200610078389 A CN 200610078389A CN 1866214 A CN1866214 A CN 1866214A
- Authority
- CN
- China
- Prior art keywords
- framework
- application program
- application
- frameworks
- outward appearance
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种安装方法及设备。在安装应用程序时,多个框架中的一个框架判断该应用程序要被安装到的框架,并将该应用程序安装在所判断出的框架中。
Description
技术领域
本发明涉及一种用于安装应用程序的方法及设备。
背景技术
传统上,有被称作框架(framework)、平台、应用程序服务器、程序容器(program container)等的多种软件,它们被用于进行例如计算机系统的服务器上的应用程序的执行控制。以下将这种软件通称为框架。
该框架具有所谓的“应用程序生命周期管理功能”。该“应用程序生命周期管理功能”实现下列执行控制。
-在框架上安装要被执行的应用程序
-卸载不需要的应用程序
-执行所安装的应用程序
-停止正在运行的应用程序
-更新所安装的应用程序等
在各框架上安装的应用程序的管理方法和形式依框架而不同。
作为典型的框架,“The Apache Jakarta Tomcat 5.5Servlet/JSP Container UserGuide”(Apache Project,2004)和“OSGi Service Platform Specification Release 2”(OSGI,2001)是公知的。
在“The Apache Jakarta Tomcat 5.5 Servlet/JSP ContainerUserGuide”中,被称作WAR格式的应用程序分发形式是普遍的。如果该WAR文件被存储在特定的文件夹中,则识别出新存储了WAR文件,并将该文件自动转换为可执行的形式,由此执行安装。另外,还支持使用该机理管理应用程序生命周期的应用程序,并且可从远程对应用程序进行安装、卸载、启动、停止等。
在“OSGi Service Platform Specification Release 2”中,定义被称作“包(bundle)”的应用程序的单位,并且还定义形成该包的包文件的形式。对这些包提供生命周期管理功能。
另一方面,在通用计算机以外的所谓“嵌入式装置”的系统中,随着装置的硬件资源的速度和容量的增加,在许多情况下,由通用计算机开发的技术将被用于嵌入式装置。
在通用计算机系统的服务器中,管理服务器的硬件和软件的操作者已经接受过专业培训。因此,即使当应用程序的管理方法依框架而不同时,如果假定他们具有处理这种差别的技能,则不会造成问题。
另一方面,在嵌入式装置中,在多数情况下,不期望具有高专业技能的人被指派为实际管理该装置的操作者。
因此,当应用程序的管理方法对各个框架不同时,很可能因缺乏经验和技术知识而发生操作错误。也就是说,整个系统很可能发生功能障碍。此外,甚至管理服务器的操作者也很难说不出现操作错误。
此外,通常大多在安装时进行应用程序的许可管理、安全检查等。因此,如果作为应用程序的生命周期管理方法的一部分的安装方法对各个框架不同,则在该系统中必须准备多个许可管理功能和安全检查功能。也就是说,硬件资源的使用效率非期望地降低。
此外,用于远程控制的网络进入路径必须对各个框架的外部开放,并且有许多允许从外部侵入该系统的途径(route)。因此,这种途径可成为安全方面的瓶颈。
发明内容
本发明是为解决上述问题而做出的。
本发明的目的是防止操作者的操作错误。
本发明的另一目的是防御外部的侵入。
本发明的另一目的是提供一种安装方法,该方法由多个框架中的一个来执行,在安装应用程序时判断该应用程序要被安装到哪个框架中,以及将该应用程序安装到在判断步骤中所判断的该应用程序要被安装到的框架中。
本发明的另一目的是提供一种信息处理设备,该信息处理设备包括:判断装置,用于在安装应用程序时判断该应用程序要被安装到多个框架中的哪个框架中;以及安装装置,用于将该应用程序安装到该判断装置所判断的该应用程序要被安装到的框架中。
通过下面结合附图的说明,本发明的其它特征和优点将是很明显的,其中,在其全部附图中,同样的附图标记表示相同或相似的部分。
附图说明
图1是示出一般的嵌入式装置的结构的例子;
图2示出通过Web浏览器显示在计算机上的管理窗口;
图3是示出第一实施例中的嵌入式装置的结构的例子的框图;
图4是分层地示出由控制单元301执行的软件的配置的视图;
图5是说明外观框架(facade framework)402和目标框架A404之间的关系的图;
图6示出第一实施例中应用程序文件520的结构的例子;
图7示出第一实施例中程序属性的说明例子;
图8是示出第一实施例中安装处理的流程图;
图9示出第一实施例中界面的例子;
图10是示出第一实施例中应用程序的停止处理的流程图;
图11示出由外观框架402管理的应用程序组403的应用程序属性对象的配置;
图12示出第三实施例中使用的应用程序文件的格式;
图13示出第三实施例中程序属性的说明例子;
图14是示出第三实施例中安装处理的流程图;
图15示出第三实施例中ApplicationAttribute对象的例子;以及
图16是示出第三实施例中应用程序的停止处理的流程图。
具体实施方式
下面将参照附图对本发明的优选实施例进行详细说明。
下面将使用图1说明嵌入有多个框架的嵌入式装置的结构和操作。注意,本发明不局限于该嵌入式装置。
图1是示出一般的嵌入式装置的结构的例子。参看图1,附图标记100表示运行框架的嵌入式装置(以下简称为“装置”)。附图标记101表示框架A,作为运行在装置100上的框架。附图标记102表示应用程序组A,作为在框架A 101上被管理的应用程序。附图标记110表示指示框架A 101管理应用程序的计算机A。附图标记120表示将经由计算机A 110安装到框架A 101中的应用程序A。
附图标记103表示框架B,作为运行在装置100上的框架。附图标记104表示应用程序组B,作为在框架B 103上被管理的应用程序。附图标记130表示指示框架B 103管理应用程序的计算机B。附图标记140表示将经由计算机B 130安装到框架B 103中的应用程序B。
可使用WWW(World Wide Web,万维网)技术从远程(计算机A 110或者计算机B 130)控制这些应用程序管理功能。也就是说,使用在不同于实际启动框架(A 101或B 103)的装置100的计算机上运行的Web浏览器,从远程访问装置100中的框架(A 101或B103)。框架(A 101或B 103)上的应用程序(A 102或B 104)的生命周期可被管理。
图2示出通过Web浏览器在计算机上显示的管理窗口的例子。该例子是当计算机A 110管理框架A 101上的应用程序组A 102时,通过运行在计算机A 110上的Web浏览器显示的应用程序管理窗口。
计算机A 110的用户从该管理窗口使用选择按钮201来选择存储应用程序的文件。在用户使用选择按钮202指定了存储许可信息的文件之后,他或她使用安装按钮203开始安装。
此外,用户从该管理窗口选择已安装的应用程序(例如,应用程序A-2),并指示执行控制,例如启动204、停止205、更新206、卸载207等。
另一方面,框架B 103通过使用FTP(File Transfer Protocol,文件传送协议)将应用程序B 140传送到由框架B 103确定的特定文件夹来安装应用程序。与安装相同,通过使用FTP从特定的文件夹中删除文件来完成卸载。
这样,甚至同一装置100上的框架A 101和B 103也具有不同的应用程序管理方法。
注意,为了说明方便,将计算机A 110和B 130说明为不同的计算机,但是它们可以是一个计算机。
第一实施例
下面将说明统一管理运行有多个框架的装置上的应用程序的生命周期的方法。
图3是示出第一实施例中嵌入式装置的结构的例子的框图。注意,本发明不局限于该嵌入式装置,并且可将本发明应用于其它网络装置。
参看图3,附图标记301表示控制整个装置的控制单元。附图标记302表示一次存储单元,包括RAM等,用于临时存储数据和将由控制单元301执行的软件。附图标记303表示二次存储单元,包括硬盘等,用于永久存储数据和将由控制单元301执行的软件。附图标记304表示输入单元,包括键盘、鼠标、触摸屏、扫描器等,用于输入用户指令、文本数据和图像数据。附图标记305表示显示单元,包括显示器,用于显示对操作者的指示和数据内容。附图标记306表示网络单元,包括LAN等,用于与其它装置通信。附图标记307表示相互连接各个单元的总线。
图4分层示出将由控制单元301执行的软件的配置。参看图4,附图标记401表示用于管理软件和硬件资源的操作系统(OS)。附图标记402表示接收操作者指令的外观框架,作为用作应用程序执行环境的框架的代表。附图标记403表示运行在外观框架402上的外观框架应用程序组。
附图标记404表示目标框架A,作为经由外观框架402接收操作者指令的框架。附图标记405表示运行在目标框架A 404上的目标框架A应用程序组。附图标记406表示与目标框架A 404相同,经由外观框架402接收操作者指令的目标框架B。附图标记407表示运行在目标框架B 406上的目标框架B应用程序组。附图标记408表示运行在OS 401上的其它应用程序组。
注意,与属于其它应用程序组408的应用程序同等地,从OS401对外观框架402、目标框架A 404和目标框架B 406进行处理。
在第一实施例中,将外观框架402作为OSGi ServicePlatform(OSGi服务平台,以下简称为OSGi)的扩展的外观框架进行说明。
外观框架402由Java来构建(Java是美国Sun Microsystems公司的注册商标名)。每个应用程序被称作包,并且作为档案文件(archive file)格式的Jar(Java ARchive)被提供。外观框架402具有将所给的应用程序的一些功能提供给另一应用程序的服务登记、搜索和使用功能。利用这些功能,具有特定接口的服务可被搜索和使用。在服务登记功能中,指定要被登记的服务的属性可被一起登记,并且可基于该属性搜索和获得具有特定属性值的服务。注意,OSGi的细节在上述“OSGi Service PlatformSpecification Release 2”中被说明,并将省略其说明。
图5说明了外观框架402和目标框架A 404之间的关系。参看图5,附图标记500表示第一实施例中的装置,其包括图3中所示的各个单元。附图标记510表示经由网络单元306连接到装置500的计算机。附图标记520表示存储在计算机510的存储装置中并包括将经由外观框架402安装在目标框架A 404中的目标应用程序的应用程序文件。附图标记530表示包括在应用程序文件520中并运行在目标框架A 404上的目标应用程序。
即使当在不同的装置中分别准备外观框架402和目标框架404及406时,也可应用本发明。在此情况下,在给定的装置中准备的外观框架402将目标应用程序安装到在其它装置中准备的目标框架404或406中。
下面将使用图6说明第一实施例中的应用程序文件520的结构。
图6示出第一实施例中应用程序文件520的结构的例子。如图6所示,应用程序文件520具有头区域601和数据存储区域602。
头区域601包括表示应用程序文件的幻数(magicnumber)611、表示头区域601的大小的头区域大小612、以及说明该应用程序的各种属性的程序属性说明区域613。注意,如图7所示,程序属性说明区域613具有表示程序属性的Jar文件的清单头(manifest header)格式。注意,该清单头说明作为一对给定属性的名称和值的属性值。
另一方面,数据存储区域602被加密,使得只由外观框架402管理的密钥来解密。当数据存储区域602被解密时,它被分成目标框架应用程序头区域621和程序数据存档区域622。目标框架应用程序头区域621说明在目标框架A 404上执行时所需的属性。程序数据存档区域622存储将在目标框架上执行的程序数据。
参看图5,附图标记540表示应用程序管理器A,其属于外观框架应用程序组403,在外观框架402上执行,并相对于目标框架A 404进行应用程序的生命周期管理。附图标记550表示应用程序管理器B,其属于外观框架应用程序组403,在外观框架402上执行,并相对于目标框架B 406进行应用程序的生命周期管理。也就是说,与框架相一致地存在进行应用程序的生命周期管理的应用程序管理器。
下面将使用图8说明当计算机510的操作者将应用程序文件520安装在目标框架A 404中时所执行的处理。假定操作者同时指定许可信息和应用程序文件520。此外,使用与图2中所示的相同的管理窗口作为在第一实施例中使用的Web浏览器上的用户界面。
图8是示出第一实施例中的安装处理的流程图。在步骤S 801,计算机510的操作者经由装置500中的外观框架402的管理用户界面访问外观框架402,该管理用户界面通过Web浏览器来显示。然后操作者指示安装应用程序文件520。
当响应于操作者的指令接收到应用程序文件520时,外观框架402解释该应用程序文件520的头区域601中的程序属性说明区域613中所说明的清单头。然后,外观框架402从该清单头中获得将执行存储在程序数据存档区域622中的程序的框架。
注意,如图7所示,该作用目标的框架被说明为目标(target:)属性。当没有设定目标属性时,或者当指定了外观框架402时,外观框架402被识别为目标框架。在此情况下,“Tomcat 5.5”被指定为目标,并且目标框架A 404被识别出。
在步骤S802中检查在步骤S801中获得的并被用于执行应用程序文件520的目标框架是否为外观框架402。如果该目标框架是外观框架402,则流程前进到步骤S803。
在步骤S803,由操作者指定的并从计算机510发送到外观框架402的应用程序文件520被安装作为外观框架402的应用程序。
当安装时,使用密钥来解密存储在应用程序文件520的数据存储区域602中的数据。解密后的数据被假定是外观框架402的应用程序,并在外观框架402中进行安装处理。
此外,通过外观框架402的功能来实现用于检查解密后的数据是否符合外观框架402的应用程序的格式的处理。此外,由操作者指定的许可信息被设定为外观框架402的许可信息。
另一方面,如果在步骤S802中识别出外观框架402以外的框架是目标框架,则流程前进到步骤S804以进行搜索,检查是否存在用于所识别出的目标框架的应用程序管理器。注意,可在不同的装置中准备外观框架402和目标框架。
应用程序管理器被登记作为使用图9所示的接口(ApplicationManager)来提供服务的应用程序管理器。作为该应用程序管理器的属性,作为目标的框架的标识符被作为“TargetFramework”属性登记。
在该例子中,在步骤S801中识别出目标框架是“Tomcat 5.5”。因此,当在外观框架402主体所提供的搜索方法中以LDAP格式指定ApplicationManager接口的名称以及其属性值的搜索公式如下时,可获得用于“Tomcat 5.5”的应用程序管理器。
ApplicationManager am=(ApplicationManager)framework_body.search(“com.canon.upd.ApplicationManager”,“(TargetFramework=Tomcat 5.5)”);
当没有用于“Tomcat 5.5”的应用程序管理器被登记时,返回空(Null),以识别该事实。
也就是说,如果目标框架A 404是“Tomcat 5.5”,则可通过上述搜索获得目标框架A 404的应用程序管理器。
如果成功得到目标框架的应用程序管理器,则流程前进到步骤S806;如果不能获得应用程序管理器并且返回空,则流程前进到步骤S805。
在步骤S805,将表示没有与指定为该应用程序的安装目的地的目标框架相对应的应用程序管理器被登记的警告页显示在计算机510的Web浏览器上。该警告页通知操作者该安装已经失败。
如果在步骤S804中可获得与指定为该应用程序的安装目的地的目标框架相对应的应用程序管理器,则流程前进到步骤S806。在此情况下,作为目标框架A 404的应用程序管理器的应用程序管理器A 540被返回。
如果应用程序管理器存在,则流程前进到步骤S806,以从应用程序文件520中取出数据存储区域602并使用密钥对其进行解密。解密后的目标应用程序530作为输入流被打开,并以该流作为变量调用应用程序管理器A 540的安装方法,以将该应用程序安装在目标框架A 404中。
在此情况下,由于目标框架A 404是Tomcat,所以由该输入流传递的数据作为WAR文件存储在特定文件夹中,由此执行安装处理。
当完成在目标框架A 404中的安装时,实现图9所示Application接口的对象被返回。实现该Application接口的对象包括用于唯一识别目标框架A 404上的目标框架A应用程序组405中所安装的应用程序的应用程序标识符。
可通过调用该Application接口的getApplicationID方法来获得该应用程序标识符。
目标框架A 404被告知由应用程序管理器A 540指定的许可信息,并且由目标框架A 404来使用该许可信息。
当使用所获得的Application对象和关于外观框架402的主体的目标框架的标识符(在该例子中为字符串“Tomcat 5.5”)调用作为扩展方法的make Bundle方法时,虚拟应用程序程序(virtualapplication)被产生。该虚拟应用程序是在外观框架402上产生的虚拟应用程序,并对应于目标框架A 404上所安装的应用程序。
对该虚拟应用程序进行目标框架A 404中安装的应用程序的随后的生命周期管理。在此情况下,执行控制可被进行,好像外观框架402上的应用程序被管理。
如上所述,该应用程序可被安装在目标框架A 404中,从操作者的角度看,好像它被安装在外观框架402中。
下面将说明安装以外的处理。安装以外的各处理大致相同,将使用图10来说明作为代表性例子的用于停止运行中的应用程序的处理。
图10是示出第一实施例中应用程序的停止处理的流程图。与上述安装处理中相同,操作者从计算机510访问外观框架402,以将外观框架402的应用程序组403的管理窗口显示在Web浏览器上。当操作者从所显示的管理窗口选择应用程序并指示进行停止处理时,流程前进到步骤S1001。应用程序组403包括外观框架402本身的应用程序和目标框架上的虚拟应用程序。在步骤S1001中识别外观框架应用程序组403中被选择的应用程序是否为目标框架上的应用程序的虚拟应用程序。基于图11所示的应用程序属性对象来完成该识别处理。注意,可在不同的装置中准备外观框架402和目标框架。
图11示出由外观框架402管理的应用程序组403的应用程序属性对象的配置。
如图11所示,应用程序属性对象包括下列信息:
-框架标识符1101,表示执行应用程序的实体的框架;
-应用程序标识符1102,表示被定义为Application接口的对象的应用程序;
-状态1103,表示应用程序的生命周期状态;
-存储位置1104,表示作为URL信息的应用程序被实际存储的位置;以及
-其它属性1105。
当该应用程序被安装时(步骤S806),从所获得的Application对象获得并设置目标框架上的该应用程序的属性值。
如果框架标识符1101被设定,则表示所指定的应用程序是具有所设定的标识符的目标框架上的应用程序。如果框架标识符1101没有被设定,则表示所指定的应用程序是外观框架402上的应用程序。
如果在步骤S1001中确定为所选择的应用程序是外观框架402上的应用程序,则流程前进到步骤S1002,否则,流程前进到步骤S1003。
在步骤S1002,由于所选择的应用程序是正实际运行在外观框架402上的应用程序,因此外观框架402的原始应用程序管理中的应用程序停止处理被执行。
在步骤S1003,与由该应用程序属性对象的框架标识符1101选择的并且该应用程序正实际运行于其上的目标框架相对应的应用程序管理器被获取。该步骤中的获取方法与步骤S804中所说明的获取方法相同。
然后在步骤S1004中检查该应用程序管理器是否可被获得。如果该应用程序管理器可被获得,则流程前进到步骤S1005;否则,生成异常,从而结束该处理。
在步骤S1005,正运行于该目标框架上的所指定的应用程序被停止。更具体来说,将存储在应用程序标识符1102中的该应用程序标识符指定为关于在步骤S1003中获得的应用程序管理器的变量,以调用停止方法。
同时,流程前进到步骤S1002,以停止外观框架402上的虚拟应用程序。
如上所述,与目标框架上的应用程序相关联的生命周期管理可被进行,从操作者的角度看,好像外观框架402上的应用程序的生命周期管理被进行。
当外观框架402上的应用程序的应用程序属性对象被生成时,同时将其存储在二次存储单元303中。之后,当装置500被启动时,从二次存储单元303加载该应用程序属性对象并将其恢复。
因此,当经由外观框架402安装应用程序时,其信息被恢复到每次启动装置500之前装置500被关闭的状况。
此时,在外观框架的启动序列中,当对外观框架402上的虚拟应用程序执行恢复处理时,进行下列处理。
当存储在该虚拟应用程序的应用程序属性对象中的应用程序的状态不同于每个目标框架上的应用程序的状态时,目标框架上的应用程序的状态被改变。也就是说,外观框架402通过对应的应用程序管理器改变目标框架上的应用程序的状态,以匹配外观框架402上的虚拟应用程序的状态。
例如,尽管表示启动状况的状态被存储在外观框架402上,但是如果在目标框架上没有启动对应的应用程序,则通过该应用程序管理器的启动方法将该状态改变为启动状态。
第二实施例
下面将参照附图详细说明根据本发明的第二实施例。注意,第二实施例中的装置和软件的结构与第一实施例中的相同,并将省略其说明。此外,可以在不同的装置中准备外观框架和目标框架。
第一实施例与第二实施例的差别在于当装置500被启动时外观框架402和应用程序管理器的处理。
当装置500被启动,并且外观框架402也被相应启动时,外观框架应用程序组403被初始化。在此情况下,当作为虚拟应用程序的应用程序属性对象的框架标识符被设定时,在不重构该应用程序的情况下,该虚拟应用程序不被再现为外观框架402上的虚拟应用程序。
代替此时禁止再现,在虚拟应用程序的情况下,该应用程序属性对象不被存储在二次存储单元303中,从而获得相同的效果。
另一方面,当通过外观框架402启动应用程序管理器时,正运行在每个目标框架上的应用程序的应用程序标识符列表被获得。通过向将由该应用程序管理器管理的目标框架发送询问来获得该应用程序标识符列表。
通过使用所获得的列表上的应用程序标识符,在外观框架402上生成虚拟应用程序。在此情况下的处理与第一实施例的步骤S806中所说明的处理相同。
这样,可实现目标框架上的应用程序管理,就好像外观框架402上的应用程序被管理。
第三实施例
下面将参照附图详细说明根据本发明的第三实施例。注意,第三实施例中的装置和软件的结构与第一实施例中的相同,并将省略其说明。此外,可在不同的装置中准备外观框架和目标框架。
图12示出第三实施例中使用的应用程序文件的格式。如图12所示,该应用程序文件将运行在包括外观框架402的多个目标框架上的应用程序合并为一个文件。该应用程序文件包括头区域1201和数据存储区域1202。头区域1201包括表示应用程序文件的幻数1211、表示头区域大小的头区域大小1212、以及说明应用程序的各种属性的程序属性说明区域1213。注意,程序属性说明区域1213包括图13所示的表示程序属性的XML数据。
此外,数据存储区域1202被加密,使得只允许由外观框架402管理的密钥来解密。当数据存储区域1202被解密时,其形成一系列程序块1220,作为目标框架的应用程序。每个程序块1220包括该程序块1220的大小1221、程序块标识符1222、目标框架应用程序头区域1223、以及程序数据存档区域1224。目标框架应用程序头区域1223说明在感兴趣的目标框架上执行时所需的属性。程序数据存档区域1224存储将在目标框架上执行的程序数据。
下面使用图14说明第三实施例中安装应用程序时执行的处理。假定外观框架402上的应用程序具有图15所示的ApplicationAttribute对象作为属性。
图14是示出第三实施例中的安装处理的流程图。在步骤S1401,与第一实施例中相同,执行下列处理。也就是说,当响应于操作者的指令接收到应用程序文件520时,外观框架402分析该应用程序文件520的头区域1201中的程序属性说明区域1213中所描述的XML文档。同时,外观框架402解密数据存储区域1202。
与图13所示的程序属性说明例子中的一样,使用“portion”标签来说明每个程序块1220的信息。要执行存储在程序块1220的程序数据存档区域1224中的应用程序的目标框架被说明为该portion标签中的目标属性。当没有设定目标属性时或者指定了外观框架402时,将外观框架402识别为目标框架。当程序块1220的标识符被指定为portion标签的id属性并且与程序块标识符1222进行比较时,对应于目标框架的程序块1220被指定。注意,所有的程序块信息被登记作为程序块列表。
在步骤S1402,使用步骤S1401中生成的程序块列表来处理每个程序块。从该列表中取出要被处理的程序块,并且如果还有待处理的程序块,则流程前进到步骤S1403,以从由程序块信息列表获得的程序块信息中获得目标框架信息。
在步骤S1404中检查在步骤S1403中获得的目标框架信息是否被设定,即,外观框架402是否是目标。如果外观框架402是目标,则流程前进到步骤S1405。在步骤S1405,存储在感兴趣的程序块的程序数据存档数据区域1224中的程序被安装作为外观框架402的应用程序。此时,生成ApplicationAttribute对象来管理所安装的应用程序的应用程序属性。
如果外观框架402不是目标,则流程前进到步骤S1406。在步骤S1406,执行与第一实施例的安装处理中的步骤S804中相同的处理,以获得感兴趣的目标框架的应用程序管理器。从该程序块信息中获得为了获得该应用程序管理器所需的信息。注意,可在不同的装置中准备外观框架402和目标框架。
如果不能获得该应用程序管理器并且返回空,则流程前进到步骤S1407。在步骤S1407,表示没有与被指定为该应用程序的安装目的地的的目标框架相对应的应用程序管理器被登记的警告页被显示在计算机510的Web浏览器上。该警告页通知操作者该安装已经失败。
如果可获得该应用程序管理器,则流程前进到步骤S1408,以在目标框架中安装。更具体来说,该程序块的程序数据存档区域1224中的数据作为输入流被打开,并且以该流作为变量调用该应用程序管理器的安装方法。当完成在该目标框架中的安装时,实现图9中所示的Application接口的对象被返回。该对象包括唯一识别安装在该目标框架中的应用程序的应用程序标识符。可通过调用该Application接口的getApplicationID方法来获得该应用程序标识符。
如果应用程序列表没有被生成,则生成应用程序列表(作为Java的矢量对象)。由于在目标框架中的安装而返回的Application对象被登记在该应用程序列表中。
另一方面,如果在步骤S1402中判断为没有剩余的程序块,则流程前进到步骤S1409。如果在步骤S1409中判断为在步骤S1405中安装了外观框架402上的应用程序,则流程跳到步骤S1411;否则,流程前进到步骤S1410。
在步骤S1410,在外观框架402上生成虚拟应用程序,并生成应用程序信息对象。此时,生成ApplicationAttribute对象以管理应用程序属性。
在步骤S1411,将通过在步骤S1408中安装在目标框架中的应用程序的信息登记的应用程序列表设置在ApplicationAttribute对象的frameworkList字段中。当该应用程序在步骤S1405中被安装在外观框架402中或者在步骤S1410中与虚拟应用程序一起被安装时,生成该ApplicationAttribute对象。
这样,当包括多个目标框架的应用程序的应用程序文件520被指定时,在各个目标框架中的安装被完成。此外,在该外观框架上生成该应用程序信息对象作为这些应用程序的代表。
在第三实施例中,存储在一个应用程序文件520中的程序块作为相关的程序块来管理。然而,可根据相互无关的各个程序块生成虚拟应用程序,并且可将这些虚拟应用程序作为独立的虚拟应用程序来管理。
下面说明安装以外的处理。安装以外的各个处理大致相同,作为代表性的例子,使用图16来说明停止处理。
图16是示出第三实施例中应用程序的停止处理的流程图。与上述安装处理中相同,操作者从计算机510访问外观框架402,以将外观框架402的应用程序组403的管理窗口显示在Web浏览器上。当操作者从所显示的管理窗口选择应用程序并指示进行停止处理时,流程前进到步骤S1601。在步骤S1601,从外观框架应用程序组403中的指定的应用程序中取出ApplicationAttribute对象,并获得该ApplicationAttribute对象的frameworkList字段的内容。此外,从Vector对象中取出FrameworkProgram对象。
如果所有的FrameworkProgram对象都已经被取出,则流程前进到步骤S1602,以在外观框架402的原始应用程序管理中执行应用程序停止处理。
如果还有待取出的FrameworkProgram对象,则流程前进到步骤S1603。在步骤S1603,从在步骤S1601中取出的FrameworkProgram对象中获得作为目标框架标识符的frameworkID字段的值。此外,还获得与通过作为目标框架标识符的frameworkID字段的值选择的目标框架相对应的应用程序管理器。该获得方法与第一实施例中的相同,并将省略其说明。注意,可在不同的装置中准备该外观框架402和目标框架。
然后在步骤S1604中检查是否可获得该应用程序管理器。如果不能获得该应用程序管理器,则生成异常,从而结束处理。如果可获得该应用程序管理器,则流程前进到步骤S1605,以停止正在该目标框架上运行的所指定的应用程序。更具体来说,将存储在FrameworkProgram对象的applicationID字段中的该应用程序标识符指定为关于在步骤S1603中获得的应用程序管理器的变量,以调用停止方法。
如上所述,可对存储在一个应用程序文件520中的不同框架上的应用程序进行生命周期管理。此外,可与外观框架402上的应用程序的生命周期管理同步地进行生命周期管理。
在上述实施例的每一个中,在一个应用程序文件520中存储应用程序是协作的条件。然而,分别安装的应用程序可以在安装之后被分组,以汇集为外观框架402上的应用程序,从而获得相同的效果。
注意,本发明既可以应用于由多个装置(例如,主计算机、接口装置、读取器、打印机等)构成的系统,也可应用于由单个装置(例如,复印件、传真设备等)组成的设备。
本发明的目的还可以通过向该系统或设备提供记录有能实现上述实施例的功能的软件程序的程序代码的存储介质,并且由该系统或装置中的计算机(或CPU或MPU)读出并执行存储在该记录介质中的程序代码来实现。
在这种情形下,从记录介质中读出的程序代码本身实现了上述实施例的功能,并且存储该程序代码的记录介质构成了本发明。
作为用于提供该程序代码的记录介质,例如,可以使用软(floppy)盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、磁带、非易失性存储卡、ROM等。
不仅可以通过计算机执行所读出的程序代码来实现上述实施例的功能,还可以基于该程序代码的指令通过在计算机上运行的OS(操作系统)执行部分或全部的实际处理操作来实现上述实施例的功能。
此外,还可以通过将从该记录介质中读出的程序代码写入插入或连接到计算机的功能扩展板或功能扩展单元的存储器中之后,由设置在该功能扩展板或功能扩展单元中的CPU等执行部分或全部实际处理操作来实现上述实施例的功能。
由于在不脱离本发明的精神和范围的情况下,可做出许多明显不同的实施例,因此应当理解,除了由所附权利要求限定外,本发明不局限于具体实施例。
Claims (16)
1.一种安装方法,其由多个框架中的一个框架执行,所述安装方法包括:
判断步骤,用于在安装应用程序时判断该应用程序要被安装到的框架;以及
安装步骤,用于将所述应用程序安装在所述判断步骤中判断出的框架中。
2.根据权利要求1所述的安装方法,其特征在于,在所述安装步骤中,所述应用程序被安装在所述多个框架中的所述一个框架中。
3.根据权利要求1所述的安装方法,其特征在于,在所述安装步骤中,所述应用程序被安装在所述多个框架中的所述一个框架以外的框架中。
4.根据权利要求1所述的安装方法,其特征在于,所述多个框架由操作系统作为运行于该操作系统上的应用程序来处理。
5.根据权利要求1所述的安装方法,其特征在于,当所述多个框架中的所述一个框架以外的框架上的应用程序被选择时,向该所述多个框架中的所述一个框架以外的框架请求处理。
6.根据权利要求1所述的安装方法,其特征在于,由所述多个框架中的所述一个框架来管理所述多个框架中的所述一个框架以外的框架上的应用程序。
7.根据权利要求1所述的安装方法,其特征在于,在判断为在所述多个框架中的所述一个框架以外的框架中安装所述应用程序的情况下,在所述多个框架中的所述一个框架上生成对应于所述应用程序的应用程序。
8.根据权利要求1所述的安装方法,其特征在于,管理所述多个框架上的分组的应用程序。
9.一种信息处理设备,包括:
判断装置,用于在安装应用程序时判断在多个框架中该应用程序要被安装到的框架;以及
安装装置,用于将所述应用程序安装在由所述判断装置判断出的框架中。
10.根据权利要求9所述的信息处理设备,其特征在于,所述安装装置将所述应用程序安装在如下框架中,所述如下框架是所述多个框架中判断所述应用程序要被安装到的框架的框架。
11.根据权利要求9所述的信息处理设备,其特征在于,所述安装装置将所述应用程序安装在如下框架以外的框架中,所述如下框架是所述多个框架中判断所述应用程序要被安装到的框架的框架。
12.根据权利要求9所述的信息处理设备,其特征在于,所述多个框架由操作系统作为运行于该操作系统上的应用程序来处理。
13.根据权利要求9所述的信息处理设备,其特征在于,当如下框架以外的框架上的应用程序被选择时,由所述如下框架向该所述如下框架以外的框架请求处理,所述如下框架是所述多个框架中判断所述应用程序要被安装到的框架的框架。
14.根据权利要求9所述的信息处理设备,其特征在于,所述信息处理设备还包括管理装置,该管理装置用于管理如下框架以外的框架上的应用程序,所述如下框架是所述多个框架中判断所述应用程序要被安装到的框架的框架。
15.根据权利要求9所述的信息处理设备,其特征在于,所述信息处理设备还包括生成装置,该生成装置用于在判断为在多个框架中的一个框架以外的框架中安装所述应用程序的情况下,在所述多个框架中的所述一个框架上生成与安装在该所述多个框架中的一个框架以外的框架中的所述应用程序相对应的应用程序。
16.根据权利要求9所述的信息处理设备,其特征在于,所述信息处理设备还包括管理装置,该管理装置用于管理所述多个框架上的分组的应用程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005144225 | 2005-05-17 | ||
JP2005-144225 | 2005-05-17 | ||
JP2005144225A JP4455403B2 (ja) | 2005-05-17 | 2005-05-17 | 管理方法及び管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1866214A true CN1866214A (zh) | 2006-11-22 |
CN1866214B CN1866214B (zh) | 2010-12-08 |
Family
ID=36972940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100783897A Active CN1866214B (zh) | 2005-05-17 | 2006-05-17 | 安装方法及设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8782634B2 (zh) |
EP (1) | EP1724680A3 (zh) |
JP (1) | JP4455403B2 (zh) |
KR (1) | KR100871636B1 (zh) |
CN (1) | CN1866214B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782855B (zh) * | 2009-01-15 | 2013-03-20 | 华为技术有限公司 | 一种按配置删除软件的方法和设备 |
CN105453035A (zh) * | 2013-05-29 | 2016-03-30 | 微软技术许可有限责任公司 | 通过在线存储库更新软件组件 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008305021A (ja) | 2007-06-05 | 2008-12-18 | Canon Inc | 情報処理装置及びアプリケーション管理方法 |
US8078649B2 (en) | 2008-04-07 | 2011-12-13 | Installfree, Inc. | Method and system for centrally deploying and managing virtual software applications |
KR101419833B1 (ko) * | 2008-07-18 | 2014-07-16 | 삼성전자주식회사 | 화상형성장치, 서비스 시스템 및 OSGi 기반 서비스설치 방법 |
US9032390B2 (en) * | 2008-07-29 | 2015-05-12 | Qualcomm Incorporated | Framework versioning |
JP5460150B2 (ja) * | 2009-07-06 | 2014-04-02 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及び、プログラム |
JP5359835B2 (ja) * | 2009-12-08 | 2013-12-04 | 住友電気工業株式会社 | 情報処理装置、配布システム及び受信方法 |
US8694981B2 (en) | 2010-11-17 | 2014-04-08 | Apple Inc. | Shared resource dependencies |
GB2501287A (en) | 2012-04-18 | 2013-10-23 | Ibm | Installing applications at selected runtime instances |
JP6066647B2 (ja) * | 2012-09-27 | 2017-01-25 | キヤノン株式会社 | デバイス装置、その制御方法、およびそのプログラム |
US9934482B2 (en) * | 2013-05-24 | 2018-04-03 | Sap Se | Content maintenance optimization |
JP6876234B2 (ja) * | 2016-09-26 | 2021-05-26 | 富士フイルムビジネスイノベーション株式会社 | 画像形成装置及びプログラム |
CN106844106B (zh) * | 2017-02-06 | 2021-02-26 | 四川秘无痕科技有限责任公司 | 一种解析黑莓手机备份文件的方法 |
US10558454B2 (en) | 2018-06-04 | 2020-02-11 | Palantir Technologies Inc. | Constraint-based upgrade and deployment |
US10521220B1 (en) | 2018-12-18 | 2019-12-31 | Palantir Technologies Inc. | Systems and methods for coordinating the deployment of components to defined user groups |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845090A (en) * | 1994-02-14 | 1998-12-01 | Platinium Technology, Inc. | System for software distribution in a digital computer network |
US6301707B1 (en) * | 1997-09-30 | 2001-10-09 | Pitney Bowes Inc. | Installing software based on a profile |
JP2000259585A (ja) | 1999-03-08 | 2000-09-22 | Toshiba Corp | システムアプリケーション管理方式とその管理方式を実行するためのプログラムを記録した記録媒体 |
US6966060B1 (en) * | 1999-07-02 | 2005-11-15 | Microsoft Corporation | Method and system for remote client installation |
US6959330B1 (en) * | 2000-05-16 | 2005-10-25 | Palmsource, Inc. | Sync-time read only memory image binding for limited resource devices |
US7240336B1 (en) * | 2000-07-25 | 2007-07-03 | Sci Systems, Inc. | Interpretive simulation of software download process |
US20030149677A1 (en) | 2000-08-04 | 2003-08-07 | Bingham Paris E. | Knowledge automation engine for product knowledge management |
US7707571B1 (en) * | 2001-01-05 | 2010-04-27 | New Boundary Technologies Inc. | Software distribution systems and methods using one or more channels |
US20040015961A1 (en) * | 2001-03-19 | 2004-01-22 | International Business Machines Corporation | Method and apparatus for automatic prerequisite verification and installation of software |
JP2002287990A (ja) * | 2001-03-26 | 2002-10-04 | Canon Inc | アプリケーション管理装置、アプリケーション管理方法、記憶媒体及びプログラム |
US7152109B2 (en) * | 2001-04-20 | 2006-12-19 | Opsware, Inc | Automated provisioning of computing networks according to customer accounts using a network database data model |
US6976251B2 (en) | 2001-05-30 | 2005-12-13 | International Business Machines Corporation | Intelligent update agent |
US20030037327A1 (en) * | 2001-08-15 | 2003-02-20 | International Business Machines Corporation | Run-time rule-based topological installation suite |
US7415270B2 (en) | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US20030163807A1 (en) * | 2002-02-27 | 2003-08-28 | International Business Machines Corporation | Weighted selection of target systems for distributed software installation |
US20030172175A1 (en) | 2002-03-11 | 2003-09-11 | Mccormack Jonathan I. | System for standardizing updates of data on a plurality of electronic devices |
US7178144B2 (en) * | 2002-04-23 | 2007-02-13 | Secure Resolutions, Inc. | Software distribution via stages |
US20040002943A1 (en) * | 2002-06-28 | 2004-01-01 | Merrill John Wickens Lamb | Systems and methods for application delivery and configuration management of mobile devices |
US7100159B2 (en) * | 2002-11-04 | 2006-08-29 | Hewlett-Packard Development Company, L.P. | Method, apparatus and means for silently customizing software within a multi-platform environment |
KR100493883B1 (ko) * | 2003-01-02 | 2005-06-10 | 삼성전자주식회사 | 애플리케이션 관리 시스템 및 방법 |
JP2004318459A (ja) | 2003-04-16 | 2004-11-11 | Alpine Electronics Inc | 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム |
US7549149B2 (en) * | 2003-08-21 | 2009-06-16 | International Business Machines Corporation | Automatic software distribution and installation in a multi-tiered computer network |
US7519814B2 (en) * | 2003-09-15 | 2009-04-14 | Trigence Corp. | System for containerization of application sets |
US7523116B2 (en) * | 2003-10-30 | 2009-04-21 | International Business Machines Corporation | Selection of optimal execution environment for software applications |
CA2557111C (en) * | 2004-02-27 | 2012-12-11 | Research In Motion Limited | System and method for building mixed mode execution environment for component applications |
US7366589B2 (en) * | 2004-05-13 | 2008-04-29 | General Motors Corporation | Method and system for remote reflash |
US8117607B2 (en) * | 2004-08-18 | 2012-02-14 | International Business Machines Corporation | Administration of kernel extensions |
US7987459B2 (en) * | 2005-03-16 | 2011-07-26 | Microsoft Corporation | Application programming interface for identifying, downloading and installing applicable software updates |
-
2005
- 2005-05-17 JP JP2005144225A patent/JP4455403B2/ja active Active
-
2006
- 2006-04-25 US US11/410,111 patent/US8782634B2/en active Active
- 2006-04-26 EP EP06113161A patent/EP1724680A3/en not_active Withdrawn
- 2006-05-17 KR KR1020060044085A patent/KR100871636B1/ko active IP Right Grant
- 2006-05-17 CN CN2006100783897A patent/CN1866214B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782855B (zh) * | 2009-01-15 | 2013-03-20 | 华为技术有限公司 | 一种按配置删除软件的方法和设备 |
CN105453035A (zh) * | 2013-05-29 | 2016-03-30 | 微软技术许可有限责任公司 | 通过在线存储库更新软件组件 |
US10318273B2 (en) | 2013-05-29 | 2019-06-11 | Microsoft Technology Licensing, Llc | Updating software components through online stores |
CN105453035B (zh) * | 2013-05-29 | 2019-08-06 | 微软技术许可有限责任公司 | 用于接收对存储在计算机系统处的软件组件的更新的方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1724680A3 (en) | 2009-01-21 |
EP1724680A2 (en) | 2006-11-22 |
JP4455403B2 (ja) | 2010-04-21 |
US8782634B2 (en) | 2014-07-15 |
KR20060119791A (ko) | 2006-11-24 |
JP2006323500A (ja) | 2006-11-30 |
US20070234349A1 (en) | 2007-10-04 |
CN1866214B (zh) | 2010-12-08 |
KR100871636B1 (ko) | 2008-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1866214A (zh) | 安装方法及设备 | |
CN1280705C (zh) | 打印控制系统、信息处理装置、功能提供装置 | |
CN1129841C (zh) | 控制输出的方法和装置 | |
CN1246776C (zh) | 用于管理网络文件系统的方法 | |
CN1291313C (zh) | 操作系统的自动安装和配置的系统和方法 | |
CN1304968C (zh) | 服务处理装置、服务处理方法 | |
CN1874404A (zh) | 图像处理系统和图像处理装置 | |
CN1243317C (zh) | 信息提供系统和识别信息添加单元 | |
CN1300673C (zh) | 成像装置和使该成像装置启动应用程序的方法 | |
CN101042706A (zh) | 文档搜索设备、文档管理系统、文档搜索系统和方法 | |
CN1282046C (zh) | 图像形成设备、打包方法 | |
CN1573701A (zh) | 分布式构建环境中的软件映像创建 | |
CN1534461A (zh) | 用于动态增加软件部件以便扩展系统过程功能的系统结构和相关方法 | |
CN1839413A (zh) | 创建卷映像 | |
CN1794778A (zh) | 图像处理装置和图像处理方法 | |
CN1959642A (zh) | 信息处理方法、信息处理设备和信息处理系统 | |
CN101060441A (zh) | 控制软件版本升级的方法、设备及系统 | |
CN1838061A (zh) | 打印装置,图像处理装置,以及相关控制方法 | |
CN1629792A (zh) | 图像处理装置、控制方法、及存储媒体与程序 | |
CN1298503A (zh) | 分布式系统中的动态查找服务 | |
CN1749990A (zh) | 图像处理装置和记录了实现该装置功能的程序的记录介质 | |
CN1716249A (zh) | 延迟取出用户定义类型的指定成员的系统和方法 | |
CN1922584A (zh) | 信息处理器件、信息处理方法和计算机程序 | |
CN1747387A (zh) | 信息处理装置及信息处理方法 | |
CN1700201A (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 |