WO2005076134A1 - サービスを自動継続する電子機器 - Google Patents

サービスを自動継続する電子機器 Download PDF

Info

Publication number
WO2005076134A1
WO2005076134A1 PCT/JP2005/001833 JP2005001833W WO2005076134A1 WO 2005076134 A1 WO2005076134 A1 WO 2005076134A1 JP 2005001833 W JP2005001833 W JP 2005001833W WO 2005076134 A1 WO2005076134 A1 WO 2005076134A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
electronic device
unit
held
alternative
Prior art date
Application number
PCT/JP2005/001833
Other languages
English (en)
French (fr)
Inventor
Tomokazu Kanamaru
Masahiro Oashi
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.
Priority to JP2005517788A priority Critical patent/JPWO2005076134A1/ja
Priority to EP05709885A priority patent/EP1717703A1/en
Priority to US10/588,540 priority patent/US20070169128A1/en
Publication of WO2005076134A1 publication Critical patent/WO2005076134A1/ja

Links

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

Definitions

  • the present invention relates to an electronic device connected to a network, and more specifically, to an electronic device that performs a service by executing a software program (application).
  • UPnP Universal Plug and Play
  • Microsoft registered trademark
  • One of the features of these technologies is that simply by connecting devices to a network, a user can immediately use a network function without performing complicated setting work.
  • V providing convenience to the user.
  • Patent Document 1 As an example of a system for searching for a device having a function corresponding to a user request via a network, a technology used by a user has been proposed in Patent Document 1 as a system.
  • Patent Document 2 As an example of a system in which a server device performs recovery when a failure occurs in a service, a technique disclosed in Patent Document 2 has been proposed.
  • Patent Document 3 A technique disclosed in Patent Document 3 has been proposed as an example of a method of searching for and executing a substitute device when a user cannot use a terminal to perform a service and uses power.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003-178036
  • Patent Document 2 JP-A-2002-24039
  • Patent Document 3 Japanese Patent Application Laid-Open No. 2002-94912
  • a typical case is a case where the power supply state cannot be ensured when the power supply of the device is cut off or the battery is consumed (in a mobile device or the like).
  • the problem of resource shortage may not be able to execute another application, mainly due to the resource shortage.
  • Patent Document 1 proposes a system that takes into account changes in the user environment and user requirements in a home appliance network system.
  • Patent Document 1 does not refer to a specific processing method when the above-mentioned service cannot be implemented. Therefore, when it is desired to increase the certainty of service implementation, it is necessary to separately implement specific processing means.
  • Patent Document 2 describes a system in which a center server performs a failure countermeasure and a recovery process when a service cannot be implemented. However, this is premised on the existence of a center server. Therefore, assuming the existence of a center server, for example, only a peer-to-peer network configuration of home electric appliances is assumed. Can not cope with the network.
  • Patent Document 3 describes a method of searching for an alternative device and executing a usage reservation when a device that has been reserved for use has a failure and the service cannot be performed. .
  • this method it is necessary to register an alternative function in advance by a combination of devices.
  • Patent Document 3 does not refer to a measure for continuing the service in the case where the service cannot be continued while some service is being performed.
  • the present invention relates to an electronic device connected via a network to at least one other electronic device capable of executing an application, wherein the application recognition unit recognizes an application held by the other electronic device.
  • An application inability detection unit that detects whether an application recognized by the application recognition unit is incapable of being executed by another electronic device, and a substitute for an application that is detected as incapable of execution by the application incapability detection unit.
  • An application execution determination unit that determines whether or not to execute another alternative application, and determines whether or not an alternative application that substitutes for the application that has been detected as unexecutable is held in the own device.
  • An alternative application holding determining unit and an application executing unit that executes the alternative application are provided.
  • the application execution determining unit detects that the application cannot be executed by the application unexecutable detecting unit.
  • the application execution determination unit detects an activation request for the application that has been detected as being unexecutable by the application activation request detection unit, and executes the alternative application when the application activation request detection unit detects the activation request for the application that is not executable. Then you should judge it.
  • the substitute application holding determination unit determines whether or not the same function application having the same function as the application held by the other electronic device recognized by the application recognition unit is stored in the own device. And an application identity determination unit that creates an identity table that associates applications held by other electronic devices with applications of the same function held in the device itself.
  • the alternative application holding determination unit may determine whether the alternative application is retained in the own device based on the identity table created by the application identity determination unit.
  • the alternative application holding determination unit associates the related function application having a function related to the application held by the other electronic device recognized by the application recognition unit with the application held by the other electronic device.
  • the related function application is an alternative application, and the alternative application holding determination unit determines whether the alternative application is based on the association table created by the relevant application determination unit. You may want to determine if it is stored in your device.
  • the application execution determination unit includes an application execution state acquisition unit that acquires, as application execution state information, an execution state of the application being executed on another electronic device. If the application execution status acquisition unit stores application execution status information for an application that has been detected as unexecutable by the application activation request detection unit, it determines that an alternative application is to be executed, and the application execution unit executes the application execution. Based on the status information, you can run an alternative application to continue the application that is detected as not executable! /.
  • the application execution determination unit inquires of another electronic device connected to the network whether the alternative application is held or not, and It may include an inter-device activation arbitration unit that communicates with other electronic devices that are held and determines whether or not to execute a substitute application in the own device.
  • the present invention is a processing method for an electronic device connected via a network to at least one other electronic device capable of executing an application, and recognizes an application held by the other electronic device. Step, detecting whether the recognized application is not executable on another electronic device, and determining whether to execute a substitute application in place of the application detected as being unexecutable. And a step of determining whether or not a substitute application as a substitute for the application detected to be unexecutable is held in the own device, and a step of executing the substitute application.
  • the present invention is a program executed by an electronic device connected via a network to at least one other electronic device capable of executing an application, the application being held by the other electronic device. Recognizing the application, detecting whether the recognized application cannot be executed by another electronic device, and executing an alternative application in place of the application detected as unexecutable. A step of determining whether or not a substitute application is held in the own device, and a step of executing the substitute application. Is provided.
  • the electronic device can recognize whether or not the application is not executable only by detecting the activation request to the application. Therefore, it is easy to detect the unexecutable state of the application.
  • the electronic device can execute the substitute application while continuing the state of the application that cannot be executed, so that the continuity of the service is improved.
  • FIG. 1 is a diagram showing a configuration of an entire system including an electronic device according to a first embodiment of the present invention.
  • FIG. 2 is a diagram showing a hardware configuration of an electronic device 115 according to the first embodiment of the present invention.
  • FIG. 3 is a diagram showing an example of realizing application attribute information in a table format.
  • FIG. 4 is a block diagram showing a functional configuration of the electronic device when the application continuation program is executed.
  • FIG. 5 is a flowchart schematically showing an operation of the electronic device 1 when the application continuation program is executed.
  • FIG. 6 is a flowchart showing an operation of an application identity determination unit 151.
  • FIG. 7 is a diagram showing an example of an identity table.
  • FIG. 8 illustrates a processing procedure when a relation table is registered by a user.
  • FIG. 9 is a diagram showing an example of an association table.
  • FIG. 10 is a flowchart showing an example of the operation of the application execution inability detecting unit 13.
  • FIG. 11 is a flowchart showing the operation of the electronic device 1 when executing the first basic process. is there.
  • FIG. 12 is a flowchart showing an operation of electronic device 1 when executing the second basic process.
  • FIG. 13 is a flowchart showing an operation of the electronic device 1 when executing the third basic process.
  • FIG. 14 is a flowchart showing the operation of electronic device 1 when executing the fourth basic process.
  • FIG. 15 is a block diagram showing a functional configuration of electronic devices 1 and 3 when executing an application continuation program according to the second embodiment.
  • FIG. 16 is a flowchart showing an operation of the electronic device 1 when a process X is added to the first basic process.
  • FIG. 17 is a flowchart showing an operation of electronic device 1 when process X is added to the second basic process.
  • FIG. 18 is a flowchart showing an operation of electronic device 1 when process X is added to the third basic process.
  • FIG. 19 is a flowchart showing an operation of electronic device 1 when process X is added to the fourth basic process.
  • FIG. 20 is a flowchart showing a detailed operation of the electronic device 1 in the alternative application activation availability determination processing (steps S701, S801, S901, S1001).
  • FIG. 21 is a sequence diagram showing communication between electronic devices on a network in the alternative application activation availability determination processing (steps S701, S801, S901, S1001).
  • FIG. 22 is a diagram showing an example of a table format of startup arbitration information. Explanation of reference numerals
  • FIG. 1 is a diagram showing a configuration of an entire system including an electronic device according to a first embodiment of the present invention.
  • electronic devices 115 are communicably connected to each other via a network 6.
  • the electronic device of the present invention at least two or more electronic devices are connected via a network. It is applied in an environment where Therefore, in FIG. 1, the number of electronic devices is five, but may be two or more and four or less, or may be six or more.
  • the communication standard of the network 6 may be any standard as long as data communication is possible between the connected electronic devices.
  • the network 6 may be a public network such as the Internet, a network closed within a limited domain such as a LAN, or a combination of both. Good.
  • FIG. 2 is a diagram illustrating a hardware configuration of the electronic device 115 according to the first embodiment of the present invention.
  • the electronic device 1 includes a central processing unit 100, a main storage device 101, an auxiliary storage device 102, a communication device 103, an input device 104, and an output device 105.
  • the electronic device 1 is a general-purpose device such as a personal computer, each block shown in FIG. 2 is often realized by a separate integrated circuit device.
  • the electronic device 1 is a dedicated device such as a mobile phone or an Internet home appliance, each block shown in FIG. 2 is often formed on a dedicated integrated circuit.
  • the central processing unit 100 controls the operation of the electronic device 1.
  • the central processing unit 100 has a function for controlling the operation of the electronic device 1 by itself, and may store a program (firmware or software) stored in the auxiliary storage device 102 in a main storage.
  • the operation of the electronic device 1 may be controlled by reading the program into the device 101 and executing the program.
  • the central processing unit 100 has a hardware configuration for realizing a lower layer such as a physical layer or a MAC layer of the electronic device 1.
  • the main storage device 101 is a readable and writable memory, and stores information necessary for the operation of the central processing unit 100.
  • the auxiliary storage device 102 is a storage device using a flash memory node disk, an optical disk, or the like as a recording medium.
  • the auxiliary storage device 102 stores a program relating to an application executed by the electronic device 1 (hereinafter, simply referred to as an application).
  • Application attribute information is added to the application case as unique information indicating the attribute of the application.
  • the auxiliary storage device 102 stores the application continuation program of the present invention.
  • App continuation programs are applications that have been running on other electronic devices. This is a program for judging whether or not an application as an alternative to the screen (hereinafter referred to as “alternative application”) should be executed in the electronic device 1.
  • the application continuation program is read into the main storage device 101 by the central processing unit 100 and executed by the central processing unit 100, whereby the operation of the present invention is realized.
  • the application continuation program may be firmware stored in the electronic device in advance, or software stored later in the electronic device.
  • the application continuation program may be stored in a computer-readable recording medium, and may be stored in the auxiliary storage device 102 from the recording medium.
  • the application continuation program may also download another electronic device via the network 6 and store it in the auxiliary storage device 102.
  • the substitute application includes the same function application having the same function as the application executed on the other electronic device, and the related function application having the function related to the application executed on the other electronic device.
  • a related function application is an application that runs on another electronic device and can provide services similar to those provided by the application, or assists an application that was running on another electronic device. It is an application that can provide a service that provides
  • the application is a JAVA (registered trademark) application executed on the electronic device 1
  • the program related to the application is a JAR file.
  • the application attribute information refers to information indicating characteristics of the application, such as the name of the application, the source from which the application is obtained, and information on a profile necessary for operating the application.
  • FIG. 3 is a diagram showing an implementation example of the application attribute information in a table format.
  • Information indicating an attribute of the application is registered in each entry.
  • Each entry shown in Fig. 3 is explained.
  • the application name describes a name given to the application.
  • the distribution source of the application to the electronic device is described.
  • the source of the application is described in URL format.
  • main class name a class name in which a main method, which is a method called first when the application is started, is described.
  • the necessary profile describes information such as a configuration, a profile, and a library that are necessary for operating the application.
  • the required resource describes a resource amount required for operating the application.
  • the last update date describes the date and time when the application was last updated.
  • the version number describes a version management number given to the application.
  • identification information for indicating the creator of the application is described.
  • a character string indicating the name of the creator is described, but other information may of course be used.
  • FIG. 3 is one of the implementation examples of the application attribute information. Some of the entries in the table shown in FIG. 3 may be omitted, or an entry indicating information of another attribute may be included.
  • the communication device 103 has a function for transmitting and receiving data to and from another electronic device connected to the network 6.
  • the communication system such as the modulation / demodulation system / media access system in the communication device 103 is not particularly limited, and may be anything.
  • the input device 104 is a device such as a button switch, a keyboard, a mouse, and a touch panel for inputting an operation by a user.
  • the output device 105 is a device for outputting the processing result in the central processing unit 100, such as a liquid crystal display or a speaker.
  • FIG. 4 is a block diagram showing a functional configuration of the electronic device when the application continuation program is executed.
  • the electronic devices 115 can execute the application continuation program.
  • the electronic device 1 executes the application continuation program
  • the electronic device 2 executes the application
  • the application executed by the electronic device 2 is executed by the electronic device 1. Is executed continuously.
  • the substitute application includes the same function application and the related function application.
  • the electronic device 1 may execute the same function application if the same function application exists, and may execute the related function application if the same function application does not exist. However, it may be decided to execute the same function application, or it may be decided to execute the related function application.
  • the functional blocks shown in FIG. 4 can be realized in a software manner by executing a program. .
  • the electronic device 1 includes a timing control unit 11, an application recognition unit 12, It includes a non-executability detecting unit 13, an application execution determining unit 14, an alternative application holding determining unit 15, and an application executing unit 16.
  • FIG. 5 is a flowchart showing an outline of the operation of electronic device 1 when the application continuation program is executed.
  • an outline of the operation of the electronic device 1 when the application continuation program is executed will be described with reference to FIG.
  • the application recognition unit 12 recognizes an application held by another electronic device (Step Sl).
  • step S2 when the timing control unit 11 determines that the predetermined timing has arrived, the application unexecutability detecting unit 13 determines that the application held by the other electronic device recognized by the application recognizing unit 12 cannot execute. Is detected (step S2).
  • the application execution determination unit 14 determines whether the alternative application should be executed instead of the unexecutable application. Is determined (step S3).
  • the alternative application holding determining unit 15 determines whether the electronic device 1 holds the alternative application! (Step S4).
  • step S5 When the alternative application holding determining unit 15 determines that the alternative application is held, the application executing unit 16 executes the alternative application (step S5).
  • the application execution unit 16 interprets and executes an application.
  • the function of the application execution unit 16 is realized by the execution of the application continuation program. This is a provided function. Therefore, the application execution unit 16 may be provided in the electronic device to execute the substitute application and instruct a function (another program).
  • the electronic device 1 executes the application continuation program. At least the electronic device 2 that does not execute the application continuation program needs to include the application execution unit 16 in order to execute the application.
  • the application execution unit 16 may interpret the application and execute the application.
  • the environment for executing the application is not particularly limited.
  • the application execution unit 16 includes, for example, an AVA (registered trademark) virtual machine, a .NET execution environment, and BREW, which is a program distribution execution environment employed in a mobile phone manufactured by KDDI (registered trademark). , Realized by the existing environment.
  • AVA registered trademark
  • BREW a program distribution execution environment employed in a mobile phone manufactured by KDDI (registered trademark).
  • the application execution unit 16 is realized by a JAVA (registered trademark) virtual machine environment, and that the application is a JAVA (registered trademark) application.
  • the application execution unit 16 has a capability of determining whether or not the application is capable of newly starting an application. Therefore, the application execution unit 16 can acquire information on the amount of free resources of hardware that can be used in its own device.
  • the free resource amount is, for example, the capacity allocated for executing the application in the memory of the electronic device 1 which is not occupied by any running application and can be used to operate a new application. It means things like capacity.
  • the application execution unit 16 can determine the applicability by monitoring the amount of resources in the electronic device that can be used. For example, when the application execution unit 16 is realized by a JAVA (registered trademark) virtual machine, the usage amount of the entire heap memory held by the JAVA (registered trademark) virtual machine, the unused amount, the usage amount of the heap memory for each application, etc.
  • a register (not shown) for recording the use status of the heap memory is provided, and a register record information examination means for examining the record information of the register as necessary (for example, before the application is started, during the operation of the application, when the application is released). By providing (not shown), the application executing unit 16 can monitor the amount of resources that can be used.
  • the application execution unit 16 can use hardware that can be used in its own device. By comparing the information on the available resource amount of the application with the information on the “resource amount necessary for operating the application”, it is possible to determine whether or not the application can be operated.
  • the application execution unit 16 can output information indicating the execution state of the application during execution of the application (hereinafter, referred to as application execution state information). Have the ability.
  • the application execution state information is information indicating a state during the execution of the application.
  • the application execution status information includes information necessary to resume application execution after it has been interrupted.
  • the running object is recorded as application execution state information.
  • JAVA registered trademark
  • Serialization means converting the value and structure of an attribute of an object into a form that can be handled by a Knot sequence.
  • data indicating the state of an application being executed having a complicated structure, etc. is output in a stream / file format of a byte string.
  • the byte sequence is used as application execution state information.
  • the abbreviated version may have a means for outputting application execution state information in another format.
  • application execution state information may be described in a general-purpose format such as XML or HTML, or may be described using a format defined by the application.
  • the application recognition unit 12 has a capability of acquiring characteristics of an application held by another electronic device communicably connected to each other via the network 6.
  • the application recognizing unit 12 can acquire the application attribute information of the application held by another electronic device via the network 6 to obtain the characteristics of the application held by the other electronic device.
  • the substitute application holding determining unit 15 determines whether or not the substitute application that is recognized by the application recognizing unit 12 and that is substituted for the application held by another electronic device is held in the own device.
  • the alternative application holding determining unit 15 includes an application identity determining unit 151 and a related application determining unit 152.
  • the application identity determination unit 151 compares the application attribute information of the application held by the other electronic device recognized by the application recognition unit 12 with the application attribute information of the application held by the own device.
  • a table that determines whether or not the same function application is held in the device and associates the application held by the other electronic device with the same function application held by the device hereinafter, the identity table and! /, U), and memorize them.
  • the related application determining unit 152 creates and stores a table (hereinafter, referred to as a related table) that associates an application held by another electronic device with a related function application held by the own device.
  • a table hereinafter, referred to as a related table
  • the alternative application holding determination unit 15 determines that the substitute application to be executed in place of the unexecutable application is its own device. Is determined by referring to the identity table and Z or related table.
  • FIG. 6 is a flowchart showing the operation of the application identity determination unit 151.
  • the procedure for creating the identity table will be described with reference to FIG.
  • the application in the own device is an application A
  • the application in another electronic device recognized by the application recognition unit 12 is the application B.
  • the application identity determination unit 151 acquires “application name” from each of the application attribute information of the application A and the application attribute information of the application B (step S101).
  • the application identity determining unit 151 determines whether or not the “application name” has been normally acquired as information to be compared from both pieces of application attribute information (step S 102). ). If the application A and B cannot acquire the “application name” as information for comparison and comparison from the deviation, the application identity determination unit 151 It is determined that the same cannot be confirmed, and the process proceeds to step S108. On the other hand, when the “name of the application” has been successfully acquired, the application identity determination unit 151 proceeds to the operation of step S103.
  • step S103 the application identity determination unit 151 determines whether the “application name” of both pieces of application attribute information matches. If the “application names” do not match, the application identity determination unit 151 determines that the identity of both applications could not be confirmed, and proceeds to the operation of step S108. On the other hand, if the “application name” matches, the application identity determination unit 151 proceeds to the operation of step S104.
  • step S104 the application identity determination unit 151 acquires the "creator of the application" from each of the application attribute information of the application A and the application attribute information of the application B.
  • the application identity determination unit 151 determines whether or not the ability to successfully acquire "the creator of the application” as information to be compared is obtained from both pieces of application attribute information (step S 105). If the application creator 151 cannot obtain the “application creator” as information for comparison and comparison, the application identity determination unit 151 cannot confirm the identity of both applications. Then, the operation proceeds to the operation of Step S108. On the other hand, when the “creator of the application” has been successfully acquired, the application identity determination unit 151 proceeds to the operation in step S106.
  • step S106 the application identity determination unit 151 determines whether the "creator of the application" of both pieces of application attribute information matches. If the “creator of the application” does not agree, the application identity determination unit 151 determines that the identity of both applications could not be confirmed, and proceeds to the operation of step S108. On the other hand, if the “creator of the application” matches, the app identity determination unit 151 proceeds to the operation in step S107.
  • step S107 the application identity determination unit 151 determines that the application A is an application having the same function as the application B.
  • the application identity determination unit 151 registers the application A in association with the application B in the identity table as the same function application (step S109), and the application recognition unit 12 Then, the process returns to step S101 to execute the processing of step S101 and subsequent steps for other applications recognized as well.
  • step S108 the application identity determination unit 151 determines that the application A and the application B are not the same, and similarly performs the processing from step S101 onward for the other applications recognized by the application recognition unit 12. Return to execute.
  • the above is an example of the procedure for creating the identity table.
  • “application name” and “application creator” are used to determine the identity of the application, but these are not necessarily used.
  • the application identity determination unit 151 may perform identity determination by comparing combinations of other application attribute information. Any number of types of application attribute information may be used for comparison.
  • the application identity determination unit 151 only compares the application A with the application B on a one-to-one basis. However, when the electronic device 1 holds a plurality of applications, the application identity determination unit 151 determines whether or not all the applications held by the electronic device 1 have the same function as the application B. Once determined, an identity table must be created. Specifically, the application identity determination unit 151 acquires application attribute information of applications other than the application A held by the electronic device 1 after step S108, and returns to the operation after step S101. Good. If the application having the same function as Application B does not exist among all the applications held by the electronic device 1, the application identity determination unit 151 Next, it is determined whether an application having the same function is held in the electronic device 1 and whether or not the application has the same function.
  • FIG. 7 shows an example of the identity table.
  • the identity table contains information about the application held by the other electronic device (left column of the table) and the same information determined to have the same function as the application held by the other electronic device. It consists of a set of information on the functional application (the right column of the table).
  • the correspondence between the application held by another electronic device and the related function application held by the electronic device 1 executed by the related application determination unit 152 is as follows (a), ( b), (c), and (d).
  • the application attribute information of the application held by the electronic device 1 describes conditions for the own application to be a substitute application of another application.
  • the “substitutable application” shown in FIG. 3 is the condition.
  • the related application determination unit 152 decodes the condition and determines whether or not there is an application that matches the condition among the applications in the other electronic devices recognized by the application recognition unit 12. If there is an application that satisfies the condition, the related application determination unit 152 determines that the application held by the own device is an application held by the other electronic device as a related function application of the application held by another electronic device. And registered in the related table.
  • the related table is stored in the electronic device 1 in advance.
  • the user registers the association table.
  • FIG. 8 is a diagram for explaining a processing procedure when the association table is registered by the user.
  • the related application determining unit 152 can display the user interfaces 7a, 7d, 7c, 7d in FIG. 8 on the output device 105.
  • the user interface 7a shows a list of applications held by another electronic device, and is a screen for selecting and specifying an application of another electronic device to be registered in the related table.
  • a list of applications held by the electronic device 2 is shown.
  • the related application determination unit 152 displays a list of applications held by the electronic device 2 on the user interface 7a by acquiring information unique to the application held by the electronic device 2 recognized by the application recognition unit 12. The user selects and designates the application registered in the related table from the list displayed on the user interface 7a. Here, it is assumed that the application "Media Viewer" is selected.
  • the related application determination unit 152 displays the user interface 7b.
  • the user interface 7b shows a list of applications held by the electronic device 1, and is a screen for selecting and specifying an application of the electronic device 1 in association with the application specified by the user interface 7a.
  • the related application determination unit 152 displays a list of applications held by the electronic device 1 on the user interface 7b by acquiring information unique to the application held by the electronic device 1. The user selects and designates an application registered as a related function application from the list displayed on the user interface 7b. Here, it is assumed that “BackUp Recorder” is selected as the related function application.
  • the related application determination unit 152 causes the user interface 7c to be displayed.
  • the user interface 7c is a screen for confirming the correspondence between the application and the related function application.
  • the related application determination unit 152 stores the application and the related function Register the case and display a message that the registration was successful (user interface 7d)
  • the related application determining unit 152 holds the related table in some form.
  • FIG. 9 is a diagram showing an example of the association table. As shown in FIG. 9, the association table is made up of a set of information on applications held by other electronic devices (left column of the table) and information on related function applications (right column of the table).
  • the application non-executability detecting unit 13 detects whether or not an application held by another electronic device connected via the network 6 is in an executable state.
  • the following two cases (A) and (B) are assumed to mean that the application is not in an executable state.
  • the application inexecutability detection unit 13 determines whether or not the state of the above (A) or (B) has occurred by monitoring another electronic device.
  • FIG. 10 is a flowchart illustrating an example of the operation of the application inexecutability detection unit 13.
  • the operation of the application inexecutability detecting unit 13 will be described with reference to FIG.
  • FIG. 10 shows an example in which, for simplicity, it is determined whether or not the application of the electronic device 2 is unexecutable. The same processing as the processing shown in FIG. 10 is executed for all the other electronic devices connected.
  • the application inexecutability detection unit 13 acquires the energized state of the electronic device 2 (step S201), and determines whether the electronic device 2 is in a disconnected power state (step S202). ). In steps S201 and S202, the determination in the above case (A) is performed.
  • an electronic device that is connected to a network and is in an energized state emits a signal to other electronic devices that are connected to the network at regular intervals. It has become. Electronic equipment If no periodic signal is transmitted, the electronic equipment is considered to have been de-energized.
  • step S202 If it is determined in step S202 that the energized state of the electronic device 2 is cut off, the application-executability detection unit 13 proceeds to the operation of step S203, and all the applications held by the electronic device 2 It is determined that the execution is impossible.
  • step S202 If it is determined in step S202 that the energized state of the electronic device 2 has not been disconnected, the application-executable-impossibility detecting unit 13 proceeds to the operation after step S204. In the case of the above (B), the judgment is made by the operation after step S204.
  • step S204 the application inexecutability detection unit 13 selects one application held by the electronic device 2 recognized by the application recognition unit 12.
  • the application executability detecting unit 13 inquires of the application executor of the electronic device 2 whether the selected application is executable (Step S205).
  • the application execution unit of the electronic device 2 stores the information in the electronic device 2. Based on the information on the amount of available hardware resources that can be used, determine whether the application is executable or not, and transmit the determination result to the application execution failure detection unit 13 of the electronic device 1 I do.
  • the application inexecutability detecting unit 13 receives the determination result transmitted from the electronic device 2.
  • the application inexecutability detecting unit 13 determines whether or not the result of the inquiry sent from the electronic device 2 is “executable” (step S206). If the result of the matching is executable, the application execution inability detecting unit 13 sends the It is determined that the application selected in 04 is in an executable state (step S207), and the operation proceeds to step S209. On the other hand, if the result of the inquiry is not executable, the abbreviated execution impossible detection unit 13 determines that the application selected in step S204 is in an unexecutable state in the electronic device 2 (step S208), and Proceed to step S209.
  • step S209 the application inexecutability detecting unit 13 asks whether all the applications held by the electronic device 2 recognized by the application recognizing unit 12 can be executed! Is determined. If no inquiry has been made for all of the applications, the application-executability-impossible detecting unit 13 returns to the operation of step S204 to execute an inquiry about another application. On the other hand, if all applications are inquired, the electronic device 1 returns to the overall operation.
  • the application execution determination unit 14 determines whether or not to execute a substitute application instead of the application.
  • the application execution determination unit 14 includes an application activation request detection unit 141 and an application execution state acquisition unit 142.
  • the application start request detecting unit 141 detects a start request for an application present on another electronic device, and the start request is issued to which application held by which electronic device. Identify what is.
  • the application activation request detection unit 141 monitors the communication state of the network 6. If a device connected to the network 6 issues a start request to the application of the electronic device 2 while monitoring the communication state, the application start request detecting unit 141 ), It is determined that the activation request has been received.
  • the application startup request detection unit 141 can detect a startup request for an application held by another electronic device by including both or any of the mechanisms (E) and (F).
  • the application execution state acquisition unit 142 acquires from the electronic device 2 the abrasion execution state information generated by the application execution unit of the electronic device 2. As described above, the application execution state information is generated by the application execution unit of the electronic device 2 using a technique such as serialization in the process of executing the application. By analyzing the application execution state information, the application execution state acquisition unit 142 can know the state of the application being executed on the electronic device 2 during execution.
  • the application execution determination unit 14 starts the application that is detected as unexecutable by the application startup request detection unit 141. If the request detection power and the application execution state information of the application detected as unexecutable by the Z or application execution state acquisition unit 142 are acquired, the alternative application should be executed in place of the application And the alternative application holding determination unit 15 determines On the other hand, it is determined whether or not an alternative application is held. In response, the substitute application holding determination unit 15 refers to the identity table and Z or the related table to determine whether or not the replacement application is held, and if so, the application execution unit 16 Execute the alternative application.
  • the timing control unit 11 controls the execution timing of the application execution unit 16, the application recognition unit 12, the application unexecutability detection unit 13, the application execution determination unit 14, and the alternative application holding determination unit 15.
  • the first basic process is a process in which the electronic device 1 executes the same function application as a substitute application when a start request for the application is detected while the application held by another device is in an unexecutable state. is there.
  • the second basic process is a process in which, when it is detected that an application held by another device cannot be executed, the electronic device 1 executes the same function application as a substitute application so that the execution state of the application is continued.
  • the third basic process is a process in which the electronic device 1 executes a related function application as a substitute application when a start request for the application is detected while the application held by another device is in an unexecutable state. It is.
  • the fourth basic process is a process in which, when an application held by another device is detected as unexecutable, the electronic device 1 executes the related function application as a substitute application so that the execution state of the application is continued.
  • the first to fourth basic processes can be combined.
  • FIG. 11 is a flowchart showing the operation of the electronic device 1 when executing the first basic process.
  • the flow of the first basic process will be described with reference to FIG. Note that the processing illustrated in FIG. 11 ends when the application continuation program ends.
  • the application recognition unit 12 recognizes an application held by another electronic device (Step S301).
  • the processing in step S301 corresponds to the processing in step S1 in FIG. To do.
  • the timing control unit 11 determines whether or not the timing to start the processing by the application identity determination unit 151 has arrived (step S302). If the timing has arrived, and if not, the timing control unit 11 proceeds to the operation of step S303. On the other hand, when the timing has arrived, the application identity determination unit 151 determines that the application having the same function is held in the electronic device 1 with respect to the application held by the other electronic device recognized in step S301! It is determined whether or not the application has the same function, and if the application with the same function is held, a combination of the application held by another electronic device and the application with the same function is created as an identity table (step S304). The device 1 proceeds to the operation in step S303.
  • step S303 the timing control unit 11 determines whether or not the timing to start the processing by the application execution inability detecting unit 13 has come. If the timing has not arrived, the timing control section 11 proceeds to the operation of step S300. On the other hand, if the timing has arrived, the application inexecutability detecting unit 13 determines whether or not there is an application on another electronic device that is detected as incapable of being executed (step S305). The process in step S305 corresponds to the process in step S2 in FIG. If there is no unexecutable application, the electronic device 1 proceeds to the operation of step S300. On the other hand, when there is an unexecutable application, the electronic device 1 proceeds to the operation of step S306.
  • step S306 the application execution determination unit 14 determines whether the application startup request detection unit 141 has detected a startup request for the unexecutable application. If the activation request has not been detected, the electronic device 1 proceeds to the operation of step S300. On the other hand, when the activation request is detected, the application execution determining unit 14 determines that the alternative application should be executed, and causes the alternative application holding determining unit 15 to execute the operation of step S307.
  • the process in step S306 corresponds to the process in step S3 in FIG.
  • step S307 the alternative application holding determination unit 15 refers to the identity table created by the application identity determination unit 151 in step S304, and It is determined whether or not an application with the same function as the application in place is held. If the same function application is not held, the electronic device 1 proceeds to the operation in step S300. On the other hand, if the same function application is held, the alternative application holding determination unit 15 causes the application execution unit 16 to execute the operation of step S308.
  • the process in step S307 corresponds to the process in step S4 in FIG.
  • step S308 the application execution unit 16 activates the same function application held by the alternative application holding determination unit 15 and starts execution. After that, the electronic device 1 proceeds to the operation of step S300.
  • the process in step S308 corresponds to the process in step S5 in FIG.
  • step S300 electronic device 1 changes the internal timer, and returns to the operation in step S302.
  • the electronic device 1 periodically executes the process by the application identity determination unit 151 and the process by the application unexecutability detection unit 13. This assures that identity determination and non-executability detection are performed periodically.
  • the determination processing of the application identity determination unit 151 and the application unexecutability detection unit 13 is not performed at regular intervals as long as the processing is not required to be performed in a particular order and is performed periodically. Is also good.
  • the application identity determination unit 151 may be executed every 300 s
  • the application unexecutability detection unit 13 may be executed every 5 s.
  • the first home server has a service for periodically backing up and copying data of another electronic device connected to the network to its own device.
  • the first home server holds the application that performs the knock-up (the first backup application).
  • the first backup application executes a service when a start request is given by an internal timer.
  • the second home server connected to the first home server via a network holds a second backup application having the same function as the first backup application.
  • the second home server executes the app «I
  • the second backup Start the app. In this way, the service provided by the second home server is realized in place of the first home server in which the first backup application cannot be started.
  • FIG. 12 is a flowchart showing the operation of electronic device 1 when executing the second basic process.
  • the flow of the second basic process will be described with reference to FIG.
  • the application recognition unit 12 recognizes an application held by another electronic device (step S401).
  • the process in step S401 corresponds to the process in step S1 in FIG.
  • the timing control section 11 determines whether or not the timing to start the processing by the application identity determination section 151 has arrived (step S402).
  • the timing has arrived! In the case of /, na! / ⁇ , the timing control section 11 proceeds to the operation of step S403.
  • the application identity determination unit 151 determines that the same function application is held in the electronic device 1 for the application held by the other electronic device recognized in step S401! It is determined whether or not the application has the same function, and if the same function application is held, a combination of the application held by another electronic device and the same function application is created as an identity table (step S404), and the electronic The device 1 proceeds to the operation in step S403.
  • step S403 the timing control unit 11 determines whether or not the timing to start the processing by the application execution state acquisition unit 142 has arrived. If the timing has not arrived, the timing control section proceeds to the operation of step S406. On the other hand, when the timing has arrived, the application execution state acquisition unit 142 acquires application execution state information of an application that is being executed on another electronic device (step S405), and the electronic device 1 performs step S406. Proceed to the operation of.
  • step S406 the timing control section 11 determines whether or not the timing to start the processing by the application execution inability detecting section 13 has come. If the timing has not arrived, the timing control section 11 proceeds to the operation of step S400. On the other hand, If the application has arrived, the application execution incapability detection unit 13 determines whether or not there is an application on another electronic device that is detected as unexecutable (step S407). The process in step S407 corresponds to the process in step S2 in FIG. If there is no unexecutable application, the electronic device 1 proceeds to the operation of step S400. On the other hand, when there is an unexecutable application, the electronic device 1 proceeds to the operation of step S408.
  • step S408 the application execution determination unit 14 determines whether the application execution state acquisition unit 142 holds application execution state information on the unexecutable application. When the application execution state information is not held, the electronic device 1 proceeds to the operation of step S400. On the other hand, when the application execution state information is stored, the application execution determination unit 14 determines that the alternative application should be executed, and causes the alternative application storage determination unit 15 to execute the operation of step S409.
  • the process in step S408 corresponds to the process in step S3 in FIG.
  • step S409 the alternative application holding determination unit 15 refers to the identity table created by the application identity determination unit 151 in step S404, and determines the application corresponding to the held application execution state information.
  • the same function application having the same function is held in the electronic device 1, and it is determined whether or not the force is applied. If the same function application is not held, the electronic device 1 proceeds to the operation of step 400.
  • the alternative application holding determining unit 15 causes the application executing unit 16 to execute the operation of Step S410.
  • the process in step S409 corresponds to the process in step S4 in FIG.
  • step S410 the application execution unit 16 activates the same function application held by the alternative application holding determination unit 15 and starts execution. After that, the electronic device 1 proceeds to the operation of Step S400.
  • the process in step S410 corresponds to the process in step S5 in FIG.
  • step 400 the electronic device 1 changes the internal timer, and returns to the operation in step S402.
  • the electronic device 1 periodically executes the processing by the application identity determination unit 151, the processing by the application execution inability detection unit 13, and the processing by the application execution state acquisition unit 142.
  • the Rukoto As a result, it is assured that the determination of the identity, the detection of the non-executability, and the acquisition of the application execution state information are performed periodically.
  • the processing by the application identity determination unit 151, the processing by the application unexecutability detection unit 13, and the processing by the application execution state acquisition unit 142 are not performed in a particular order, but are performed periodically. As long as the processing is performed, the processing cycle may not be uniform.
  • the first AV device has a service for performing broadcast recording.
  • the first AV device holds an application (first recording application) for performing broadcast recording and implements a service.
  • the second AV device network-connected to the first AV device holds a second recording application having the same function as the first recording application.
  • the second AV device can execute the first recording application executed on the first AV device. Execution status information has been obtained.
  • the second AV device When the second AV device detects that the first recording application has fallen into an unexecutable state, the second AV device activates the second recording application 2, and based on the acquired application execution state information, Take over the service with the same settings as those done in the first recording app.
  • FIG. 13 is a flowchart showing the operation of electronic device 1 when executing the third basic process.
  • the flow of the third basic process will be described with reference to FIG.
  • the application recognition unit 12 recognizes an application held by another electronic device (Step S501).
  • the process in step S501 corresponds to the process in step S1 in FIG.
  • the timing control unit 11 determines whether or not the timing has come to start the processing by the related application determination unit 152 (step S502). If the timing has not arrived, the timing control section 11 proceeds to the operation of step S503. On the other hand, if the timing has arrived, the related application determining unit 152 determines that the other electronic devices recognized in step S501 A process of associating the related function application with the application held by the device is executed, and a related table is created (step S504). If the related table has been created in advance, the process of step S504 can be omitted. After step S504, the electronic device goes to the operation of step S503.
  • step S503 the timing control unit 11 determines whether or not the timing to start the processing by the application execution inability detecting unit 13 has arrived. If the timing has not arrived, the timing control section 11 proceeds to the operation of step S500. On the other hand, if the timing has arrived, the application inexecutability detecting unit 13 determines whether or not there is an application on another electronic device that is detected as incapable of being executed (step S505). The process in step S505 corresponds to the process in step S2 in FIG. If there is no unexecutable application, the electronic device 1 proceeds to the operation of step S500. On the other hand, when there is an unexecutable application, the electronic device 1 proceeds to the operation of step S506.
  • step S506 the application execution determination unit 14 determines whether the application startup request detection unit 141 has detected a startup request for the unexecutable application. If the activation request has not been detected, the electronic device 1 proceeds to the operation of step S500. On the other hand, when the activation request is detected, the application execution determining unit 14 determines that the alternative application should be executed, and causes the alternative application holding determining unit 15 to execute the operation of step S507.
  • the process in step S506 corresponds to the process in step S3 in FIG.
  • step S507 the alternative application holding determination unit 15 determines whether or not the related table created by the related application determination unit 152 in step S504 (if the related table is stored in advance, the stored related table). With reference to the above, it is determined whether or not the power of the related function application in place of the application for which the activation has been requested is held. If the related function application is not held, the electronic device 1 proceeds to the operation of step S500. On the other hand, when the related function application is held, the alternative application holding determination unit 15 causes the application execution unit 16 to execute the operation of step S508.
  • the process in step S507 corresponds to the process in step S4 in FIG.
  • step S508 the application execution unit 16 activates the related function application held by the alternative application holding determination unit 15 and starts execution. After that, the electronic device 1 proceeds to the operation of Step S500.
  • the process in step S508 corresponds to the process in step S5 in FIG.
  • step S500 electronic device 1 changes the internal timer, and returns to the operation in step S502.
  • the electronic device 1 periodically executes the processing by the related application determining unit 152 and the processing by the application execution impossible detection unit 13.
  • the determination process of the related application determination unit 152 and the application inability to detect detection unit 13 does not have a uniform processing cycle as long as the processes need not be performed in a particular order but are performed periodically. May be.
  • the related application determination unit 152 may be executed every 300 s, and the application unexecutability detection unit 13 may be executed every 5 s.
  • the home server has a service of periodically backing up and copying data of other electronic devices connected to the network to the own device.
  • the home server holds an application that performs backup (backup application), and realizes a service when an activation request is given by an internal timer.
  • a mobile phone connected to the home server via a network holds a user notification application associated as a related function application of the knockup application.
  • the mobile phone detects that the backup application of the home server has become unexecutable by executing the application «I connection program, and activates the backup application using the timer inside the home server. Upon detecting that the request has been granted, launch the user notification application.
  • the user notification application provides a service that notifies and warns the user that the backup of the home server has failed.
  • FIG. 14 is a flowchart showing the operation of the electronic device 1 when executing the fourth basic process.
  • the flow of the fourth basic process will be described with reference to FIG.
  • step S601 the application recognition unit 12 recognizes an application held by another electronic device (step S601).
  • the process in step S601 corresponds to the process in step S1 in FIG.
  • the timing control unit 11 determines whether or not the timing has come to start the processing by the related application determination unit 152 (step S602). The timing has arrived! If not, the timing control section 11 proceeds to the operation of step S603. On the other hand, if the timing has arrived, the related application determining unit 152 executes a process of associating the related function application with the application held by the other electronic device recognized in step S601, and creates a related table. (Step S604). If the related table has been created in advance, the processing in step S604 can be omitted. After step S604, the electronic device goes to operation in step S603.
  • step S603 the timing control unit 11 determines whether or not the timing to start the processing by the application execution state acquisition unit 142 has arrived. If the timing has not arrived, the timing control unit proceeds to the operation of step S606. On the other hand, when the timing has arrived, the application execution state acquisition unit 142 acquires the application execution state information of the application being executed on another electronic device (Step S605), and the electronic device 1 performs Step S606. Proceed to the operation of.
  • step S606 the timing control section 11 determines whether or not the timing to start the processing by the application execution inability detecting section 13 has come. If the timing has not arrived, the timing control section 11 proceeds to the operation of step S600. On the other hand, when the timing has arrived, the application inexecutability detecting unit 13 determines whether or not there is an application on another electronic device that is detected as incapable of being executed (step S607). The process in step S607 corresponds to the process in step S2 in FIG. If there is no unexecutable application, the electronic device 1 proceeds to the operation of step S600. On the other hand, when there is an unexecutable application, the electronic device 1 proceeds to the operation of step S608.
  • step S608 the application execution determination unit 14 determines whether the application execution state acquisition unit 142 holds application execution state information for the unexecutable application. When the application execution state information is not held, the electronic device 1 proceeds to the operation of step S600. On the other hand, when the application execution state information is stored, the application execution determination unit 14 determines that the alternative application should be executed, and causes the alternative application storage determination unit 15 to execute the operation in step S609.
  • the process in step S608 corresponds to the process in step S3 in FIG.
  • step S609 the alternative application holding determining unit 15 determines whether or not the related table created by the related application determining unit 152 in step S604 (if the related table is stored in advance, the stored related table). With reference to the above, it is determined whether or not the power of the related function application in place of the application for which the activation has been requested is held. If the related function application is not held, the electronic device 1 proceeds to the operation of step S600. On the other hand, when the related function application is held, the alternative application holding determination unit 15 causes the application execution unit 16 to execute the operation of step S610.
  • the processing in step S609 corresponds to the processing in step S4 in FIG.
  • step S610 the application execution unit 16 activates the related function application held by the alternative application holding determination unit 15 and starts execution. After that, the electronic device 1 proceeds to the operation of step S600.
  • the process in step S610 corresponds to the process in step S5 in FIG.
  • step 600 the electronic device 1 changes the internal timer, and returns to the operation in step S602.
  • the electronic device 1 periodically executes the processing by the related application determination unit 152, the processing by the application execution impossible detection unit 13, and the processing by the application execution state acquisition unit 142.
  • the processing by the related ablation determination unit 152, the processing by the application execution inability detection unit 13, and the processing by the application execution state acquisition unit 142 are not performed in a particular order, but are performed periodically. As long as the processing cycle is even, it is not necessary.
  • the AV device network-connected to the mobile phone holds an application called a recording application that records a broadcast on its own device, which is associated as a related function application of the TV application.
  • the AV device obtains information on what channel the TV application that was running on the mobile phone has watched and in what settings! .
  • the AV device When the AV device detects that the TV application of the mobile phone has fallen into an unexecutable state, the AV device starts the recording application, and based on the application execution state information of the TV application, the TV application is watching the TV application. Take over the service with the same settings as above, and realize the broadcast recording service.
  • an electronic device should recognize an application held by another electronic device, and execute an alternative application when it is detected that the recognized application cannot be executed. It is determined whether it is. If the alternative application should be executed, the electronic device determines whether or not the electronic device holds the alternative application, and if so, executes the alternative application. Therefore, even when the electronic device according to the first embodiment exists on a network configured only by devices that do not have a center server, if the application on another electronic device becomes unexecutable, , Can run alternative applications. Therefore, services are continuously provided even on a network configured only with devices that do not have a center server.
  • the first basic processing and the second basic processing can be combined.
  • the device 1 acquires the application execution state information in advance, and if it is determined in step S306 in FIG. 11 that the activation request has not been detected, the device 1 proceeds to step S408 in FIG. It is preferable to execute the determination in step S307 to retain the application execution state information, and if so, proceed to the operation of step S307 for determining whether to retain the same function application. Note that the combination of the first basic processing and the second basic processing is not limited to this.
  • the first basic processing and the third basic processing can be combined.
  • the electronic device 1 creates an association table in advance, determines in step S307 that it does not hold the same function application, and executes step S507 in FIG. If a related function application is held, the related application should be executed. Note that the combination of the first basic processing and the third basic processing is not limited to this.
  • the first basic processing and the fourth basic processing can be combined. For example, when the electronic device 1 determines that the application execution state information is not held in step S608 in FIG. 14, the electronic device 1 executes steps S306 and S307 in FIG. The same function application may be started without using the information. Note that the combination of the first basic processing and the fourth basic processing is not limited to this.
  • first to fourth basic processes can be combined as much as possible. It goes without saying that three or more basic processes may be combined. Of course, the electronic device may execute the first to fourth basic processes simply and sequentially. The present invention is not limited to the combination described above.
  • the substitute application holding determination unit 15 refers to the identity table and Z or the related table and automatically determines a substitute application that substitutes for the application in which execution failure has been detected. It was decided to determine whether or not the force was held in the equipment. However, if it is possible to determine whether or not the substitute application is held in its own device, the substitute application holding determination unit 15 does not need to refer to the identity table and Z or the related table. Good. That is, the alternative application holding determination unit 15 Each time the re-execution determining unit 14 determines that the alternative application should be executed, it may be determined whether the alternative application is held or not. That is, steps S302 and S304 in FIG. 11, steps S402 and S404 in FIG. 12, steps S502 and S504 in FIG. 13, and steps S602 and S604 in FIG. 14 are not essential in the present invention.
  • the electronic device that executes the application continuation program is only the electronic device 1.
  • the electronic device 3 executes the application continuation program, but the operation of each electronic device is the same even if the electronic device other than the electronic device 3 also executes the application continuation program. is there.
  • the electronic devices 1 and 3 execute the alternative application independently of each other.
  • the group of electronic devices connected to the network 6 is regarded as one system, it is sufficient for the operation of the system even if all electronic devices do not execute the substitute application. There is. That is, it may be sufficient for only one device to execute the replacement application. Alternatively, there may be cases where it is desired to set some conditions regarding the electronic device that executes the substitute application. For example, the same function application must be started on an electronic device with the highest possible specifications, or started on a portable device as much as possible.
  • FIG. 15 is a block diagram showing a functional configuration of electronic devices 1 and 3 when executing the application continuation program according to the second embodiment.
  • blocks having the same functions as those in the first embodiment shown in FIG. 4 are denoted by the same reference numerals, and description thereof will be omitted.
  • the electronic devices 1 and 3 according to the second embodiment further include an inter-device activation arbitration unit 20 in the application execution determination unit 14a.
  • the inter-device activation arbitration unit 20 in the electronic device 1 (the inter-device activation arbitration unit 2 in the electronic device 3) (0) is the device start arbitration unit 20 in the electronic device 3 (the device start arbitration unit 20 in the electronic device 1).
  • the inter-device activation arbitration unit 20 performs the following two types of processing X and Y.
  • Process X is performed to determine whether to execute the held application when the electronic device of the present invention holds the same function application or the related function application.
  • FIG. 16 is a flowchart showing the operation of electronic device 1 when process X is added to the first basic process.
  • steps having the same operation as the operation shown in FIG. 11 are denoted by the same reference numerals, and description thereof will be omitted.
  • the electronic device 1 determines that the same function application is held, the electronic device 1 executes the process X in step S701.
  • the inter-device startup arbitration unit 20 obtains startup arbitration information held by another electronic device, and should execute the same function application determined to be held based on the startup arbitration information. Determine whether you are strong or not. If it is determined that the processing should be executed, the electronic device 1 proceeds to the operation in step S308. On the other hand, when it is determined that the execution should not be performed, the electronic device 1 proceeds to the operation of step S300.
  • FIG. 17 is a flowchart showing the operation of electronic device 1 when process X is added to the second basic process.
  • steps having operations similar to the operations illustrated in FIG. 12 are denoted by the same reference numerals, and description thereof will be omitted.
  • the electronic device 1 executes the process X in step S801 after step S409.
  • step S801 start arbitration between devices
  • the unit 20 acquires the start arbitration information held by another electronic device, and determines whether or not the ability to execute the same function application determined to be held is based on the start arbitration information. If it is determined that the processing should be executed, the electronic device 1 proceeds to the operation in step S410. On the other hand, when it is determined that the processing should not be performed, the electronic device 1 proceeds to the operation in step S400.
  • FIG. 18 is a flowchart showing the operation of electronic device 1 when process X is added to the third basic process.
  • steps having operations similar to the operations illustrated in FIG. 13 are denoted by the same reference numerals, and description thereof will be omitted.
  • the electronic device 1 determines that the related function application is held, the electronic device 1 executes a process X in a step S901.
  • the inter-device start arbitration unit 20 should acquire the start arbitration information held by another electronic device and execute the same function application determined to be held based on the start arbitration information. Determine whether you are strong or not. If it is determined that the processing should be executed, the electronic device 1 proceeds to the operation in step S508. On the other hand, when it is determined that the processing should not be performed, the electronic device 1 proceeds to the operation in step S500.
  • FIG. 19 is a flowchart showing an operation of electronic device 1 when process X is added to the fourth basic process.
  • steps having the same operations as the operations illustrated in FIG. 14 are denoted by the same reference numerals, and description thereof will be omitted.
  • the electronic device 1 executes the process X in step S1001, after determining that the same function application is held.
  • the inter-device startup arbitration unit 20 acquires the startup arbitration information held by another electronic device, and executes the same function application determined to be held based on the startup arbitration information. Decide whether you should or should not. If it is determined that the processing should be performed, the electronic device 1 proceeds to the operation of Step S610. On the other hand, if it is determined that the processing should not be performed, the electronic device 1 proceeds to the operation of step S600.
  • FIG. 20 shows a process of determining whether or not to start the alternative application (steps S701, S801, and S90).
  • 3 is a flowchart showing a detailed operation of the electronic device 1 in 1, S1001).
  • FIG. 21 is a sequence diagram showing communication between electronic devices on the network in the alternative application activation availability determination process (steps S701, S801, S901, and S1001).
  • a vertical line indicates a progress of time in each electronic device. Horizontal lines indicate communications performed between electronic devices.
  • the inter-device start-up arbitration unit 20 of the electronic device 1 inquires of the other electronic devices 3, 4, and 5 connected to the network 6 whether or not an alternative application is held (step S1101). , Communication 1201).
  • the other electronic device executes the above-described process Y, and responds as to whether or not it holds the substitute application (communication 1202).
  • the inter-device start-up arbitration unit 20 of another electronic device refers to the identity table or the related table, determines whether or not the alternative application is held, and returns a determination result.
  • the electronic device 3 answers that the electronic device 3 holds, and the electronic devices 4 and 5 hold the answer that it holds.
  • the inter-device activation arbitration unit 20 of the electronic device 1 that has received the response of the other electronic device determines whether or not there is another electronic device holding the substitute application based on the response. (Step S1102).
  • the inter-device activation arbitration unit 20 of the electronic device 1 determines that the alternative application can be activated (step S1103). On the other hand, if there is another electronic device that holds the substitute application, the inter-device activation arbitration unit 20 of the electronic device 1 proceeds to the operation in step S1104.
  • step S1104 the inter-device activation arbitration unit 20 of the electronic device 1 acquires the activation arbitration information as well as the electronic device power that holds the alternative application. At this time, the inter-device activation arbitration unit 20 of the electronic device 1 transmits a request to acquire activation arbitration information to the electronic device 3 (communication 1303). In response, the inter-device activation arbitration unit 20 of the electronic device 3 transmits the retained activation arbitration information to the electronic device 1 (communication 1204). If you do not have an alternative application V. These communications must not be performed for electronic devices.
  • the inter-device start arbitration unit 20 of the electronic device 1 compares the start arbitration information held by the electronic device 1 with the start arbitration information sent from the electronic device 3 (step S 1105).
  • Start-up arbitration information is information used to determine the degree of necessity of executing a service by an application.
  • FIG. 22 is a diagram illustrating an example of a table format of the startup arbitration information. Information for determining the necessity of executing the alternative application is registered in each entry of the table! Each entry shown in the figure will be briefly described.
  • application attribute information application attribute information of an alternative application possessed by the electronic device is recorded.
  • the application attribute information is the same as the information described above with reference to FIG.
  • identification information for uniquely identifying the electronic device is recorded. This may be a string name, a number, or some other form of information.
  • the device type information for specifying the type of the electronic device such as a mobile phone, a PDA, a video recorder, and a PC is recorded.
  • the mounted CPU records information on the processor mounted on the device, such as the specifications and speed of the CPU mounted on the electronic device.
  • the installed OS records information about the OS and middleware installed in the device, such as the specifications and version of the OS installed in the electronic device.
  • the setting priority information on the priority of service execution of the electronic device is recorded. This priority may be a numerical value fixedly set for the device, or a numerical value that can be set by the user for each device.
  • the last operation date and time by the user information on the last time when the user performed an operation on the electronic device is recorded.
  • the example shown in Fig. 22 is one of the examples of realizing the start-up arbitration information. Some of the entries of the table shown in FIG. 22 may not be included, or entries indicating information of other attributes may be included.
  • step S1105 the inter-device start arbitration unit 20 of the electronic device 1 compares the start arbitration information held by the electronic device 1 with the start arbitration information held by the other electronic device obtained in step S1104. Based on the result, it is determined whether the electronic device 1 needs to start and execute the substitute application (step S1106).
  • step S1106 the following determination method is used.
  • the inter-device startup arbitration unit 20 of the electronic device 1 uses the application attribute information included in the startup arbitration information, and is more necessary than the substitute application held by the electronic device 1. If the resource amount is small and the alternative application is held by another electronic device, the electronic device 1 determines that the alternative application needs to be activated, and otherwise determines that the activation is not required.
  • the inter-device startup arbitration unit 20 of the electronic device 1 includes the device identification name, device type, installed CPU, installed OS, installed memory amount, and processor usage included in the startup arbitration information. If the above information satisfies the conditions defined in the electronic device 1 using the information on the rate, the free resource amount, and the Z or the setting priority, it is determined that the alternative application needs to be started, If the conditions are not satisfied, it is determined that the launch of the substitute application is not necessary. As the condition, for example,
  • the determination processing may be performed by other determination methods using the startup arbitration information other than the above.
  • step S1106 If it is determined in step S1106 that the alternative application needs to be activated, the inter-device activation arbitration unit 20 of the electronic device 1 proceeds to the operation in step S1103, and determines that the alternative application is activated. . On the other hand, if the necessity of starting the substitute application is not confirmed, the inter-device start arbitration unit 20 of the electronic device 1 determines that the substitute application is not started (step S1107).
  • the substitute application should be executed by the inter-device activation arbitration unit. Is determined, and only a limited number of electronic devices in the entire system execute the substitute application. Therefore, the resources of the entire system will be used effectively.
  • the same service can be automatically executed by other devices even if it is used for network devices, even if it is based on a centralized management method like a center server. In this way, it is possible to perform cooperative operation between devices to ensure high service stability, such as taking over the interrupted service with another device and executing the service on another device. Therefore, the electronic device according to the present invention is useful in the communication field and the like.

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

