CN1918548A - 用于自动地继续提供服务的电子设备 - Google Patents

用于自动地继续提供服务的电子设备 Download PDF

Info

Publication number
CN1918548A
CN1918548A CNA2005800042111A CN200580004211A CN1918548A CN 1918548 A CN1918548 A CN 1918548A CN A2005800042111 A CNA2005800042111 A CN A2005800042111A CN 200580004211 A CN200580004211 A CN 200580004211A CN 1918548 A CN1918548 A CN 1918548A
Authority
CN
China
Prior art keywords
application program
electronic equipment
application
carry out
alternate
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.)
Pending
Application number
CNA2005800042111A
Other languages
English (en)
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1918548A publication Critical patent/CN1918548A/zh
Pending legal-status Critical Current

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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明的目的是提供一种能够继续提供服务的电子设备。本发明的电子设备包括:应用程序识别部分,用于识别由其它电子设备所持有的应用程序;应用程序不可执行性检测部分,用于检测由应用程序识别部分所识别的应用程序在其它电子设备中是否是不可执行的;应用程序执行确定部分,用于确定是否要执行替代应用程序,该替代应用程序可替代已被应用程序不可执行性检测部分确定为不可执行的应用程序;替代应用程序持有确定部分,用于确定该电子设备中是否持有可替代已被确定为不可执行的应用程序的替代应用程序;以及应用程序执行部分,用于执行该替代应用程序。

Description

