CN100451964C - 管理软件模块的管理方法和信息处理器 - Google Patents

管理软件模块的管理方法和信息处理器 Download PDF

Info

Publication number
CN100451964C
CN100451964C CNB2005101277934A CN200510127793A CN100451964C CN 100451964 C CN100451964 C CN 100451964C CN B2005101277934 A CNB2005101277934 A CN B2005101277934A CN 200510127793 A CN200510127793 A CN 200510127793A CN 100451964 C CN100451964 C CN 100451964C
Authority
CN
China
Prior art keywords
software module
platform
attribute
services package
different processes
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.)
Expired - Fee Related
Application number
CNB2005101277934A
Other languages
English (en)
Other versions
CN1786915A (zh
Inventor
牛久丰彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN1786915A publication Critical patent/CN1786915A/zh
Application granted granted Critical
Publication of CN100451964C publication Critical patent/CN100451964C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

一种管理软件模块的管理方法和信息处理器。在启动软件模块时参考该软件模块的属性,并且在所参考的属性为不同进程生成属性的情况下,启动该软件模块,以便在独立生成的进程中执行它,其中该不同进程生成属性表示将在不同于所安装的进程的进程中执行该软件模块。

Description

管理软件模块的管理方法和信息处理器
技术领域
本发明涉及一种具有由多个软件模块构成的应用程序的信息处理器及其方法。
背景技术
Java(Java是包括编程语言的软件技术,其为太阳微系统公司(Sun Microsystems Inc.)在美国的注册商标)具有程序可移植性,并提出一种利用该可移植性提供可扩展的应用程序的技术(USP 6349408和OSGi服务平台规范发行版2,OSGi,2001)。根据该技术,在一个应用程序上执行程序,因此,与扩展应用程序的单元中的功能的情况相比,减少了所需硬件资源的数量。
在OSGi服务平台(以下简称为OSGi)中,将添加到应用程序中的软件模块称为服务包(bundle),并定义用来管理软件模块的生命周期例如服务包的安装/启动/结束/更新/卸载的规范。而且,OSGi还具有以下功能:当应用程序停止时,存储正在被执行的每个服务包的状态;以及当重新启动应用程序时,使每个服务包的状态返回到停止时的状态。
传统地,从操作系统管理软件的角度来看,软件模块被当作一个应用程序。因此,为了防止一个软件模块影响其它软件模块的问题,不能使用最初提供给操作系统的软件分离/执行功能(在不同空间中作为进程执行软件的功能)。因此,很有可能由于执行高级处理而产生问题的可能性很大的软件模块会产生导致整个应用程序出错的问题。
由于设备的硬件资源是充裕的,因此可能将更强的操作系统引入设备以同时执行多个应用程序。因此,可能通过执行作为独立应用程序(进程)的附加功能来解决问题。
然而,用于扩展一个应用程序的功能的过程和用于扩展作为独立应用程序的功能的过程相互之间是不同的。因此,有多个用来管理相同的扩展功能的生命周期的过程。而且,在只通过添加应用程序来添加功能的情况下,存在用户可能由于操作方法的改变而弄错的问题。而且,还存在已购买或开发的用于功能扩展的软件模块根本不能使用,从而牺牲软件资产的继承性的问题。
发明内容
本发明是考虑到上述问题而做出的,本发明的特征是提供一种装置及其方法,该装置能够将指定的应用程序作为框架中的不同进程来执行,其中在该框架中可以在一个进程中执行多个应用程序。
根据本发明的一个方面的信息处理方法具有以下步骤,即,
一种用于管理被安装在平台中的软件模块的管理方法,其中该平台在不同进程中执行,该方法包括以下步骤:
参考步骤,用于当启动软件模块时,参考该软件模块的属性;以及
启动步骤,用于在参考步骤中所参考的属性为不同进程生成属性的情况下,以在独立生成的进程的平台上执行的方式启动该软件模块,其中该不同进程生成属性表示将在与安装该软件模块的平台的进程不同的进程的平台上执行该软件模块。
根据本发明的一个方面的信息处理器具有以下结构,即,具有:
参考装置,用于当启动安装在平台中的软件模块时,参考该软件模块的属性,其中该平台在不同进程中执行;以及
启动装置,用于在由参考装置所参考的属性为不同进程生成属性的情况下,以在独立生成的进程的平台上执行的方式启动该软件模块,其中该不同进程生成属性表示将在与安装该软件模块的平台的进程不同的进程的平台上执行该软件模块。
通过以下结合附图的说明,本发明的其它特征、目的、和优点是显而易见的,其中,相同的附图标记在整个附图中表示相同或相似的部分。
附图说明
包含在说明书中并构成说明书一部分的附图,示出了本发明的实施例,并与说明书一起用来解释本发明的原理。
图1是示出根据本发明实施例的计算机设备的结构的框图;
图2使用分层结构示出根据该实施例由计算机设备的控制部分所执行的软件结构;
图3是示出根据该实施例当在计算机设备中安装服务包时所执行的处理的流程图;
图4A示出当将被安装的服务包文件没有加密时的形式,图4B示出说明Jar文件的属性的清单(manifest)的例子;
图5示出根据该实施例的服务包管理对象的结构;
图6是示出根据该实施例的计算机设备中的服务包启动处理的流程图;
图7示出说明在该实施例中所执行的交互式操作的视图;
图8是示出根据该实施例的服务包停止处理的流程图;
图9是示出根据本发明第一实施例当卸载服务包时所执行的处理的流程图;以及
图10是示出根据本发明第二实施例的安装处理的流程图。
具体实施方式
现在将参考附图来详细说明本发明的优选实施例。应当注意,下面的实施例不限制权利要求中所阐明的本发明,并且实施例中所说明的特征的全部组合不是获得本发明的必要手段。
第一实施例
图1是示出根据本发明实施例的计算机设备的结构的框图,该计算机设备是信息处理器例如PC或工作站。
在该图中,控制器1010具有CPU,以控制整个设备的操作。主存储单元1020是由RAM等所构成的存储器,用于临时存储各种数据或由控制器1010执行的软件(例如,后面将说明的图3、6、8、和9中的流程图所表示的软件)。辅助存储单元1030是用于永久存储各种数据或由控制器1010执行的软件的存储器,它由例如硬盘来构成。输入单元1040具有:键盘、鼠标(指示设备)、触摸屏、扫描仪等,用于输入用户指令、字符数据、或图像数据。显示器1050具有显示面板例如液晶面板,用于向操作者显示指令、数据内容等。网络接口单元1060通过网络例如LAN执行与其它设备的通信。总线1070是系统总线,用于连接上述单元,并在这些单元之间交换数据和控制信号。
图2使用分层结构示出根据该实施例由计算机设备的控制器1010执行的软件的结构。
在图2中,操作系统(OS)2010管理应用程序软件和硬件资源,并在该OS 2010上执行各种软件。附图标记2020表示实现OSGi服务平台规范的平台,该规范是以Java语言编写、并能扩展软件模块的应用程序。Java VM(用于解释和执行Java语言的虚拟机)2030是专用于Java程序的虚拟机,该Java程序用于执行平台2020。附图标记2040表示一组服务包,其是用Java语言编写的软件模块(以下称为服务包),并将在平台2020上执行。附图标记2050表示运行在操作系统2010上的一组其它应用程序。操作系统2010将Java VM 2030视为与属于其它应用程序组2050的应用程序完全相同的应用程序来处理。
图3是示出根据本实施例当将服务包2040安装在计算机设备中时所执行的处理的流程图。
图4A示出当将被安装的服务包文件没有加密时的形式,图4B示出说明Jar文件的属性的清单的例子。
服务包文件4010是Java语言的Jar文件格式。该Jar文件是ZIP档案文件,并由多列文件项4020构成。每个文件项4020具有:表示幻数(magic number)4030的字段,该幻数4030表示文件项的开始;文件项大小4040;文件名大小4050;文件名4060;以及文件内容4070。在图4A中,为了简化说明,简化并示出ZIP文件的规范。
该Jar文件的各种属性被称作清单,并被存储在文件项中。如图4B所示,该清单的文件名为“META-INF/MANIFEST.MF”。在该清单中,说明了属性名称和与属性名称成对的属性值。
在图4B中,“Bundle-Activator”定义安装后将被首先启动的Java类的名称。“Bundle-Classpath”表示用于搜索该类的Jar文件的搜索顺序。“NeedProcess”表示该服务包的执行将由不同的进程来执行。“Import-Package”定义当使用包时从不同服务包输出的包。“Import-Service”表示将不同服务包的部分功能提供给其它服务包。
接着,将参考图3中的流程图来说明根据该实施例在计算机设备中安装服务包2040的处理。
首先,在步骤S1,判断从存储指定要被安装的文件的同一位置安装的服务包是否存在,即,服务包文件是否已经被安装。如果存在,则处理结束。否则,程序进入步骤S2。在步骤S2,将服务包文件安装在平台2020上,并解密所安装的加密的服务包文件4010。用于解密的加密密钥由平台2020作为专用密钥来管理。
接着,在步骤S3,将在步骤S2所解密的服务包文件4010存储在用于管理服务包的目录中。接着,在步骤S4,生成用于管理平台2020上的服务包的服务包管理对象。
图5示出根据该实施例的服务包管理对象的结构。
在该图中,服务包标识符5010是用于识别每个服务包的标识符。位置5020是示出该服务包是从何处安装的、并由URL来表示的信息。状态5030说明该服务包的状态。例如,如果安装了该服务包,则设置为“INSTALLED”,在执行该服务包期间,设置为“ ACTIVE”。属性列表5040说明该服务包的属性。即,存储图4B所示的清单文件中所述的属性。进程标识符5050是当该服务包被作为不同进程执行时给出的标识符。所述不同进程是指将在不同于正在执行已安装该软件模块的应用程序的进程的进程上执行软件模块。
然后,程序进入图3中的步骤S5,服务包文件4010的清单中所述的属性被作为哈希表实例设置在步骤S4生成的服务包管理对象的属性列表5040中。使用该哈希表实例来注册所有的属性名称,以便可以使用属性名称作为关键字来执行搜索。在这种情况下,对服务包管理对象的状态5030设置表示已经安装了该服务包的状态值(“INSTALLED”)。
通过上述处理,安装了服务包2040。这里,将被作为不同进程执行的服务包的安装处理与将在平台2020上执行的服务包的安装处理仅在以下点上不同。即,这两个服务包相互不同之处仅在于它们是否具有用来指定执行将在不同的进程中进行的“NeedProcess”属性。
图6是示出根据该实施例的计算机设备中的服务包启动处理的流程图。
首先,在步骤S11,判断所指定的服务包的服务包管理对象的状态5030是否为“ACTIVE”(执行期间)。如果状态5030为“ACTIVE”,则该服务包已经被执行,因此处理结束。如果状态5030不是“ACTIVE”,则程序进入步骤S12,判断是否在服务包管理对象的属性列表5040中设置了指示执行将在不同进程中进行的“NeedProcess”。这里,由于属性列表5040作为哈希表实例来配置,因此可以通过指定“NeedProcess”属性的名称作为关键字来获得“NeedProcess”属性值。如果设置了表示执行将在不同进程中进行的“NeedProcess”属性,则程序进入步骤S13。否则,程序进入步骤S16。
在步骤S16,由于将被启动的服务包是平台2020上的正常服务包,因此对平台2020上的服务包执行启动处理。当完成该启动处理时,对服务包管理对象的状态5030设置表示执行正在进行的状态值“ACTIVE”。将平台2020本身的进程标识符设置为服务包管理对象的进程标识符5050。
在将执行作为不同进程来进行的情况下,在步骤S13,平台2020检查在步骤S12获得的“NeedProcess”属性值,并判断在将被启动的服务包和平台2020之间是否需要交互式操作。对需要交互式操作的服务包,必须将“Interactive”定义为“NeedProcess”属性值。因此,如果被指定为“NeedProcess”属性的是除“Interactive”之外的属性,则平台2020认为不需要交互式操作,处理进入步骤S15,在该步骤中,服务包被作为不同的进程启动。将参考图7来详细说明。
另一方面,如果在步骤S13判定需要交互式操作,则程序进入步骤S14,在该步骤形成用于交互的通信路径,并将服务包作为不同的进程启动。
图7示出在该实施例中将执行的交互式操作的视图。
在该图中,假定平台A 7010为在上述安装处理中已接收到安装指令的平台。附图标记7020表示用于执行平台A 7010的JavaVM A(Java虚拟机A)。平台B 7030是在将表示需要交互式操作的“Interactive”指定为平台A 7010上的服务包的“NeedProcess”属性值的情况下,由所指定的平台A 7010生成的用于交互操作的平台。附图标记7040表示用于执行平台B 7030的Java VM B(Java虚拟机B)。尽管服务包7050被安装在平台A 7010上,但是它在不同的进程中被执行,并被指定成在执行期间和平台A 7010协同工作。
将服务包7070作为与用于平台A 7010的进程不同的进程来执行,并作为在执行期间不需要与平台A 7010协同工作的服务包而被指定和安装。附图标记7060表示用于执行服务包7070的JavaVM C(Java虚拟机C)。
在这种情况下,在如上所述的步骤S13,将服务包7050作为与用于平台A 7010上的服务包的进程不同的进程来执行,并识别为正被请求执行与平台A 7010的交互式操作。
在这种情况下,如果还没有构造由平台B 7030所使用的执行环境,则构造该执行环境。在所构造的执行环境中,将服务包7050的服务包标识符5010以将其作为关键字的方式存储在平台A 7010中。
而且,为了再现当停止平台B 7030时所示的平台B 7030的状态,在重新启动平台B 7030的情况下,存储表示安装了什么服务包以及在平台B 7030停止时每个服务包的状态的信息。通过只复制所存储的用于重新启动的信息以及新创建其它信息,可以创建平台B 7030的执行环境。然后,改变所复制的用于重新启动的信息,并且只留下关于服务包7050的信息,而删除关于其它服务包的所有信息。即,生成用于仅使服务包7050被安装和执行的信息。利用该信息,平台B 7030与Java VM B 7040被一起启动,其中平台B 7030从平台A 7010的角度来看是独立平台。从而,仅安装和实现服务包7050的独立平台B 7030被启动。
在OSGi中,用于从服务包来访问平台的接口被定义为“Bundle Context”,用于从其它服务包或平台来访问服务包的接口被定义为“Bundle”。
通过基于这两个接口而改变的接口来执行平台A 7010和平台B 7030之间的交互,以便可使用用于Java进程之间的通信的技术RMI(远程方法调用)。从而,管理在平台B 7030上执行的服务包7050,如同在平台A 7010上执行它一样。
在OSGi规范中,还定义了用于将服务包的部分功能提供给其它服务包的服务功能。该服务功能将用于该服务的接口定义为用于Java的接口,并将用该Java接口实现的服务对象用注册表(registry)进行注册。而且,该服务功能使用该Java接口作为关键字在注册表中进行搜索以接收服务对象,并利用该服务。
在该实施例中,由在不同进程中执行的服务包提供的服务或者由在不同进程中执行的服务包所利用的服务执行进程之间的通信。因此,设置这样的限制:只以用以实现远程接口并且被定义为使所有方法都能够引起Remote Exception的接口为目标。
作为服务包管理对象的进程标识符5050,设置识别所启动的平台B 7030的进程的标识符。
在图7中,服务包7070在图6中的步骤S12被判定将在不同进程中执行,而在步骤S13被判定无需与平台A 7010进行交互。在启动服务包7070的情况下,用于启动平台A 7010的类路径被假定为该类路径,其中向平台A 7010添加了构成服务包7070的Jar文件。然后,从服务包管理对象的属性列表5040获取被指定为“Bundle-Activator”属性的类。然后,通过将所获取的类指定为入口类(entry class)并启动Java VM C 7060,来启动服务包7070。在这种情况下,在被指定为“Bundle-Activator”的类中,必须定义具有以下标记的方法。
public static void main(String[]args)
在该实施例中,假定用Java语言来编写服务包7070。然而,只要是可由操作系统2010来执行的格式,可以不用Java语言来编写。在这种情况下,Jar文件常常不能用作可执行的服务包文件,但可能在作为服务包安装的Jar文件中包括可执行的文件,并将该可执行的文件从Jar文件中取出,并在执行时执行它。
将所生成的进程标识符设置为服务包管理对象的进程标识符5050。
可如上所述来启动安装在平台上的服务包。
接着,将说明当停止服务包时所执行的处理。
图8是示出根据该实施例的服务包停止处理的流程图。
首先,在步骤S21,判断服务包管理对象的状态5030是否为“ACTIVE”(执行期间)。如果不是“ACTIVE”,则假定服务包管理对象已经停止,并结束处理。如果是“ACTIVE”,则程序进入步骤S22,在该步骤判断是否在服务包管理对象的属性列表5040中设置了“NeedProcess”属性。如果设置了“NeedProcess”属性,则程序进入步骤S23,否则,程序进入步骤S26。
在步骤S26,由于要被停止的服务包是正常平台2020上的服务包2040(图2),因此对平台2020上的服务包执行停止处理。当该停止处理结束时,在服务包管理对象的状态字段5030中设置表示该服务包正被停止的状态值“INSTALLED”。之后,处理结束。
同时,在步骤S23,已接收到停止指令的平台检查在步骤S22所获得的“NeedProcess”属性值,以判断在正被执行的服务包和平台之间是否需要交互式操作。如果需要交互式操作,则程序进入步骤S24,否则,程序进入步骤S25。在步骤S24,已接收到停止指令的平台(在图7的例子中为平台A 7010)通过服务包管理对象的进程标识符5050来识别所指定的服务包已经被启动的平台(在图7的例子中为平台B 7030)。然后,它指示所识别出的平台执行平台关闭处理。在该平台关闭处理中,运行在该平台上的服务包的状态被存储在辅助存储器1030中,以便在重新启动时可以恢复该状态,停止该平台,然后程序进入步骤S25。在步骤S25,被作为服务包管理对象的进程标识符5050而说明的进程标识符被用来请求操作系统2010结束由该进程标识符所识别的进程。然后,程序进入步骤S26,在该步骤对平台2020上的服务包执行停止处理。如上所述执行该服务包停止处理。
最后,将说明当卸载服务包时所执行的处理。
图9是示出当卸载服务包时所执行的处理的流程图。
首先,在步骤S31,通过检查服务包管理对象的状态5030是否为“ ACTIVE”,来判断所指定的服务包是否已经被停止。如果为状态5030所设置的状态不是“ACTIVE”,则判定该服务包已经被停止,程序进入步骤S33。然而,如果该服务包正在被执行,则程序进入步骤S32,在该步骤执行参考图8所述的服务包停止处理,然后程序进入步骤S33。
在步骤S33,判断在服务包管理对象的属性列表5040中是否设置了“NeedProcess”属性。如果设置了“NeedProcess”属性,则程序进入步骤S34。否则,程序进入步骤S36。在步骤S34,已接收到卸载指令的平台检查在步骤S33获得的“NeedProcess”属性值,以判断在所指定的服务包和平台之间是否需要交互式操作。如果需要交互式操作,则程序进入步骤S35。否则,程序进入步骤S36。在步骤S35,删除在启动时为平台(在图7的例子中为平台B7030)生成的执行环境,然后程序进入步骤S36,在该步骤,在已接收到卸载指令的平台上执行服务包的正常卸载处理。在这种情况下,删除与该服务包有关的所有资源例如在安装时所生成的文件。如上所述来执行该服务包卸载处理。
因此,当不同进程中的执行被指定为服务包的属性时,可以使服务包在不同进程中执行,以及可以借助于可扩展的应用程序进行管理。
第二实施例
接着,将说明本发明的第二实施例。
该实施例示出了一种方法,该方法即使没有将应用程序安装在平台上,而是作为可执行的应用程序直接安装在操作系统2010上,也能够在该平台上管理该应用程序。计算机设备的结构、软件结构、数据格式等与上述第一实施例的相同,因此,将省略其说明。
图10是示出根据本发明第二实施例的安装处理的流程图,用于执行该处理的程序被存储在主存储器1020中,并在控制器1010的控制下执行该程序。
首先,在步骤S41,判断从与存储指定要被安装的文件的位置相同的位置安装的服务包是否存在。如果该服务包存在,则处理结束。否则,程序进入步骤S42,在该步骤解密将被安装的数据。用于解密的加密密钥被存储在平台中。接着,在步骤S43,判断存储指定将被安装的文件的存储位置。由于该存储位置是通过URL来指定的,因此通过检查关于该URL的主信息能判断该存储位置是否在通过网络连接的装置上。在某些情况下,将被安装的服务包的数据可以不是作为文件名而是作为数据流来移交。在这种情况下,识别出该数据不存在于相同装置内。如果在步骤S43判定该数据存在于相同装置内,则程序进入步骤S44。否则,程序进入步骤S45。
在步骤S44,判断所指定的文件是否是服务包文件。这里,如果该文件是ZIP文件,清单文件项存在,并且服务包特有的清单头(manifest header)存在,则该文件被识别为服务包文件。然后,如果判定该文件为服务包文件,则程序进入步骤S45。否则,程序进入步骤S48。
在步骤S45,将解密后的服务包文件存储在接收到安装指令的平台存储用于服务包管理的服务包文件的目录中。接着,在步骤S46,生成作为正常服务包的服务包管理对象。在这种情况下,状态5030被设置为“INSTALLED”。然后程序进入步骤S47。
另一方面,如果在步骤S44该文件不是服务包文件,则程序进入步骤S48,在该步骤,在服务包管理对象的属性列表5040中设置“NeedProcess”属性,以便其将表示可在操作系统2010上执行该服务包的“Native”作为属性值。从而,在不与已接收到安装指令的平台交互的不同进程中执行目标服务包。然后处理进入步骤S47。在步骤S47,已接收到安装指令的平台从在步骤S46或步骤S48创建的服务包管理对象来创建服务包对象,并存储该服务包对象以便其可被用于服务包管理。启动处理、结束处理、以及服务包处理的卸载与上述第一实施例中的相同。
因此,可能在平台A 7010上管理为操作系统2010安装的应用程序。
已经详细说明了本发明的实施例。本发明可应用于由多个设备构成的系统或可应用于由单个设备构成的装置。
包括以下情况:通过将用于实现上述实施例的功能的软件程序直接或远程地提供给系统或装置,并通过该系统或装置的计算机来读取并执行所提供的程序代码,来实现本发明。在这种情况下,只要提供程序的功能,形式不局限于程序。因此,安装在计算机上以由计算机实现本发明的功能和处理的程序代码本身也实现了本发明。即,本发明包括用于实现本发明的功能和处理的计算机程序本身。在这种情况下,只要提供程序的功能,该程序可以是任何形式,例如目标代码、由解释程序执行的程序、或向操作系统提供的脚本数据。
作为用来提供该程序的存储介质有:例如软盘
Figure C20051012779300171
、硬盘、光盘、磁光盘、MO、CD-ROM、CD-R、CD-RW、磁带、非易失型存储卡、ROM、以及DVD(DVD-ROM和DVD-R)等。另外,作为提供该程序的另一方法,还可能通过使用客户计算机的浏览器连接到因特网的网页,从该网页将本发明的计算机程序或包括自动安装功能的压缩文件下载到存储介质例如硬盘上。还可能将构成本发明的程序的程序代码分成多个文件,以从不同网页下载每个文件。即,本发明的权利要求也覆盖使多个用户能够下载实现本发明的功能和处理的程序文件的WWW服务器。
而且,还可以加密本发明的程序,将其存储在存储介质例如CD-ROM上并将该CD-ROM分发给用户,以使满足预定条件的用户能够通过因特网从网页下载用于解密的密钥信息,使用该密钥信息来执行所加密的程序,将该程序安装在计算机中,并实现该程序。
而且,除了通过由计算机执行所读取的程序来实现上述实施例的功能的情况之外,通过运行在计算机上的操作系统等基于该程序的指令执行部分或全部实际处理,也可以实现上述实施例的功能。
而且,通过设置在插入计算机中的功能扩展板或与计算机连接的功能扩展单元上的CPU等,基于从存储介质中读取并被写入设置在功能扩展板或功能扩展单元上的存储器中的程序的指令,执行部分或全部实际处理,也可以实现上述实施例的功能。
尽管基于优选实施例说明了本发明,但是本发明不局限于这些实施例,在权利要求书范围内,可能做出各种改变。

Claims (8)

1.一种用于管理软件模块的管理方法,其中该软件模块被安装在平台中,其中该平台在不同进程中执行,该方法包括以下步骤:
参考步骤,用于在启动软件模块时参考该软件模块的属性;以及
启动步骤,用于在所述参考步骤中所参考的属性为不同进程生成属性的情况下,以在独立生成的进程的平台上执行的方式启动该软件模块,其中该不同进程生成属性表示将在与安装该软件模块的平台的进程不同的进程的平台上执行该软件模块。
2.根据权利要求1所述的用于管理软件模块的管理方法,其特征在于,还包括设置步骤,用于在安装了该软件模块的情况下,设置该软件模块的属性。
3.根据权利要求1所述的用于管理软件模块的管理方法,其特征在于,在所述参考步骤中所参考的属性为进程间交互属性的情况下,使安装该软件模块的进程的平台与将在不同进程的平台上启动的软件模块交互,其中该进程间交互属性表示安装该软件模块的进程的平台和在独立生成的进程的平台上执行的软件模块将相互交互。
4.根据权利要求1所述的用于管理软件模块的管理方法,其特征在于,还包括指定步骤,用于对在与安装软件模块的平台不同的平台上安装的应用程序,指定作为在不同进程中执行的软件模块的属性,其中安装软件模块的所述平台管理如下应用程序:所述应用程序的属性被指定为安装软件模块的所述平台上的软件模块。
5.一种信息处理器,包括:
参考装置,用于当启动安装在平台中的软件模块时,参考该软件模块的属性,其中该平台在不同进程中执行;以及
启动装置,用于在由所述参考装置所参考的属性为不同进程生成属性的情况下,以在独立生成的进程的平台上执行的方式启动该软件模块,其中该不同进程生成属性表示将在与安装该软件模块的平台的进程不同的进程的平台上执行该软件模块。
6.根据权利要求5所述的信息处理器,其特征在于,还包括设置装置,用于在安装了该软件模块的情况下,设置该软件模块的属性。
7.根据权利要求5所述的信息处理器,其特征在于,在由所述参考装置所参考的属性为进程间交互属性的情况下,所述启动装置使安装该软件模块的进程的平台与将在不同进程的平台上启动的软件模块交互,其中该进程间交互属性表示安装该软件模块的进程的平台和在独立生成的进程的平台上执行的软件模块将相互交互。
8.根据权利要求5所述的信息处理器,其特征在于,还包括指定装置,用于对将在与安装软件模块的平台不同的平台上安装的应用程序,指定作为在不同进程中执行的软件模块的属性,其中安装软件模块的所述平台管理如下应用程序:所述应用程序的属性被指定为安装软件模块的所述平台上的软件模块。
CNB2005101277934A 2004-12-07 2005-12-07 管理软件模块的管理方法和信息处理器 Expired - Fee Related CN100451964C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004354696 2004-12-07
JP2004354696A JP4717426B2 (ja) 2004-12-07 2004-12-07 情報処理装置及びその方法

Publications (2)

Publication Number Publication Date
CN1786915A CN1786915A (zh) 2006-06-14
CN100451964C true CN100451964C (zh) 2009-01-14

Family

ID=35695882

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101277934A Expired - Fee Related CN100451964C (zh) 2004-12-07 2005-12-07 管理软件模块的管理方法和信息处理器

Country Status (4)

Country Link
US (1) US8418169B2 (zh)
EP (1) EP1669866A3 (zh)
JP (1) JP4717426B2 (zh)
CN (1) CN100451964C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283991B1 (en) * 1999-03-11 2007-10-16 Microsoft Corporation Caching system for path search optimization
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
JP4982249B2 (ja) * 2006-12-22 2012-07-25 株式会社日立製作所 運用整合性維持方法、システム及びプログラム
US8271864B2 (en) * 2007-07-10 2012-09-18 Anoto Ab Electronic representations of position-coded products in digital pen systems
US8438567B2 (en) 2007-11-07 2013-05-07 Ricoh Company, Ltd. Information processing device and image processing apparatus
KR101419833B1 (ko) * 2008-07-18 2014-07-16 삼성전자주식회사 화상형성장치, 서비스 시스템 및 OSGi 기반 서비스설치 방법
JP5293238B2 (ja) * 2009-02-03 2013-09-18 株式会社リコー 情報処理装置、画像形成装置及びプログラムインストール方法
JP5359835B2 (ja) * 2009-12-08 2013-12-04 住友電気工業株式会社 情報処理装置、配布システム及び受信方法
EP2549380B1 (en) 2010-03-16 2018-06-13 Panasonic Intellectual Property Management Co., Ltd. Information processing device, virtual machine generation method, and application software distribution system
US8869112B2 (en) 2010-11-30 2014-10-21 Sap Se System and method for modular business applications
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
US9336027B2 (en) 2010-12-17 2016-05-10 Sap Se System and method for modular business applications
CN102122249B (zh) * 2011-02-22 2013-11-06 中兴通讯股份有限公司 启动java应用的方法及装置
JP2013206040A (ja) * 2012-03-28 2013-10-07 Hitachi Solutions Ltd OSGi実行装置、OSGiシステム
JP2018022370A (ja) * 2016-08-04 2018-02-08 キヤノン株式会社 アプリケーション実行装置及びその制御方法、並びにプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943496A (en) * 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
CN1271893A (zh) * 1999-04-27 2000-11-01 国际商业机器公司 提高Java环境的可管理性和可用性的系统和方法
CN1416057A (zh) * 2001-10-31 2003-05-07 精工爱普生株式会社 用于应用程序执行的动态java类的加载
CN1466051A (zh) * 2002-07-03 2004-01-07 联想(北京)有限公司 实现不同系统之间数据交互的方法
US20040194059A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method to deploy software using an open service gateway initiative (OSGi) framework
JP2004318459A (ja) * 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
JPH09245003A (ja) * 1996-03-05 1997-09-19 Digital Vision Lab:Kk 並列分散処理システムおよびその方法
US5764889A (en) * 1996-09-26 1998-06-09 International Business Machines Corporation Method and apparatus for creating a security environment for a user task in a client/server system
US6865735B1 (en) * 1997-10-07 2005-03-08 University Of Washington Process for rewriting executable content on a network server or desktop machine in order to enforce site specific properties
US6349408B1 (en) 1998-03-23 2002-02-19 Sun Microsystems, Inc. Techniques for implementing a framework for extensible applications
US6067559A (en) * 1998-04-23 2000-05-23 Microsoft Corporation Server architecture for segregation of dynamic content generation applications into separate process spaces
US6622155B1 (en) * 1998-11-24 2003-09-16 Sun Microsystems, Inc. Distributed monitor concurrency control
US6748555B1 (en) * 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6567974B1 (en) * 2000-02-25 2003-05-20 Sun Microsystems, Inc. Small memory footprint system and method for separating applications within a single virtual machine
US6557168B1 (en) * 2000-02-25 2003-04-29 Sun Microsystems, Inc. System and method for minimizing inter-application interference among static synchronized methods
AU5506201A (en) * 2000-05-04 2001-11-12 Access Co., Ltd. Information processing method and system
JP2001325106A (ja) * 2000-05-16 2001-11-22 Mitsubishi Electric Systemware Corp アプリケーション実行装置及びアプリケーション実行方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体
WO2002075538A1 (fr) * 2001-03-19 2002-09-26 Mitsubishi Denki Kabushiki Kaisha Dispositif multimedia monte sur vehicule
WO2003010684A1 (en) * 2001-07-26 2003-02-06 Irise, Inc. System and process for gathering, recording and validating requirements for computer applications
US7735080B2 (en) * 2001-08-30 2010-06-08 International Business Machines Corporation Integrated system and method for the management of a complete end-to-end software delivery process
CA2365687A1 (en) * 2001-12-19 2003-06-19 Ibm Canada Limited-Ibm Canada Limitee Mechanism for invocation of user-defined routines in a multi-threaded database environment
JP2003280926A (ja) * 2002-03-22 2003-10-03 Canon Inc 情報処理装置及びその方法、記憶媒体、プログラム
US20030191823A1 (en) * 2002-04-03 2003-10-09 Aplion Networks, Inc. System and method for providing customizable device capabilities to network equipment in a non-service affecting manner
US7398261B2 (en) * 2002-11-20 2008-07-08 Radar Networks, Inc. Method and system for managing and tracking semantic objects
US7437432B2 (en) * 2002-12-12 2008-10-14 International Business Machines Corporation Client device configuration with configuration services providers
US20040123289A1 (en) * 2002-12-20 2004-06-24 Drews Paul C Multi-processing inside a virtual machine
KR100493883B1 (ko) * 2003-01-02 2005-06-10 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
DE10302678A1 (de) * 2003-01-24 2004-07-29 Robert Bosch Gmbh Verfahren und Vorrichtung zur Steuerung von auf dem HAVi-Standard basierten Geräten durch Device Control Module einer OSGi-Plattform
US7398305B2 (en) * 2003-02-06 2008-07-08 International Business Machines Corporation Client device configuration with hooks
US7337436B2 (en) * 2003-02-07 2008-02-26 Sun Microsystems, Inc. System and method for cross platform and configuration build system
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
US7647578B2 (en) * 2003-05-15 2010-01-12 National Instruments Corporation Programmatic creation and management of tasks in a graphical program
US7409487B1 (en) * 2003-06-30 2008-08-05 Vmware, Inc. Virtualization system for computers that use address space indentifiers
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7200800B2 (en) * 2003-07-16 2007-04-03 Hewlett-Packard Development Company, L.P. Platform independent file manipulation
US7424722B2 (en) * 2003-08-29 2008-09-09 International Business Machines Corporation Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
US7519964B1 (en) * 2003-12-03 2009-04-14 Sun Microsystems, Inc. System and method for application deployment in a domain for a cluster
US20050198303A1 (en) * 2004-01-02 2005-09-08 Robert Knauerhase Dynamic virtual machine service provider allocation
US7716663B2 (en) * 2004-02-26 2010-05-11 International Business Machines Corporation Method, system and program product for controlling native applications using open service gateway initiative (OSGi) bundles
US7523155B2 (en) * 2004-03-18 2009-04-21 International Business Machines Corporation Method, system and program product for using open mobile alliance (OMA) alerts to send client commands/requests to an OMA DM server
US7401230B2 (en) * 2004-03-31 2008-07-15 Intel Corporation Secure virtual machine monitor to tear down a secure execution environment
US20050223362A1 (en) * 2004-04-02 2005-10-06 Gemstone Systems, Inc. Methods and systems for performing unit testing across multiple virtual machines
US7908653B2 (en) * 2004-06-29 2011-03-15 Intel Corporation Method of improving computer security through sandboxing
JP4717426B2 (ja) * 2004-12-07 2011-07-06 キヤノン株式会社 情報処理装置及びその方法
US8104034B2 (en) * 2005-11-30 2012-01-24 Red Hat, Inc. Purpose domain for in-kernel virtual machine for low overhead startup and low resource usage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943496A (en) * 1997-05-17 1999-08-24 Intertop Corporation Methods for developing and instantiating object classes using a java virtual machine extension
CN1271893A (zh) * 1999-04-27 2000-11-01 国际商业机器公司 提高Java环境的可管理性和可用性的系统和方法
CN1416057A (zh) * 2001-10-31 2003-05-07 精工爱普生株式会社 用于应用程序执行的动态java类的加载
CN1466051A (zh) * 2002-07-03 2004-01-07 联想(北京)有限公司 实现不同系统之间数据交互的方法
US20040194059A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method to deploy software using an open service gateway initiative (OSGi) framework
JP2004318459A (ja) * 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム

Also Published As

Publication number Publication date
US20060122962A1 (en) 2006-06-08
JP2006163840A (ja) 2006-06-22
EP1669866A3 (en) 2007-11-07
EP1669866A2 (en) 2006-06-14
JP4717426B2 (ja) 2011-07-06
CN1786915A (zh) 2006-06-14
US8418169B2 (en) 2013-04-09

Similar Documents

Publication Publication Date Title
CN100451964C (zh) 管理软件模块的管理方法和信息处理器
Taivalsaari et al. Web browser as an application platform
CN101151608B (zh) 开发人员容易地找出或扩展系统上周知位置的能力
US20080127054A1 (en) Connecting with an application instance
US20080244103A1 (en) System and method for virtual router enabled electronic documents
US20070234349A1 (en) Installation method and apparatus
WO2002033545A2 (en) Pluggable instantiable distributed objects
CN1183458C (zh) 将应用程序从系统固件传递到存储设备的方法和系统
US20050160159A1 (en) Method to support XML-based consoles in pre-boot and post OS execution environments
EP1050813A2 (en) Method and apparatus for implementing deployment descriptions in an enterprise environment
Fox et al. Building solutions with the Microsoft. Net compact framework: architecture and best practices for mobile development
CN101193181B (zh) 图像形成装置及内容显示方法
CN102402598A (zh) 应用文件系统访问
KR20080027293A (ko) 데이터 언어에서 다수 언어들의 관리
US20110040852A1 (en) Obtaining and providing cached settings within a development platform
US20070294775A1 (en) Content Data Creating Device, Control Method Thereof, Program for Creating Content Data, and Content Data Display Device
US7877557B2 (en) Information processing system, information processing method and program
Nyrhinen et al. Lively mashups for mobile devices
JP3540241B2 (ja) アプリケーション起動メニュー定義ファイル生成装置及びアプリケーション起動メニュー生成装置
US20230105023A1 (en) Deployment migration tool with decoding capabilities
WO2022205013A1 (zh) 程序数据包生成方法、装置、设备及存储介质
JP5142773B2 (ja) メッセージ生成処理方法及びメッセージ生成処理装置
JP2005266976A (ja) プログラム保存装置、プログラム保存方法、プログラムおよび記録媒体
CN115562810A (zh) 一种数据库一体机共享存储集群的全自动部署方法及装置
JP2001249801A (ja) ソフトウエアインストール装置、及び、記憶媒体

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

Granted publication date: 20090114

Termination date: 20181207

CF01 Termination of patent right due to non-payment of annual fee