明 細 書
サービスを自動継続する電子機器
技術分野
[0001] 本発明は、ネットワークに接続される電子機器に関し、より特定的には、ソフトウェア プログラム(アプリケーション)を実行することによってサービスを実施する電子機器に 関する。
背景技術
[0002] ネットワークに接続された家電機器等の電子機器上で、アプリケーションを動作させ るアプリケーション実行系の技術として、サンマイクロシステムズ (登録商標)社の JAV A (登録商標)や、マイクロソフト (登録商標)社の. NET (ドットネット)などがある。
[0003] これらの技術は、仮想マシンの仕組みを備えており、ネットワーク家電の CPU等の ハードウェアに依存せずに同一のアプリケーションを動作させることができるので、サ 一ビスの実施のための共通プラットフォームとなることが期待されている。
[0004] また、ネットワークを介してアプリケーションを実行する環境の自動設定を行う技術と して、マイクロソフト(登録商標)社によって提唱されて 、る技術である UPnP (Univer sal Plug and Play)や、サンマイクロシステムズ (登録商標)社によって提唱されて
V、る技術である Jini (TM)などが存在する。
[0005] これらの技術の特徴として、ネットワークに機器を繋ぐだけで、ユーザが複雑な設定 作業を行わなくともすぐにネットワーク機能を利用可能な状態にすることができる、と
V、う利便性をユーザに対して提供する、 、う事が挙げられる。
[0006] ユーザの利用する機器力もネットワークを介して、ユーザ要求に対応する機能を持 つ機器を探し出すシステムの例として、特許文献 1に示す技術が提案されて 、る。
[0007] サービスに関して何らかの障害が発生した場合に、サーバ機器によって復旧を実 施するシステムの例として、特許文献 2に示す技術が提案されて 、る。
[0008] また、ユーザの利用した 、端末でサービスを実施できな力つた場合に、代替となる 機器を探し出し実施する方法の例として、特許文献 3に示す技術が提案されている。 特許文献 1:特開 2003—178036号公報 特許文献 2:特開 2002— 24039号公報
特許文献 3:特開 2002— 94912号公報
発明の開示
発明が解決しょうとする課題
[0009] 家電機器は、アプリケーションの実行を行うことができない状態に陥ることが頻繁に 起こる。
[0010] 代表的なケースは、機器の電源が切断される、(モパイル機器等において)バッテリ が消費される、などの事態に陥った場合に、通電状態が確保できなくなる場合である 。他には、同じ機器上で、優先度の高い他のアプリケーションが実行される場合、主 に資源の欠乏の問題力も別のアプリケーションの実行を行うことができなくなる場合が ある。
[0011] こういった状態に家電機器が陥ると、新たなサービスを家電機器によって実施しょう としても、アプリケーションの起動ができず、サービスの提供が不可能になる。また、た とえ、アプリケーションを実行中であっても、その実行を中断してサービスの提供を停 止せざるを得なくなる。
[0012] したがって、サービスの実施が不可能な状態に陥った機器に対して、家電機器が ネットワークに接続されているという特性を利用し、サービス実施のための復旧を試み たり、そのサービスの代替実施手段を提供したりすることを目的にした技術を発明す べきである。
[0013] 特許文献 1は、家電ネットワークシステムにおけるユーザ環境の変化やユーザ要求 を考慮に入れたシステムを提案している。しかし、特許文献 1は、上記のようなサービ スの実施が不可能な状態に陥った場合の具体的な処理方法に関して、言及してい ない。したがって、サービスの実施の確実性を高めたい場合には、別途具体的な処 理手段を実装する必要がある。
[0014] また、特許文献 2は、サービスの実施が不可能な状態に陥った場合、センターサー バが障害対策と復旧処理とを行うシステムについて述べている。しかし、これはあくま でセンターサーバの存在を前提としたものである。したがって、センターサーバの存 在を仮定しな 、、例えば家電機器のピア ·ツー ·ピアのネットワーク構成のみを前提と したネットワークには、対応することができない。
[0015] また、特許文献 3は、利用予約した機器に不具合があり、サービスの実施が不可能 な状態に陥った場合に、代替となる機器を探し出し利用予約を実施する方法につい て述べている。しかし、この方法では、予め機器の組み合わせによって、代替ァクショ ンの登録を行っておく必要がある。また、特許文献 3は、何らかのサービスの実施の 最中に、そのサービスの継続が不可能な状態に陥った場合に、そのサービスを継続 するための対応に関して、言及していない。
[0016] 上記のように、センターサーバによる集中管理方式を前提としない、機器同士のみ により構成されたネットワーク上でも、可能な限りユーザの手を煩わせることなぐサー ビスの安定性を確保することを目的とする技術に関しては、とりわけ、何らかのサービ スの実施中にそのサービスの継続が不可能な状態に陥った場合の復旧手段に関し ては、これまでは有効な手段が考えられてはいな力つた。
[0017] それゆえ、本発明の目的は、機器同士のみにより構成されたネットワーク上におい ても、サービスを継続的に実施することができる電子機器を提供することである。また 、本発明の目的は、当該電子機器で実行されるプログラム、方法、当該プログラムを 記録した記録媒体を提供することである。
課題を解決するための手段
[0018] 上記課題を解決するために、本発明は、以下のような特徴を有する。本発明は、ァ プリケーシヨンを実行可能な少なくとも一つの他の電子機器とネットワークを介して接 続された電子機器であって、他の電子機器が保持するアプリケーションを認識するァ プリ認識部と、アプリ認識部によって認識されたアプリケーションが他の電子機器に お 、て実行不能である力否かを検出するアプリ実行不能検出部と、アプリ実行不能 検出部によって実行不能と検出されたアプリケーションの代わりとなる代替アプリケー シヨンを実行するカゝ否かを判断するアプリ実行判断部と、実行不能であると検出され たアプリケーションの代わりとなる代替アプリケーションが自機器内に保持されている か否かを判断する代替アプリ保持判断部と、代替アプリケーションを実行するアプリ 実行部とを備える。
[0019] 好ましくは、アプリ実行判断部は、アプリ実行不能検出部によって実行不能と検出 されたアプリケーションに対する起動要求を検出するアプリ起動要求検出部を含み、 アプリ実行判断部は、アプリ起動要求検出部によって実行不能と検出されたアプリケ ーシヨンに対する起動要求が検出された場合、代替アプリケーションを実行すると判 断するとよい。
[0020] 好ましくは、代替アプリ保持判断部は、アプリ認識部によって認識された他の電子 機器が保持するアプリケーションと同一の機能を有する同一機能アプリケーションが 自機器内に保持されているか否かを判断して、他の電子機器が保持するアプリケー シヨンと自機器内に保持されている同一機能アプリケーションとを対応付けた同一性 テーブルを作成するアプリ同一性判定部を含み、同一機能アプリケーションは、代替 アプリケーションであり、代替アプリ保持判断部は、アプリ同一性判定部によって作成 された同一性テーブルに基づいて、代替アプリケーションが自機器内に保持されて V、る力否かを判断するとよ 、。
[0021] 好ましくは、代替アプリ保持判断部は、アプリ認識部によって認識された他の電子 機器が保持するアプリケーションに関連する機能を有する関連機能アプリケーション を、他の電子機器が保持するアプリケーションと対応付けて、関連テーブルを作成す る関連アプリ判定部を含み、関連機能アプリケーションは、代替アプリケーションであ り、代替アプリ保持判断部は、関連アプリ判定部によって作成された関連テーブルに 基づいて、代替アプリケーションが自機器内に保持されているか否かを判断するとよ い。
[0022] 好ましくは、アプリ実行判断部は、他の電子機器上で実行されているアプリケーショ ンでの実行状態をアプリ実行状態情報として取得するアプリ実行状態取得部を含み 、アプリ実行判断部は、アプリ起動要求検出部によって実行不能と検出されたアプリ ケーシヨンについてのアプリ実行状態情報がアプリ実行状態取得部によって保持さ れている場合、代替アプリケーションを実行すると判断し、アプリ実行部は、アプリ実 行状態情報に基づいて、実行不能と検出されたアプリケーションを継続するように、 代替アプリケーションを実行するとよ!/、。
[0023] 好ましくは、アプリ実行判断部は、ネットワークに接続された他の電子機器に対して 、代替アプリケーションを保持しているか否かを問い合わせ、代替アプリケーションを 保持している他の電子機器と通信して、代替アプリケーションを自機器内で実行する カゝ否かを判断する機器間起動調停部を含むとよ ヽ。
[0024] また、本発明は、アプリケーションを実行可能な少なくとも一つの他の電子機器とネ ットワークを介して接続された電子機器の処理方法であって、他の電子機器が保持 するアプリケーションを認識するステップと、認識されたアプリケーションが他の電子 機器において実行不能である力否かを検出するステップと、実行不能であると検出さ れたアプリケーションの代わりとなる代替アプリケーションを実行する力否かを判断す るステップと、実行不能であると検出されたアプリケーションの代わりとなる代替アプリ ケーシヨンが自機器内に保持されている力否かを判断するステップと、代替アプリケ ーシヨンを実行するステップとを備える。
[0025] また、本発明は、アプリケーションを実行可能な少なくとも一つの他の電子機器とネ ットワークを介して接続された電子機器で実行されるプログラムであって、他の電子機 器が保持するアプリケーションを認識するステップと、認識されたアプリケーションが 他の電子機器にぉ 、て実行不能である力否かを検出するステップと、実行不能であ ると検出されたアプリケーションの代わりとなる代替アプリケーションを実行する力否 かを判断するステップと、実行不能であると検出されたアプリケーションの代わりとなる 代替アプリケーションが自機器内に保持されているか否かを判断するステップと、代 替アプリケーションを実行するステップとを備える。
発明の効果
[0026] 本発明によれば、ネットワーク上に存在するある電子機器が備えて ヽるアプリケー シヨンの実行が不可能になり、サービスが不能の状態に陥ったとしても、代替となるァ プリケーシヨンが実行されることによって、サービスが自動継続されることとなる。した がって、ネットワーク上において、サービスが安定的に提供されることとなる。
[0027] 実行が不能となったアプリケーションと同一の機能を有するアプリケーションが存在 すれば、実行が不能となったサービスと同等のサービスが継続して提供されることと なる。
[0028] 実行が不能となったアプリケーションに関連する機能を有するアプリケーションが存 在すれば、実行が不能となったサービスと類似のサービスある 、は実行が不能となつ たサービスを補佐するサービスが実行されることとなり、サービスの利便性 ·柔軟性が 向上する。
[0029] 電子機器は、アプリケーションへの起動要求を検出するだけで、アプリケーションが 実行不能となっている力否かを認識することができる。したがって、アプリケーションの 実行不能状態の検出が容易となる。
[0030] また、電子機器は、実行不能となったアプリケーションの途中の状態を継続して代 替アプリケーションを実行することができるので、サービスの継続性が向上する。
[0031] ネットワーク上の複数の電子機器が代替アプリケーションを保持している場合、機器 間で調停が行われて、適切な電子機器が代替アプリケーションを実行することとなる ので、ネットワーク上の資源が有効に利用されることとなる。
[0032] 以上のように、本発明によれば、センターサーバのような集中管理方式を前提とし て ヽな 、ネットワーク上の電子機器でも、サービスの高 、安定性を確保することがで さることとなる。
[0033] 本発明のこれらおよび他の目的、特徴、局面、効果は、添付図面と照合して、以下 の詳細な説明から一層明らかになるであろう。
図面の簡単な説明
[0034] [図 1]図 1は、本発明の第 1の実施形態に係る電子機器を備えるシステム全体の構成 を示す図である。
[図 2]図 2は、本発明の第 1の実施形態に係る電子機器 1一 5のハードウェア的構成 を示す図である。
[図 3]図 3は、アプリ属性情報の実現例をテーブル形式で示す図である。
[図 4]図 4は、アプリ継続プログラムを実行したときの電子機器の機能的構成を示すブ ロック図である。
[図 5]図 5は、アプリ継続プログラムを実行したときの電子機器 1の動作の概略を示す フローチャートである。
[図 6]図 6は、アプリ同一性判定部 151の動作を示すフローチャートである。
[図 7]図 7は、同一性テーブルの一例を示す図である。
[図 8]図 8は、ユーザによって関連テーブルが登録されるときの処理手順を説明する ための図である。
[図 9]図 9は、関連テーブルの一例を示す図である。
[図 10]図 10は、アプリ実行不能検出部 13の動作の一例を示すフローチャートである 圆 11]図 11は、第 1の基本処理を実行するときの電子機器 1の動作を示すフローチ ヤートである。
[図 12]図 12は、第 2の基本処理を実行するときの電子機器 1の動作を示すフローチ ヤートである。
[図 13]図 13は、第 3の基本処理を実行するときの電子機器 1の動作を示すフローチ ヤートである。
[図 14]図 14は、第 4の基本処理を実行するときの電子機器 1の動作を示すフローチ ヤートである。
[図 15]図 15は、第 2の実施形態に係るアプリ継続プログラムを実行したときの電子機 器 1および 3の機能的構成を示すブロック図である。
[図 16]図 16は、第 1の基本処理に処理 Xを追加したときの電子機器 1の動作を示す フローチャートである。
[図 17]図 17は、第 2の基本処理に処理 Xを追加したときの電子機器 1の動作を示す フローチャートである。
[図 18]図 18は、第 3の基本処理に処理 Xを追加したときの電子機器 1の動作を示す フローチャートである。
[図 19]図 19は、第 4の基本処理に処理 Xを追加したときの電子機器 1の動作を示す フローチャートである。
[図 20]図 20は、代替アプリケーションの起動可否判定処理 (ステップ S701, S801, S901, S1001)における電子機器 1の詳しい動作を示すフローチャートである。
[図 21]図 21は、代替アプリケーションの起動可否判定処理 (ステップ S701, S801, S901, S1001)におけるネットワーク上の電子機器間の通信を示すシーケンス図で ある。
[図 22]図 22は、起動調停情報のテーブル形式の一例を示す図である。 符号の説明
[0035] 1一 5 電子機器
6 ネットワーク
100 中央処理装置
101 主記憶装置
102 補助記憶装置
103 通信装置
104 入力装置
105 出力装置
11 タイミング制御部
12 アプリ認識部
13 アプリ実行不能検出部
14 アプリ実行判断部
141 アプリ起動要求検出部
142 アプリ実行状態取得部
15 代替アプリ保持判断部
151 アプリ同一性判定部
152 関連アプリ判定部
16 アプリ実行部
7a, 7b, 7c, 7d ユーザインタフェース
20 機器間起動調停部
発明を実施するための最良の形態
[0036] 以下、図面を参照しながら、本発明の実施形態について説明する。
(第 1の実施形態)
図 1は、本発明の第 1の実施形態に係る電子機器を備えるシステム全体の構成を 示す図である。図 1において、電子機器 1一 5は、ネットワーク 6を介して、相互に通信 可能に接続されている。
[0037] 本発明の電子機器は、少なくとも 2以上の電子機器がネットワークを介して接続され た環境下において適用されるものである。したがって、図 1では、電子機器は、 5つで あるとしたが、 2以上 4以下であってもよいし、 6以上であってもよい。
[0038] ネットワーク 6の通信規格は、接続された電子機器間でデータの通信が可能なもの であれば何でもよい。また、ネットワーク 6は、インターネットのようなパブリックなネット ワークであっても、 LANのように限られたドメインの中で閉じられたネットワークであつ ても良 、し、その両者の組合せからなって 、ても良 、。
[0039] 図 2は、本発明の第 1の実施形態に係る電子機器 1一 5のハードウェア的構成を示 す図である。以下、代表して、電子機器 1について説明する。図 2において、電子機 器 1は、中央処理装置 100と、主記憶装置 101と、補助記憶装置 102と、通信装置 1 03と、入力装置 104と、出力装置 105とを備える。なお、電子機器 1がパーソナルコ ンピュータのような汎用的な機器であれば、図 2に示す各ブロックは、別々の集積回 路ゃデバイスによって実現されることが多い。しかし、電子機器 1が携帯電話やネット 家電のような専用の機器であれば、図 2に示す各ブロックは、専用の集積回路上に 形成されることちある。
[0040] 中央処理装置 100は、電子機器 1の動作を制御する。中央処理装置 100は、電子 機器 1の動作を制御するための機能をそれ自身に持って 、てもよ 、し、補助記憶装 置 102に格納されて 、るプログラム(ファームウェアやソフトウェア)を主記憶装置 10 1に読み込んで、当該プログラムを実行することによって電子機器 1の動作を制御し てもよい。また、中央処理装置 100は、電子機器 1の物理層または MAC層等の下位 層を実現するためのハード構成を備えている。
[0041] 主記憶装置 101は、読み出しおよび書き込み可能なメモリであって、中央処理装置 100での動作に必要な情報を格納する
[0042] 補助記憶装置 102は、フラッシュメモリゃノヽードディスク、光ディスク等を記録媒体と する記憶装置である。補助記憶装置 102には、電子機器 1で実行されるアプリケーシ ヨンに関するプログラム(以下、単にアプリケーションという)が格納されている。アプリ ケーシヨンには、アプリケーションの属性を示す固有の情報として、アプリ属性情報が 付加されている。また、補助記憶装置 102には、本発明のアプリ継続プログラムが格 納されている。アプリ継続プログラムは、他の電子機器で実行されていたアプリケー シヨンの代わりとなるアプリケーション(以下、代替アプリケーションという)を、電子機 器 1にお 、て実行すべきか否かを判断するためのプログラムである。アプリ継続プロ グラムは、中央処理装置 100によって主記憶装置 101に読み込まれ、中央処理装置 100によって実行されることによって、本発明の動作が実現される。アプリ継続プログ ラムは、電子機器内に予め記憶されているファームウェアであってもよいし、後で電 子機器内に記憶されたソフトウェアであってもよい。アプリ継続プログラムは、コンビュ ータ読み取り可能な記録媒体に格納されており、当該記録媒体から補助記憶装置 1 02に格納されてもよい。また、アプリ継続プログラムは、ネットワーク 6を介して他の電 子機器力もダウンロードして、補助記憶装置 102に格納されてもよい。代替アプリケ ーシヨンには、他の電子機器で実行されていたアプリケーションと同一の機能を有す る同一機能アプリケーションと、他の電子機器で実行されていたアプリケーションに関 連する機能を有する関連機能アプリケーションとがある。関連機能アプリケーションは 、他の電子機器で実行されて 、たアプリケーションによって提供されるサービスと類 似のサービスを提供することができるアプリケーション、ある 、は他の電子機器で実 行されていたアプリケーションを補佐するサービスを提供することができるアプリケー シヨンである。
[0043] たとえば、電子機器 1で実行されるアプリケーション力JAVA (登録商標)アプリケー シヨンである場合、アプリケーションに関するプログラムは、 JARファイルとなる。
[0044] アプリ属性情報とは、アプリケーションの名称、アプリケーションの取得元、アプリケ ーシヨンを動作させるために必要なプロファイルの情報など、アプリケーションの特徴 を示した情報のことをいう。
[0045] 例えば、 JAVA (登録商標)のモパイル機器向けの標準プロファイルである MIDPプ 口ファイルに準拠し^ JAVA (登録商標)アプリケーションにおいて、アプリ属性情報 は、 JADファイルに記述されることによって提供される。しかし、 JADファイルのような アプリ属性情報が提供されな 、場合でも、電子機器 1は、 JAVA (登録商標)アプリケ ーシヨンの本体である JARファイルを解析することによって、アプリ属性情報として、ァ プリケーシヨンのサイズなどの情報を取得することができる。
[0046] 図 3は、アプリ属性情報の実現例をテーブル形式で示す図である。図 3において、 それぞれのエントリには、アプリケーションの属性を示す情報が登録されている。図 3 に示したそれぞれのエントリについて説明する。
[0047] アプリケーション名には、アプリケーションに与えられた名称が記述されている。
[0048] アプリケーションの取得元には、電子機器に対するアプリケーションの配布元が記 述されている。図 3では、アプリケーションの取得元が URL形式で記述されているが
、もちろん、他の情報で記述されていてもよい。
[0049] メインクラス名には、アプリケーションを開始する際に最初に呼ばれるメソッドである mainメソッドを実装したクラス名が記述されて 、る。
[0050] 必要プロファイルには、アプリケーションを動作させるために必要な、コンフィグレー シヨン、プロファイル、およびライブラリ等の情報が記述されている。
[0051] 必要リソースには、アプリケーションを動作させるために必要な資源量が記述されて いる。
[0052] 最終更新日には、アプリケーションを最後に更新した日時が記述されて 、る。
[0053] バージョン番号には、アプリケーションに与えられたバージョン管理番号が記述され ている。
[0054] アプリケーションサイズには、アプリケーションの本体 (JAVA (登録商標)の場合、 J ARファイル)のサイズが記述されて!、る。
[0055] アプリケーション作成者には、アプリケーションの作成者を示すための識別情報が 記述されている。図 3では、作成者の名称を示す文字列が記述されているが、もちろ ん他の情報であっても良い。
[0056] 代替可能アプリケーションには、他のアプリケーションを特定するための情報が記 述されている。このエントリは、もし実行中のアプリケーションが中断してしまった場合 、本エントリに記録されたアプリケーション力 中断したアプリケーションの実行状態を 引き継いで、代わりにサービスを継続可能であることを示す。このエントリがどのように 使用されるかに関しては、後述する。
[0057] 被代替可能アプリケーションには、他のアプリケーションを特定するための情報が 記述されている。このエントリは、このエントリに記述された情報に対応するアプリケー シヨン力 Sもし実行中に中断してしまった場合、アプリケーション名に記述されているァ プリケーシヨンが、被代替可能アプリケーションの実行状態を引き継 、でサービスを 継続可能であることを示す。このエントリがどのように使用されるかに関しては後述す る。
[0058] 当然、図 3は、アプリ属性情報の実現例の一つである。図 3の示したテーブルのェ ントリの内、一部がなくてもよいし、あるいは他の属性の情報を示すエントリが含まれ ていてもよい。
[0059] 通信装置 103は、ネットワーク 6に接続された他の電子機器との間でデータを送受 信するための機能を有する。本発明において、通信装置 103での変復調方式ゃメデ ィァアクセス方式等の通信方式は、何でもよぐ特に限定されるものではない。
[0060] 入力装置 104は、ボタンスィッチやキーボード、マウス、タツチパネル等、ユーザに よる操作を入力するための装置である。
[0061] 出力装置 105は、液晶ディスプレイやスピーカ等、中央処理装置 100における処理 結果を出力するための装置である。
[0062] 図 4は、アプリ継続プログラムを実行したときの電子機器の機能的構成を示すブロッ ク図である。なお、本実施形態において、電子機器 1一 5の内、少なくとも一つの電子 機器がアプリ継続プログラムを実行できればよい。ここでは、説明を簡単にするため に、電子機器 1がアプリ継続プログラムを実行するものとし、電子機器 2がアプリケー シヨンを実行するものとし、電子機器 2で実行されて 、たアプリケーションを電子機器 1が継続して実行するものとする。先述のように、代替アプリケーションには、同一機 能アプリケーションと関連機能アプリケーションとがある。本実施形態において、電子 機器 1は、同一機能アプリケーションが存在すれば、同一機能アプリケーションを実 行し、同一機能アプリケーションが存在しなければ、関連機能アプリケーションを実行 するとしてもよいし、予め代替アプリケーションとして、同一機能アプリケーションを実 行すると決めて 、てもよ 、し、関連機能アプリケーションを実行すると決めて 、てもよ い。なお、ここでは、プログラムを実行することによって、図 4に示す機能ブロックをソ フト的に実現することとした力 図 4に示す機能ブロックをノヽード的に実現してもよいこ とは言うまでもない。
[0063] 図 4において、電子機器 1は、タイミング制御部 11と、アプリ認識部 12と、アプリ実 行不能検出部 13と、アプリ実行判断部 14と、代替アプリ保持判断部 15と、アプリ実 行部 16とを備える。
[0064] 図 5は、アプリ継続プログラムを実行したときの電子機器 1の動作の概略を示すフロ 一チャートである。以下、図 5を参照しながら、アプリ継続プログラムを実行したときの 電子機器 1の動作の概略について説明する。
[0065] タイミング制御部 11によって所定のタイミングが到来したと判断された場合、アプリ 認識部 12は、他の電子機器が保持するアプリケーションを認識する (ステップ Sl)。
[0066] 次に、タイミング制御部 11によって所定のタイミングが到来したと判断された場合、 アプリ実行不能検出部 13は、アプリ認識部 12によって認識された他の電子機器が 保持するアプリケーションが実行不能である力否かを検出する (ステップ S2)。
[0067] アプリ実行不能検出部 13によって実行不能であるアプリケーションが検出された場 合、アプリ実行判断部 14は、当該実行不能であるアプリケーションの代わりに代替ァ プリケーシヨンを実行すべきである力否かを判断する (ステップ S3)。
[0068] アプリ実行判断部 14によって代替アプリケーションを実行すべきであると判断され た場合、代替アプリ保持判断部 15は、電子機器 1に代替アプリケーションが保持され て!、る力否かを判断する(ステップ S4)。
[0069] 代替アプリ保持判断部 15によって代替アプリケーションが保持されていると判断さ れた場合、アプリ実行部 16は、当該代替アプリケーションを実行する (ステップ S5)。
[0070] 以下、各機能ブロックの詳細な動作について説明する。
[0071] アプリ実行部 16は、アプリケーションを解釈して実行する。なお、ここでは、アプリ継 続プログラムが実行されることによって、アプリ実行部 16の機能が実現されるとしてい る力 アプリ実行部 16は、アプリ継続プログラムが実行されなくても、電子機器内に備 わっている機能である。したがって、アプリ実行部 16は、代替アプリケーションを実行 することを電子機器内に備わって 、る機能 (別なプログラム)に命令するものであって もよい。なお、ここでは、電子機器 1がアプリ継続プログラムを実行するとしている。ァ プリ継続プログラムを実行しない電子機器 2には、最低限、アプリケーションを実行す るために、アプリ実行部 16が備わって 、る必要がある。
[0072] アプリ実行部 16は、アプリケーションを解釈して実行することが可能であればよぐ アプリケーションを実行するための環境は特に限定されない。たとえば、アプリ実行部 16は、例え〖 AVA (登録商標)仮想マシン、 . NET実行環境、 KDDI (登録商標) 社製の携帯電話にお ヽて採用されて ヽるプログラム配信実行環境である BREWなど 、既存の環境によって実現される。
[0073] 本実施形態において、例示が必要な場合、アプリ実行部 16は、 JAVA (登録商標) 仮想マシン環境によって実現されるとし、アプリケーションは、 JAVA (登録商標)アブ リケーシヨンであるとする。
[0074] アプリ実行部 16は、あるアプリケーションを新たに起動できる力否かの可否判定を 行うことができる能力を有する。そのため、アプリ実行部 16は、自身の機器内におい て使用することができるハードウェアの空き資源量の情報を取得できる。空き資源量 とは、例えば電子機器 1のメモリにおけるアプリケーション実行用に割り当てられた容 量の内、どの動作中のアプリケーションからも占有されておらず、新たなアプリケーシ ヨンを動作させるために使用可能な容量などのことである。
[0075] アプリ実行部 16は、使用することができる電子機器内での資源量を監視することに よって、当該可否判定を行うことができる。たとえば、アプリ実行部 16が JAVA (登録 商標)仮想マシンで実現される場合、 JAVA (登録商標)仮想マシンの保持するヒー プメモリ全体の使用量 ·未使用量、アプリケーション毎のヒープメモリの使用量など、ヒ ープメモリの使用状況を記録するレジスタ(図示せず)を設け、必要に応じて (例えば アプリケーション起動前、アプリケーションの動作中、アプリケーションの開放時など) レジスタの記録情報を調べるレジスタ記録情報調査手段(図示せず)を設けることに よって、アプリ実行部 16は、使用できる資源量の監視を実現することができる。
[0076] アプリケーションが、アプリ属性情報として「アプリケーションを動作させるために必 要な資源量」の情報を保持していれば、アプリ実行部 16は、自身の機器内において 使用することができるハードウェアの空き資源量の情報と「アプリケーションを動作さ せるために必要な資源量」の情報とを比較することによって、アプリケーションを動作 可能であるか否かの可否判定を行うことができる。
[0077] また、アプリ実行部 16は、アプリケーションの実行中に、そのアプリケーションの途 中の実行状態を示す情報 (以下、アプリ実行状態情報という)を出力することができる 能力を有する。
[0078] アプリ実行状態情報の具体例として、将棋のゲームを行うアプリケーションを考える 。アプリケーションは、通常、ゲームを始めたらゲームが終わるまで休みなく実行され る。しかし、ゲームを途中で中断して後で再開したい場合、中断する時点でのプレイ ヤーの駒の位置や持ち駒の情報が記録される必要がある。このように、アプリ実行状 態情報とは、アプリケーションの実行の途中の状態を示す情報である。アプリ実行状 態情報には、アプリケーションの実行を中断した後で再開するために必要な情報が 含まれている。
[0079] アプリケーション力JAVA (登録商標)アプリケーションである場合、実行中のォブジ ェタトが、アプリ実行状態情報として記録される。
[0080] 実行中のオブジェクトの状態を出力する手段として、 JAVA (登録商標)では、シリア ライズがサポートされている。シリアライズとは、オブジェクトが持つ属性の値や構造を 、ノイト列で扱える形に変換することである。すなわち、シリアライズによって、複雑な 構造を持った実行途中のアプリケーションの状態を示すデータ等が、バイト列のストリ ームゃファイル形式で出力されることとなる。当該バイト列が、アプリ実行状態情報と される。
[0081] もちろん、オブジェクトをバイト列に変換するシリアライズの機能を用いなくとも、アブ リケーシヨンは、他のフォーマットによって、アプリ実行状態情報を出力する手段を保 持していても良い。例えば、多くのゲームアプリケーションは、ゲームの途中経過(ァ プリ実行状態情報)を何らかのフォーマットで記述する能力を保持して 、る。アプリ実 行状態情報は、例えば XMLや HTMLなど、汎用性を持ったフォーマットで記述され ていてもよいし、アプリケーション独自で定義したフォーマットを用いていて記述され ていても良い。
[0082] アプリ認識部 12は、ネットワーク 6を介して相互に通信可能に接続された他の電子 機器が保持するアプリケーションの特徴を取得する能力を有する。アプリ認識部 12 は、他の電子機器が保持するアプリケーションのアプリ属性情報を、ネットワーク 6を 介して取得することによって、他の電子機器が保持するアプリケーションの特徴を取 得することができる。 [0083] 代替アプリ保持判断部 15は、アプリ認識部 12によって認識された他の電子機器が 保持するアプリケーションの代わりとなる代替アプリケーションが自機器内に保持され ている力否かを判断する。代替アプリ保持判断部 15は、アプリ同一性判定部 151と、 関連アプリ判定部 152とを含む。
[0084] アプリ同一性判定部 151は、アプリ認識部 12によって認識された他の電子機器が 保持するアプリケーションのアプリ属性情報と、自機器の保持するアプリケーションの アプリ属性情報とを比較して、自機器内に同一機能アプリケーションが保持されてい るカゝ否かを判定し、他の電子機器が保持するアプリケーションと自機器が保持する同 一機能アプリケーションとを対応つけるテーブル (以下、同一性テーブルと!/、う)を作 成して、記憶する。
[0085] 関連アプリ判定部 152は、他の電子機器が保持するアプリケーションと自機器が保 持する関連機能アプリケーションとを対応つけるテーブル (以下、関連テーブルという )を作成して記憶する。
[0086] 代替アプリ保持判断部 15は、アプリ実行不能検出部 13によって、他の電子機器で のアプリケーションの実行不能が検出されたら、当該実行不能のアプリケーションの 代わりに実行される代替アプリケーションが自機器内に保持されている力否かを、同 一性テーブルおよび Zまたは関連テーブルを参照して、判断する。
[0087] 図 6は、アプリ同一性判定部 151の動作を示すフローチャートである。以下、図 6を 参照しながら、同一性テーブルが作成される手順について説明する。図 6では、 自機 器内のアプリケーションをアプリケーション Aとし、アプリ認識部 12によって認識された 他の電子機器内のアプリケーションをアプリケーション Bとする。
[0088] まず、アプリ同一性判定部 151は、アプリケーション Aのアプリ属性情報とアプリケ ーシヨン Bのアプリ属性情報のそれぞれから「アプリケーションの名称」を取得する (ス テツプ S 101)。
[0089] 次に、アプリ同一性判定部 151は、両方のアプリ属性情報から、比較対象の情報と して、「アプリケーションの名称」を正常に取得できた力否かを判断する (ステップ S10 2)。アプリケーション Aおよび Bの 、ずれからも比較対照の情報として「アプリケーショ ンの名称」を取得できな力つた場合、アプリ同一性判定部 151は、両アプリケーション の同一性を確認できなかったものとして、ステップ S108の動作に進む。一方、「ァプ リケーシヨンの名称」を正常に取得できた場合、アプリ同一性判定部 151は、ステップ S 103の動作に進む。
[0090] ステップ S 103において、アプリ同一性判定部 151は、両方のアプリ属性情報の「ァ プリケーシヨンの名称」は、一致するか否かを判断する。「アプリケーションの名称」が 一致しない場合、アプリ同一性判定部 151は、両アプリケーションの同一性を確認で きなかったものとして、ステップ S 108の動作に進む。一方、「アプリケーションの名称 」が一致する場合、アプリ同一性判定部 151は、ステップ S 104の動作に進む。
[0091] ステップ S104において、アプリ同一性判定部 151は、アプリケーション Aのアプリ属 性情報とアプリケーション Bのアプリ属性情報のそれぞれから、「アプリケーションの作 成者」を取得する。
[0092] 次に、アプリ同一性判定部 151は、両方のアプリ属性情報から、比較対象の情報と して、「アプリケーションの作成者」を正常に取得できた力否かを判断する (ステップ S 105)。アプリケーション Aおよび Bの!、ずれ力 も比較対照の情報として「アプリケー シヨンの作成者」を取得できな力つた場合、アプリ同一性判定部 151は、両アプリケー シヨンの同一性を確認できなかったものとして、ステップ S108の動作に進む。一方、「 アプリケーションの作成者」を正常に取得できた場合、アプリ同一性判定部 151は、 ステップ S 106の動作に進む。
[0093] ステップ S 106において、アプリ同一性判定部 151は、両方のアプリ属性情報の「ァ プリケーシヨンの作成者」は、一致するか否かを判断する。「アプリケーションの作成 者」がー致しない場合、アプリ同一性判定部 151は、両アプリケーションの同一性を 確認できなかったものとして、ステップ S 108の動作に進む。一方、「アプリケーション の作成者」がー致する場合、アプリ同一性判定部 151は、ステップ S107の動作に進 む。
[0094] ステップ S107において、アプリ同一性判定部 151は、アプリケーション Aはアプリケ ーシヨン Bと同一の機能を有するアプリケーションであると判定する。次に、アプリ同一 性判定部 151は、アプリケーション Aをアプリケーション Bに対応付けて同一機能ァプ リケーシヨンとして同一性テーブルに登録し (ステップ S 109)、アプリ認識部 12によつ て認識された他のアプリケーションについて、同様にステップ S101以降の処理を実 行するように、リターンする。
[0095] ステップ S 108において、アプリ同一性判定部 151は、アプリケーション Aとアプリケ ーシヨン Bとは同一でないとして、アプリ認識部 12によって認識された他のアプリケー シヨンについて、同様にステップ S101以降の処理を実行するように、リターンする。
[0096] 図 6に示す動作は、アプリ認識部 12によって認識された他の電子機器内の全ての アプリケーションにつ 、て繰り返し実行される。
[0097] 以上が同一性テーブルが作成される手順の一例である。なお、上記手順では、ァ プリケーシヨンの同一性の判定に、「アプリケーションの名称」および「アプリケーション の作成者」が使用されているが、必ずしもこれらを使用する必要はない。アプリ同一 性判定部 151は、他のアプリ属性情報の組み合わせを比較することによって、同一 性判定を行っても良い。比較に使用するアプリ属性情報の種類は、幾つでも良い。
[0098] なお、図 6では、アプリ同一性判定部 151は、一対一に、アプリケーション Aとアプリ ケーシヨン Bとを比較しているだけである。しかし、電子機器 1が複数のアプリケーショ ンを保持している場合、アプリ同一性判定部 151は、電子機器 1が保持する全てのァ プリケーシヨンについて、アプリケーション Bと同一の機能を有するか否かを判定して 、同一性テーブルを作成しなければならない。具体的には、アプリ同一性判定部 15 1は、ステップ S 108の後、電子機器 1が保持するアプリケーション A以外のアプリケー シヨンのアプリ属性情報を取得して、ステップ S 101以降の動作に戻るとよい。アプリ 同一性判定部 151は、電子機器 1が保持する全てのアプリケーションの中に、アプリ ケーシヨン Bと同一の機能を有するアプリケーションが存在しな力つた場合、他の電子 機器が保持する他のアプリケーションにつ 、て、同一の機能を有するアプリケーショ ンが電子機器 1に保持されて!、る力否かを判断する。
[0099] 図 7は、同一性テーブルの一例を示す図である。図 7に示すように、同一性テープ ルは、他の電子機器が保持するアプリケーションに関する情報 (テーブルの左列)と、 他の電子機器が保持するアプリケーションと同一の機能を有すると判断された同一 機能アプリケーションに関する情報 (テーブルの右列)との組から構成される。
[0100] 図 7に示すように、他の電子機器のアプリケーションに関する情報として、「アプリケ ーシヨンが保存されている機器の識別情報」、「アプリケーションの名称」、および「ァ プリケーシヨンのサイズ」が登録されている。もちろん、他の電子機器が保持するアブ リケーシヨンを特定することができる情報であれば、他の電子機器のアプリケーション に関する情報は、図 7に示した情報に限られるものではない。
[0101] 図 7に示すように、同一機能アプリケーションに関する情報として、「アプリケーション の名称」および「アプリケーションのサイズ」が登録されている。もちろん、自機器が保 持するアプリケーションを特定することができる情報であれば、同一機能アプリケーシ ヨンに関する情報は、図 7に示した情報に限られるものではない。
[0102] 本実施形態において、関連アプリ判定部 152によって実行される、他の電子機器 が保持するアプリケーションと、電子機器 1が保持する関連機能アプリケーションとの 対応付けは、以下の(a) , (b) , (c) , (d)のようにして行われる。
[0103] (a)他の電子機器が保持するアプリケーションのアプリ属性情報には、自アプリケー シヨンの代替アプリケーションになることができる他アプリケーションに関する条件が記 述されている。たとえば、図 3において示した「代替可能アプリケーション」が、当該条 件である。関連アプリ判定部 152は、当該条件を解読して、自機器内に当該条件に 合致するアプリケーションが保持されて ヽるか否かを判定して、保持されて ヽる場合、 保持しているアプリケーションを関連機能アプリケーションとして、当該他の電子機器 が保持するアプリケーションと対応付けて、関連テーブルに登録する。
[0104] (b)電子機器 1が保持するアプリケーションのアプリ属性情報には、自アプリケーシ ヨンが他のアプリケーションの代替アプリケーションになるための条件が記述されてい る。たとえば、図 3において示した「被代替可能アプリケーション」が、当該条件である 。関連アプリ判定部 152は、当該条件を解読して、アプリ認識部 12が認識した他の 電子機器内のアプリケーションの中に、当該条件に合致するアプリケーションが存在 するか否かを判定する。当該条件に合致するアプリケーションが存在する場合、関連 アプリ判定部 152は、自機器が保持するアプリケーションを、他の電子機器の保持す るアプリケーションの関連機能アプリケーションとして、当該他の電子機器が保持する アプリケーションと対応付けて、関連テーブルに登録する。
[0105] (c)関連テーブルは、電子機器 1に予め記憶されて 、る。 [0106] (d)ユーザによって、関連テーブルが登録される。
[0107] 図 8は、ユーザによって関連テーブルが登録されるときの処理手順を説明するため の図である。
[0108] 関連アプリ判定部 152は、図 8中のユーザインタフェース 7a, 7d, 7c, 7dを出力装 置 105に表示させることができる。
[0109] ユーザインタフェース 7aは、他の電子機器が保持するアプリケーションの一覧を示 しており、関連テーブルに登録したい他の電子機器のアプリケーションを選択'指定 するための画面である。ここでは、電子機器 2が保持するアプリケーションの一覧が示 されている。関連アプリ判定部 152は、アプリ認識部 12が認識した電子機器 2が保持 するアプリケーション固有の情報を取得することによって、ユーザインタフェース 7aに 、電子機器 2が保持するアプリケーションの一覧を表示する。ユーザは、ユーザインタ フェース 7aに表示されて 、る一覧の中から、関連テーブルに登録したアプリケーショ ンを選択'指定する。ここでは、アプリケーション" Media Viewer"が選択されている とする。ユーザインタフェース 7aで指定されると、関連アプリ判定部 152は、ユーザィ ンタフェース 7bを表示させる。
[0110] ユーザインタフェース 7bは、電子機器 1が保持するアプリケーションの一覧を示して おり、ユーザインタフェース 7aで指定したアプリケーションと対応付けた 、電子機器 1 のアプリケーションを選択 '指定するための画面である。関連アプリ判定部 152は、電 子機器 1が保持するアプリケーション固有の情報を取得することによって、ユーザイン タフエース 7bに、電子機器 1が保持するアプリケーションの一覧を表示する。ユーザ は、ユーザインタフェース 7bに表示されている一覧の中から、関連機能アプリケーシ ヨンとして登録したアプリケーションを選択'指定する。ここでは、関連機能アプリケー シヨンとして、 "BackUp Recorder"が選択されているとする。ユーザインタフェース 7bで指定されると、関連アプリ判定部 152は、ユーザインタフェース 7cを表示させる
[0111] ユーザインタフェース 7cは、アプリケーションと関連機能アプリケーションとの対応 付けを確認するための画面である。ここで、ユーザは、 "Yes"を指定したとする。これ によって、関連アプリ判定部 152は、関連テーブルにアプリケーションと関連機能ァ プリケーシヨンとを登録し、登録に成功した旨(ユーザインタフェース 7d)を表示させる
[0112] 関連アプリ判定部 152は、関連テーブルを何らかの形式で保持する。
[0113] 図 9は、関連テーブルの一例を示す図である。図 9に示すように、関連テーブルは、 他の電子機器が保持するアプリケーションに関する情報 (テーブルの左列)と、関連 機能アプリケーションに関する情報 (テーブルの右列)との組から構成される。
[0114] 図 9に示すように、他の電子機器のアプリケーションに関する情報として、「アプリケ ーシヨンが保存されている機器の識別情報」、「アプリケーションの名称」、および「ァ プリケーシヨンのサイズ」が登録されている。もちろん、他の電子機器が保持するアブ リケーシヨンを特定することができる情報であれば、他のアプリケーションに関する情 報は、図 9に示した情報に限られない。
[0115] 図 9に示すように、関連機能アプリケーションに関する情報として、「アプリケーション の名称」および「アプリケーションのサイズ」が登録されている。もちろん、自機器が保 持するアプリケーションを特定することができる情報であれば、関連機能アプリケーシ ヨンに関する情報は、図 9に示した情報に限られるものではない。
[0116] アプリ実行不能検出部 13は、ネットワーク 6を介して接続された他の電子機器が保 持するアプリケーションが、実行可能な状態にある力否かを検出する。本実施形態に おいて、アプリケーションが実行可能な状態にないとは、大きく以下の 2つ (A) , (B) の場合を想定している。
[0117] (A)ネットワーク 6を介して接続された他の電子機器が、通電状態を保って!/ヽな!、。
(B)ネットワーク 6を介して接続された他の電子機器におけるアプリ実行部の資源 制約の問題から、アプリケーションを実行することができな 、。
[0118] アプリ実行不能検出部 13は、上記 (A)または(B)の状態に陥っていないか否かを 、他の電子機器を監視することによって、判定する。
[0119] 図 10は、アプリ実行不能検出部 13の動作の一例を示すフローチャートである。以 下、図 10を参照しながら、アプリ実行不能検出部 13の動作について説明する。なお 、図 10では、簡単のために、電子機器 2のアプリケーションについて、実行不能であ るカゝ否かを判断する例を示すが、アプリ実行不能検出部 13は、ネットワーク 6を介し て接続される他の電子機器全てに対して、図 10に示す処理と同様の処理を実行す る。
[0120] まず、アプリ実行不能検出部 13は、電子機器 2の通電状態を取得して (ステップ S2 01)、電子機器 2の通電状態が切断されている力否かを判断する (ステップ S 202)。 ステップ S201および S 202によって、上記 (A)の場合についての判断が行われる。
[0121] 例えば、家電ネットワークの接続規格の一つである UPnPの仕様では、ネットワーク 接続された通電状態にある電子機器は、一定時間ごとにネットワーク接続されている 他の電子機器に信号を発することになつている。電子機器力 定期的な信号が発信 されない場合、当該電子機器は、通電状態が切断されたものとみなされる。
[0122] ステップ S202において、電子機器 2の通電状態が切断されていると判断された場 合、アプリ実行不能検出部 13は、ステップ S203の動作に進み、電子機器 2が保持 する全てのアプリケーションは実行不能状態であると判定する。
[0123] ステップ S202において、電子機器 2の通電状態が切断されていないと判断された 場合、アプリ実行不能検出部 13は、ステップ S204以降の動作に進む。ステップ S20 4以降の動作によって、上記 (B)の場合にっ 、ての判断が行われる。
[0124] ステップ S204において、アプリ実行不能検出部 13は、アプリ認識部 12によって認 識された電子機器 2が保持するアプリケーションを一つ選択する。次に、アプリ実行 不能検出部 13は、電子機器 2のアプリ実行部に対して、選択したアプリケーションの 実行が可能である力否かを問い合わせる (ステップ S 205)。電子機器 2のアプリケー シヨンがアプリケーション固有の情報として「アプリケーションを動作させるために必要 な資源量」の情報を保持している場合、電子機器 2のアプリ実行部は、電子機器 2内 にお 、て使用することができるハードウェアの空き資源量の情報に基づ 、て、アプリ ケーシヨンが実行可能であるカゝ否かを判断し、判断結果を電子機器 1のアプリ実行不 能検出部 13に送信する。アプリ実行不能検出部 13は、電子機器 2から送信されてく る判断結果を受信する。
[0125] 次に、アプリ実行不能検出部 13は、電子機器 2から送られてきた問い合わせの結 果が「実行可能」である力否かを判断する (ステップ S206)。問 、合わせの結果が実 行可能である場合、アプリ実行不能検出部 13は、電子機器 2において、ステップ S 2 04で選択したアプリケーションは実行可能状態にあると判定し (ステップ S 207)、ス テツプ S209の動作に進む。一方、問い合わせの結果が実行可能でない場合、アブ リ実行不能検出部 13は、電子機器 2において、ステップ S 204で選択したアプリケー シヨンは実行不可能状態にあると判定し (ステップ S 208)、ステップ S 209の動作に進 む。
[0126] ステップ S209において、アプリ実行不能検出部 13は、アプリ認識部 12によって認 識された電子機器 2が保持する全てのアプリケーションにつ ヽて、実行可能であるか 否かの問!、合わせを実行したか否かを判断する。全てのアプリケーションにつ!/ヽて問 い合わせていない場合、アプリ実行不能検出部 13は、ステップ S204の動作に戻つ て、別のアプリケーションについての問い合わせを実行する。一方、全てのアプリケ ーシヨンについて問い合わせている場合、電子機器 1は、全体の動作にリターンする
[0127] アプリ実行判断部 14は、アプリ実行不能検出部 13によって実行不能であると検出 されたアプリケーションが存在する場合に、当該アプリケーションの代わりとなる代替 アプリケーションを実行すべきか否かを判断する。アプリ実行判断部 14は、アプリ起 動要求検出部 141と、アプリ実行状態取得部 142とを含む。
[0128] アプリ起動要求検出部 141は、別の電子機器上に存在するアプリケーションに対す る起動要求を検出し、当該起動要求がどの電子機器が保持しているどのアプリケー シヨンに対して行われたものであるのかを特定する。
[0129] 本発明では、アプリケーションに対する起動要求として、大きくは、以下の二つの場 合 (C)および (D)を想定して 、る。
[0130] (C)他の電子機器から、ネットワーク 6を介して、電子機器とアプリケーションとを特 定する情報を含む起動要求が送信される場合。
(D)ネットワーク 6を介さずに、電子機器 2自身が起動要求をなす場合。たとえば、 電子機器 2のユーザが、電子機器 2に対して、電子機器 2が保持するアプリケーショ ンの起動を指定する場合、電子機器 2のタイマやアプリケーションなど内部的な条件 をトリガーとして、電子機器 2が保持するアプリケーションに対して起動要求がなされ る場合等である。 [0131] 電子機器 2が保持するアプリケーションに対する起動要求が発生した力否かをアブ リ起動要求検出部 141が検出するための実現例としては、以下の 2通り(E)および (F )が考えられる。
[0132] (E)アプリ起動要求検出部 141は、ネットワーク 6の通信状態を監視する。通信状 態を監視している間に、もしネットワーク 6に接続された何らかの機器から、電子機器 2のアプリケーションに対して起動要求が発せられた場合、アプリ起動要求検出部 14 1は、上記 (C)の場合の起動要求があつたと判定する。
[0133] (F)電子機器 2のアプリ実行部は、電子機器 2の内部で、保持しているアプリケーシ ヨンに対する起動要求が発生した場合、電子機器 1のアプリ起動要求検出部 141か らの求めに応じて、電子機器 1に対してその旨を通知する。したがって、アプリ起動要 求検出部 141は、電子機器 2に対して、内部で起動要求が発生した力否力を問い合 わせることによって、上記 (D)の場合の起動要求があった力否かを判定することがで きる。
[0134] アプリ起動要求検出部 141は、(E)および (F)の両方もしくはいずれかの仕組みを 備えることで、他の電子機器の保持するアプリケーションに対する起動要求を検出す ることがでさる。
[0135] アプリ実行状態取得部 142は、電子機器 2のアプリ実行部によって生成されるアブ リ実行状態情報を、電子機器 2から取得する。先に説明した通り、アプリ実行状態情 報は、アプリケーションの実行過程において、シリアライズ等の技術を用いて、電子機 器 2のアプリ実行部によって生成される。アプリ実行状態取得部 142は、当該アプリ 実行状態情報を解析することによって、電子機器 2の上で実行されているアプリケー シヨンの実行の途中の状態を知ることができる。
[0136] アプリ実行判断部 14は、アプリ実行不能検出部 13によって実行不能であると検出 されたアプリケーションが存在する場合に、アプリ起動要求検出部 141によって実行 不能であると検出されたアプリケーションに対する起動要求が検出される力 および Zまたはアプリ実行状態取得部 142によって実行不能であると検出されたアプリケー シヨンのアプリ実行状態情報が取得されて 、れば、当該アプリケーションの代わりに 代替アプリケーションを実行すべきであると判断するし、代替アプリ保持判断部 15に 対して、代替アプリケーションを保持しているか否かを判断させる。それに応じて、代 替アプリ保持判断部 15は、同一性テーブルおよび Zまたは関連テーブルを参照し て、代替アプリケーションを保持しているか否かを判断し、保持している場合、アプリ 実行部 16に当該代替アプリケーションを実行させる。
[0137] タイミング制御部 11は、アプリ実行部 16、アプリ認識部 12、アプリ実行不能検出部 13、アプリ実行判断部 14、および代替アプリ保持判断部 15の実行タイミングを制御 する。
[0138] 次に、アプリ継続プログラムを実行したときの電子機器 1の動作の詳細な流れにつ いて説明する。第 1の実施形態では、上記構成の組み合わせを用いて、 4種類の基 本的な処理の流れを想定する。カロえて、 4種類の基本的な処理をさらに組み合わせ ることによる処理の流れも想定する。第 1の基本処理は、他の機器が保持するアプリ ケーシヨンが実行不能な状態のときに当該アプリケーションに対する起動要求が検出 された場合、電子機器 1が同一機能アプリケーションを代替アプリケーションとして実 行する処理である。第 2の基本処理は、他の機器が保持するアプリケーションが実行 不能と検出された場合、電子機器 1が当該アプリケーションの実行状態を継続するよ うに同一機能アプリケーションを代替アプリケーションとして実行する処理である。第 3 の基本処理は、他の機器が保持するアプリケーションが実行不能な状態のときに当 該アプリケーションに対する起動要求が検出された場合、電子機器 1が関連機能ァ プリケーシヨンを代替アプリケーションとして実行する処理である。第 4の基本処理は 、他の機器が保持するアプリケーションが実行不能と検出された場合、電子機器 1が 当該アプリケーションの実行状態を継続するように関連機能アプリケーションを代替 アプリケーションとして実行する処理である。上記第 1一第 4の基本処理は、それぞれ 組み合わせることができる。
[0139] 図 11は、第 1の基本処理を実行するときの電子機器 1の動作を示すフローチャート である。以下、図 11を参照しながら、第 1の基本処理の流れについて説明する。なお 、図 11に示す処理は、アプリ継続プログラムの終了と共に終了する。
[0140] まず、アプリ認識部 12は、他の電子機器が保持しているアプリケーションを認識す る(ステップ S301)。ステップ S301の処理は、図 5におけるステップ S1の処理に相当 する。
[0141] 次に、タイミング制御部 11は、アプリ同一性判定部 151による処理を開始するタイミ ングが到来したか否かを判断する (ステップ S302)。当該タイミングが到来して 、な!/ヽ 場合、タイミング制御部 11は、ステップ S303の動作に進む。一方、当該タイミングが 到来している場合、アプリ同一性判定部 151は、ステップ S301で認識された他の電 子機器が保持するアプリケーションを対象に、同一機能アプリケーションが電子機器 1に保持されて!ヽるか否かを判断して、同一機能アプリケーションが保持されて ヽたら 、他の電子機器が保持するアプリケーションと同一機能アプリケーションとの組み合 わせを同一性テーブルとして作成し (ステップ S304)、電子機器 1は、ステップ S303 の動作に進む。
[0142] ステップ S303において、タイミング制御部 11は、アプリ実行不能検出部 13による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部 11は、ステップ S300の動作に進む。一方、当該タイミン グが到来している場合、アプリ実行不能検出部 13は、実行不能と検出される他の電 子機器上のアプリケーションが存在する力否かを判断する (ステップ S305)。ステップ S305の処理は、図 5におけるステップ S2の処理に相当する。実行不能のアプリケー シヨンが存在しない場合、電子機器 1は、ステップ S300の動作に進む。一方、実行 不能のアプリケーションが存在する場合、電子機器 1は、ステップ S306の動作に進 む。
[0143] ステップ S306において、アプリ実行判断部 14は、アプリ起動要求検出部 141によ つて、当該実行不能のアプリケーションに対する起動要求が検出されたか否かを判 断する。起動要求が検出されていない場合、電子機器 1は、ステップ S300の動作に 進む。一方、起動要求が検出された場合、アプリ実行判断部 14は、代替アプリケー シヨンを実行すべきであると決定し、ステップ S307の動作を代替アプリ保持判断部 1 5に実行させる。ステップ S306の処理は、図 5におけるステップ S3の処理に相当す る。
[0144] ステップ S307において、代替アプリ保持判断部 15は、ステップ S304においてァ プリ同一性判定部 151によって作成された同一性テーブルを参照して、起動要求の あったアプリケーションの代わりとなる同一機能アプリケーションが保持されているか 否かを判断する。同一機能アプリケーションが保持されていない場合、電子機器 1は 、ステップ S300の動作に進む。一方、同一機能アプリケーションが保持されている場 合、代替アプリ保持判断部 15は、ステップ S308の動作をアプリ実行部 16に実行さ せる。ステップ S307の処理は、図 5におけるステップ S4の処理に相当する。
[0145] ステップ S308において、アプリ実行部 16は、代替アプリ保持判断部 15によって保 持されているとされた同一機能アプリケーションを起動し、実行を開始する。その後、 電子機器 1は、ステップ S300の動作に進む。ステップ S308の処理は、図 5における ステップ S5の処理に相当する。
[0146] ステップ S300において、電子機器 1は、内部のタイマを変化させ、ステップ S302の 動作に戻る。電子機器 1は、定期的に、アプリ同一性判定部 151による処理と、アプリ 実行不能検出部 13による処理とを実行することとなる。これにより、定期的に、同一 性の判定と実行不能の検出とが行われることが保証されている。なお、アプリ同一性 判定部 151、およびアプリ実行不能検出部 13の判定処理は、特に順序立てて行わ れる必要はなぐ定期的に処理が実行されてさえいれば、処理の周期は揃っていなく てもよい。例えば、アプリ同一性判定部 151は 300s毎に実行し、アプリ実行不能検 出部 13は 5s毎に実行するなど、それぞれ固有の実行タイミングで実行されてもよい。
[0147] 第 1の基本処理を利用したサービスの例を挙げる。
[0148] 第 1のホームサーバは、定期的に、ネットワーク接続された他の電子機器のデータ を自機器にバックアップしてコピーするサービスを備えているとする。第 1のホームサ ーバは、ノ ックアップを実行するアプリケーション (第 1のバックアップアプリ)を保持し ている。第 1のバックアップアプリは、内部のタイマによって起動要求が与えられれば 、サービスを実行する。
[0149] ここで、第 1のホームサーバの第 1のバックアップアプリが、実行不能な状態に陥つ たとする。
[0150] 第 1のホームサーバにネットワークを介して接続された第 2のホームサーバは、第 1 のバックアップアプリと同一の機能を有する第 2のバックアップアプリを保持している。 第 2のホームサーバは、アプリ «I続プログラムを実行することによって、第 1のバックァ ップアプリが実行不能な状態に陥ったことを検出し、かつ、第 1のホームサーバの内 部のタイマによって第 1のノックアップアプリに起動要求が与えられたことを検出する と、第 2のバックアップアプリを起動する。このようにして、第 1のバックアップアプリの 起動が不可能な第 1のホームサーバに代わって、第 2のホームサーバによるサービス が実現される。
[0151] 図 12は、第 2の基本処理を実行するときの電子機器 1の動作を示すフローチャート である。以下、図 12を参照しながら、第 2の基本処理の流れについて説明する。
[0152] まず、アプリ認識部 12は、他の電子機器が保持しているアプリケーションを認識す る(ステップ S401)。ステップ S401の処理は、図 5におけるステップ S1の処理に相当 する。
[0153] 次に、タイミング制御部 11は、アプリ同一性判定部 151による処理を開始するタイミ ングが到来したか否かを判断する (ステップ S402)。当該タイミングが到来して!/、な!/ヽ 場合、タイミング制御部 11は、ステップ S403の動作に進む。一方、当該タイミングが 到来している場合、アプリ同一性判定部 151は、ステップ S401で認識された他の電 子機器が保持するアプリケーションを対象に、同一機能アプリケーションが電子機器 1に保持されて!ヽるか否かを判断して、同一機能アプリケーションが保持されて ヽたら 、他の電子機器が保持するアプリケーションと同一機能アプリケーションとの組み合 わせを同一性テーブルとして作成し (ステップ S404)、電子機器 1は、ステップ S403 の動作に進む。
[0154] ステップ S403において、タイミング制御部 11は、アプリ実行状態取得部 142による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部は、ステップ S406の動作に進む。一方、当該タイミング が到来している場合、アプリ実行状態取得部 142は、他の電子機器上で実行されて いるアプリケーションのアプリ実行状態情報を取得し (ステップ S405)、電子機器 1は 、ステップ S406の動作に進む。
[0155] ステップ S406において、タイミング制御部 11は、アプリ実行不能検出部 13による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部 11は、ステップ S400の動作に進む。一方、当該タイミン グが到来している場合、アプリ実行不能検出部 13は、実行不能と検出される他の電 子機器上のアプリケーションが存在するカゝ否かを判断する (ステップ S407)。ステップ S407の処理は、図 5におけるステップ S2の処理に相当する。実行不能のアプリケー シヨンが存在しない場合、電子機器 1は、ステップ S400の動作に進む。一方、実行 不能のアプリケーションが存在する場合、電子機器 1は、ステップ S408の動作に進 む。
[0156] ステップ S408において、アプリ実行判断部 14は、アプリ実行状態取得部 142によ つて、当該実行不能のアプリケーションについてのアプリ実行状態情報が保持されて いるか否かを判断する。アプリ実行状態情報が保持されていない場合、電子機器 1 は、ステップ S400の動作に進む。一方、アプリ実行状態情報が保持されている場合 、アプリ実行判断部 14は、代替アプリケーションを実行すべきであると決定し、ステツ プ S409の動作を代替アプリ保持判断部 15に実行させる。ステップ S408の処理は、 図 5におけるステップ S3の処理に相当する。
[0157] ステップ S409において、代替アプリ保持判断部 15は、ステップ S404においてァ プリ同一性判定部 151によって作成された同一性テーブルを参照して、保持してい るアプリ実行状態情報に対応するアプリケーションと同一の機能を有する同一機能ァ プリケーシヨンが電子機器 1に保持されて 、る力否かを判断する。同一機能アプリケ ーシヨンが保持されていない場合、電子機器 1は、ステップ 400の動作に進む。一方 、同一機能アプリケーションが保持されている場合、代替アプリ保持判断部 15は、ス テツプ S410の動作をアプリ実行部 16に実行させる。ステップ S409の処理は、図 5に おけるステップ S4の処理に相当する。
[0158] ステップ S410において、アプリ実行部 16は、代替アプリ保持判断部 15によって保 持されているとされた同一機能アプリケーションを起動し、実行を開始する。その後、 電子機器 1は、ステップ S400の動作に進む。ステップ S410の処理は、図 5における ステップ S5の処理に相当する。
[0159] ステップ 400において、電子機器 1は、内部のタイマを変化させ、ステップ S402の 動作に戻る。電子機器 1は、定期的に、アプリ同一性判定部 151による処理と、アプリ 実行不能検出部 13による処理と、アプリ実行状態取得部 142による処理とを実行す ることとなる。これにより、定期的に、同一性の判定、実行不能の検出、およびアプリ 実行状態情報の取得が行われることが保証される。なお、アプリ同一性判定部 151 による処理と、アプリ実行不能検出部 13による処理と、アプリ実行状態取得部 142に よる処理とは、特に順序立てて行われる必要はなぐ定期的に処理が実行されてさえ いれば、処理の周期は揃っていなくてもよい。
[0160] 第 2の基本処理を利用したサービスの例を挙げる。
[0161] 第 1の AV機器は、放送録画を行うサービスを備えているとする。第 1の AV機器は、 放送の録画を実行するアプリケーション (第 1の録画アプリ)を保持し、サービスを実 現する。
[0162] ここで、第 1の AV機器の第 1の録画アプリが、放送の録画中に突如、実行不能な状 態に陥り、サービスが中断されてしまったとする。
[0163] 第 1の AV機器にネットワーク接続された第 2の AV機器は、第 1の録画アプリと同一 の機能を有する第 2の録画アプリを保持している。第 2の AV機器は、アプリ継続プロ グラムを実行することによって、第 1の AV機器上で実行されて ヽた第 1の録画アプリ 力 どのチャンネルをどのような設定で録画していた力 といったアプリ実行状態情報 を取得している。
[0164] 第 2の AV機器は、第 1の録画アプリが実行不能な状態に陥ったことを検出すると、 第 2の録画アプリ 2を起動し、取得していたアプリ実行状態情報に基づいて、第 1の録 画アプリで行われていたのと同一の設定でサービスを引き継ぐ。
[0165] 図 13は、第 3の基本処理を実行するときの電子機器 1の動作を示すフローチャート である。以下、図 13を参照しながら、第 3の基本処理の流れについて説明する。
[0166] まず、アプリ認識部 12は、他の電子機器が保持しているアプリケーションを認識す る(ステップ S501)。ステップ S501の処理は、図 5におけるステップ S1の処理に相当 する。
[0167] 次に、タイミング制御部 11は、関連アプリ判定部 152による処理を開始するタイミン グが到来した力否かを判断する (ステップ S502)。当該タイミングが到来して ヽな ヽ 場合、タイミング制御部 11は、ステップ S503の動作に進む。一方、当該タイミングが 到来している場合、関連アプリ判定部 152は、ステップ S501で認識された他の電子 機器が保持するアプリケーションを対象に、関連機能アプリケーションを対応付ける 処理を実行し、関連テーブルを作成する (ステップ S 504)。なお、予め関連テーブル が作成されている場合、ステップ S504の処理は省略可能である。ステップ S504の 後、電子機器は、ステップ S503の動作に進む。
[0168] ステップ S503において、タイミング制御部 11は、アプリ実行不能検出部 13による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部 11は、ステップ S500の動作に進む。一方、当該タイミン グが到来している場合、アプリ実行不能検出部 13は、実行不能と検出される他の電 子機器上のアプリケーションが存在する力否かを判断する (ステップ S505)。ステップ S505の処理は、図 5におけるステップ S2の処理に相当する。実行不能のアプリケー シヨンが存在しない場合、電子機器 1は、ステップ S500の動作に進む。一方、実行 不能のアプリケーションが存在する場合、電子機器 1は、ステップ S506の動作に進 む。
[0169] ステップ S506において、アプリ実行判断部 14は、アプリ起動要求検出部 141によ つて、当該実行不能のアプリケーションに対する起動要求が検出されたか否かを判 断する。起動要求が検出されていない場合、電子機器 1は、ステップ S500の動作に 進む。一方、起動要求が検出された場合、アプリ実行判断部 14は、代替アプリケー シヨンを実行すべきであると決定し、ステップ S507の動作を代替アプリ保持判断部 1 5に実行させる。ステップ S506の処理は、図 5におけるステップ S3の処理に相当す る。
[0170] ステップ S507において、代替アプリ保持判断部 15は、ステップ S504において関 連アプリ判定部 152によって作成された関連テーブル (予め関連テーブルが記憶さ れている場合は、記憶されている関連テーブル)を参照して、起動要求のあったアブ リケーシヨンの代わりとなる関連機能アプリケーションが保持されている力否かを判断 する。関連機能アプリケーションが保持されていない場合、電子機器 1は、ステップ S 500の動作に進む。一方、関連機能アプリケーションが保持されている場合、代替ァ プリ保持判断部 15は、ステップ S508の動作をアプリ実行部 16に実行させる。ステツ プ S507の処理は、図 5におけるステップ S4の処理に相当する。 [0171] ステップ S508において、アプリ実行部 16は、代替アプリ保持判断部 15によって保 持されているとされた関連機能アプリケーションを起動し、実行を開始する。その後、 電子機器 1は、ステップ S500の動作に進む。ステップ S508の処理は、図 5における ステップ S5の処理に相当する。
[0172] ステップ S500において、電子機器 1は、内部のタイマを変化させ、ステップ S502の 動作に戻る。電子機器 1は、定期的に、関連アプリ判定部 152による処理と、アプリ実 行不能検出部 13による処理とを実行することとなる。これにより、定期的に、関連機 能アプリケーションの判定と実行不能の検出とが行われることが保証されている。な お、関連アプリ判定部 152、およびアプリ実行不能検出部 13の判定処理は、特に順 序立てて行われる必要はなぐ定期的に処理が実行されてさえいれば、処理の周期 は揃っていなくてもよい。例えば、関連アプリ判定部 152は 300s毎に実行し、アプリ 実行不能検出部 13は 5s毎に実行するなど、それぞれ固有の実行タイミングで実行さ れてもよい。
[0173] 第 3の基本処理を利用したサービスの例を挙げる。
[0174] ホームサーバは、定期的に、ネットワーク接続された他の電子機器のデータを自機 器にバックアップしコピーするサービスを備えているとする。ホームサーバは、バック アップを実行するアプリケーション (バックアップアプリ)を保持し、内部のタイマによつ て起動要求が与えられることによってサービスを実現する。
[0175] ここで、このホームサーバのバックアップアプリが、実行不能な状態に陥ったとする。
[0176] ホームサーバとネットワーク接続された携帯電話は、ノックアップアプリの関連機能 アプリケーションとして対応付けられたユーザ通知アプリケーションを保持している。
[0177] 携帯電話は、アプリ «I続プログラムを実行することによって、ホームサーバのバック アップアプリが実行不能な状態に陥ったことを検出し、かつ、ホームサーバの内部の タイマによってバックアップアプリに起動要求が与えられたことを検出すると、ユーザ 通知アプリケーションを起動する。ユーザ通知アプリケーションは、ホームサーバのバ ックアップが失敗したことをユーザに対して通知、警告するサービスを実施する。
[0178] このようにして、ノックアップアプリによるサービスを補佐する形での別のサービスが 実施されることとなる。 [0179] 図 14は、第 4の基本処理を実行するときの電子機器 1の動作を示すフローチャート である。以下、図 14を参照しながら、第 4の基本処理の流れについて説明する。
[0180] まず、アプリ認識部 12は、他の電子機器が保持しているアプリケーションを認識す る(ステップ S601)。ステップ S601の処理は、図 5におけるステップ S1の処理に相当 する。
[0181] 次に、タイミング制御部 11は、関連アプリ判定部 152による処理を開始するタイミン グが到来した力否かを判断する (ステップ S602)。当該タイミングが到来して!/ヽな ヽ 場合、タイミング制御部 11は、ステップ S603の動作に進む。一方、当該タイミングが 到来している場合、関連アプリ判定部 152は、ステップ S601で認識された他の電子 機器が保持するアプリケーションを対象に、関連機能アプリケーションを対応付ける 処理を実行し、関連テーブルを作成する (ステップ S604)。なお、予め関連テーブル が作成されている場合、ステップ S604の処理は省略可能である。ステップ S604の 後、電子機器は、ステップ S603の動作に進む。
[0182] ステップ S603において、タイミング制御部 11は、アプリ実行状態取得部 142による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部は、ステップ S606の動作に進む。一方、当該タイミング が到来している場合、アプリ実行状態取得部 142は、他の電子機器上で実行されて いるアプリケーションのアプリ実行状態情報を取得し (ステップ S605)、電子機器 1は 、ステップ S606の動作に進む。
[0183] ステップ S606において、タイミング制御部 11は、アプリ実行不能検出部 13による 処理を開始するタイミングが到来したか否かを判断する。当該タイミングが到来して 、 ない場合、タイミング制御部 11は、ステップ S600の動作に進む。一方、当該タイミン グが到来している場合、アプリ実行不能検出部 13は、実行不能と検出される他の電 子機器上のアプリケーションが存在する力否かを判断する (ステップ S607)。ステップ S607の処理は、図 5におけるステップ S2の処理に相当する。実行不能のアプリケー シヨンが存在しない場合、電子機器 1は、ステップ S600の動作に進む。一方、実行 不能のアプリケーションが存在する場合、電子機器 1は、ステップ S608の動作に進 む。 [0184] ステップ S608において、アプリ実行判断部 14は、アプリ実行状態取得部 142によ つて、当該実行不能のアプリケーションについてのアプリ実行状態情報が保持されて いるか否かを判断する。アプリ実行状態情報が保持されていない場合、電子機器 1 は、ステップ S600の動作に進む。一方、アプリ実行状態情報が保持されている場合 、アプリ実行判断部 14は、代替アプリケーションを実行すべきであると決定し、ステツ プ S609の動作を代替アプリ保持判断部 15に実行させる。ステップ S608の処理は、 図 5におけるステップ S3の処理に相当する。
[0185] ステップ S609において、代替アプリ保持判断部 15は、ステップ S604において関 連アプリ判定部 152によって作成された関連テーブル (予め関連テーブルが記憶さ れている場合は、記憶されている関連テーブル)を参照して、起動要求のあったアブ リケーシヨンの代わりとなる関連機能アプリケーションが保持されている力否かを判断 する。関連機能アプリケーションが保持されていない場合、電子機器 1は、ステップ S 600の動作に進む。一方、関連機能アプリケーションが保持されている場合、代替ァ プリ保持判断部 15は、ステップ S610の動作をアプリ実行部 16に実行させる。ステツ プ S609の処理は、図 5におけるステップ S4の処理に相当する。
[0186] ステップ S610において、アプリ実行部 16は、代替アプリ保持判断部 15によって保 持されているとされた関連機能アプリケーションを起動し、実行を開始する。その後、 電子機器 1は、ステップ S600の動作に進む。ステップ S610の処理は、図 5における ステップ S5の処理に相当する。
[0187] ステップ 600において、電子機器 1は、内部のタイマを変化させ、ステップ S602の 動作に戻る。電子機器 1は、定期的に、関連アプリ判定部 152による処理と、アプリ実 行不能検出部 13による処理と、アプリ実行状態取得部 142による処理とを実行する こととなる。これにより、定期的に、関連機能アプリケーションの判定、実行不能の検 出、およびアプリ実行状態情報の取得が行われることが保証される。なお、関連アブ リ判定部 152による処理と、アプリ実行不能検出部 13による処理と、アプリ実行状態 取得部 142による処理とは、特に順序立てて行われる必要はなぐ定期的に処理が 実行されてさえ ヽれば、処理の周期は揃って 、なくてもょ ヽ。
[0188] 第 4の基本処理を利用したサービスの例を挙げる。 [0189] 携帯電話は、放送の視聴をユーザに対して提供するサービスを備えているとする。 携帯電話は、放送の表示を実行するアプリケーション (TVアプリ)を保持し、サービス を実現する。
[0190] ここで、この携帯電話の TVアプリが、実行中に突如、実行不能な状態に陥り、放送 の視聴の提供と 、うサービスが中断されてしまったとする。
[0191] ここで、携帯電話とネットワーク接続された AV機器は、 TVアプリの関連機能アプリ ケーシヨンとして対応付けられた、放送を自機器に記録する録画アプリというアプリケ ーシヨンを保持している。 AV機器は、アプリ継続プログラムを実行することによって、 携帯電話で実行されていた TVアプリがどのチャンネルをどのような設定で視聴させ て!、たのかと!/、つたアプリ実行状態情報を取得する。
[0192] AV機器は、携帯電話の TVアプリが実行不能な状態に陥ったことを検出すると、録 画アプリを起動し、 TVアプリのアプリ実行状態情報に基づいて、 TVアプリで視聴さ れていたのと同一の設定でサービスを引継ぎ、放送の録画サービスを実現する。
[0193] これにより、携帯電話のユーザは、後ほど、 AV機器を用いて放送の続きを視聴す ることができる。こうして TVアプリによるサービスを補佐する形での別のサービスの実 施されることとなる。
[0194] 以上、第 1の実施形態によれば、電子機器は、他の電子機器が保持しているアプリ ケーシヨンを認識し、認識したアプリケーションの実行不能が検出された場合、代替 アプリケーションを実行すべきか否かを判断する。代替アプリケーションを実行すべき である場合、当該電子機器は、代替アプリケーションを保持しているカゝ否かを判断し 、保持している場合、当該代替アプリケーションを実行する。したがって、第 1の実施 形態に係る電子機器は、センターサーバが存在しない機器同士のみに構成されたネ ットワーク上に存在する場合であっても、他の電子機器におけるアプリケーションが実 行不能となったら、代替アプリケーションを実行することができる。よって、センターサ ーバが存在しない機器同士のみによって構成されたネットワーク上であっても、サー ビスが継続的に実施されることとなる。
[0195] ここで、第 1一第 4の基本処理の組み合わせについて説明する。
[0196] 第 1の基本処理と第 2の基本処理とは、組み合わせることができる。たとえば、電子 機器 1は、第 2の基本処理と同様、予めアプリ実行状態情報を取得しておき、図 11に おけるステップ S306において起動要求が検出されな力つたと判断された場合、図 1 2におけるステップ S408の判断を実行して、アプリ実行状態情報を保持して 、るなら ば、同一機能アプリケーションを保持して 、るか否かを判断するステップ S307の動 作に進むとよい。なお、第 1の基本処理と第 2の基本処理との組み合わせ方は、これ に限られるものではない。
[0197] 第 1の基本処理と第 3の基本処理とは、組み合わせることができる。たとえば、電子 機器 1は、第 3の実施形態と同様、関連テーブルを予め作成しておき、ステップ S307 において、同一機能アプリケーションを保持していないと判断した後、図 13における ステップ S507を実行して、関連機能アプリケーションを保持しているならば、当該関 連アプリケーションを実行するとよい。なお、第 1の基本処理と第 3の基本処理との組 み合わせ方は、これに限られるものではない。
[0198] 第 1の基本処理と第 4の基本処理とは、組み合わせることができる。たとえば、電子 機器 1は、図 14におけるステップ S608においてアプリ実行状態情報を保持していな いと判断した場合、図 11におけるステップ S306および S307を実行して、起動要求 が検出された場合、アプリ実行状態情報を用いずに、同一機能アプリケーションを起 動してもよい。なお、第 1の基本処理と第 4の基本処理との組み合わせ方は、これに 限られるものではない。
[0199] その他、第 1一第 4の基本処理は、可能な限り組み合わせることができる。当然、三 つ以上の基本処理を組み合わせてもよいことは言うまでもない。当然、電子機器は、 第 1一第 4の基本処理を単純に、順序立てて実行してもよい。本発明は、上述した組 み合わせに限定されるものではない。
[0200] なお、第 1の実施形態において、代替アプリ保持判断部 15は、同一性テーブルお よび Zまたは関連テーブルを参照して、実行不能が検出されたアプリケーションの代 わりとなる代替アプリケーションが自機器内に保持されている力否かを判断することと した。しかし、代替アプリケーションが自機器内に保持されている力否かを判断するこ とができるのであれば、代替アプリ保持判断部 15は、同一性テーブルおよび Zまた は関連テーブルを参照しなくてもよい。すなわち、代替アプリ保持判断部 15は、アブ リ実行判断部 14によって代替アプリケーションを実行すべきであると判断された度に 、代替アプリケーションが保持されている力否かを判断してもよい。すなわち、図 11に おけるステップ S302および S304、図 12におけるステップ S402および S404、図 13 におけるステップ S502および S504、ならびに図 14におけるステップ S602および S 604は、本発明において、必須ではない。
[0201] (第 2の実施形態)
第 1の実施形態では、アプリ継続プログラムを実行する電子機器は、電子機器 1の みであるとした。第 2の実施形態では、アプリ継続プログラムを実行する電子機器 1以 外の電子機器力 ^以上存在するものとする。ここでは、説明を簡単にするために、電 子機器 3がアプリ継続プログラムを実行するとするが、電子機器 3以外の電子機器も アプリ継続プログラムを実行するとしても、各電子機器の動作は同様である。
[0202] 第 1の実施形態の場合、電子機器 1および 3は、それぞれ独立して、代替アプリケ ーシヨンを実行することとなる。
[0203] しかし、ネットワーク 6に接続される電子機器群を一つのシステムとして捉えた場合、 全ての電子機器が代替アプリケーションを実行しなくても、当該システムの運営にとつ て、十分である場合がある。すなわち、一つの機器のみが代替アプリケーションを実 行するだけで十分である場合がある。あるいは、代替アプリケーションを実行する電 子機器に関して、何らかの条件を設定したい場合が存在するかもしれない。例えば、 同一機能アプリケーションはできるだけ高スペックの電子機器で起動した 、、できる だけ持ち運びできる機器で起動した 、などと 、つた条件である。
[0204] 第 2の実施形態では、限られた電子機器のみで代替アプリケーションを起動する機 構について説明する。
[0205] 図 15は、第 2の実施形態に係るアプリ継続プログラムを実行したときの電子機器 1 および 3の機能的構成を示すブロック図である。図 15において、図 4に示す第 1の実 施形態と同様の機能を有するブロックについては同一の参照符号を付し、説明を省 略する。図 15に示すように、第 2の実施形態に係る電子機器 1および 3は、アプリ実 行判断部 14a内に、機器間起動調停部 20をさらに備える。
[0206] 以下、電子機器 1内の機器間起動調停部 20 (電子機器 3内の機器間起動調停部 2 0)は、電子機器 3内の機器間起動調停部 20 (電子機器 1内の機器間起動調停部 20
)と通信して、代替アプリケーションを起動する力否かを決定する。
[0207] 機器間起動調停部 20は、大きく以下の 2種類の処理 X、 Yを行なう。
[0208] (処理 X)他の電子機器が保持する起動調停情報を取得し、当該起動調停情報に 基づいて、自機器内で代替アプリケーションを起動するか否かを判断するための処 理。
(処理 Y)他の電子機器の機器間起動調停部 20からの要求に応じて、代替アプリケ ーシヨンを保持しているカゝ否かを応答し、自機器が保持する起動調停情報を、当該 他の電子機器の機器間起動調停部 20に提供するための処理。
[0209] 電子機器間で通信される起動調停情報につ!、ては、後で詳述する。
[0210] まず、処理 Xについて説明する。処理 Xは、本発明の電子機器が同一機能アプリケ ーシヨンまたは関連機能アプリケーションを保持していた場合に、保持していた当該 アプリケーションを実行するか否かを決定するために行われる。
[0211] 図 16は、第 1の基本処理に処理 Xを追加したときの電子機器 1の動作を示すフロー チャートである。図 16において、図 11に示した動作と同様の動作を有するステップに ついては、同一の参照符号を付し、説明を省略する。図 16に示すように、電子機器 1 は、同一機能アプリケーションが保持されていると判断したステップ S307の後、ステ ップ S 701において、処理 Xを実行する。ステップ S701において、機器間起動調停 部 20は、他の電子機器が保持する起動調停情報を取得して、当該起動調停情報に 基づいて、保持していると判断された同一機能アプリケーションを実行すべき力否か を決定する。実行すべきであると決定した場合、電子機器 1は、ステップ S308の動作 に進む。一方、実行すべきでないと決定した場合、電子機器 1は、ステップ S300の 動作に進む。
[0212] 図 17は、第 2の基本処理に処理 Xを追加したときの電子機器 1の動作を示すフロー チャートである。図 17において、図 12に示した動作と同様の動作を有するステップに ついては、同一の参照符号を付し、説明を省略する。図 17に示すように、電子機器 1 は、同一機能アプリケーションが保持されていると判断したステップ S409の後、ステ ップ S801において、処理 Xを実行する。ステップ S801において、機器間起動調停 部 20は、他の電子機器が保持する起動調停情報を取得して、当該起動調停情報に 基づいて、保持していると判断された同一機能アプリケーションを実行すべき力否か を決定する。実行すべきであると決定した場合、電子機器 1は、ステップ S410の動作 に進む。一方、実行すべきでないと決定した場合、電子機器 1は、ステップ S400の 動作に進む。
[0213] 図 18は、第 3の基本処理に処理 Xを追加したときの電子機器 1の動作を示すフロー チャートである。図 18において、図 13に示した動作と同様の動作を有するステップに ついては、同一の参照符号を付し、説明を省略する。図 18に示すように、電子機器 1 は、関連機能アプリケーションが保持されていると判断したステップ S507の後、ステ ップ S901において、処理 Xを実行する。ステップ S901において、機器間起動調停 部 20は、他の電子機器が保持する起動調停情報を取得して、当該起動調停情報に 基づいて、保持していると判断された同一機能アプリケーションを実行すべき力否か を決定する。実行すべきであると決定した場合、電子機器 1は、ステップ S508の動作 に進む。一方、実行すべきでないと決定した場合、電子機器 1は、ステップ S500の 動作に進む。
[0214] 図 19は、第 4の基本処理に処理 Xを追加したときの電子機器 1の動作を示すフロー チャートである。図 19において、図 14に示した動作と同様の動作を有するステップに ついては、同一の参照符号を付し、説明を省略する。図 19に示すように、電子機器 1 は、同一機能アプリケーションが保持されていると判断したステップ S609の後、ステ ップ S1001において、処理 Xを実行する。ステップ S1001において、機器間起動調 停部 20は、他の電子機器が保持する起動調停情報を取得して、当該起動調停情報 に基づいて、保持していると判断された同一機能アプリケーションを実行すべき力否 かを決定する。実行すべきであると決定した場合、電子機器 1は、ステップ S610の動 作に進む。一方、実行すべきでないと決定した場合、電子機器 1は、ステップ S600 の動作に進む。
[0215] 次に、機器間起動調停部 20が実行する代替アプリケーションの起動可否判定処理
(ステップ S701, S801, S901, S1001)の詳糸田【こつ!ヽて説明する。
[0216] 図 20は、代替アプリケーションの起動可否判定処理 (ステップ S701, S801, S90 1, S1001)における電子機器 1の詳しい動作を示すフローチャートである。図 21は、 代替アプリケーションの起動可否判定処理 (ステップ S701, S801, S901, S1001) におけるネットワーク上の電子機器間の通信を示すシーケンス図である。図 21にお いて、縦線は、それぞれの電子機器における時間の進行を示している。横線は、電 子機器間で行われる通信を示す。図 21では、説明を簡単にするために、電子機器 3 が代替アプリケーションを保持しているとし、電子機器 4, 5が代替アプリケーションを 保持していないとする。
[0217] まず、電子機器 1の機器間起動調停部 20は、ネットワーク 6に接続された他の電子 機器 3, 4、 5に対して、代替アプリケーションを保持しているか否かを問い合わせる( ステップ S1101、通信 1201)。
[0218] これに応じて、他の電子機器は、上述の処理 Yを実行して、代替アプリケーションを 保持しているカゝ否かを応答する (通信 1202)。具体的には、他の電子機器の機器間 起動調停部 20は、同一性テーブルまたは関連テーブルを参照して、代替アプリケー シヨンを保持しているカゝ否かを判断して、判断結果を返す。図 21において、電子機器 3が保持してる旨を回答しており、電子機器 4および 5が保持して 、な ヽ旨を回答して いる。
[0219] 他の電子機器力もの回答を受け取った電子機器 1の機器間起動調停部 20は、当 該回答に基づいて、代替アプリケーションを保持する他の電子機器が存在するか否 かを判断する (ステップ S 1102)。
[0220] 代替アプリケーションを保持する他の電子機器が存在しな ヽ場合、電子機器 1の機 器間起動調停部 20は、代替アプリケーションの起動が可能であると判定する (ステツ プ S1103)。一方、代替アプリケーションを保持する他の電子機器が存在する場合、 電子機器 1の機器間起動調停部 20は、ステップ S1104の動作に進む。
[0221] ステップ S1104において、電子機器 1の機器間起動調停部 20は、起動調停情報 を代替アプリケーションを保持する電子機器力も取得する。このとき、電子機器 1の機 器間起動調停部 20は、起動調停情報の取得要求を電子機器 3に送信する (通信 12 03)。これに応じて、電子機器 3の機器間起動調停部 20は、保持する起動調停情報 を電子機器 1に送信する (通信 1204)。なお、代替アプリケーションを保持していな V、電子機器に対しては、これらの通信は行われなくてょ 、。
[0222] 次に、電子機器 1の機器間起動調停部 20は、電子機器 1が保持する起動調停情 報と電子機器 3から送られてきた起動調停情報とを比較する (ステップ S 1105)。
[0223] ここで、起動調停情報について説明する。起動調停情報とは、アプリケーションによ るサービスを実行する必要性の度合いを判定するために用いられる情報である。図 2 2は、起動調停情報のテーブル形式の一例を示す図である。当該テーブルの各ェン トリには、代替アプリケーションを実行する必要性の度合いを判定するための情報が 登録されて!、る。図に示した各エントリにつ 、て簡単に説明する。
[0224] アプリ属性情報には、電子機器が持つ代替アプリケーションのアプリ属性情報が記 録される。アプリ属性情報は、図 3を用いて先述した情報と同様であるので、詳細は 省略する。
[0225] 機器の識別名には、電子機器を一意に特定するための識別情報が記録される。こ れは、文字列名や数字、あるいは他の形式の情報であってもよい。
[0226] 機器の種別には、例えば携帯電話、 PDA、ビデオレコーダー、 PCなどその電子機 器の種類を特定するための情報が記録される。
[0227] 搭載 CPUには、電子機器に搭載される CPUのスペック、速度など、機器に搭載さ れるプロセッサに関しての情報が記録される。
[0228] 搭載 OSには、電子機器に搭載される OSのスペック、バージョンなど、機器に搭載 される OSやミドルウェアに関しての情報が記録される。
[0229] 搭載メモリ量には、電子機器に搭載されるメモリ等リソースに関しての情報が記録さ れる。
[0230] プロセッサ使用率には、電子機器のプロセッサの使用占有率に関しての情報が記 録される。
[0231] 空きリソース量には、電子機器に搭載されるメモリ等リソースのうち、未使用のリソー ス量に関しての情報が記録される。
[0232] 設定優先度には、その電子機器のサービス実施の優先度の情報が記録される。こ の優先度は、機器に対して不変的に定められている数値であってもよいし、機器毎 にユーザが設定できる数値であってもよ 、。 [0233] ユーザによる最終操作日時には、電子機器に対してユーザによる操作が加えられ た最終時間につ 、ての情報が記録される。
[0234] 図 22に示した例は、起動調停情報の実現例の一つである。図 22に示したテープ ルのエントリの一部がなくても、あるいは他の属性の情報を示すエントリが含まれてい てもよい。
[0235] ステップ S1105の後、電子機器 1の機器間起動調停部 20は、電子機器 1が保持す る起動調停情報と、ステップ S1104で取得した他の電子機器が保持する起動調停 情報との比較結果に基づ 、て、電子機器 1にお 、て代替アプリケーションを起動して 実行する必要性があるか否かを判断する (ステップ S 1106)。
[0236] ステップ S1106における判定方法としては、たとえば、以下のような判定方法が用 いられる。
[0237] (第 1の判定方法)電子機器 1の機器間起動調停部 20は、起動調停情報に含まれ るアプリ属性情報を利用して、電子機器 1が保持する代替アプリケーションよりも、必 要リソース量が小さ 、代替アプリケーションが他の電子機器によって保持されて 、た ら、電子機器 1は代替アプリケーションの起動が必要であると判断し、そうでなければ 起動は必要でな 、と判断する。
[0238] (第 2の判定方法)電子機器 1の機器間起動調停部 20は、起動調停情報に含まれ る機器の識別名、機器の種別、搭載 CPU、搭載 OS、搭載メモリ量、プロセッサ使用 率、空きリソース量、および Zまたは設定優先度の情報を利用して、電子機器 1で定 められた条件を上記情報が満たして 、れば、代替アプリケーションの起動は必要で あると判断し、当該条件を満たしていなければ、代替アプリケーションの起動は必要 でないと判断する。当該条件として、たとえば、
(条件例 2-1)電子機器 1よりも設定優先度が高 ヽ電子機器が他に存在しな!ヽ場合、 電子機器 1は、代替アプリケーションの起動は必要であるとする。電子機器 1よりも設 定優先度が高い電子機器が他に存在する場合、電子機器 1は、代替アプリケーショ ンの起動は必要でないとする。
(条件例 2— 2)電子機器 1の空きリソース量よりも、空きリソース量が大きい電子機器が 他に存在しない場合、電子機器 1は、代替アプリケーションの起動は必要であるとす る。電子機器 1の空きリソース量よりも、空きリソース量が大きい電子機器が他に存在 する場合、電子機器 1は、代替アプリケーションの起動は必要でないとする。
(条件例 2-3)電子機器 1と同じ種別の機器の中で、電子機器 1よりも高スペックの搭 載 CPUを有する電子機器が存在しない場合、電子機器 1は、代替アプリケーション の起動は必要であるとする。電子機器 1と同じ種別の機器の中で、電子機器 1よりも 高スペックの搭載 CPUを有する電子機器が存在する場合、電子機器 1は、代替アブ リケーシヨンの起動は必要でないとする。
[0239] (第 3の判定方法)電子機器 1の機器間起動調停部 20は、ユーザによる最終操作 日時の情報に基づいて、電子機器 1よりも後の時間にユーザによって操作が加えら れた電子機器が存在するか否かを判断し、存在しない場合、代替アプリケーションの 起動は必要であるとし、存在する場合、代替アプリケーションの起動は必要でないと する。
[0240] もちろん、上記以外の起動調停情報を利用して、他の判定方法によって、判定処 理が行われても良い。
[0241] ステップ S 1106において、代替アプリケーションの起動の必要性が確認された場合 、電子機器 1の機器間起動調停部 20は、ステップ S1103の動作に進んで、代替ァ プリケーシヨンを起動すると判定する。一方、代替アプリケーションの起動の必要性が 確認されなかった場合、電子機器 1の機器間起動調停部 20は、代替アプリケーショ ンを起動しないと判定する(ステップ S 1107)。
[0242] このように、第 2の実施形態によれば、ネットワーク上の複数の電子機器によってァ プリ継続プログラムが実行されるような状況である場合、機器間起動調停部によって 代替アプリケーションを実行すべきか否かが判断され、システム全体の内で、限定さ れた電子機器のみが代替アプリケーションを実行することとなる。したがって、システ ム全体の資源が有効活用されることとなる。
[0243] なお、第 2の実施形態において、第 1一第 4の基本処理を組み合わせてもよい。
[0244] 以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明 の例示にすぎず、その範囲を限定しょうとするものではない。本発明の範囲を逸脱す ることなく種々の改良や変形を行うことができることは言うまでもな 、。 産業上の利用可能性
以上の構成を持つ本発明を利用することで、センターサーバのように集中管理方 式を前提としてな 、ネットワーク機器にぉ 、ても、同一のサービスを自動的に他の機 器で実行したり、中断されたサービスの続きを他の機器で引き継 、で実行したりと ヽ つた、サービスの高い安定性を確保するための機器間の連携動作を行うことができる ようになる。したがって、本発明に係る電子機器は、通信分野等に有用である。