用于自动地继续提供服务的电子设备
技术领域
本发明涉及联网的电子设备,尤其涉及通过执行软件程序(应用程序)来提供服务的电子设备。
背景技术
作为用于应用程序执行系统的技术,有JAVA(R)(SunMicrosystems(R))以及.NET(DotNet)(Microsoft(R))等,这些系统操作家用电器等联网的电子设备上的应用程序。
这些技术具有虚拟机机制,这使相同的应用程序能够在任何硬件(联网家用电器的CPU等)上得以操作,因此,期望这些技术充当提供服务的公共平台。
此外,作为自动地通过网络为应用程序的执行来设置环境的技术,有Microsoft(R)提出的UPnP(通用即插即用)、SunMicrosystems(R)提出的JiniTM等等。
这些技术的特征在于,只要将设备连接到网络上,该设备就立刻准备好使用网络功能,而无需用户执行复杂的设置工作,即向用户提供了便利。
作为一种系统的一个示例(在该示例中,用户所使用的设备通过网络来搜索具有与用户的请求相对应的功能的那个设备),专利文献1已经提出了一种技术。
作为一种系统的一个示例(在该示例中,当服务出现故障时服务器设备执行恢复),专利文献2已经提出了一种技术。
作为一种方法的一个示例(该方法用于在当用户想要使用的服务无法在终端中得以使用时搜索替代设备并使用该设备),专利文献3已经提出了一种技术。
专利文献1:日本专利特许公开号2003-178036
专利文献2:日本专利特许公开号2002-24039
专利文献3:日本专利特许公开号2002-94912
发明内容
本发明要解决的问题
家用电器常常陷入应用程序无法执行这样一种情形。
具有代表性的是,这种情形常发生在无法通电的时候(例如,设备关闭,移动设备中的电池用尽等)。此外,当具有高优先级的另一个应用程序在执行时,其它应用程序可能会因资源短缺而无法在相同的设备上得以执行。
假定家用电器陷入这种情形,即使在该家用电器中尝试执行新的服务时,也无法启动该应用程序,所以无法提供该服务。此外,即使正在执行该应用程序,该执行过程也不得不被打断以停止提供该服务。
因此,应该发明一种技术,对于陷入无法执行服务这种情形之中的设备,该技术通过利用家用电器联网这一特征来尝试恢复该服务或提供用于该服务的替换执行手段。
专利文献1提出了一种系统,在该系统中,考虑到了家用电器网路系统中用户环境或用户请求的变化。然而,专利文献1没有提到当设备陷入上述的无法提供服务这种情形中时特定的处理方法。因此,当期望提高服务性能的可靠性时,就要求实现另外的特定处理手段。
专利文献2描述了一种系统,在该系统中,当设备陷入无法执行服务的情形中时,中心服务器着手解决故障并执行恢复过程。然而,在这种情况下,须假定存在中心服务器。因此,专利文献2的系统无法支持没有假定存在中心服务器的网络(例如,假定家用电器只有对等网络结构)。
专利文献3描述了一种方法,当已经为其执行使用保留过程的设备出现故障并使得该设备陷入无法执行服务这种情形之中时,该方法搜索替代设备并执行使用保留过程。然而,在这种方法中,根据设备的组合情况,有必要之前注册替换动作。此外,专利文献3没有提到,当正在执行服务而设备却陷入不可能继续该服务这种情形中时应该采取什么措施使该服务得以继续。
即使假定没有中心服务器的集中式控制而只由多个设备组成网络,关于在用户干预最少的情况下确保服务的稳定性这样一种技术,至今仍没有考虑出任何有效的手段,特别是当正在执行服务而设备却陷入无法使该服务继续这样一种情形中时应该使用的恢复手段。
因此,本发明的目的是提供一种电子设备,它能够在当仅由多个设备组成的网络上继续执行服务。本发明的另一个目的是提供可在该电子设备中执行的程序和方法以及将该程序记录于其上的记录介质。
问题的解决方案
为实现上述目的,本发明具有下面的特征。本发明提供了一种电子设备,它通过网络至少连接到可以执行应用程序的另一个电子设备,本发明的电子设备包括:应用程序识别部分,用于识别其它电子设备所持有的应用程序;应用程序不可执行性检测部分,用于检测在其它电子设备中由应用程序识别部分所识别出的应用程序是否是不可执行的;应用程序执行确定部分,用于确定是否要执行可替代由应用程序不可执行性检测部分已将其确定为不可执行的那个应用程序的一个替换应用程序;替换应用程序持有确定部分,用于确定该电子设备中是否持有可替换已被确定为不可执行的那个应用程序的替换应用程序;以及应用程序执行部分,用于执行该替换应用程序。
较佳地,应用程序执行确定部分可以包括:应用程序启动请求检测部分,用于检测与应用程序不可执行性检测部分已将其检测为不可执行的那个应用程序有关的启动请求;以及应用程序执行确定部分,当检测到与应用程序不可执行性检测部分已将其检测为不可执行的那个应用程序有关的启动请求时,应用程序执行确定部分可以确定要执行该替换应用程序。
较佳地,替换应用程序持有确定部分可以包括:应用程序标识确定部分,用于确定其功能与应用程序识别部分所识别的其它电子设备所持有的应用程序完全相同的那个相同功能应用程序是否由该电子设备所持有,还用于创建标识表格,在该表格中其它电子设备所持有的应用程序与该电子设备所持有的相同功能应用程序相关联,该相同功能应用程序可以是替换应用程序,并且替换应用程序持有确定部分可以基于应用程序标识确定部分所创建的标识表格来确定该电子设备中是否持有替换应用程序。
较佳地,替换应用程序持有确定部分可以包括:相关应用程序确定部分,用于创建相关性表格,在该表格中,其功能与应用程序识别部分所识别出的其它电子设备所持有的应用程序相关联的那个相关功能应用程序与其它电子设备所持有的应用程序相互关联,该相关功能应用程序可能是替换应用程序,并且替换应用程序持有确定部分可以基于相关应用程序确定部分所创建的相关性表格来确定该电子设备中是否持有该替换应用程序。
较佳地,应用程序执行确定部分可以包括:应用程序执行状态获取部分,用于获取其它电子设备所执行的应用程序的执行状态并以之作为应用程序执行状态信息,当关于应用程序启动请求检测部分已将其确定为不可执行的那个应用程序的应用程序执行状态信息由应用程序执行状态获取部分所持有时,应用程序执行确定部分可以确定要执行替换应用程序,并且应用程序执行部分可以基于该应用程序执行状态信息来执行该替换应用程序以便使被确认为不可执行的那个应用程序继续。
较佳地,应用程序执行确定部分可以包括:设备间启动仲裁部分,该部分询问连接到网络上的其它电子设备是否持有替换应用程序,并且与持有该替换应用程序的另一个电子设备进行通信,以确定是否要在该电子设备中执行该替换应用程序。
此外,本发明提供了一种用于处理电子设备的方法,该电子设备通过网络至少连接到另一个可执行应用程序的电子设备,本方法包括如下步骤:识别由其它电子设备所持有的应用程序;检测由应用程序识别部分所识别的应用程序在其它电子设备上是否是不可执行的;确定是否要执行可替换已被确定为不可执行的应用程序的那个替换应用程序;确定该电子设备中是否持有可替换已被确定为不可执行的应用程序的那个替换应用程序;并且执行该替换应用程序。
此外,本发明提供了一种在电子设备中执行的程序,该电子设备通过网络至少连接到可以执行应用程序的另一个电子设备,该程序包括如下步骤:识别由其它电子设备所持有的应用程序;检测由应用程序识别部分所识别的应用程序在其它电子设备上是否是不可执行的;确定是否要执行可替换已被确定为不可执行的应用程序的那个替换应用程序;确定该电子设备中是否持有可替换已被确定为不可执行的应用程序的那个替换应用程序;并且执行该替换应用程序。
本发明的效果
根据本发明,即使网络上的电子设备中所包括的应用程序陷入不可执行的状态中,使得无法再提供服务,替换应用程序也可以自动地使该服务继续。因此,在网络上可稳定地提供该服务。
如果有一个其功能与不可执行的应用程序完全一样的应用程序,则可提供与不可执行的服务等效的服务。
如果有一个其功能与不可执行的应用程序相关的应用程序,则执行与不可执行的服务相似的服务或辅助该不可执行的服务的服务,从而提高了该服务的便利性和灵活性。
只通过检测与应用程序有关的启动请求,电子设备就可以识别出该应用程序是否是不可执行的。因此,很容易检测该应用程序的不可执行状态。
此外,电子设备可以执行替换程序,同时使不可执行的应用程序执行到中途的状态得以继续,从而提高了该服务的连续性。
当网络上多个电子设备持有替换应用程序时,在这些设备之间进行仲裁,使得合适的电子设备执行替换应用程序,由此可有效地利用网络上的资源。
如上所述,根据本发明,即使假定没有像中心服务器这样的集中式控制方案,在网络上的多个电子设备中也可以确保服务的高度稳定。
当结合附图来看本发明的详细描述时,本发明的这些和其它目的、特征、方面以及优点将变得更为清晰。
附图说明
图1是示出了根据本发明的第一实施例包括多个电子设备的整个系统的结构图。
图2是示出了本发明第一实施例的电子设备1到5的硬件结构图。
图3以表格形式示出了应用程序属性信息的一个实现示例。
图4是示出了当执行应用程序继续程序时电子设备的功能配置方框图。
图5是示出了当执行应用程序继续程序时电子设备1的操作概况流程图。
图6是示出了应用程序标识确定部分151的操作流程图。
图7是示出了示例性标识表格的图。
图8是用于解释用户注册相关表格时的过程的图。
图9是示出了示例性相关表格的图。
图10是示出了应用程序不可执行性检测部分13的示例性操作流程图。
图11是示出了当执行第一基本处理过程时电子设备1的操作流程图。
图12是示出了当执行第二基本处理过程时电子设备1的操作流程图。
图13是示出了当执行第三基本处理过程时电子设备1的操作流程图。
图14是示出了当执行第四基本处理过程时电子设备1的操作流程图。
图15是示出了当执行根据第二实施例的应用程序继续程序时电子设备3的功能配置方框图。
图16是示出了当处理过程X被添加到第一基本处理过程中时电子设备1的操作流程图。
图17是示出了当处理过程X被添加到第二基本处理过程中时电子设备1的操作流程图。
图18是示出了当处理过程X被添加到第三基本处理过程中时电子设备1的操作流程图。
图19是示出了当处理过程X被添加到第四基本处理过程中时电子设备1的操作流程图。
图20是示出了在替换应用程序启动确定处理过程(步骤S701、S801、S901、S1001)中电子设备1的详细操作流程图。
图21是示出了在替换应用程序启动确定处理过程(步骤S701、S801、S901、S1001)中网络上电子设备之间进行通信的顺序图。
图22是示出了示例性表格形式的启动仲裁信息的图。
关于标号的描述
1-5  电子设备
6    网络
100  中央处理单元
101  主存储单元
102  辅助存储单元
103  通信单元
104  输入单元
105  输出单元
11   定时控制部分
12   应用程序识别部分
13   应用程序不可执行性检测部分
14   应用程序执行确定部分
141  应用程序启动请求检测部分
142  应用程序执行状态获取部分
15   替换应用程序持有确定部分
151  应用程序标识确定部分
152  相关应用程序确定部分
16   应用程序执行部分
7a、7b、7c、7d  用户接口
20   设备间启动仲裁部分
具体实施方式
在下文中,将参照附图来描述本发明的各实施例。
(第一实施例)
图1示出了整个系统的配置图,该系统包括根据本发明第一实施例的电子设备。在图1中,电子设备1到5通过网络6彼此相连,使得电子设备1到5可以彼此进行通信。
本发明的电子设备可以应用于至少两个电子设备通过网络相连这样一种环境中。因此,尽管在图1中电子设备的数目假定为五个,但是电子设备的数目可以是两个或更多或者是四个或更少,或者可以是六个或更多。
网络6可以具有任何通信标准,只要在彼此相连的电子设备之间可以进行数据通信就可以。此外,网络6可以是公网(例如,互联网)、有限区域内的网络(例如,LAN)或两者的组合。
图2是示出了本发明第一实施例的电子设备1-5的硬件配置的图。在下文中,作为一个代表性的示例,将描述电子设备1。在图2中,电子设备1包括中央处理单元100、主存储单元101、辅助存储单元102、通信单元103、输入单元104和输出单元105。注意到,如果电子设备1是多用途的设备(比如,个人计算机),则图2的每一个方框常常实现为单独的集成电路或设备。然而,如果电子设备1是专用设备(比如,移动电话、联网家用电器等),则图2的每一个方框可以形成于专用集成电路上。
中央处理单元100控制电子设备1的操作。中央处理单元100可以具有靠自己来控制电子设备1的操作这样一种功能,或者可以将辅助存储单元102中所存储的程序(固件或软件)读取到主存储单元101中并执行该程序以控制电子设备1的操作。中央处理单元100也具有用于实现电子设备1的更低层(比如物理层、MAC层等)的硬件配置。
主存储单元101是可读可写的存储器,并且存储着操作中央处理单元100所必需的信息。
辅助存储单元102是具有像闪存、硬盘、光盘等记录介质的存储单元。与电子设备1中要执行的应用程序相关的程序(在下文中,简称为应用程序)存储在辅助存储单元102中。应用程序属性信息是作为特定信息而添加的,用于指出某一应用程序的应用程序属性。此外,根据本发明的应用程序继续程序存储在辅助存储单元102中。应用程序继续程序是这样一种程序,它用于确定是否应该在电子设备1中执行某一应用程序(该应用程序被用来替代另一个电子设备中执行的应用程序,所以在下文中被称为替代应用程序)。中央处理单元100将应用程序继续程序读到主存储单元101中并且执行该程序,由此实现了本发明的操作过程。应用程序继续程序可以是之前存储到电子设备中的固件,或随后存储到电子设备中的软件。应用程序继续程序可以存储到计算机可读记录介质中,并且可以从该记录介质中存储到辅助存储单元102中。此外,应用程序继续程序可以通过网络6从另一个电子设备那里下载,并且可以接着存储到辅助存储单元102中。替换应用程序包括:功能完全相同的应用程序,它具有与另一个电子设备所执行的应用程序完全相同的功能;以及功能相关的应用程序,它具有与另一个电子设备所执行的应用程序相关的功能。相关功能应用程序是这样一种应用程序,它可以提供一种服务,该服务与另一个电子设备执行的应用程序所提供的服务相似;或者是这样一种应用程序,它可以提供一种服务,该服务辅助另一个电子设备所执行的应用程序。
例如,当电子设备1所执行的应用程序是JAVA(R)应用程序时,与该应用程序相关的程序是JAR文件。
应用程序属性信息是指表示应用程序特征的信息,比如应用程序名称、应用程序源、关于操作该应用程序所必需的简况(profile)信息等。
例如,在与MIDP简况(它是用于JAVA(R)移动设备的标准简况)一致的JAVA(R)应用程序中,在JAD文件中提供并描述了应用程序属性信息。然而,即使当不提供像JAD文件这样的应用程序属性信息时,电子设备1也可以通过分析JAR文件(该文件是JAVA(R)应用程序的主体)而获得像应用程序大小等信息,并把它们当作应用程序属性信息。
图3是以表格形式示出了应用程序属性信息的实现示例的图。在图3中,表示应用程序属性的信息登记在每一个条目中。下面将描述图3的每一个条目。
在“应用程序名字”中,描述了赋予应用程序的名字。
在“应用程序源”中,描述了与电子设备有关的应用程序的发布源。在图3中,以URL形式描述了应用程序源,并且可以将应用程序源描述成其它信息。
在“主类名称”中,描述了在其中实现一种主要方法(该方法是当开始应用程序时首先调用的方法)的类的名称。
在“必需的简况”中,描述了操作某一应用程序所必需的信息,比如配置、简况、库等。
在“必需的资源”中,描述了操作该应用程序所必需的资源量。
在“上一次更新日期”中,描述了上一次更新该应用程序的日期。
在“版本号”中,描述了分配给该应用程序的版本管理号。
在“应用程序大小”中,描述了该应用程序主体(对于JAVA(R),该主体就是JAR文件)的大小。
在“应用程序创作者”中,描述了表示该应用程序创作者的标识信息。尽管在图3中描述了表示创作者名字的字符串,但是也可以描述其它信息。
在“替换应用程序”中,描述了用于标识另一个应用程序的信息。该条目表示,当应用程序在执行期间发生中断时,该条目中所记录的应用程序可以接管被中断的应用程序的执行状态并且作为替代继续服务。下文将描述如何使用该条目。
在“可以被替换的应用程序”中,描述了用于标识另一个应用程序的信息。该条目表示,当与该条目中描述的信息相对应的应用程序在执行期间发生中断时,“应用程序名字”中描述的应用程序可以接管能够被替换的那个应用程序的执行状态并且继续服务。下文将描述如何使用该条目。
图3是应用程序属性信息的实现示例。图3表格中一部分条目可以省去,或者表示另一种属性相关信息的另一个条目可以被包括进来。
通信单元103具有发送/接收数据的功能,该数据与连接到网络6的其它电子设备有关。在本发明中,通信单元103可以使用任何通信方案,比如调制/解调方案、媒体访问方案等,即,该通信方案并不特别限定。
输入单元104是用于输入用户操作的设备,比如按钮开关、小键盘、鼠标、触摸屏等。
输出单元105是用于输出中央处理单元100中某一处理过程的结果的设备,比如液晶显示器、扬声器等。
图4是示出了当执行应用程序继续程序时电子设备的功能配置方框图。注意到,在本实施例中,电子设备1到5中的至少一个可以执行应用程序继续程序。此处,为了简单化,假定电子设备1执行应用程序继续程序,电子设备2执行应用程序,并且电子设备1继续执行由电子设备2执行的应用程序。如上所述,替换应用程序包括功能完全相同的应用程序和功能相关的应用程序。在本实施例中,如果有功能完全相同的应用程序则电子设备1可以执行该功能完全相同的应用程序,并且如果没有功能完全相同的应用程序,则电子设备1可以执行功能相关的应用程序。或者,可以预先确定好,电子设备1将功能完全相同的应用程序或功能相关的应用程序当作替代应用程序来执行。尽管此处假定图4的功能方框由软件(即通过执行程序)来实现,但是图4的功能方框也可以由硬件来实现。
在图4中,电子设备1包括定时控制部分11、应用程序识别部分12、应用程序不可执行性检测部分13、应用程序执行确定部分14、替换应用程序持有确定部分15以及应用程序执行部分16。
图5是示出了当执行应用程序继续程序时操作电子设备1大致的流程图。在下文中,将参照图5描述当执行应用程序继续程序时操作电子设备1的大致概况。
当定时控制部分11确定预定的时间已经到了时,应用程序识别部分12识别由另一个电子设备所持有的应用程序(步骤S1)。
接下来,当定时控制部分11确定预定的时间已经到了时,应用程序不可执行性检测部分13检测由应用程序识别部分12已识别出的、由其它电子设备所持有的应用程序是否是不可执行的(步骤S2)。
当应用程序不可执行性检测部分13检测到不可执行的应用程序时,应用程序执行确定部分14确定是否应该执行替代应用程序,以替换该不可执行的应用程序(步骤S3)。
当应用程序执行确定部分14确定应该执行替代应用程序时,替代应用程序持有确定部分15确定电子设备1是否持有替代应用程序(步骤S4)。
当替代应用程序持有确定部分15确定持有替代应用程序时,应用程序执行部分16执行该替代应用程序(步骤S5)。
在下文中,将描述各功能方框的详细操作过程。
应用程序执行部分16翻译并执行应用程序。尽管此处假定应用程序执行部分16的功能是通过执行应用程序继续程序而执行的,但是应用程序执行部分16是即使不执行应用程序继续程序时该电子设备也会提供的一种功能。因此,应用程序执行部分16命令该电子设备中的功能(另一个程序)去执行替代应用程序。注意到,此处假定电子设备1执行应用程序继续程序。并不执行应用程序继续程序的电子设备2需要至少包括应用程序执行部分16以便执行应用程序。
对于应用程序执行部分16,用于执行应用程序的环境并不特别受限,只要它能够翻译并执行该应用程序就可以。例如,应用程序执行部分16可在现存的环境中得以实现,比如JAVA(R)虚拟机、.NET执行环境、BREW(BREW是针对KDDI(R)所制造的移动电话而采用的程序发布执行环境)等。
在本实施例中,当需要说明时,应用程序执行部分16都假定为在JAVA(R)虚拟机环境中来实现,并且应用程序都假定为JAVA(R)应用程序。
应用程序执行部分16具有决定是否可以重新启动某一应用程序的能力。因此,应用程序执行部分16可以获得关于可以在该设备自身中使用的可用硬件资源量的信息。可用资源量是指,在电子设备1的存储器中被分配用于执行应用程序的空间内未被任何正运行的应用程序占据且可用用于运行新应用程序的空间。
应用程序执行部分16通过监控电子设备中可以使用的资源量来执行该决定过程。例如,当应用程序执行部分16被实现成JAVA(R)虚拟机时,提供了用于记录诸如JAVA(R)虚拟机所持有的总堆内存的使用量或未使用量、用于每一个应用程序的堆内存使用量等堆内存使用状态的寄存器(未示出),并且提供了用于按要求(例如,在应用程序启动之前,在应用程序运行期间,在应用程序释放时)检查寄存器中所记录的信息的寄存器记录信息检查装置(未示出),由此应用程序执行部分16可以监控可用的资源量。
如果应用程序执行部分16将关于“操作该应用程序所必需的资源量”的信息作为应用程序属性信息而保存,则应用程序执行部分16将关于电子设备1中可以使用的可用硬件资源量的信息与关于“操作该应用程序所必需的资源量”的信息进行比较,从而有可能确定该应用程序是否可用运行。
应用程序执行部分16也具有一种用来输出表示应用程序执行到中途时该应用程序执行状态的信息(在下文中被称为应用程序执行状态信息)的能力。
作为应用程序执行状态信息的一个特定示例,将讨论用于执行日本将棋(shogi)游戏的一种应用程序。通常,一旦游戏开始,应用程序在不中断的情况下被执行,直到游戏结束。然而,如果想要在游戏进行中途中断该游戏并随后再继续,则有必要记录关于koma(“koma”是玩日本将棋时用到的一个棋子,像国际象棋中的棋子)的位置和该中断发生时所俘获的koma的信息。因此,应用程序执行状态信息是指表示应用程序执行到中途时的状态的信息。应用程序执行状态信息包括在执行过程中断之后继续该应用程序所必需的信息。
当应用程序是JAVA(R)应用程序时,当前所执行的对象被当做应用程序执行状态信息加以记录。
作为一种用于输出当前所执行对象的状态的手段,JAVA(R)支持串行化。串行化是指将对象的属性值或结构转变为可以作为字节序列来处理的形式。具体来讲,例如,通过串行化,用于表示执行到中途的应用程序的状态且具有复杂结构的数据以字节序列流或文件格式输出。该字节序列充当应用程序执行状态信息。
作为将对象转变为字节序列的串行化功能的替代,应用程序可以具有以其它形式输出应用程序执行状态信息的手段。例如,许多游戏应用程序能够以某种格式来描述该游戏的中间状态(应用程序执行状态信息)。该应用程序执行状态信息可以用诸如XML、HTML等通用的格式来描述,或者可以用某一应用程序中特别定义的一种格式来描述。
应用程序识别部分12能够获取由通过网络6相连的另一个电子设备所持有的一个应用程序的特征,并且因此可以与之通信。应用程序识别部分12通过网络6获取另一个电子设备所持有的一个应用程序的应用程序属性信息,以获取由该另一个电子设备所持有的应用程序的特征。
替代应用程序持有确定部分15确定电子设备1是否持有替代应用程序,该替代应用程序能够替代由应用程序识别部分12所识别且由另一个电子设备所持有的应用程序。替代应用程序持有确定部分15包括应用程序标识确定部分151和相关应用程序确定部分152。
应用程序标识确定部分151将由应用程序识别部分12所识别且由另一个电子设备所持有的应用程序的属性信息与电子设备1所持有的应用程序的应用程序属性信息进行比较,以确定电子设备1中是否持有功能完全相同的应用程序,并且创建并存储一个表格(在下文中被称为标识表格),在该表格中,由电子设备1所持有的功能完全相同的应用程序与其它电子设备所持有的应用程序相互关联。
相关应用程序确定部分152创建并存储一个表格(在下文中被称为相关表格),在该表格中,由另一个电子设备所持有的应用程序与电子设备1所持有的功能相关的应用程序相互关联。
当应用程序不可执行性检测部分13检测到某一应用程序无法在另一个电子设备中执行时,替代应用程序持有确定部分15参照标识表格和/或相关表格,来确定电子设备1是否持有作为不可执行的应用程序的替代而被执行的替代应用程序。
图6是示出了应用程序标识确定部分151的操作流程图。在下文中,将参照图6描述创建标识表格的步骤。在图6中,电子设备1中的应用程序由应用程序A来表示,由应用程序识别部分12所识别的在另一个电子设备中的应用程序由应用程序B来表示。
首先,应用程序标识确定部分151从应用程序A的应用程序属性信息和应用程序B的应用程序属性信息中获取“应用程序名称”(步骤S101)。
接下来,应用程序标识确定部分151确定是否已经正常地从两条应用程序属性信息中获得了“应用程序名称”(要被比较的信息)(步骤S102)。当从应用程序A或B中都没有获取“应用程序名称”(要被比较的信息)时,应用程序标识确定部分151无法确认这两个应用程序的标识,并跳至步骤S108的操作。另一方面,当已经正常地获取了“应用程序名称”时,应用程序标识确定部分151跳至步骤S103的操作。
在步骤S103中,应用程序标识确定部分151确定这两条应用程序属性信息的“应用程序名称”是否彼此完全相同。当“应用程序名称”并不完全相同时,应用程序标识确定部分151无法确认这两个应用程序的标识,并跳至步骤S108。另一方面,当“应用程序名称”完全相同时,应用程序标识确定部分151跳至步骤S104的操作。
在步骤S104中,应用程序标识确定部分151从应用程序A的应用程序属性信息和应用程序B的应用程序属性信息中获取“应用程序创作者”。
接下来,应用程序标识确定部分151是否从这两条应用程序属性信息中正常地获得了“应用程序创作者”(要被比较的信息)。当从应用程序A或B中都没有获得“应用程序创作者”(要被比较的信息)时,应用程序标识确定部分151无法确认这两个应用程序的标识,并跳至步骤S108的操作。另一方面,当已经正常地获得了“应用程序创作者”时,应用程序标识确定部分151跳至步骤S106的操作。
在步骤S106中,应用程序标识确定部分151确定这两条应用程序属性信息的“应用程序创作者”是否彼此完全相同。当“应用程序创作者”并不完全相同时,应用程序标识确定部分151无法确认这两个应用程序的标识,并跳至步骤S108的操作。另一方面,当“应用程序创作者”完全相同时,应用程序标识确定部分151跳至步骤S107的操作。
在步骤S107中,应用程序标识确定部分151确定应用程序A是具有与应用程序B相同功能的应用程序。接下来,应用程序标识确定部分151将应用程序A作为功能完全相同的应用程序注册到标识表格中并使其与应用程序B相关联(步骤S109),并且返回,所以对于应用程序识别部分12所识别的另一个应用程序,相似地执行步骤S101和其后的过程。
在步骤S108中,应用程序标识确定部分151确定应用程序A和应用程序B彼此并不完全相同,并且返回,所以对于应用程序识别部分12所识别的另一个应用程序,相似地执行步骤S101和其后的过程。
对于应用程序识别部分12所识别的在其它电子设备中的所有应用程序,重复地执行图6的操作。
至此已经描述了创建标识表格的过程的示例。注意到,在该过程中,“应用程序名称”和“应用程序创作者”被用于应用程序的标识确定,然而,本发明并不必然地限于这些。应用程序标识确定部分151可以在使用其它应用程序属性信息的组合的情况下通过比较来执行标识确定过程。用于比较的应用程序属性信息的条数并不特别受到限制。
注意到,在图6中,应用程序标识确定部分151一一对应地比较应用程序A和应用程序B。然而,当电子设备1持有多个应用程序时,应用程序标识确定部分151需要在电子设备1所持有的所有应用程序中确定与应用程序B的功能完全相同的功能的存在。具体来讲,在步骤S108之后,应用程序标识确定部分151可以获得除电子设备1所持有的应用程序A以外的一应用程序的应用程序属性信息,并跳至步骤S101和之后的操作。当在电子设备1所持有的所有应用程序中没有其功能与应用程序B的功能完全相同的应用程序时,应用程序标识确定部分151确定对于其它电子设备所持有的另一个应用程序电子设备1是否持有功能完全相同的应用程序。
图7是示出了示例性标识表格的图。如图7所示,标识表格由多组信息组成:关于另一个电子设备所持有的应用程序的信息(表格左列);以及关于功能完全相同的应用程序的信息(表格右列),该功能完全相同的应用程序被确定为具有与其它电子设备所持有的应用程序完全相同的功能。
如图7所示,作为关于另一个电子设备的应用程序的信息,注册了“存储有应用程序的设备的标识信息”、“应用程序名称”和“应用程序大小”。关于另一个电子设备的应用程序的信息不限于图7的信息,只要该信息可以指定由其它电子设备所持有的应用程序就可以。
如图7所示,作为关于功能完全相同的应用程序的信息,注册了“应用程序名称”和“应用程序大小”。关于功能完全相同的应用程序的信息并不限于图7的信息,只要该信息可以指定由电子设备1所持有的应用程序。
在本实施例中,如下文(a)、(b)、(c)和(d)所指出的那样,相关应用程序确定部分152将另一个电子设备所持有的应用程序与电子设备1所持有的相关功能应用程序相互关联起来。
(a)在另一个电子设备所持有的应用程序的应用程序属性信息中,描述了其它应用程序可以充当电子设备1的应用程序的替代应用程序的条件。例如,图3的“替代的应用程序”是该条件。相关应用程序确定部分152读取该条件以确定电子设备1中是否持有符合该条件的应用程序。当持有这样的应用程序时,相关应用程序确定部分152将所持有的应用程序作为功能相关的应用程序注册到相关表格中并使其与其它电子设备所持有的应用程序相关联。
(b)在电子设备1所持有的应用程序的应用程序属性信息中,描述了电子设备1所持有的应用程序可以充当另一个应用程序的替代应用程序的条件。例如,图3的“能够被替代的应用程序”是该条件。相关应用程序确定部分152读取该条件以确定在应用程序识别部分12所识别的、在另一个电子设备中的多个应用程序中是否有符合该条件的应用程序。当有符合该条件的应用程序时,相关应用程序确定部分152将电子设备1所持有的应用程序作为用于其它电子设备所持有的应用程序的功能相关的应用程序注册到相关表格中,并使其与其它电子设备所持有的应用程序相关联。
(c)相关表格之前就存储在电子设备1中。
(d)相关表格由用户来注册。
图8是用于解释当用户注册相关表格时的过程的图。
相关应用程序确定部分152可以使输出单元105显示图8中的用户界面7a、7b、7c和7d。
用户界面7a是表示另一个电子设备所持有的应用程序列表的屏幕,并被用来选择并指定期望被注册到相关表格中的其它电子设备的应用程序。此处,示出了由电子设备2所持有的应用程序列表。相关应用程序确定部分152获取由应用程序识别部分12所识别且由电子设备2所持有的应用程序特定信息,由此在用户界面7a上显示由电子设备2所持有的应用程序列表。用户从用户界面7a上所显示的那些中选择并指定在相关表格中注册过的应用程序。此处假定选择了应用程序“Media Viewer”。在指定用户界面7a之后,相关应用程序确定部分152显示用户界面7b。
用户界面7b是表示电子设备1所持有的应用程序列表的屏幕,并且被用来选择并指定电子设备1的某一应用程序,该应用程序被期望与用户界面7a所指定的应用程序相互关联。相关应用程序确定部分152获得电子设备1所持有的应用程序特定信息,由此在用户界面7b上显示由电子设备1所持有的应用程序列表。用户从用户界面7b上所显示的列表中选择并指定作为相关功能应用程序注册过的应用程序。此处假定选择了“BackUp Recorder”作为功能相关的应用程序。在用户界面7b上指定之后,相关应用程序确定部分152显示用户界面7c。
用户界面7c是用于确认一应用程序和功能相关的应用程序之间的对应性的屏幕。此处假定该用户指定“是”。因此,相关应用程序确定部分152将该应用程序和功能相关的应用程序注册到相关表格中,并显示注册成功(用户界面7d)。
相关应用程序确定部分152以某种形式持有相关表格。
图9是示出了示例性相关表格的图。如图9所示,相关表格由多组信息组成:关于另一个电子设备所持有的应用程序的信息(表格左列);以及关于功能相关的应用程序的信息(表格右列)。
如图9所示,作为关于另一个电子设备的应用程序的信息,注册了“存储有应用程序的设备的标识信息”、“应用程序名称”和“应用程序大小”。关于另一个应用程序的信息并不限于图9所示的信息,只要它能够指定另一个电子设备所持有的应用程序。
如图9所示,作为关于功能相关的应用程序的信息,注册了“应用程序名称”和“应用程序大小”。关于功能相关的应用程序的信息并不限于图9的信息,只要它能够指定电子设备1所持有的应用程序。
应用程序不可执行性检测部分13检测通过网络6相连的另一个电子设备所持有的应用程序是否在可执行的状态之中。在本实施例中,在下面两个粗略假设的情形(A)和(B)中,应用程序没有处于可执行的状态中。
(A)通过网络6相连的另一个电子设备没有保持在赋能状态中。
(B)因通过网络6相连的另一个电子设备的应用程序执行部分的资源限制问题而导致无法执行某一应用程序。
应用程序不可执行性检测部分13通过监控其它电子设备而确定另一个电子设备是否落入状态(A)或(B)中。
图10是示出了应用程序不可执行性检测部分13的示例性操作的流程图。在下文中,将参照图10来描述应用程序不可执行性检测部分13。注意到,在图10中,为了简便,示出了已确定电子设备2中的应用程序是否是不可执行的这样一个示例,然而,对于连接到网络6的所有其它电子设备,应用程序不可执行性检测部分13都执行与图10相似的过程。
最初,应用程序不可执行性检测部分13获取电子设备2的赋能状态(步骤S201)以确定电子设备2的赋能状态是否已中断(步骤S202)。在步骤S201和S202中,针对情况(A)执行确定过程。
例如,在用于家用电器联网的连接标准UPnP的规范中,连接到网络并处于赋能状态中的电子设备应该按预定的间隔向连接到网络的其它电子设备发送信号。当信号并没有从电子设备中有规则地发出时,该电子设备的赋能状态被视为已经中断。
在步骤S202中,当已确定电子设备2的赋能状态已中断时,应用程序不可执行性检测部分13跳至步骤S203的操作,并确定电子设备2所持有的所有应用程序都处于不可执行的状态中。
在步骤S202中,当已确定电子设备2的赋能状态没有中断时,应用程序不可执行性检测部分13跳至步骤S204和之后的操作。通过步骤S204和之后的操作,针对情况(B)执行确定过程。
在步骤S204中,应用程序不可执行性检测部分13选择由应用程序识别部分12所识别且由电子设备2所持有的多个应用程序之一。接下来,应用程序不可执行性检测部分13询问电子设备2的应用程序执行部分所选的应用程序是否是可执行的(步骤S205)。当电子设备2的应用程序将关于“操作一应用程序所必需的资源量”的信息作为应用程序特定信息来保存时,电子设备2的应用程序执行部分基于关于电子设备2中可以使用的可用硬件资源量来确定该应用程序是否是可执行的,并将确定的结果发送给电子设备1的应用程序不可执行性检测部分13。应用程序不可执行性检测部分13接收从电子设备2发送过来的确定结果。
接下来,应用程序不可执行性检测部分13确定从电子设备2发送过来的询问结果是否是“所选应用程序是可执行的”(步骤S206)。当询问结果是“所选应用程序是可以执行的”时,应用程序不可执行性检测部分13确定在电子设备2中步骤S204中所选的应用程序处于可执行的状态中(步骤S207),并跳至步骤S209的操作。另一方面,当询问结果是“所选应用程序不是可执行的”时,应用程序不可执行性检测部分13确定在电子设备2中步骤S204中所选的应用程序不处于可执行的状态中(S208),并且跳至步骤S209的操作。
在步骤S209中,应用程序不可执行性检测部分13确定是否对于由应用程序识别部分12所识别且由电子设备2所持有的所有应用程序都已执行过关于可执行性的询问。当还没有对所有应用程序都执行询问时,应用程序不可执行性检测部分13返回到步骤S204的操作,并且对另一个应用程序执行询问。另一方面,当已经对所有应用程序执行过询问时,电子设备1返回到整个操作。
当有一个被应用程序不可执行性检测部分13确定为不可执行的应用程序时,应用程序执行确定部分14确定是否应该执行可以替代该应用程序的替代应用程序。应用程序执行确定部分14包括应用程序启动请求检测部分141和应用程序执行状态获取部分142。
应用程序启动请求检测部分141检测与另一个电子设备上存在的应用程序有关的启动请求,并指定该启动请求所指向的电子设备所持有的应用程序。
在本发明中,关于与应用程序有关的启动请求,大致假定下面两种情况(C)和(D)。
(C)包括用于指定电子设备和应用程序的信息的启动请求是通过网络6从另一个电子设备中发送过来的。
(D)电子设备2本身在不通过网络6的情况下发布一个启动请求。例如,电子设备2的用户指明与电子设备2有关且由电子设备2所持有的应用程序的启动;通过使用电子设备2的内部条件诸如定时器、应用程序等作为触发器,来发布与电子设备2所持有的应用程序有关的启动请求;等等。
在下面的两种情况(E)和(F)中实现了应用程序启动请求检测部分141的一个示例,该应用程序启动请求检测部分141确定是否已经发布与电子设备2所持有的应用程序有关的启动请求。
(E)应用程序启动请求检测部分141监控网络6上的通信状态。如果在监控通信状态期间从连接到网络6上的设备中已发布与电子设备2所持有的应用程序有关的启动请求,则应用程序启动请求检测部分141确定已经发布了情况(C)的启动请求。
(F)当已经发布与电子设备2所持有的应用程序有关的启动请求时,电子设备2的应用程序执行部分为响应于来自电子设备1的应用程序启动请求检测部分141的请求,将该发布通知到电子设备1。因此,应用程序启动请求检测部分141可以通过询问电子设备2在其中是否已经发布了启动请求,从而确定情况(D)的启动请求是否已经发布。
当应用程序启动请求检测部分141包括(E)和(F)中任一个或两者的机制时,有可能检测与另一个电子设备所持有的应用程序有关的启动请求。
应用程序执行状态获取部分142从电子设备2中获取由电子设备2的应用程序执行部分所产生的应用程序执行状态信息。如上所述,电子设备2的应用程序执行部分通过在应用程序执行的过程中使用串行化技术等,产生了应用程序执行状态信息。应用程序执行状态获取部分142可以通过分析应用程序执行状态信息,来找出电子设备2上执行到中途的应用程序的状态。
当有被应用程序不可执行性检测部分13确定为不可执行的应用程序时,如果检测到与被应用程序启动请求检测部分141确定为不可执行的应用程序有关的启动请求,和/或获得与被应用程序启动请求检测部分141确定为不可执行的应用程序有关的应用程序执行状态信息,则应用程序执行确定部分14确定应该执行替代应用程序以取代该应用程序,并且使替代应用程序持有确定部分15确定是否持有替代应用程序。为响应于此,替代应用程序持有确定部分15通过参照标识表格和/或相关表格来确定是否持有替代应用程序,并且当持有替代应用程序时,使应用程序执行部分16执行该替换应用程序。
定时控制部分11控制着应用程序执行部分16、应用程序识别部分12、应用程序不可执行性检测部分13、应用程序执行确定部分14和替代应用程序持有确定部分15的执行的定时。
接下来,将描述当执行应用程序继续程序时电子设备1的操作的详细流程。在第一实施例中,通过使用上述配置组合,假定四种基本的流程。另外,将假定通过进一步组合这四种基本过程而获得的流程。第一基本过程是这样一种过程,其中假定另一个设备所持有的应用程序处于不可执行的状态中,当检测到与该应用程序有关的启动请求时,电子设备1执行作为替代应用程序的功能完全相同的应用程序。第二基本过程是这样一种过程,其中当检测到由另一个设备所持有的应用程序是不可执行的时,电子设备1执行作为替代应用程序的功能完全相同的应用程序,以便继续该应用程序的执行状态。第三基本过程是这样一种过程,其中假定由另一个设备所持有的应用程序是不可执行的,当检测到与该应用程序有关的启动请求时,电子设备1执行作为替代应用程序的功能相关的应用程序。第四基本过程是这样一种过程,其中当检测到由另一个设备所持有的应用程序是不可执行的时,电子设备1执行作为替代应用程序的功能相关的功能应用程序,以便继续该应用程序的执行状态。第一到第四基本过程可以彼此组合在一起。
图11是示出了当执行第一基本过程时电子设备1的操作过程的流程图。在下文中,将参照图11描述第一基本过程的流程。注意到,图11的过程随应用程序继续程序的结束而结束。
首先,应用程序识别部分12识别由其它电子设备所持有的应用程序(步骤S301)。步骤S301的过程对应于图5的步骤S1的过程。
接下来,定时控制部分11确定开始应用程序标识确定部分151的过程的定时已经到了(步骤S302)。当该定时未到时,定时控制部分11跳至步骤S303的操作。另一方面,当该定时已经到了时,应用程序标识确定部分151确定电子设备1是否持有了与步骤S301中所识别的其它电子设备所持有的应用程序有关的功能完全相同的应用程序。如果持有了功能完全相同的应用程序,则应用程序标识确定部分151创建其它电子设备所持有的应用程序和功能完全相同的应用程序的组合并以之作为标识表格(步骤S304),并且电子设备1跳至步骤S303的操作。
在步骤S303中,定时控制部分11确定开始应用程序不可执行性检测部分13的处理过程的定时是否已经到了。当该定时还没有到时,定时控制部分11跳至步骤S300的操作。另一方面,当该定时已经到了时,应用程序不可执行性检测部分13确定是否有被检测为不可执行的另一个电子设备的应用程序(步骤S305)。步骤S305的过程对应于图5的步骤S2的过程。当没有不可执行的应用程序时,电子设备1跳至步骤S300的操作。另一方面,当有不可执行的应用程序时,电子设备1跳至步骤S306的操作。
在步骤S306中,应用程序执行确定部分14确定应用程序启动请求检测部分141是否已经检测到与不可执行的应用程序有关的启动请求。当没有检测到该启动请求时,电子设备1跳至步骤S300的操作。另一方面,当检测到该启动请求时,应用程序执行确定部分14确定应该执行替代应用程序,并且使替代应用程序持有确定部分15执行步骤S307的操作。步骤S306的过程对应于图5的步骤S3的过程。
在步骤S307中,替代应用程序持有确定部分15参照在步骤S304中由应用程序标识确定部分151所创建的标识表格,来确定是否持有了可以替代已为其发布过启动请求的那个应用程序的功能完全相同的应用程序。当没有持有该功能完全相同的应用程序时,电子设备1跳至步骤S300的操作。另一方面,当持有功能完全相同的应用程序时,替代应用程序持有确定部分15使应用程序执行部分16执行步骤S308的操作。步骤S307的过程对应于图5的步骤S4的过程。
在步骤S308中,应用程序执行部分16启动并执行已被替换应用程序持有确定部分15确定为持有的功能完全相同的应用程序。之后,电子设备1跳至步骤S300的操作。步骤S308的过程对应于图5的步骤S5的过程。
在步骤S300中,电子设备1改变内部定时器,并返回到步骤S302的操作。电子设备1有规律地执行应用程序标识确定部分151的处理过程以及应用程序不可执行性检测部分13的处理过程。由此,确保有规律地执行标识确认过程和不可执行性检测过程。注意到,应用程序标识确定部分151和应用程序不可执行性检测部分13的确定过程不必按特定的顺序来执行,即,只要定期地执行这些过程就可以,过程周期不需要相同。例如,应用程序标识确定部分151每300秒就执行一次,应用程序不可执行性检测部分13每5秒就执行一次。可以与特定的执行定时相关地执行这些过程。
将描述使用第一基本过程的示例性服务。
假定第一家用服务器提供一种定期将连接到网络的其它电子设备的数据备份并复制到自身之上的服务。第一家用服务器持有用来执行备份的应用程序(第一备份应用程序)。当接收到来自内部定时器的启动请求时,第一备份应用程序执行该服务。
此处假定第一家用服务器的第一备份应用程序陷入不可执行的状态。
通过网络连接到第一家用服务器的第二家用服务器持有着其功能与第一备份应用程序完全相同的第二备份应用程序。当第二家用服务器执行应用程序继续程序以检测到第一备份应用程序已经陷入不可执行的状态并且第一家用服务器的内部定时器已经向第二备份应用程序提供了启动请求时,第二家用服务器启动该第二备份应用程序。因此,第二家用服务器取代无法启动第一备份应用程序的第一家用服务器而提供服务。
图12是示出了当执行第二基本过程时电子设备1的操作的流程图。在下文中,将参照图12来描述第二基本过程的流程。
首先,应用程序识别部分12识别由其它电子设备所持有的应用程序(步骤S401)。步骤S401的过程对应于图5的步骤S1的过程。
接下来,定时控制部分11确定开始应用程序标识确定部分151的处理过程的定时已经到了(步骤S402)。当该定时还没有到时,定时控制部分11跳至步骤S403的操作。另一方面,当该定时已经到了时,应用程序标识确定部分151确定电子设备1是否持有了与步骤S401中所识别的其它电子设备所持有的应用程序有关的功能完全相同的应用程序。如果持有了功能完全相同的应用程序,则应用程序标识确定部分151创建由其它电子设备所持有的应用程序和功能完全相同的应用程序的组合并以之作为标识表格(步骤S404),并且电子设备1跳至步骤S403的操作。
在步骤S403中,定时控制部分11确定开始应用程序执行状态获取部分142的处理过程的定时是否已经到了。当该定时还没有到时,定时控制部分跳至步骤S406的操作。另一方面,当该定时没有到时,应用程序执行状态获取部分142获取在其它电子设备中执行的应用程序的应用程序执行状态信息(步骤S405),并且电子设备1跳至步骤S406的操作。
在步骤S406中,定时控制部分11确定开始应用程序不可执行性检测部分13的处理过程的定时是否已经到了。当该定时还没有到时,定时控制部分11跳至步骤S400的操作。另一方面,当该定时已经到了时,应用程序不可执行性检测部分13确定是否有被检测为不可执行的另一个电子设备的应用程序(步骤S407)。步骤S407的过程对应于图5的步骤S2的过程。当没有不可执行的应用程序时,电子设备1跳至步骤S400的操作。另一方面,当有不可执行的应用程序时,电子设备1跳至步骤S408的操作。
在步骤S408中,应用程序执行确定部分14确定应用程序执行状态获取部分142是否持有有不可执行的应用程序的应用程序执行状态信息。当没有持有应用程序执行状态信息时,电子设备1跳至步骤S400的操作。另一方面,当持有了应用程序执行状态信息时,应用程序执行确定部分14确定应该执行替代应用程序,并且使替代应用程序持有确定部分15执行步骤S409的操作。步骤S408的过程对应于图5的步骤S3的过程。
在步骤S409中,替代应用程序持有确定部分15参照在步骤S404中由应用程序标识确定部分151所创建的标识表格,来确定电子设备1中是否持有了其功能与所持有的应用程序执行状态信息相对应的功能完全相同的应用程序。当没有持有功能完全相同的应用程序时,电子设备1跳至步骤S400的操作。另一方面,当持有了功能完全相同的应用程序时,替代应用程序持有确定部分15使应用程序执行部分16执行步骤S410的操作。步骤S409的过程对应于图5的步骤S4的过程。
在步骤S410中,应用程序执行部分16启动并执行已被替代应用程序持有确定部分15确定为持有的功能完全相同的应用程序。之后,电子设备1跳至步骤S400的操作。步骤S410的过程对应于图5的步骤S5的过程。
在步骤S400中,电子设备1改变内部计时器,并返回到步骤S402的操作。电子设备1有规则地执行应用程序标识确定部分151的处理过程、应用程序不可执行性检测部分13的处理过程以及应用程序执行状态获取部分142的处理过程。由此,确保有规则地执行标识确定、不可执行性检测以及应用程序执行信息的获取。注意到,应用程序标识确定部分151、应用程序不可执行性检测部分13和应用程序执行状态获取部分142的多个处理过程并不需要按特定的顺序来执行,即,只要定期执行这些过程就可以,过程周期不必相同。
将描述使用第二基本过程的示例性服务。
第一AV设备被假定为提供一种执行广播记录的服务。第一AV设备持有用来执行广播记录的应用程序(第一记录应用程序)并提供该服务。
此处假定在广播记录期间,第一AV设备的第一记录应用程序突然陷入不可执行的状态中,所以该服务被中断。
通过网络连接到第一AV设备的第二AV设备持有着其功能与第一记录应用程序完全相同的第二记录应用程序。第二AV设备执行应用程序继续程序以获得应用程序执行状态信息,比如第一AV设备中所执行的第一记录应用程序已经记录了什么频道以及其设置是怎样的。
当第二AV设备检测到第一记录应用程序已经陷入不可执行的状态中时,第二AV设备基于所获取的应用程序执行状态信息来启动第二记录应用程序2,以便在设置与执行第一记录应用程序时的设置相同的情况下接管该服务。
图13是示出了当执行第三基本过程时电子设备1的操作的流程图。在下文中,将参照图13来描述第三基本过程的流程。
首先,应用程序识别部分12识别由其它电子设备所持有的应用程序(步骤S501)。步骤S501的过程对应于图5的步骤S1的过程。
接下来,定时控制部分11确定开始相关应用程序确定部分152的处理过程的定时是否已经到了(步骤S502)。当该定时还没有到时,定时控制部分11跳至步骤S503操作。另一方面,当该定时已经到了时,相关应用程序确定部分152执行将功能相关的应用程序与步骤S501中识别的其它电子设备所持有的应用程序相互关联的过程,以创建相关表格(步骤S504)。注意到,当预先创建该相关表格时,步骤S504的过程可以省略。在步骤S504之后,电子设备跳至步骤S503的操作。
在步骤S503中,定时控制部分11确定开始应用程序不可执行性检测部分13的处理过程的定时是否已经到了。当该定时还没到时,定时控制部分11跳至步骤S500的操作。另一方面,当该定时已经到了时,应用程序不可执行性检测部分13确定是否有被检测为不可执行的另一个电子设备的应用程序(步骤S505)。步骤S505的过程对应于图5的步骤S2的过程。当没有不可执行的应用程序时,电子设备1跳至步骤S500的操作。另一方面,当有不可执行的应用程序时,电子设备1跳至步骤S506的操作。
在步骤S506中,应用程序执行确定部分14确定应用程序启动请求检测部分141是否已经检测到与该不可执行的应用程序有关的启动请求。当还没有检测到该启动请求时,电子设备1跳至步骤S500的操作。另一方面,当已经检测到启动请求时,应用程序执行确定部分14确定应该执行替代应用程序,并且使替代应用程序持有确定部分15执行步骤S507的操作。步骤S506的过程对应于图5的步骤S3的过程。
在步骤S507中,替代应用程序持有确定部分15参照在步骤S504中由相关应用程序确定部分152所创建的相关表格(当预先存储相关表格时,就参照所存储的相关表格),来确定是否持有了可替换已为其发布过启动请求的应用程序的功能相关的应用程序。当没有持有该功能相关的应用程序时,电子设备1跳至步骤S500的操作。另一方面,当持有了功能相关的应用程序时,替代应用程序持有确定部分15使应用程序执行部分16执行步骤S508的过程。步骤S507的过程对应于图5的步骤S4的过程。
在步骤S508中,应用程序执行部分16启动并执行已被替代应用程序持有确定部分15确定为持有的功能相关的应用程序。之后,电子设备1跳至步骤S500的操作。步骤S508的过程对应于图5的步骤S5的过程。
在步骤S500中,电子设备1改变内部定时器,并返回到步骤S502的操作。电子设备1有规律地执行相关应用程序确定部分152的处理过程和应用程序不可执行性检测部分13的处理过程。由此,确保有规律地执行功能相关的应用程序确定和不可执行性检测。注意到,并不需要按特定顺序来执行相关应用程序确定部分152和应用程序不可执行性检测部分13的确定过程,即,只要定期执行这些过程就可以,过程周期不必相同。例如,相关应用程序确定部分152每300秒执行一次,应用程序不可执行性检测部分13每5秒执行一次。这些过程可以按各自特定的执行定时来执行。
将描述使用第三基本过程的示例性服务。
家用服务器被假定提供这样一种服务,该服务定期将连接到网络的其它电子设备的数据备份并复制到自身之上。家用服务器持有用来执行备份的应用程序(备份应用程序)。该备份应用程序在当接收到来自内部计时器的启动请求时执行该服务。
此处假定家用服务器的备份应用程序陷入不可执行的状态。
通过网络连接到家用服务器的移动电话持有用户通知应用程序,该用户通知应用程序与用于备份应用程序的功能相关的应用程序相关联。
当该移动电话执行应用程序继续程序并检测到家用服务器的备份应用程序已经陷入不可执行的状态中并且家用服务器的内部计时器已经向该备份应用程序提供了启动请求时,该移动电话启动该用户通知应用程序。用户通知应用程序执行用来通知并警告用户该家用服务器的备份已出现故障这样一种服务。
因此,执行另一个服务,用于辅助备份应用程序的服务。
图14是示出了当执行第四基本过程时电子设备1的操作的流程图。在下文中,将参照图14描述第四基本过程的流程。
首先,应用程序识别部分12识别由其它电子设备所持有的应用程序(步骤S601)。步骤S601的过程对应于图5的步骤S1的过程。
接下来,定时控制部分11确定开始相关应用程序确定部分152的处理过程的定时是否已经到了(步骤S602)。当该定时还没有到时,定时控制部分11跳至步骤S603的操作。另一方面,当该定时已经到了时,相关应用程序确定部分152执行将功能相关的应用程序与步骤S601所识别的其它电子设备所持有的应用程序相关联的过程,以创建相关表格(步骤S604)。注意到,当预先创建相关表格时,可以忽略步骤S604的过程。在步骤S604之后,电子设备1跳至步骤S603的操作。
在步骤S603中,定时控制部分11确定开始应用程序执行状态获取部分142的处理过程的定时是否已经到了。当该定时还没有到时,定时控制部分跳至步骤S606的操作。另一方面,当该定时已经到了时,应用程序执行状态获取部分142获取在其它电子设备中执行的应用程序的应用程序执行状态信息(步骤S605),并且电子设备1跳至步骤S606的操作。
在步骤S606中,定时控制部分11确定开始应用程序不可执行性检测部分13的处理过程的定时是否已经到了。当该定时还没有到时,定时控制部分11跳至步骤S600的操作。另一方面,当该定时已经到了时,应用程序不可执行性检测部分13确定是否有被检测为不可执行的另一个电子设备的应用程序(步骤S607)。步骤S607的过程对应于图5的步骤S2的过程。当没有不可执行的应用程序时,电子设备1跳至步骤S600的操作。另一方面,当有不可执行的应用程序时,电子设备1跳至步骤S608的操作。
在步骤S608中,应用程序执行确定部分14确定应用程序执行状态获取部分142是否持有不可执行的应用程序的应用程序执行状态信息。当没有持有应用程序执行状态信息时,电子设备1跳至步骤S600的操作。另一方面,当持有应用程序执行状态信息时,应用程序执行确定部分14确定有关执行替代应用程序,并使替代应用程序持有确定部分15执行步骤S609的操作。步骤S608的过程对应于图5的步骤S3的过程。
在步骤S609中,替代应用程序持有确定部分15参照在步骤S604中由相关应用程序确定部分152所创建的相关表格(当预先存储相关表格时,参照所存储的相关表格),来确定是否持有功能相关的应用程序,该功能相关的应用程序可以替代已为其发布过启动请求的应用程序。当没有持有功能相关的应用程序时,电子设备1跳至步骤S600的操作。另一方面,当持有功能相关的应用程序时,替代应用程序持有确定部分15使应用程序执行部分16执行步骤S610的操作。步骤S609的过程对应于图5的步骤S4的过程。
在步骤S610中,应用程序执行部分16启动并执行已被替代应用程序持有确定部分15确定为持有的功能相关的应用程序。之后,电子设备1跳至步骤S600的操作。步骤S610的过程对应于图5的步骤S5的过程。
在步骤S600中,电子设备1改变内部定时器,并返回到步骤S602的操作。电子设备1定期执行相关应用程序确定部分152的处理过程、应用程序不可执行性检测部分13的处理过程、以及应用程序执行状态获取部分142的处理过程。由此,确保有规律地执行相关功能应用程序确定、不可执行性检测、以及应用程序执行信息的获取。注意到,并不需要按特定的顺序来执行相关应用程序确定部分152、应用程序不可执行性检测部分13以及应用程序执行状态获取部分142的多个处理过程,即,只要定期执行这些过程就可以,过程周期不必相同。
将描述使用第四基本过程的示例性服务。
移动电话被假定具有一种服务,该服务向用户提供广播观看。移动电话持有用来显示广播的应用程序(TV应用程序),并提供该服务。
此处假定移动电话的TV应用程序在执行期间突然陷入不可执行的状态中,所以该服务中断。
此处,通过网络连接到该移动电话的一AV设备持有被称为记录应用程序的一应用程序,该记录应用程序将广播记录到自身之中并且作为功能相关的应用程序与TV应用程序相关联。该AV设备执行应用程序继续程序以获得应用程序执行状态信息,该信息指出移动电话所执行的TV应用程序已使用户观看的频道以及其具有的设置。
当该AV设备检测到该移动电话的TV应用程序已经陷入不可执行的状态中时,该AV设备基于该TV应用程序的应用程序执行状态信息来启动记录应用程序,并在其设置与执行观看时的设置相同的情况下接管该服务,并且执行广播记录服务。
由此,移动电话的用户可以通过使用该AV设备而随后观看该广播的剩余部分。因此,执行另一种服务,用于辅助该TV应用程序的服务。
如上所述,根据第一实施例,电子设备识别由其它电子设备所持有的应用程序,并且当在所识别的应用程序中检测到不可执行的应用程序时,确定是否应该执行替代应用程序。当应该执行替代应用程序时,电子设备确定是否持有替代应用程序。当持有替代应用程序时,执行该替代应用程序。因此,即使网络仅由多个设备组成而没有中心服务器时,如果在该网络上另一个电子设备中某一应用程序陷入不可执行的状态中,则第一实施例的电子设备也可以执行替代应用程序。因此,即使是在仅由多个设备组成而无中心服务器的网络上,服务也可以继续被执行。
此处,将描述第一到第四基本过程的组合。
第一基本过程和第二基本过程可以组合在一起。例如,电子设备1像在第二基本过程中那样预先获取了应用程序执行状态信息,并且当已确定在图11的步骤S306中还没有检测到启动请求时,执行图12的步骤S408的确定过程。如果持有应用程序执行状态信息,则执行步骤S307的操作,该操作确定是否持有功能完全相同的应用程序。注意到,第一基本过程和第二基本过程的组合并不限于此。
第一基本过程和第三基本过程可以组合起来。例如,电子设备1可以像在第三实施例中那样预先创建相关表格并在步骤S307中确定没有持有功能完全相同的应用程序,之后,执行图13的步骤S507,并且如果持有功能相关的应用程序,则执行该相关应用程序。注意到,第一基本过程和第三基本过程的组合并不限于此。
第一基本过程和第四基本过程可以组合起来。例如,电子设备1在当图14的步骤S608中没有持有应用程序执行状态信息时可以执行图11的步骤S306和S307,并且在当检测到启动请求时可以在没有应用程序执行状态信息的情况下启动功能完全相同的应用程序。注意到,第一基本过程和第四基本过程的组合并不限于此。
第一到第四基本过程可以尽可能多地按其它方式组合起来。三个或更多基本过程可以组合起来。电子设备可以简单地按顺序执行第一到第四基本过程。本发明并不限于上述组合。
注意到,在第一实施例中,替代应用程序持有确定部分15参照标识表格和/或相关表格来确定电子设备1中是否持有可以替换被检测为不可执行的应用程序的替代应用程序。然而,只要能够确定电子设备1中是否持有替代应用程序,替代应用程序持有确定部分15便可以不参照标识表格和/或相关表格。具体来讲,替代应用程序持有确定部分15可以在每当应用程序执行确定部分14确定应该执行替代应用程序的时候确定是否应该执行替代应用程序。具体来讲,在本发明中,图11的步骤S302和S304、图12的步骤S402和S404、图13的步骤S502和S504以及图14的步骤S602和S604都不是必需的。
(第二实施例)
在第一实施例中,电子设备1被假定为是用来执行应用程序继续程序的唯一的电子设备。在第二实施例中,假定除了电子设备1以外还有一个或更多用来执行应用程序继续程序的电子设备。此处,为了简便,假定电子设备3执行应用程序继续程序。即使除电子设备3以外还有其它电子设备执行应用程序继续程序,也都相似地操作各电子设备。
对于第一实施例,电子设备1和3单独地执行替代应用程序。
然而,对于连接到网络6的一组电子设备被视为单个系统的情形,即使不是所有的电子设备执行替代应用程序时,也可以充分地操作该系统。换句话说,只有一个设备执行替代应用程序可能就足够了。或者,可能期望为用于执行替代应用程序的电子设备设置一些条件。例如,期望在规格尽可能高的电子设备中或者在尽可能优先携带的设备中启动功能完全相同的应用程序。
在第二实施例中,将描述只使用有限的电子设备来启动替代应用程序的机制。
图15是示出了当执行根据第二实施例的应用程序继续程序时电子设备3的功能配置的方框图。在图15中,其功能与图4的第一实施例中的方框的功能相似的方框是用相同的标号表示的,并且将不再描述。如图15所示,第二实施例的电子设备1和3还包括在应用程序执行确定部分14a中的设备间启动仲裁部分20。
在下文中,电子设备1中的设备间启动仲裁部分20(电子设备3中的设备间启动仲裁部分20)与电子设备3中的设备间启动仲裁部分20(电子设备1中的设备间启动仲裁部分20)进行通信,以确定是否要启动替代应用程序。
设备间启动仲裁部分20执行下面大概两个过程X和Y。
(过程X)用于获取其它电子设备所持有的启动仲裁信息并基于该启动仲裁信息确定是否要在电子设备1或3中启动替代应用程序这样一个过程。
(过程Y)为响应于来自其它电子设备的设备间启动仲裁部分20的请求而回答是否持有替代应用程序并且将电子设备1或3所持有的启动仲裁信息提供给其它电子设备的设备间启动仲裁部分20这样一个过程。
下文将描述各电子设备之间传输的启动仲裁信息。
首先,将描述过程X。当本发明的电子设备持有功能完全相同的应用程序或功能相关的应用程序时,执行过程X以便确定是否要执行所持有的应用程序。
图16是示出了当过程X被添加到第一基本过程中时电子设备1的操作的流程图。在图16中,其操作与与图11的操作相似的步骤用相同的标号表示,并不再描述。如图16所示,电子设备1在确定持有功能完全相同的应用程序的步骤S307之后在步骤S701中执行过程X。在步骤S701中,设备间启动仲裁部分20获取由其它电子设备所持有的启动仲裁信息,并基于该启动仲裁信息来确定是否应该执行被确定为持有的功能完全相同的应用程序。当确定应该执行功能完全相同的应用程序时,电子设备1跳至步骤S308的操作。另一方面,当确定不应该执行功能完全相同的应用程序时,电子设备1跳至步骤S300的操作。
图17是示出了当过程X被添加到第二基本过程时电子设备1的操作的流程图。在图17中,其操作与图12相似的那些步骤用相同的标号表示,并且将不再描述。如图17所示,电子设备1在确认持有功能完全相同的应用程序的步骤S409之后在步骤S801中执行过程X。在步骤S801中,设备间启动仲裁部分20获取由其它电子设备所持有的启动仲裁信息,并且基于该启动仲裁信息来确定是否应该执行被确定为持有的功能完全相同的应用程序。当确定应该执行功能完全相同的应用程序时,电子设备1跳至步骤S410的操作。另一方面,当确定不应该执行功能完全相同的应用程序时,电子设备1跳至步骤S400的操作。
图18是示出了当过程X被添加到第三基本过程中时电子设备1的操作的流程图。在图18中,其操作与图13相似的步骤用相同的标号表示,并且不再描述。如图18所示,电子设备1在确定持有功能相关的应用程序的步骤S507之后在步骤S901中执行过程X。在步骤S901中,设备间启动仲裁部分20获取由其它电子设备所持有的启动仲裁信息,并且基于该启动仲裁信息确定是否应该执行被确定为持有的功能完全相同的应用程序。当确定应该执行功能完全相同的应用程序时,电子设备1跳至步骤S508的操作。另一方面,当确定不应该执行功能完全相同的应用程序时,电子设备1跳至步骤S500的操作。
图19是示出了当过程X被添加到第四基本过程中时电子设备1的操作的流程图。在图19中,其操作与图14相似的步骤用相同的标号来表示,并且将不再描述。如图19所示,电子设备1在确定持有功能完全相同的应用程序的步骤S609之后在步骤S1001中执行过程X。在步骤S1001中,设备间启动仲裁部分20获取由其它电子设备所持有的启动仲裁信息,并且该基于启动仲裁信息来确定是否应该执行被确定为持有的功能完全相同的应用程序。当确定应该执行功能完全相同的应用程序时,电子设备1跳至步骤S610的操作。另一方面,当确定不应该执行功能完全相同的应用程序时,电子设备1跳至步骤S600的操作。
接下来,将详细描述一过程(步骤S701、S801、S901和S1001),该过程用于确定是否可以启动要由设备间启动仲裁部分20执行的替代应用程序。
图20是示出了在替代应用程序启动决定过程(步骤S701、S801、S901和S1001)中电子设备1的详细操作的流程图。图21是示出了在替代应用程序启动决定过程(步骤S701、S801、S901和S1001)中网路上各电子设备之间的通信的顺序图。在图21中,垂直线表示各电子设备的时间进程。水平线表示电子设备之间的通信。在图21中,为了简便,假定电子设备3持有替代应用程序,并且电子设备4和5不持有替代应用程序。
首先,电子设备1的设备间启动仲裁部分20询问连接到网络6的其它电子设备3、4和5是否持有替代应用程序(步骤S1101,通信1201)。
为响应于此,其它电子设备执行过程Y以回答是否持有替代应用程序(通信1202)。具体来讲,其它电子设备的设备间启动仲裁部分20在参照标识表格或相关表格的情况下确定是否持有替代应用程序,并返回该确定结果。在图21中,电子设备3回答持有替代应用程序,并且电子设备4和5回答不持有替代应用程序。
基于该响应,已接收到其它电子设备的响应的电子设备1的设备间启动仲裁部分20确定是否有另一个持有替代应用程序的电子设备(步骤S1102)。
当没有另一个持有替代应用程序的电子设备时,电子设备1的设备间启动仲裁部分20确定可以启动替代应用程序(步骤S1103)。另一方面,当有另一个持有替代应用程序的电子设备时,电子设备1的设备间启动仲裁部分20跳至步骤S1104的操作。
在步骤S1104中,电子设备1的设备间启动仲裁部分20从持有替代应用程序的电子设备中获取启动仲裁信息。在这种情况下,电子设备1的设备间启动仲裁部分20向电子设备3发送一个获取启动仲裁信息的请求(通信1203)。为响应于此,电子设备3的设备间启动仲裁部分20向电子设备1发送所持有的启动仲裁信息(通信1204)。注意到,对于不持有替代应用程序的电子设备,可以不执行这些通信。
接下来,电子设备1的设备间启动仲裁部分20将电子设备1所持有的启动仲裁信息与从电子设备3中发送过来的启动仲裁信息进行比较(步骤S1105)。
此处,将描述启动仲裁信息。启动仲裁信息是指用来确定由某一应用程序执行某一服务的必要程度的信息。图22示出了示例性表格格式的启动仲裁信息。在该表格的每一个条目中,注册了用于确定执行替代应用程序的必要程度的信息。下面将简单描述该图中的每一个条目。
在“应用程序属性信息”中,记录了由某一电子设备持有的替代应用程序的应用程序属性信息。应用程序属性信息与参照图3所描述的信息相似,并不再详细描述。
在“设备标识名称”中,记录了用于唯一地指定该电子设备的标识信息。该信息可以是字符串形式或其它形式的名称或数字。
在“设备类型”中,记录了用于指定电子设备类型的信息,比如,移动电话、PDA、录像机、PC等。
在“CPU”中,记录了关于电子设备中所包括的处理器的信息,比如,电子设备中所包括的CPU的规格、速度等。
在“OS”中,记录了关于电子设备中所包括的OS或中间件的信息,比如,电子设备中所包括的OS的规格、版本等。
在“存储器容量”中,记录了电子设备中所包括的像存储器等资源的信息。
在“处理器使用率”中,记录了关于电子设备的处理器的占用率的信息。
在“可用的资源量”中,记录了关于资源的未使用资源量的信息,比如,电子设备中所包括的存储器等。
在“设置优先级”中,记录了关于电子设备的服务执行优先级的信息。优先级可能是为设备定义好不变的数值,或者是由用户针对各设备而设置的数值。
在“上一次用户操作日期”中,记录了关于与该电子设备有关的上一次用户操作的时间的信息。
图22示出了启动仲裁信息的一个实现示例。图22的一部分条目可以去除,或者该表格可以包括表示关于其它属性的信息的条目。
在步骤S1105中,电子设备1的设备间启动仲裁部分20基于在电子设备1所持有的启动仲裁信息与步骤S1104中所获取的其它电子设备所持有的启动仲裁信息之间进行比较的结果,来确定是否有必要在电子设备1中启动并执行替代应用程序(步骤S1106)。
使用下面的确定方法来执行步骤S1106的确定过程。
(第一确定方法)通过使用启动仲裁信息中所包括的应用程序属性信息,电子设备1的设备间启动仲裁部分20在当其它电子设备持有其所需资源量比电子设备1所持有的替代应用程序的所需资源量要小的替代应用程序时就确定有必要启动替代应用程序,而在其它情况下则确定没必要启动它。
(第二确定方法)电子设备1的设备间启动仲裁部分20使用启动仲裁信息中所包括的关于设备标识名称、设备类型、CPU、OS、存储器容量、处理器使用率、可用资源量和/或设置的优先级的信息,以便在当该信息符合电子设备1中所定义的条件时确定有必要启动替代应用程序而当该条件不符合时确定没必要启动替代应用程序。下面是该条件的示例。
(示例性条件2-1)当没有其优先级比电子设备1要高的其它电子设备时,假定电子设备1要求启动替代应用程序。当有另一个其优先级高于电子设备1的电子设备时,假定电子设备1不要求启动替代应用程序。
(示例性条件2-2)当没有其可用资源量大于电子设备1的可用资源量的其它电子设备时,假定电子设备1要求启动替代应用程序。当有另一个其可用资源量大于电子设备1的可用资源量的电子设备时,假定电子设备不要求启动替代应用程序。
(示例性条件2-3)当没有其类型与电子设备1相同且其CPU规格高于电子设备1的CPU规格的其它电子设备时,假定电子设备1要求启动替代应用程序。当有其类型与电子设备1相同且其CPU规格高于电子设备1的CPU规格的电子设备时,假定电子设备1不要求启动替代应用程序。
(第三确定方法)基于关于上一次用户操作日期的信息,电子设备1的设备间启动仲裁部分20确定是否有向其添加用户操作的时间晚于电子设备1的添加用户操作时间的电子设备。如果没有这样的电子设备,则假定电子设备1要求启动替代应用程序。如果有这样的电子设备,则假定电子设备1不要求启动替代应用程序。
可以通过使用其它启动仲裁信息和其它确定方法来执行该确定过程。
在步骤S1106中,当已经确认启动替代应用程序的必要性时,电子设备1的设备间启动仲裁部分20跳至步骤S1103的操作,并确定要启动替代应用程序。另一方面,当还没有确认启动替代应用程序的必要性时,电子设备1的设备间启动仲裁部分20确定不要启动替代应用程序(步骤S1107)。
因此,根据第二实施例,当网络上多个电子设备执行应用程序继续程序时,设备间启动仲裁部分确定是否应该执行替代应用程序,所以在整个系统中只有有限的电子设备执行该替代应用程序。因此,可以有效地利用整个系统的资源。
注意到,在第二实施例中可以组合第一到第四过程。
尽管已详细描述了本发明,但是前面的描述无论在那一个方面都是说明性的而不是限制性的。应该理解,在不背离本发明的范围的情况下可以设计出许多其它修改和变化。
工业应用性
通过利用具有上述配置的本发明,即使在假定没有像中心服务器这样的集中控制方案的网络设备中,也可以实现用于确保服务高度稳定的设备间关联操作。例如,可以在另一个设备中自动地执行相同的服务,被中断的服务的其余部分可以被另一个设备接管并执行,等等。因此,本发明的电子设备在通信等领域是有用的。

Claims (8)

1.一种通过网络连接到可以执行应用程序的至少另一个电子设备的电子设备,包括:
应用程序识别部分,用于识别由所述其它电子设备所持有的应用程序;
应用程序不可执行性检测部分,用于检测在所述其它电子设备中由所述应用程序识别部分所识别的应用程序是否是不可执行的;
应用程序执行确定部分,用于确定是否要执行替代应用程序,所述替代应用程序可以替代已被所述应用程序不可执行性检测部分确定为不可执行的应用程序;
替代应用程序持有确定部分,用于确定所述电子设备中是否持有可以替代已被确定为不可执行的应用程序的替代应用程序;以及
应用程序执行部分,用于执行所述替代应用程序。
2.如权利要求1所述的电子设备,其特征在于,
所述应用程序执行确定部分包括应用程序启动请求检测部分,用于检测与已被所述应用程序不可执行性检测部分检测为不可执行的应用程序有关的启动请求,并且
所述应用程序执行确定部分在当检测到与已被所述应用程序不可执行性检测部分确定为不可执行的应用程序有关的启动请求时,确定要执行所述替代应用程序。
3.如权利要求1所述的电子设备,其特征在于,
所述替代应用程序持有确定部分包括应用程序标识确定部分,所述应用程序标识确定部分用于:确定所述电子设备是否持有功能完全相同的应用程序,所述功能完全相同的应用程序具有与所述应用程序识别部分所识别的、由所述其它电子设备所持有的应用程序完全相同的功能;以及创建标识表格,在所述标识表格中,由所述其它电子设备所持有的应用程序与所述电子设备中所持有的功能完全相同的应用程序相互关联,
所述功能完全相同的应用程序是替代应用程序,以及
所述替代应用程序持有确定部分基于所述应用程序标识确定部分所创建的标识表格,来确定所述电子设备中是否持有所述替代应用程序。
4.如权利要求1所述的电子设备,其特征在于,
所述替代应用程序持有确定部分包括用于创建相关表格的相关应用程序确定部分,在所述相关表格中功能相关的应用程序与所述其它电子设备所持有的应用程序相互关联,所述功能相关的应用程序具有与所述应用程序识别部分所识别的、由所述其它电子设备所持有的应用程序相关的功能,
所述功能相关的应用程序是替代应用程序,以及
所述替代应用程序持有确定部分基于所述相关应用程序确定部分所创建的相关表格,来确定所述电子设备中是否持有所述替代应用程序。
5.如权利要求1所述的电子设备,其特征在于,
所述应用程序执行确定部分包括应用程序执行状态获取部分,用于获取在所述其它电子设备中所执行的应用程序的执行状态并以之作为应用程序执行状态信息,
当所述应用程序执行状态获取部分持有关于已被所述应用程序启动请求检测部分确定为不可执行的应用程序的应用程序执行状态信息时,所述应用程序执行确定部分确定要执行所述替代应用程序,以及
所述应用程序执行部分基于所述应用程序执行状态信息来执行所述替代应用程序,以便继续被确定为不可执行的应用程序。
6.如权利要求1所述的电子设备,其特征在于,所述应用程序执行确定部分包括设备间启动仲裁部分,所述设备间启动仲裁部分询问连接到所述网络的其它电子设备是否持有所述替代应用程序,并且与持有所述替代应用程序的另一个电子设备进行通信,以确定是否要在所述电子设备中执行所述替代应用程序。
7.一种方法,用于处理通过网络连接到可以执行应用程序的至少另一个电子设备的电子设备,所述方法包括如下步骤:
识别由所述其它电子设备持有的应用程序;
检测由所述应用程序识别部分所识别的应用程序在所述其它电子设备中是否是不可执行的;
确定是否要执行替代应用程序,所述替代应用程序可以替代已被确定为不可执行的应用程序;
确定所述电子设备中是否持有可替代已被确定为不可执行的应用程序的替代应用程序;以及
执行所述替代应用程序。
8.一种在通过网络连接到可执行应用程序的至少另一个电子设备的电子设备中执行的程序,包括如下步骤:
识别由所述其它电子设备持有的应用程序;
检测由所述应用程序识别部分所识别的应用程序在所述其它电子设备中是否是不可执行的;
确定是否要执行替代应用程序,所述替代应用程序可以替代已被确定为不可执行的应用程序;
确定所述电子设备中是否持有可替代已被确定为不可执行的应用程序的替代应用程序;以及
执行所述替代应用程序。
CNA2005800042111A 2004-02-09 2005-02-08 用于自动地继续提供服务的电子设备 Pending CN1918548A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004031761 2004-02-09
JP031761/2004 2004-02-09