Claims

請求の範囲
[1] アプリケーションを実行可能な少なくとも一つの他の電子機器とネットワークを介し て接続された電子機器であって、
前記他の電子機器が保持するアプリケーションを認識するアプリ認識部と、 前記アプリ認識部によって認識されたアプリケーションが前記他の電子機器におい て実行不能であるか否かを検出するアプリ実行不能検出部と、
前記アプリ実行不能検出部によって実行不能と検出されたアプリケーションの代わ りとなる代替アプリケーションを実行するか否かを判断するアプリ実行判断部と、 実行不能であると検出されたアプリケーションの代わりとなる前記代替アプリケーシ ヨンが自機器内に保持されている力否かを判断する代替アプリ保持判断部と、 前記代替アプリケーションを実行するアプリ実行部とを備える、電子機器。
[2] 前記アプリ実行判断部は、前記アプリ実行不能検出部によって実行不能と検出さ れたアプリケーションに対する起動要求を検出するアプリ起動要求検出部を含み、 前記アプリ実行判断部は、前記アプリ起動要求検出部によって前記実行不能と検 出されたアプリケーションに対する起動要求が検出された場合、前記代替アプリケー シヨンを実行すると判断する、請求項 1に記載の電子機器。
[3] 前記代替アプリ保持判断部は、前記アプリ認識部によって認識された前記他の電 子機器が保持するアプリケーションと同一の機能を有する同一機能アプリケーション 力 S自機器内に保持されているカゝ否かを判断して、前記他の電子機器が保持するアブ リケーシヨンと自機器内に保持されている同一機能アプリケーションとを対応付けた同 一性テーブルを作成するアプリ同一性判定部を含み、
前記同一機能アプリケーションは、代替アプリケーションであり、
前記代替アプリ保持判断部は、前記アプリ同一性判定部によって作成された前記 同一性テーブルに基づいて、前記代替アプリケーションが自機器内に保持されてい るカゝ否かを判断する、請求項 1に記載の電子機器。
[4] 前記代替アプリ保持判断部は、前記アプリ認識部によって認識された前記他の電 子機器が保持するアプリケーションに関連する機能を有する関連機能アプリケーショ ンを、前記他の電子機器が保持するアプリケーションと対応付けて、関連テーブルを 作成する関連アプリ判定部を含み、
前記関連機能アプリケーションは、代替アプリケーションであり、
前記代替アプリ保持判断部は、前記関連アプリ判定部によって作成された前記関 連テーブルに基づいて、前記代替アプリケーションが自機器内に保持されているか 否かを判断する、請求項 1に記載の電子機器。
[5] 前記アプリ実行判断部は、前記他の電子機器上で実行されているアプリケーション での実行状態をアプリ実行状態情報として取得するアプリ実行状態取得部を含み、 前記アプリ実行判断部は、前記アプリ起動要求検出部によって前記実行不能と検 出されたアプリケーションについての前記アプリ実行状態情報が前記アプリ実行状態 取得部によって保持されて ヽる場合、前記代替アプリケーションを実行すると判断し 前記アプリ実行部は、前記アプリ実行状態情報に基づいて、前記実行不能と検出 されたアプリケーションを継続するように、前記代替アプリケーションを実行する、請 求項 1に記載の電子機器。
[6] 前記アプリ実行判断部は、前記ネットワークに接続された他の電子機器に対して、 前記代替アプリケーションを保持して 、る力否かを問 、合わせ、前記代替アプリケー シヨンを保持して 、る他の電子機器と通信して、前記代替アプリケーションを自機器 内で実行するカゝ否かを判断する機器間起動調停部を含む、請求項 1に記載の電子 機器。
[7] アプリケーションを実行可能な少なくとも一つの他の電子機器とネットワークを介し て接続された電子機器の処理方法であって、
前記他の電子機器が保持するアプリケーションを認識するステップと、 前記認識されたアプリケーションが前記他の電子機器において実行不能であるか 否かを検出するステップと、
前記実行不能であると検出されたアプリケーションの代わりとなる代替アプリケーシ ヨンを実行する力否かを判断するステップと、
前記実行不能であると検出されたアプリケーションの代わりとなる前記代替アプリケ ーシヨンが自機器内に保持されている力否かを判断するステップと、 前記代替アプリケーションを実行するステップとを備える、方法。
アプリケーションを実行可能な少なくとも一つの他の電子機器とネットワークを介し て接続された電子機器で実行されるプログラムであって、
前記他の電子機器が保持するアプリケーションを認識するステップと、
前記認識されたアプリケーションが前記他の電子機器において実行不能であるか 否かを検出するステップと、
前記実行不能であると検出されたアプリケーションの代わりとなる代替アプリケーシ ヨンを実行する力否かを判断するステップと、
前記実行不能であると検出されたアプリケーションの代わりとなる前記代替アプリケ ーシヨンが自機器内に保持されている力否かを判断するステップと、
前記代替アプリケーションを実行するステップとを備える、プログラム。
PCT/JP2005/001833 2004-02-09 2005-02-08 サービスを自動継続する電子機器 WO2005076134A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005517788A JPWO2005076134A1 (ja) 2004-02-09 2005-02-08 サービスを自動継続する電子機器
EP05709885A EP1717703A1 (en) 2004-02-09 2005-02-08 Electronic device for automatically continuing to provide service
US10/588,540 US20070169128A1 (en) 2004-02-09 2005-02-08 Electronic device for automatically continuing to provide service

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-031761 2004-02-09
JP2004031761 2004-02-09

Publications (1)

Publication Number Publication Date
WO2005076134A1 true WO2005076134A1 (ja) 2005-08-18

Family

ID=34836061

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/001833 WO2005076134A1 (ja) 2004-02-09 2005-02-08 サービスを自動継続する電子機器

Country Status (5)

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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346698A (zh) * 2010-07-30 2012-02-08 阿里巴巴集团控股有限公司 一种时间程序管理方法、服务器及系统
JP2012048408A (ja) * 2010-08-25 2012-03-08 Fujitsu Ltd アプリケーションの多重関係を検出する装置、方法、およびプログラム
JP2016085643A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 通信装置、その制御方法、及びプログラム
JP2018092666A (ja) * 2011-09-16 2018-06-14 サムスン エレクトロニクス カンパニー リミテッド ネットワーク上の客体検索方法及びシステム
KR20190016773A (ko) * 2017-08-09 2019-02-19 현대자동차주식회사 Avn 시스템의 화면 구성 장치 및 방법
US10523804B2 (en) 2011-09-16 2019-12-31 Samsung Electronics Co., Ltd. Method and system for searching for object in network

Families Citing this family (2)

* 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
KR20150020398A (ko) * 2013-08-13 2015-02-26 삼성전자주식회사 애플리케이션을 통합 검색할 수 있는 전자 장치 및 방법

Citations (2)

* 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 フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (2)

* 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 フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346698A (zh) * 2010-07-30 2012-02-08 阿里巴巴集团控股有限公司 一种时间程序管理方法、服务器及系统
JP2012048408A (ja) * 2010-08-25 2012-03-08 Fujitsu Ltd アプリケーションの多重関係を検出する装置、方法、およびプログラム
JP2018092666A (ja) * 2011-09-16 2018-06-14 サムスン エレクトロニクス カンパニー リミテッド ネットワーク上の客体検索方法及びシステム
US10523804B2 (en) 2011-09-16 2019-12-31 Samsung Electronics Co., Ltd. Method and system for searching for object in network
US10938973B2 (en) 2011-09-16 2021-03-02 Samsung Electronics Co., Ltd. Method and system for searching for object in network
JP2016085643A (ja) * 2014-10-27 2016-05-19 キヤノン株式会社 通信装置、その制御方法、及びプログラム
KR20190016773A (ko) * 2017-08-09 2019-02-19 현대자동차주식회사 Avn 시스템의 화면 구성 장치 및 방법
KR102371609B1 (ko) * 2017-08-09 2022-03-07 현대자동차주식회사 Avn 시스템의 화면 구성 장치 및 방법

Also Published As

Publication number Publication date
JPWO2005076134A1 (ja) 2007-08-02
CN1918548A (zh) 2007-02-21
EP1717703A1 (en) 2006-11-02
US20070169128A1 (en) 2007-07-19

Similar Documents

Publication Publication Date Title
WO2005076134A1 (ja) サービスを自動継続する電子機器
US8243306B2 (en) Communication program, method of installing image processing apparatus control program and image processing apparatus
JP3886934B2 (ja) 無線通信装置、通信制御プログラム及び通信制御方法
EP2196914B1 (en) Network system, control device, terminal device and connection state discrimination method
KR101380967B1 (ko) 애플리케이션 기능 실행을 위한 사용자 정의 패턴 설정 장치 및 방법
US8943217B2 (en) Systems and methods for operating an appliance control device for an appliance
KR20160014038A (ko) 컴퓨팅 디바이스 사이에서의 디바이스 연관 데이터의 동기화
JP6520404B2 (ja) 携帯端末及び出力プログラム
JP2012174124A (ja) デバイス選択プログラム、及び、デバイス
EP2808799B1 (en) Equipment management device, equipment management method, program and equipment management system
JP2004185607A (ja) 操作ログ連携利用装置及びその方法
US20050246595A1 (en) Network system, information processing apparatus, master apparatus, and apparatus information display method
JPWO2006022022A1 (ja) 情報処理装置、データ表示方法、情報処理システム、データ表示プログラム及びデータ表示プログラムを記録したコンピュータ読取可能な記録媒体
JP2008027006A (ja) 周辺デバイスを管理するためのプログラムおよび情報処理装置とその制御方法
JP2008176674A (ja) 電子機器、サービス提供方法及びプログラム
JP6520403B2 (ja) 携帯端末及び出力プログラム
JP6520405B2 (ja) 携帯端末、コンテンツ指定プログラム、及び出力プログラム
US10574471B2 (en) Device control method, information storage medium, control apparatus, and device control system
JP2013190978A (ja) 連動システム、ホスト機器
JP5578523B2 (ja) 情報処理装置、情報処理方法、及びコンピュータ読み取り可能な記録媒体
JP5455254B2 (ja) コンピュータ、リモートコントロールシステム、遠隔操作支援方法、及びプログラム
CN114785913A (zh) 显示设备及设备信息处理方法
CN117615192A (zh) 一种显示设备、移动终端及通过浏览器发现设备的方法
JP2018120255A (ja) プログラム及び携帯端末
JP2015191575A (ja) 電子機器

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2005517788

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007169128

Country of ref document: US

Ref document number: 200580004211.1

Country of ref document: CN

Ref document number: 10588540

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2005709885

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWP Wipo information: published in national office

Ref document number: 2005709885

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10588540

Country of ref document: US

WWW Wipo information: withdrawn in national office

Ref document number: 2005709885

Country of ref document: EP