Publications (1)

Publication Number Publication Date
CN1918548A true CN1918548A (zh) 2007-02-21

Family

ID=34836061

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800042111A Pending CN1918548A (zh) 2004-02-09 2005-02-08 用于自动地继续提供服务的电子设备

Country Status (5)

Country Link
US (1) US20070169128A1 (zh)
EP (1) EP1717703A1 (zh)
JP (1) JPWO2005076134A1 (zh)
CN (1) CN1918548A (zh)
WO (1) WO2005076134A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8448193B2 (en) * 2007-04-27 2013-05-21 Ricoh Company, Ltd. Image forming device, information processing method, and information processing program
CN102346698B (zh) * 2010-07-30 2014-12-24 阿里巴巴集团控股有限公司 一种时间程序管理方法、服务器及系统
JP5625621B2 (ja) * 2010-08-25 2014-11-19 富士通株式会社 検出装置、方法、及びプログラム
US10523804B2 (en) 2011-09-16 2019-12-31 Samsung Electronics Co., Ltd. Method and system for searching for object in network
KR101930510B1 (ko) * 2011-09-16 2018-12-19 삼성전자주식회사 네트워크 상의 객체 검색 방법 및 시스템
KR20150020398A (ko) * 2013-08-13 2015-02-26 삼성전자주식회사 애플리케이션을 통합 검색할 수 있는 전자 장치 및 방법
JP6571922B2 (ja) * 2014-10-27 2019-09-04 キヤノン株式会社 通信装置、その制御方法、及びプログラム
KR102371609B1 (ko) * 2017-08-09 2022-03-07 현대자동차주식회사 Avn 시스템의 화면 구성 장치 및 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187638A (ja) * 1996-10-28 1998-07-21 Mitsubishi Electric Corp クラスタ制御システム
JP2001022599A (ja) * 1999-07-06 2001-01-26 Fujitsu Ltd フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
US20030167418A1 (en) * 2000-12-29 2003-09-04 Min Zhu Fault-tolerant server for collaborative computing
JP4399987B2 (ja) * 2001-01-25 2010-01-20 株式会社デンソー 車両統合制御におけるフェイルセーフシステム
US7237126B2 (en) * 2001-09-28 2007-06-26 Hewlett-Packard Development Company, L.P. Method and apparatus for preserving the integrity of a management subsystem environment
US7082598B1 (en) * 2002-07-17 2006-07-25 Vmware, Inc. Dynamic driver substitution
US20040068720A1 (en) * 2002-10-02 2004-04-08 Robert Hundt Dynamic instrumentation of an executable program

Also Published As

Publication number Publication date
JPWO2005076134A1 (ja) 2007-08-02
US20070169128A1 (en) 2007-07-19
EP1717703A1 (en) 2006-11-02
WO2005076134A1 (ja) 2005-08-18

Similar Documents

Publication Publication Date Title
CN1918548A (zh) 用于自动地继续提供服务的电子设备
CN1310115C (zh) 具有节电模式的终端及具有普通工作状态和待机状态的装置
CN1263302C (zh) 远程会议系统和远程会议支持方法
CN1679004A (zh) 高速缓存设备、高速缓存数据管理方法和计算机程序
CN1269337C (zh) 内容自适应服务控制方法
CN1768373A (zh) 信息处理装置、信息处理方法、及计算机程序
CN1991834A (zh) 内容检索方法
CN1977229A (zh) 程序执行设备及该程序执行方法
CN1739292A (zh) 通信系统及方法、信息处理装置及方法、信息管理装置及方法、记录媒体和程序
CN101057464A (zh) 数据递送系统和数据递送方法
CN1539250A (zh) 机器控制装置及机器控制系统
CN1815476A (zh) 显示装置
CN101069437A (zh) 通信设备的检索系统
CN1207912C (zh) 图像记录系统
CN1745369A (zh) 信息处理装置、信息处理方法及计算机程序
CN1290026C (zh) 信息提供系统和信息服务设备
CN101075893A (zh) 网络信息处理设备及方法和信息处理设备及其控制方法
CN1826817A (zh) 信息提供方法及信息提供程序
CN101065967A (zh) 元数据管理装置以及元数据利用装置
CN1934857A (zh) 视听支持装置及节目录像系统
CN1681287A (zh) 数字照相机、像簿管理方法、像簿管理程序产品、以及像簿管理程序传送介质
CN1174354A (zh) 利用网络的信息分发系统
CN1601556A (zh) 安全设备和信息处理装置
CN1728126A (zh) 信息处理系统和方法及其使用的计算机程序
CN1691005A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication