WO2013005323A1 - データ処理方法およびデータ処理システム - Google Patents

データ処理方法およびデータ処理システム Download PDF

Info

Publication number
WO2013005323A1
WO2013005323A1 PCT/JP2011/065519 JP2011065519W WO2013005323A1 WO 2013005323 A1 WO2013005323 A1 WO 2013005323A1 JP 2011065519 W JP2011065519 W JP 2011065519W WO 2013005323 A1 WO2013005323 A1 WO 2013005323A1
Authority
WO
WIPO (PCT)
Prior art keywords
data processing
application
shared resource
activated
processing device
Prior art date
Application number
PCT/JP2011/065519
Other languages
English (en)
French (fr)
Inventor
浩一郎 山下
宏真 山内
鈴木 貴久
康志 栗原
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/065519 priority Critical patent/WO2013005323A1/ja
Priority to JP2013522659A priority patent/JP5768884B2/ja
Publication of WO2013005323A1 publication Critical patent/WO2013005323A1/ja
Priority to US14/148,288 priority patent/US20140123154A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a data processing method and a data processing system.
  • an electronic device requests borrowing of a resource from another electronic device when the remaining amount of the resource of the own device falls below a predetermined amount during execution of its own job.
  • an authentication process is performed using an electronic device between a borrower and a provider of computational resources and the legitimacy is recognized, the borrower sends a problem solving application to the provider, and the provider
  • An object of the present invention is to provide a data processing method and a data processing system capable of suppressing the power consumption of the entire system including a plurality of data processing devices in order to solve the above-described problems caused by the prior art.
  • an application requested to be started by a first data processing device among a plurality of data processing devices belongs to a predetermined group.
  • the application belongs to the predetermined group, it is determined whether the application is activated on another data processing device of the plurality of data processing devices, and the application performs the other data processing.
  • a data processing method is proposed in which the first data processing device does not activate the application when activated by the device.
  • a plurality of data processing devices each including at least one peripheral unit, and activation of the first peripheral unit of the first data processing device among the plurality of data processing devices.
  • the second peripheral unit of the second data processing device among the plurality of data processing devices is activated, the second peripheral unit is executed without starting the first peripheral unit.
  • a data processing system including a shared scheduler is proposed.
  • FIG. 1 is an explanatory diagram of an example of the data processing method according to the first embodiment.
  • FIG. 2 is an explanatory diagram of a system configuration example of the data processing system according to the second embodiment.
  • FIG. 3 is an explanatory diagram of a hardware configuration example of the mobile terminal according to the second embodiment.
  • FIG. 4 is an explanatory diagram of an example of the contents stored in the shared resource table.
  • FIG. 5 is a block diagram of a functional configuration example of the mobile terminal according to the second embodiment.
  • FIG. 6 is an explanatory diagram of an example of the contents stored in the shared resource flag table.
  • FIG. 7 is an explanatory diagram of an example of the contents stored in the access permission table.
  • FIG. 8 is an explanatory diagram illustrating an example of operation cooperation between portable terminals.
  • FIG. 1 is an explanatory diagram of an example of the data processing method according to the first embodiment.
  • FIG. 2 is an explanatory diagram of a system configuration example of the data processing system according to the second embodiment.
  • FIG. 9 is a flowchart (part 1) illustrating an example of a data processing procedure of the mobile terminal according to the second embodiment.
  • FIG. 10 is a flowchart (part 2) illustrating an example of a data processing procedure of the mobile terminal according to the second embodiment.
  • FIG. 11 is a flowchart (part 1) illustrating an example of a data processing procedure of the mobile terminal according to the third embodiment.
  • FIG. 12 is a flowchart (part 2) illustrating an example of a data processing procedure of the mobile terminal according to the third embodiment.
  • FIG. 13 is an explanatory diagram showing an application example of a system using a computer according to the present embodiment.
  • FIG. 1 is an explanatory diagram of an example of the data processing method according to the first embodiment.
  • data processing apparatuses 101 and 102 are computers capable of executing applications (hereinafter also simply referred to as “applications”).
  • the data processing devices 101 and 102 are, for example, a mobile phone, a PDA, a smartphone, a notebook PC (Personal Computer), a game machine, a PC, a server, and the like.
  • Each data processing device 101, 102 includes at least one CPU (Central Processing Unit) and at least one peripheral unit.
  • the data processing apparatus 101 includes CPUs 111 and 112 and peripheral units P1 to P3.
  • the CPU 111 executes an OS (Operating System) 113 and controls the entire data processing apparatus 101.
  • the OS 113 includes a scheduler 115 that controls which CPU an application is assigned to.
  • the CPU 111 executes the assigned application.
  • the CPU 112 executes the OS 114 and executes an application assigned to the OS 114.
  • the data processing apparatus 102 includes CPUs 121 and 122 and peripheral units P1 to P3.
  • the CPU 121 executes the OS 123 and controls the entire data processing apparatus 102.
  • the OS 123 includes a scheduler 125 that controls which CPU an application is assigned to. Further, the CPU 121 executes the assigned application.
  • the CPU 122 executes the OS 124 and executes an application assigned to the OS 124.
  • the peripheral units P1 to P3 are hardware resources used when executing various applications, and are, for example, a coprocessor, a DSP, a GPS device, a camera device, a communication I / F (Interface), an encryption circuit, and the like.
  • the peripheral unit P1 of the data processing apparatus 101 and the peripheral unit P1 of the data processing apparatus 102 only have to have substantially the same function. For example, the processing performance may be different. The same applies to the peripheral units P2 and P3.
  • a map application or a route search application hardware resources such as a coprocessor and a GPS device are used.
  • hardware resources such as a coprocessor and a DSP are used.
  • a graphic application hardware resources such as a coprocessor are used.
  • SNS Social Networking Service
  • a business application hardware resources such as an encryption circuit are used.
  • the data processing apparatuses 101 and 102 execute the same or different applications using substantially the same hardware resources, the data processing apparatuses 101 and 102 as a whole may not be energy efficient. .
  • the data processing apparatuses 101 and 102 existing in the same area each execute an application using a GPS device.
  • An area is any area divided by dividing an area on a map.
  • the coordinate data of the data processing devices 101 and 102 existing in the same area are almost the same. For this reason, it is not efficient to acquire the coordinate data by individually operating the GPS device in each of the data processing apparatuses 101 and 102.
  • the hardware resource is activated, predetermined power is consumed regardless of the processing content, so that the power consumption of the entire system increases as the number of activated hardware resources increases.
  • the data processing apparatuses 101 and 102 each execute an application using a peripheral unit having substantially the same function, any one of the data processing apparatuses
  • the peripheral unit that is started first is shared among the devices. As a result, it is possible to execute an application without starting a peripheral unit in each data processing apparatus, and the power consumption of the entire system is reduced.
  • the data processing apparatus 101 receives an activation request for the application a.
  • the scheduler 115 receives an activation request for the application a from the OS 113.
  • the application a is an application that uses the peripheral unit P1 at the time of execution.
  • the data processing apparatus 101 inquires of the data processing apparatus 102 whether or not the peripheral unit P1 used when executing the application a is activated. Specifically, for example, the scheduler 115 transmits an activation confirmation request for the peripheral unit P1 to the data processing apparatus 102 via the communication I / F (peripheral unit P3).
  • the data processing apparatus 102 determines whether or not the peripheral unit P1 is activated. Specifically, for example, the scheduler 125 determines whether or not a flag indicating that the peripheral unit P1 is activated is set.
  • the data processing apparatus 102 transmits an activation confirmation response indicating whether or not the peripheral unit P1 is activated to the data processing apparatus 101.
  • the scheduler 125 transmits an activation confirmation response of the peripheral unit P1 to the data processing apparatus 101 via the communication I / F (peripheral unit P3).
  • the flag indicating that the peripheral unit P1 used for executing the application b is operating, that is, the peripheral unit P1 is being activated is set. Therefore, the data processing apparatus 102 transmits an activation confirmation response indicating that the peripheral unit P1 is being activated to the data processing apparatus 101. As a result, the data processor 101 receives the activation confirmation response for the peripheral unit P1.
  • the data processing apparatus 101 executes the application a using the peripheral unit P1 activated in the data processing apparatus 102. That is, the data processing apparatus 101 does not activate the peripheral unit P1 of its own apparatus, but shares the peripheral unit P1 activated in the data processing apparatus 102 with the data processing apparatus 102.
  • the data processing apparatus 101 activates the peripheral unit P1 of the own apparatus and executes the application a. In this case, a flag indicating that the peripheral unit P1 of the own device is being activated is set.
  • the peripheral unit P1 that has already been activated in the data processing apparatus 102 can be used.
  • the application a can be executed without starting the peripheral unit P1 in the data processing apparatus 101, and the power consumption of the entire system can be reduced.
  • FIG. 2 is an explanatory diagram of a system configuration example of the data processing system according to the second embodiment.
  • the data processing system 200 includes mobile terminals N1 to Nn (n: a natural number of 2 or more).
  • the mobile terminals N1 to Nn are, for example, computers such as mobile phones, PDAs, smartphones, notebook PCs, and game machines, and correspond to the data processing devices 101 and 102 shown in FIG.
  • the mobile terminals N1 to Nn are connected to each other via a wireless or wired network 210 so that they can communicate with each other.
  • Examples of the network 210 include an ad hoc network, a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet.
  • An ad hoc network is a type of self-configuring network that is linked by wireless communication.
  • the ad hoc network is composed of a plurality of nodes (mobile terminals N1 to Nn). Each of the mobile terminals N1 to Nn in the ad hoc network can perform ad hoc communication with other mobile terminals.
  • the data processing system 200 may include a base station and a gateway.
  • FIG. 3 is an explanatory diagram of a hardware configuration example of the mobile terminal according to the second embodiment.
  • the mobile terminal Ni includes CPU # 1 to CPU #k (k: natural number of 1 or more), a memory 301, a coprocessor 302, a DSP 303, a GPS 304, an encryption circuit 305, a communication I / O. F306.
  • the CPU # 1 to CPU #k, the memory 301, the coprocessor 302, the DSP 303, the GPS 304, the encryption circuit 305, and the communication I / F 306 are connected via a bus 310.
  • a part of software (OS # 1 to #k, scheduler 320) included in the portable terminal Ni is extracted and displayed.
  • CPU # 1 executes OS # 1 and controls the entire mobile terminal Ni.
  • the OS # 1 is a master OS and includes a scheduler 320 that controls which CPU an application is assigned to.
  • CPU # 1 executes the assigned application.
  • CPU # 2 to CPU #k execute OS # 2 to OS #k, respectively, and execute an application assigned to each OS.
  • OS # 2 to OS # k are slave OSs.
  • the memory 301 is a memory shared by the CPUs # 1 to #k.
  • the memory 301 includes, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash ROM, and the like.
  • a flash ROM stores programs for each OS
  • a ROM stores application programs
  • a RAM is used as a work area for CPU # 1 to CPU #k.
  • the program stored in the memory 301 is loaded on each CPU, thereby causing each CPU to execute a coded process.
  • the coprocessor 302 is a sub processor that assists the CPUs # 1 to #k.
  • Examples of the coprocessor 302 include FPU (Floating Point number processing Unit) and GPU (Graphics Processing Unit).
  • the DSP 303 is a microprocessor specialized for processing of voice and images.
  • the GPS 304 is a device that receives radio waves from GPS satellites and outputs position information indicating the position of the mobile terminal Ni.
  • the position information of the portable terminal Ni is coordinate data for specifying one point on the earth such as latitude / longitude and altitude.
  • the encryption circuit 305 is a circuit that encrypts data.
  • the communication I / F 306 is connected to the network 210 via a communication line, and is connected to an external device via the network 210.
  • the communication I / F 306 controls an internal interface with the network 210 and controls input / output of data from an external device.
  • the mobile terminal Ni includes, for example, a memory controller that controls reading / writing of data with respect to the memory 301, a PMU (Power Management Unit) that supplies power to each unit, a display, a keyboard, and the like. You may decide to have it.
  • a memory controller that controls reading / writing of data with respect to the memory 301
  • a PMU Power Management Unit
  • the mobile terminal Ni includes, for example, a memory controller that controls reading / writing of data with respect to the memory 301, a PMU (Power Management Unit) that supplies power to each unit, a display, a keyboard, and the like. You may decide to have it.
  • PMU Power Management Unit
  • the mobile terminals N1 to Nn are described as having the same hardware configuration, but the present invention is not limited to this.
  • the mobile terminal Ni may have a peripheral unit different from the peripheral units (reference numerals 301 to 306) described above, and a part of the peripheral units (reference numerals 301 to 306) described above. You may decide not to have.
  • the shared resource table 400 is information indicating peripheral units that are allowed to be shared among a plurality of portable terminals among peripheral units used for executing each application.
  • FIG. 4 is an explanatory diagram showing an example of the contents stored in the shared resource table.
  • the shared resource table 400 includes fields for an application ID, an application name, and a shared resource name. By setting information in each field, shared resource information 400-1 to 400- for each application A1 to Am. m is stored as a record.
  • Application ID is an identifier of each application used in this specification.
  • the application name is the name of each application.
  • the shared resource name is a name of a peripheral unit that permits sharing among a plurality of portable terminals among peripheral units used for execution of each application.
  • the application name “multimedia” of the application A2 and the shared resource name “coprocessor, DSP” that can be shared among a plurality of portable terminals when the application A2 is executed are shown. ing.
  • the shared resource table 400 is stored, for example, in the memory 301 shown in FIG. Specifically, for example, the shared resource information 400-1 to 400-m of each application A1 to Am is stored in the file system of the portable terminal Ni together with the execution object of each application A1 to Am.
  • the shared resource table 400 refers to the makefile of each application when compiling each application, and collates the peripheral units that can be shared among a plurality of portable terminals with the peripheral units included in each portable terminal N. It is created by that.
  • FIG. 5 is a block diagram of a functional configuration example of the mobile terminal according to the second embodiment.
  • the mobile terminal Ni includes a detection unit 501, a determination unit 502, a transmission unit 503, a reception unit 504, a determination unit 505, a switching unit 506, an allocation unit 507, and a setting unit 508.
  • the functions (detection unit 501 to setting unit 508) serving as the control unit are, for example, by causing the CPU # 1 to execute a program stored in the memory 301 shown in FIG.
  • the function is realized by / F306.
  • the processing result of each functional unit is stored in the memory 301, for example.
  • client shared resources
  • the detecting unit 501 detects an application activation request. Specifically, for example, the scheduler 320 detects an application activation request from the OS # 1. In the following description, an application for which an activation request is detected is referred to as “application A”.
  • the determination unit 502 determines whether to use the shared resource P when the application A is executed when the activation request of the application A is detected.
  • the shared resource P is a peripheral unit that is allowed to be shared among a plurality of mobile terminals, that is, a peripheral unit that can be shared between a plurality of mobile terminals.
  • the scheduler 320 refers to the shared resource table 400 illustrated in FIG. 4 and determines whether to use the shared resource P when the application A is executed.
  • the application A is “application A1”.
  • the scheduler 320 refers to the shared resource table 400 and determines that the “coprocessor 302” is used as the shared resource P when the application A1 is executed.
  • the application A is “application A3”.
  • the scheduler 320 refers to the shared resource table 400 and determines that “coprocessor 302, GPS 304” is used as the shared resource P when the application A3 is executed.
  • the transmission unit 503 determines that the shared resource P is to be used when the application A is executed, the transmission unit 503 transmits an activation confirmation request for the shared resource P to another mobile terminal Nj.
  • the activation confirmation request for the shared resource P is information for inquiring other portable terminals Nj whether or not the shared resource P is activated.
  • the scheduler 320 controls the communication I / F 306 and broadcasts an activation confirmation request for the shared resource P to the network 210 by ad hoc communication.
  • the application A is “application A1”.
  • the scheduler 320 broadcasts an activation confirmation request for the coprocessor 302 that is the shared resource P.
  • the scheduler 320 broadcasts an activation confirmation request for each shared resource P.
  • the application A is “application A3”.
  • the scheduler 320 may broadcast the activation confirmation request for the coprocessor 302 and the activation confirmation request for the GPS 304, which are the shared resources P, or broadcast the activation confirmation request for the coprocessor 302 and the GPS 304 collectively. Also good.
  • the reception unit 504 receives the activation confirmation response for the shared resource P from the other portable terminal Nj as a result of the transmission confirmation request for the shared resource P being transmitted.
  • the activation confirmation response of the shared resource P is information indicating whether the shared resource P is activated.
  • the scheduler 320 receives the activation confirmation response of the shared resource P from another mobile terminal Nj via the communication I / F 306.
  • the determining unit 505 determines whether or not the shared resource P used for execution of the application A is activated on another mobile terminal Nj based on the received activation confirmation response of the shared resource P. Specifically, for example, when an activation confirmation response indicating that the shared resource P is activated from another portable terminal Nj is received, the scheduler 320 activates the shared resource P on the other portable terminal Nj. Judge that
  • the scheduler 320 It may be determined that it is not activated on another portable terminal Nj. If a start confirmation response indicating that the shared resource P has not been started is received from all of the mobile terminals N1 to Nn that are different from the mobile terminal before the fixed time elapses, the scheduler 320 Therefore, it is determined that the shared resource P is not activated on the other mobile terminal Nj.
  • the switching unit 506 switches the device driver of the shared resource P from the real device driver to the virtual device driver when it is determined that the shared resource P is activated on another mobile terminal Nj.
  • the actual device driver is software for operating the shared resource P of the own terminal.
  • the virtual device driver is software for realizing the function of the shared resource P using the shared resource P activated on the other portable terminal Nj by communicating with the other portable terminal Nj via the network 210. It is.
  • the scheduler 320 associates a device driver associated with the driver API (Application Program Interface) of the shared resource P from the actual device driver to the virtual device. Switch to the driver.
  • the driver API of the shared resource P is associated with the actual device driver of the shared resource P. More specifically, for example, the scheduler 320 unloads the real device driver of the shared resource P and then loads the virtual device driver of the shared resource P.
  • the scheduler 320 sets the identification information of the other portable terminal Nj that is activating the shared resource P in the virtual device driver.
  • identification information of the other mobile terminal Nj for example, the address of the other mobile terminal Nj can be used. Thereby, the other portable terminal Nj which has started the shared resource P used for execution of the application A can be identified.
  • the scheduler 320 may set the identification information of the other terminal that has transmitted the activation confirmation response earliest among the plurality of other terminals that have activated the shared resource P in the virtual device driver.
  • the scheduler 320 may set the identification information of the other terminal that minimizes the load of the shared resource P among the plurality of other terminals that are starting the shared resource P in the virtual device driver.
  • the load of the shared resource P is, for example, the usage rate of the shared resource P.
  • the load information for specifying the load of the shared resource P in each other terminal is included in, for example, the activation confirmation response indicating that the shared resource P is activated. In this way, when there are a plurality of other terminals that have started up the shared resource P, it is possible to avoid waiting for processing of the shared resource P by selecting and sharing the shared resource P having a smaller load. be able to.
  • the switching unit 506 switches the device driver of the shared resource P to the virtual device driver, the switching unit 506 sets the switching flag of the shared resource P from “0” to “1”.
  • the switching flag of the shared resource P is information for identifying a device driver associated with the driver API of the shared resource P.
  • the switch flag when the switch flag is “0”, it indicates that the real device driver is associated with the driver API of the shared resource P. On the other hand, when the switching flag is “0”, it indicates that the virtual device driver is associated with the driver API of the shared resource P. In the initial state, the switching flag of the shared resource P is “0”.
  • the assigning unit 507 assigns the app A to any one of the CPUs # 1 to #k as a result of switching the device driver of the shared resource P to the virtual device driver. Specifically, for example, the scheduler 320 selects a CPU to which the application A is assigned from among the CPUs # 1 to #k based on the load information of each of the CPUs # 1 to #k, and assigns the CPU to the CPU. Assign app A.
  • the application A is executed by the OS of the assignment destination CPU.
  • the application A since the device driver of the shared resource P is switched to the virtual device driver, the application A is executed using the shared resource P activated on the other mobile terminal Nj. Thereby, the application A can be executed without activating the shared resource P of the own terminal.
  • the setting unit 508 sets a flag indicating that the shared resource P is activated when it is determined that the shared resource P is not activated on another portable terminal Nj.
  • the scheduler 320 may set a flag indicating that the shared resource P is activated in the shared resource flag table 600 illustrated in FIG.
  • the shared resource flag table 600 is realized by the memory 301, for example.
  • FIG. 6 is an explanatory diagram showing an example of the contents stored in the shared resource flag table.
  • the shared resource flag table 600 has fields for a shared resource name and a shared resource flag. By setting information in each field, flag information 600-1 to 600-3 indicating whether each shared resource is activated is stored.
  • Shared resource name is the name of the shared resource.
  • This shared resource is, for example, a peripheral unit registered in the shared resource table 400 shown in FIG.
  • the shared resource flag is a flag indicating whether the shared resource is activated.
  • the shared resource flag is “0”, it indicates that the shared resource is not activated.
  • the shared resource flag is “1”, it indicates that the shared resource is activated. In the initial state, the shared resource flag is “0”.
  • the scheduler 320 uses the shared resource flag of the flag information 600-1 in the shared resource flag table 600. Is changed from “0” to “1”.
  • the allocation unit 507 allocates the application A to any one of the CPUs # 1 to #k when it is determined that the shared resource P is not activated on another portable terminal Nj. As a result, the application A is executed by the OS of the assignment destination CPU. In this case, since the device driver of the shared resource P is an actual device driver, the application A is executed using the shared resource P of the own terminal.
  • the allocation unit 507 allocates the app A to any one of the CPUs # 1 to #k when it is determined that the shared resource P is not used when the app A is executed.
  • the application A is executed by the OS of the assignment destination CPU. That is, since there is no peripheral unit that can be shared with other portable terminals Nj among the peripheral units used for executing the application A, the application A is executed using the peripheral unit of its own terminal.
  • each functional unit of the mobile terminal Ni when the mobile terminal Ni is a side (hereinafter referred to as “server”) requested to use the shared resource P from another mobile terminal Nj will be described.
  • the receiving unit 504 receives a request for confirming the activation of the shared resource P from another mobile terminal Nj.
  • the shared resource P is a shared resource used for executing the application A for which the activation request is detected by the other portable terminal Nj.
  • the scheduler 320 receives an activation confirmation request for the shared resource P from the other portable terminal Nj via the network 210.
  • the determination unit 505 determines whether or not the shared resource P is activated in the own terminal when the activation confirmation request for the shared resource P is received.
  • the scheduler 320 may refer to the shared resource flag table 600 shown in FIG. 6 and determine whether or not the shared resource P is activated in the own terminal.
  • the scheduler 320 specifies the flag information 600-1 of the coprocessor 302 from the shared resource flag table 600. When “1” is set in the shared resource flag of the flag information 600-1, the scheduler 320 determines that the coprocessor 302 is activated. On the other hand, when “0” is set in the shared resource flag of the flag information 600-1, the scheduler 320 determines that the coprocessor 302 is not activated.
  • the transmission unit 503 transmits the activation confirmation response of the shared resource P to another mobile terminal Nj.
  • the scheduler 320 controls the communication I / F 306 to indicate that the shared resource P has not been activated by ad hoc communication.
  • the confirmation response is transmitted to the other portable terminal Nj that is the request source.
  • the scheduler 320 controls the communication I / F 306 and sends an activation confirmation response indicating that the shared resource P is activated by ad hoc communication. To the other portable terminal Nj.
  • the setting unit 508 sets an access permission for the shared resource P from another mobile terminal Nj.
  • the scheduler 320 may set access permission for the shared resource P from the other portable terminal Nj that is the request source in the access permission table 700 shown in FIG.
  • the access permission table 700 is realized by the memory 301, for example.
  • FIG. 7 is an explanatory diagram showing an example of the contents stored in the access permission table.
  • the access permission table 700 has fields for a shared resource name and a terminal ID. By setting information in each field, access permission information 700-1 to 700-3 for each shared resource is stored as a record.
  • Shared resource name is the name of the shared resource.
  • This shared resource is, for example, a peripheral unit registered in the shared resource table 400 shown in FIG.
  • the terminal ID is identification information of another mobile terminal Nj that permits access to the shared resource.
  • the terminal ID for example, the address of another portable terminal Nj can be used.
  • the scheduler 320 sets the terminal ID “N2” of the portable terminal N2 in the terminal ID field of the access permission information 700-1 in the access permission table 700 (in FIG. 7). (See (7-2)).
  • the mobile terminal N1 permits access to the coprocessor 302.
  • the mobile terminal N1 does not permit access to the coprocessor 302. .
  • the shared resource P running on the own terminal can be shared with the client, and unauthorized access to the shared resource P from terminals other than the client can be prevented.
  • the determination unit 505 determines whether or not the operation of the shared resource P has ended. Specifically, for example, the scheduler 320 may determine that the operation of the shared resource P is completed when the execution of the application using the shared resource P in the own terminal is completed.
  • the setting unit 508 sets a flag indicating that the shared resource P is not activated.
  • the scheduler 320 may set a flag indicating that the shared resource P is not activated in the shared resource flag table 600.
  • the scheduler 320 changes the shared resource flag of the flag information 600-1 in the shared resource flag table 600 from “1” to “1”. Change to "0".
  • the setting unit 508 cancels the access permission for the shared resource P from another mobile terminal Nj (that is, prohibits access).
  • the scheduler 320 may cancel the access permission for the shared resource P from another mobile terminal Nj set in the access permission table 700.
  • the scheduler 320 determines the terminal ID of the portable terminal N2 from the terminal ID field of the access permission information 700-1 in the access permission table 700. “N2” is deleted (see (7-3) in FIG. 7). Thereby, unauthorized access to the shared resource P from other portable terminals Nj can be prevented.
  • the setting unit 508 may cancel the access permission for the shared resource P from the client when the communication with the client sharing the shared resource P activated in the terminal is disconnected.
  • the case where the communication with the client is disconnected may be, for example, the case where the session established with the client is disconnected, or the case where the communication strength with the client becomes a predetermined value or less. Good.
  • the determination unit 505 may determine whether or not the load of the shared resource P is equal to or greater than the predetermined value X based on the load information of the shared resource P activated on the own terminal.
  • the predetermined value X is set to a value that causes the processing of the shared resource P to wait when the load of the shared resource P is equal to or greater than the predetermined value X.
  • the predetermined value X is set in advance and stored in the memory 301, for example.
  • the setting unit 508 may cancel the access permission for the shared resource P from another portable terminal Nj when it is determined that the load of the shared resource P is equal to or greater than the predetermined value X. Thereby, it is possible to prevent waiting for processing of the shared resource P.
  • the transmission unit 503 indicates that the shared resource P has not been activated.
  • the activation confirmation response shown may be transmitted to the other mobile terminal Nj that is the request source. As a result, it is possible to prevent the processing waiting for the shared resource P from occurring.
  • the transmitting unit 503 may transmit an activation confirmation response including the load information of the shared resource P to the other mobile terminal Nj that has requested the shared resource P.
  • FIG. 8 is an explanatory diagram illustrating an example of operation cooperation between portable terminals.
  • a portable terminal N1 is a client-side portable terminal, and includes a peripheral unit 810 and a communication I / F 811.
  • the portable terminal N2 is a portable terminal on the server side, and includes a peripheral unit 820 and a communication I / F 821.
  • the communication I / Fs 811 and 821 correspond to the communication I / F 306 shown in FIG.
  • the peripheral unit 810 and the peripheral unit 820 are shared resources P having substantially the same function, and correspond to, for example, the coprocessor 302, the DSP 303, the GPS 304, and the like illustrated in FIG.
  • the application Aa is an application that uses the peripheral unit 810 that is the shared resource P at the time of execution.
  • the application Ab is an application that uses the peripheral unit 820 that is the shared resource P at the time of execution.
  • the driver API 812, the real device driver 813, and the virtual device driver 814 are programs related to the peripheral unit 810 included in the OS of the mobile terminal N1.
  • the driver API 822, the real device driver 823, and the virtual device driver 824 are programs related to the peripheral unit 820 included in the OS of the mobile terminal N2.
  • the driver API 812 of the peripheral unit 810 and the virtual device driver 814 are associated with each other as a result of detecting the activation request of the application Aa in the mobile terminal N1 on the client side.
  • the driver API 822 of the peripheral unit 820 and the actual device driver 823 are associated, and the application Ab is executed using the peripheral unit 820.
  • the application Aa passes a function argument to the virtual device driver 814 via the driver API 812 of the peripheral unit 810. Thereafter, the virtual device driver 814 transmits a function argument (including the function name) to the real device driver 823 of the peripheral unit 820 of the mobile terminal N2 through the communication I / F 811 by ad hoc communication.
  • the actual device driver 823 receives the function argument received by the communication I / F 821 via the driver API 822.
  • the real device driver 823 obtains a return value of the function by giving a function argument to the peripheral unit 820.
  • the actual device driver 823 transmits the return value of the function to the virtual device driver 814 of the peripheral unit 810 of the mobile terminal N1 by ad hoc communication via the communication I / F 821.
  • the virtual device driver 814 receives the return value of the function received by the communication I / F 811 and passes it to the application Aa.
  • the mobile terminal N1 can execute the application Aa without activating the peripheral unit 810, and the energy efficiency of the mobile terminals N1 and N2 as a whole can be improved.
  • FIG. 9 is a flowchart (part 1) illustrating an example of a data processing procedure of the mobile terminal according to the second embodiment.
  • the scheduler 320 determines whether an activation request for the application A has been detected (step S901).
  • step S901: No If the scheduler 320 detects a startup request for the application A (step S901: Yes), the shared resource table 400 is referred to and it is determined whether or not the shared resource P is used when the application A is executed (step S901). S902).
  • step S902 when the shared resource P is not used (step S902: No), the process proceeds to step S913.
  • step S902: Yes when the shared resource P is used (step S902: Yes), the scheduler 320 broadcasts an activation confirmation request for the shared resource P to the network 210 (step S903).
  • the scheduler 320 determines whether the activation confirmation response for the shared resource P has been received from another mobile terminal Nj (step S904).
  • the scheduler 320 waits for reception of an activation confirmation response for the shared resource P (step S904: No). If the scheduler 320 receives the activation confirmation response for the shared resource P (step S904: Yes), the scheduler 320 determines whether the shared resource P is activated on another portable terminal Nj (step S905).
  • step S905 If the shared resource P is being activated on another mobile terminal Nj (step S905: Yes), whether the virtual device driver is set for the shared resource P with reference to the switching flag of the shared resource P by the scheduler 320 It is determined whether or not (step S906).
  • step S906: Yes when the virtual device driver is set in the shared resource P (step S906: Yes), the process proceeds to step S908.
  • step S906: No when the virtual device driver is not set in the shared resource P (step S906: No), the scheduler 320 switches the device driver of the shared resource P from the real device driver to the virtual device driver (step S907).
  • the scheduler 320 assigns the app A to any one of the CPUs # 1 to #k (step S908).
  • the scheduler 320 starts a survival check for determining whether or not the connection state with another mobile terminal Nj (hereinafter simply referred to as “server”) that has started up the shared resource P is maintained (step). S909).
  • step S910 determines whether or not communication with the server has been disconnected.
  • step S910: Yes the process returns to step S901 to repeat a series of processes.
  • step S910: No the scheduler 320 determines whether or not the execution of the application A is finished (step S911).
  • step S911: No when the execution of the application A has not ended (step S911: No), the process returns to step S910.
  • step S911: Yes when the execution of the application A is finished (step S911: Yes), a series of processes according to this flowchart is finished.
  • step S905 if the shared resource P is not activated on another portable terminal Nj (step S905: No), the scheduler 320 sets the shared resource flag of the shared resource P in the shared resource flag table 600 to “0”. Is changed to “1” (step S912). Then, the scheduler 320 assigns the app A to any one of the CPUs # 1 to #k (step S913), and the series of processes according to this flowchart ends.
  • the application A when executing the application A using the shared resource P, the application A can be executed using the shared resource P activated on the other portable terminal Nj.
  • FIG. 10 is a flowchart (part 2) illustrating an example of the data processing procedure of the mobile terminal according to the second embodiment.
  • the scheduler 320 determines whether or not a request for confirming the activation of the shared resource P has been received from another mobile terminal Nj (step S1001).
  • the scheduler 320 waits to receive a request for confirming the activation of the shared resource P (step S1001: No).
  • the scheduler 320 receives a request for confirming the activation of the shared resource P (step S1001: Yes)
  • the shared resource flag table 600 is referenced to determine whether or not the shared resource P is being activated in the own terminal ( Step S1002).
  • step S1003 when the shared resource P is being activated (step S1002: Yes), the scheduler 320 sends an activation confirmation response indicating that the shared resource P is activated to another mobile terminal Nj (hereinafter, simply referred to as a request source). (Referred to as “client”) (step S1003).
  • the scheduler 320 sets the access permission for the shared resource P from the client in the access permission table 700 (step S1004). Next, the scheduler 320 determines whether or not communication with the client has been disconnected (step S1005).
  • step S1006 determines whether or not the operation of the shared resource P in the own terminal has ended.
  • step S1006 determines whether or not the operation of the shared resource P in the own terminal has ended.
  • step S1006 when the operation of the shared resource P is completed (step S1006: Yes), the scheduler 320 changes the shared resource flag of the shared resource P in the shared resource flag table 600 from “1” to “0” (step S1007). ). Then, the scheduler 320 cancels the access permission for the shared resource P from the client (step S1008), and the series of processing according to this flowchart is terminated.
  • step S1002 If the shared resource P is not activated in step S1002 (step S1002: No), the scheduler 320 transmits an activation confirmation response indicating that the shared resource P is not activated to the client (step S1009). Then, a series of processes according to this flowchart is finished.
  • step S1005 If communication with the client is disconnected in step S1005 (step S1005: Yes), the scheduler 320 cancels the access permission for the shared resource P from the client (step S1008), and a series of processes according to this flowchart. Exit.
  • the shared resource P activated on the own terminal can be shared with other portable terminals Nj.
  • the mobile terminal Ni when the application A using the shared resource P is executed, the shared resource that is already activated in the other mobile terminal Nj via the network 210. P can be used. Thereby, the application A can be executed without starting the shared resource P on the portable terminal Ni, and the power consumption of the entire system can be reduced.
  • an activation confirmation response indicating whether or not the shared resource P is activated is requested in response to an activation confirmation request for the shared resource P from another portable terminal Nj. Can be sent to the original.
  • the shared resource P activated on the own terminal can be shared among a plurality of portable terminals.
  • the mobile terminal Ni according to the second embodiment, only the other mobile terminal Nj that is the request source for the request for confirming the activation of the shared resource P is set to permit access to the shared resource P that is activated on the own terminal. be able to. Thereby, unauthorized access to the shared resource P from terminals other than the client can be prevented.
  • the mobile terminal Ni when the operation of the shared resource P in the own terminal is finished or the communication with the client is disconnected, the access permission for the shared resource P from the client is released. can do.
  • the portable terminal Ni when the load of the shared resource P operating on the own terminal becomes equal to or greater than the predetermined value X, access permission to the shared resource P from other portable terminals Nj is permitted. Can be released. Thereby, it is possible to prevent waiting for processing of the shared resource P.
  • the shared resource P when there are a plurality of other terminals that have started up the shared resource P, the shared resource P can be selected by selecting and using the shared resource P having a smaller load. It is possible to avoid waiting for the process.
  • a usage scene is assumed in which ten mobile terminals N1 to N10 operate in conjunction with each other.
  • the energy consumption of 1300 [mWh] as a whole system is reduced as compared with the case where the GPS 304 is used continuously for all the mobile terminals N1 to N10 for one hour. be able to.
  • the power consumption of the entire system when a plurality of data processing apparatuses each execute an application using substantially the same peripheral unit can suppress and can improve energy efficiency.
  • each mobile terminal Ni there are applications that need not be executed simultaneously by two or more mobile terminals among the mobile terminals N1 to Nn.
  • the mobile terminal Ni is an application that uploads traffic information on the road to a server such as a traffic management center
  • the contents of the traffic information collected from a plurality of mobile terminals existing in the same area are almost the same.
  • most of the traffic jam information collected from a plurality of portable terminals is not used on the server side.
  • this application is less likely to be simultaneously executed by two or more portable terminals existing in the same area.
  • the determination unit 502 determines whether the application A belongs to a predetermined group.
  • the predetermined group is, for example, a set of applications that are unlikely to be simultaneously executed by two or more mobile terminals among the mobile terminals N1 to Nn. Note that information specifying a predetermined group is stored in the memory 301, for example.
  • the transmission unit 503 determines that the application A belongs to a predetermined group, the transmission unit 503 transmits an activation confirmation request for the application A to another mobile terminal Nj.
  • the activation confirmation request for the application A is information for inquiring other portable terminals Nj whether or not the application A is activated.
  • the reception unit 504 receives the activation confirmation response of the application A from the other portable terminal Nj as a result of the activation confirmation request of the application A being transmitted.
  • the activation confirmation response of the application A is information indicating whether the application A is activated.
  • the determination unit 505 determines whether or not the application A is activated on another portable terminal Nj based on the received activation confirmation response of the application A.
  • the determination process by the determination unit 505 may be performed based on, for example, an activation confirmation response for the application A from another mobile terminal Nj that can directly communicate with the ad hoc communication.
  • the assigning unit 507 assigns the app A to any one of the CPUs # 1 to #k when it is determined that the app A is not activated on another mobile terminal Nj. As a result, the application A is executed by the OS of the assignment destination CPU.
  • the allocation unit 507 does not allocate the app A when it is determined that the app A is activated on another mobile terminal Nj. That is, since the application A is activated on another portable terminal Nj and the necessity of executing the application A on the portable terminal Ni is low, the portable terminal Ni does not activate the application A.
  • the mobile terminal Ni it is possible to suppress the execution of the application A which is less necessary to be executed simultaneously with the other mobile terminals Nj, and to reduce the power consumption required for the execution of the application A.
  • the receiving unit 504 receives a request for confirming activation of the application A from another mobile terminal Nj.
  • determination unit 505 determines whether application A is activated on its own terminal. Then, the transmission unit 503 transmits an activation confirmation response indicating whether or not the application A is activated on its own terminal to the other mobile terminal Nj that is the request source.
  • FIG. 11 is a flowchart (part 1) illustrating an example of a data processing procedure of the mobile terminal according to the third embodiment.
  • the scheduler 320 determines whether an activation request for the application A has been detected (step S1101).
  • step S1101: No it waits for the scheduler 320 to detect the activation request for the application A (step S1101: No).
  • step S1101: Yes it is determined whether the application A belongs to a predetermined group (step S1102).
  • step S1102 when it does not belong to the predetermined group (step S1102: No), the process proceeds to step S1106.
  • step S1102: Yes when belonging to a predetermined group (step S1102: Yes), the scheduler 320 broadcasts an activation confirmation request for the application A to the network 210 (step S1103).
  • the scheduler 320 determines whether an activation confirmation response for the application A has been received from another portable terminal Nj (step S1104). Here, it waits for the scheduler 320 to receive an activation confirmation response for the application A (step S1104: No). If the scheduler 320 receives the activation confirmation response of the application A (step S1104: Yes), it is determined whether the application A is activated on another mobile terminal Nj (step S1105).
  • step S1105: Yes when the application A is being activated on another mobile terminal Nj (step S1105: Yes), a series of processes according to this flowchart is terminated.
  • step S1105: No when the application A is not activated on another portable terminal Nj (step S1105: No), the scheduler 320 assigns the application A to any one of the CPUs # 1 to #k (step S1106), A series of processes according to the flowchart ends.
  • FIG. 12 is a flowchart (part 2) illustrating an example of a data processing procedure of the mobile terminal according to the third embodiment.
  • the scheduler 320 determines whether or not the activation confirmation request for the application A is received from another portable terminal Nj (step S1201).
  • step S1201 it waits for the scheduler 320 to receive an application A activation confirmation request (step S1201: No). If the scheduler 320 receives a request for confirming the activation of the application A (step S1201: Yes), the scheduler 320 determines whether the application A is being activated on the own terminal (step S1202).
  • step S1202: Yes when the application A is being activated (step S1202: Yes), the scheduler 320 transmits an activation confirmation response indicating that the application A is activated to the other portable terminal Nj that is the request source (step S1202: Yes) S1203), a series of processing according to this flowchart is terminated.
  • step S1202: No when the application A is not activated (step S1202: No), the scheduler 320 transmits an activation confirmation response indicating that the application A is not activated to the other portable terminal Nj that is the request source (step S1202: No). S1204), a series of processing according to this flowchart is terminated. Thereby, it can respond to other portable terminal Nj whether the application A is started.
  • FIG. 13 is an explanatory diagram showing an application example of a system using a computer according to the present embodiment.
  • a network NW is a network in which servers 1301 and 1302 and clients 1331 to 1334 can communicate with each other.
  • the server 1302 is a management server of a server group (servers 1321 to 1325) constituting the cloud 1320.
  • the client 1331 is a notebook personal computer
  • the client 1332 is a desktop personal computer
  • the client 1333 is a mobile phone (which may be a smartphone or PHS (Personal Handyphone System))
  • the client 1334 is a tablet terminal.
  • the servers 1301, 1302, 1321 to 1325, and clients 1331 to 1334 in FIG. 13 have the same functions as, for example, the data processing apparatuses 101 and 102 described in the first embodiment or the portable terminal Ni described in the second embodiment. It is realized by a computer having
  • the data processing method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation.
  • the data processing program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer.
  • the data processing program may be distributed via a network such as the Internet.

Landscapes

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

Abstract

 データ処理装置(101)は、アプリ(a)の起動要求を受け付ける。データ処理装置(101)は、アプリ(a)を実行する際に用いる周辺ユニット(P1)を起動しているか否かをデータ処理装置(102)に問い合わせる。データ処理装置(102)は、周辺ユニット(P1)を起動しているか否かの問い合わせを受け付けると、周辺ユニット(P1)を起動しているか否かを判断する。データ処理装置(102)は、周辺ユニット(P1)を起動しているか否かを示す起動確認応答をデータ処理装置(101)に送信する。データ処理装置(101)は、データ処理装置(102)で周辺ユニット(P1)が起動中の場合、データ処理装置(102)で起動中の周辺ユニット(P1)を用いてアプリ(a)を実行する。

Description

データ処理方法およびデータ処理システム
 本発明は、データ処理方法およびデータ処理システムに関する。
 従来、携帯電話、PDA(Personal Digital Assistant)等の端末をノードとして、複数のノードを、分散したメモリを有するマルチプロセッサとすることで分散並列処理を行う技術がある。このような分散メモリ型の計算機でアプリケーションを動作させることによりスケーラブルな性能を達成することが可能となる。
 また、コプロセッサ、DSP(Digital Signal Processor)、GPS(Global Positioning System)等のハードウェアを備えた端末の登場により、グラフィックアプリ、マルチメディアアプリ、地図アプリ等の様々なアプリケーションを各端末上で動作させることができるようになってきている。
 関連する先行技術としては、例えば、電子機器が、自機のジョブの実行中に自機のリソースの残量が所定量以下になった場合に、他の電子機器に対してリソースの借用を要求するものがある。また、計算資源の借用者と提供者の間で電子的デバイスを用いて認証処理を行い、互いに正当性を認識した場合に、借用者から提供者に課題解決のアプリケーションを送信し、提供者が自己の計算資源を用いてアプリケーションを実施して借用者に送信する技術がある。また、分散システムにおいて、複数の機器から検出された、要求されたサービスに必要な資源が、資源公開ポリシを満たすか否かを判定し、資源公開ポリシを満たす資源を連携させてサービスを提供する技術がある。
特開2007-325235号公報 特開2005-50272号公報 特開2004-199300号公報
 しかしながら、従来技術では、複数のデータ処理装置(例えば、端末)を含むシステムにおいて、各々のデータ処理装置がアプリケーションを実行する場合の、システム全体でのエネルギー効率に対する配慮が十分ではないという問題がある。
 本発明は、上述した従来技術による問題点を解消するため、複数のデータ処理装置を含むシステム全体の消費電力を抑制することができるデータ処理方法およびデータ処理システムを提供することを目的とする。
 上述した課題を解決し、目的を達成するため、本発明の一側面によれば、複数のデータ処理装置のうちの第1データ処理装置に起動要求されたアプリケーションが所定のグループに属するか否かを判定し、前記アプリケーションが前記所定のグループに属するときは、前記複数のデータ処理装置の他のデータ処理装置で前記アプリケーションが起動されているか否かを判定し、前記アプリケーションが前記他のデータ処理装置で起動されているときは、前記第1データ処理装置は前記アプリケーションを起動しないデータ処理方法が提案される。
 また、本発明の別の一側面によれば、それぞれが少なくとも一の周辺ユニットを含む複数のデータ処理装置と、前記複数のデータ処理装置のうちの第1データ処理装置の第1周辺ユニットに対する起動要求があるときに、前記複数のデータ処理装置のうちの第2データ処理装置の第2周辺ユニットが起動されているときは、前記第1周辺ユニットを起動しないで前記第2周辺ユニットの実行を共用するスケジューラと、を含むデータ処理システムが提案される。
 本発明の一側面によれば、複数のデータ処理装置を含むシステム全体の消費電力を抑制することができるという効果を奏する。
図1は、実施の形態1にかかるデータ処理方法の一実施例を示す説明図である。 図2は、実施の形態2にかかるデータ処理システムのシステム構成例を示す説明図である。 図3は、実施の形態2にかかる携帯端末のハードウェア構成例を示す説明図である。 図4は、共用リソーステーブルの記憶内容の一例を示す説明図である。 図5は、実施の形態2にかかる携帯端末の機能的構成例を示すブロック図である。 図6は、共用リソースフラグテーブルの記憶内容の一例を示す説明図である。 図7は、アクセス許可テーブルの記憶内容の一例を示す説明図である。 図8は、携帯端末間の動作連携例を示す説明図である。 図9は、実施の形態2にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その1)である。 図10は、実施の形態2にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その2)である。 図11は、実施の形態3にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その1)である。 図12は、実施の形態3にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その2)である。 図13は、本実施の形態にかかるコンピュータを用いたシステムの適用例を示す説明図である。
 以下に添付図面を参照して、この発明にかかるデータ処理方法およびデータ処理システムの実施の形態を詳細に説明する。
(実施の形態1)
 図1は、実施の形態1にかかるデータ処理方法の一実施例を示す説明図である。図1において、データ処理装置101,102は、アプリケーション(以下、単に「アプリ」ともいう)を実行可能なコンピュータである。データ処理装置101,102は、例えば、携帯電話、PDA、スマートフォン、ノートPC(Personal Computer)、ゲーム機器、PC、サーバなどである。
 各データ処理装置101,102は、少なくとも一のCPU(Central Processing Unit)と、少なくとも一の周辺ユニットと、を含む。図1の例では、データ処理装置101は、CPU111,112と、周辺ユニットP1~P3と、を含む。CPU111は、OS(Operating System)113を実行し、データ処理装置101の全体の制御を司る。OS113は、アプリケーションをどのCPUに割り当てるかを制御するスケジューラ115を備えている。また、CPU111は、割り当てられたアプリケーションを実行する。CPU112は、OS114を実行し、OS114に割り当てられたアプリケーションを実行する。
 また、データ処理装置102は、CPU121,122と、周辺ユニットP1~P3と、を含む。CPU121は、OS123を実行し、データ処理装置102の全体の制御を司る。OS123は、アプリケーションをどのCPUに割り当てるかを制御するスケジューラ125を備えている。また、CPU121は、割り当てられたアプリケーションを実行する。CPU122は、OS124を実行し、OS124に割り当てられたアプリケーションを実行する。
 周辺ユニットP1~P3は、各種アプリケーションを実行する際に用いられるハードウェアリソースであり、例えば、コプロセッサ、DSP、GPSデバイス、カメラデバイス、通信I/F(Interface)、暗号化回路などである。図1において、データ処理装置101の周辺ユニットP1と、データ処理装置102の周辺ユニットP1とは、機能が実質的に同じであればよく、例えば、処理性能が異なるものであってもよい。周辺ユニットP2,P3についても同様である。
 例えば、地図アプリや経路探索アプリなどを実行する場合、コプロセッサやGPSデバイスなどのハードウェアリソースが用いられる。また、マルチメディアアプリを実行する場合、コプロセッサやDSPなどのハードウェアリソースが用いられる。また、グラフィックアプリケーションを実行する場合、コプロセッサなどのハードウェアリソースが用いられる。また、SNS(Social Networking Service)アプリや業務アプリを実行する場合、暗号化回路などのハードウェアリソースが用いられる。
 ここで、データ処理装置101,102それぞれが、実質的に同じハードウェアリソースを用いて、同一または異なるアプリケーションを実行すると、データ処理装置101,102全体としてエネルギー効率が良いとはいえない場合がある。
 例えば、同一エリアに存在するデータ処理装置101,102が、GPSデバイスを用いたアプリケーションをそれぞれ実行する場合を想定する。なお、エリアとは、地図上の領域を区切って分割されたいずれかのエリアである。この場合、同一エリアに存在するデータ処理装置101,102の座標データは、ほぼ同じものとなる。このため、各データ処理装置101,102で個別にGPSデバイスを動作させて座標データを取得することは効率的ではない。また、ハードウェアリソースを起動すると処理内容に関わらず所定の電力が消費されるため、起動中のハードウェアリソース数が増えるほどシステム全体としての消費電力が増加する。
 そこで、実施の形態1では、複数のデータ処理装置(例えば、データ処理装置101,102)が、機能が実質的に同じ周辺ユニットを用いるアプリケーションを各々実行する際に、いずれかのデータ処理装置で最初に起動された周辺ユニットを装置間で共用する。これにより、各々のデータ処理装置で周辺ユニットを起動しなくてもアプリケーションを実行することが可能となり、システム全体としての消費電力を削減する。
 以下、データ処理装置101,102のデータ処理手順の一実施例について説明する。ここでは、一例として、データ処理装置102が周辺ユニットP1を用いるアプリbを実行していることにし、また、周辺ユニットP3を「通信I/F」とする。
 (1)データ処理装置101は、アプリaの起動要求を受け付ける。具体的には、例えば、スケジューラ115が、OS113からアプリaの起動要求を受け付ける。ここで、アプリaは、実行時に周辺ユニットP1を用いるアプリケーションである。
 (2)データ処理装置101は、アプリaを実行する際に用いる周辺ユニットP1を起動しているか否かをデータ処理装置102に問い合わせる。具体的には、例えば、スケジューラ115が、通信I/F(周辺ユニットP3)を介して、周辺ユニットP1の起動確認要求をデータ処理装置102に送信する。
 (3)データ処理装置102は、周辺ユニットP1を起動しているか否かの問い合わせを受け付けると、周辺ユニットP1を起動しているか否かを判断する。具体的には、例えば、スケジューラ125が、周辺ユニットP1が起動中であることを示すフラグがセットされているか否かを判断する。
 (4)データ処理装置102は、周辺ユニットP1を起動しているか否かを示す起動確認応答をデータ処理装置101に送信する。具体的には、例えば、スケジューラ125が、通信I/F(周辺ユニットP3)を介して、周辺ユニットP1の起動確認応答をデータ処理装置101に送信する。
 ここでは、アプリbの実行に用いられる周辺ユニットP1が動作している、すなわち、周辺ユニットP1が起動中であることを示すフラグがセットされている。このため、データ処理装置102が、周辺ユニットP1を起動中であることを示す起動確認応答をデータ処理装置101に送信する。この結果、データ処理装置101によって周辺ユニットP1の起動確認応答が受信される。
 (5)データ処理装置101は、データ処理装置102で周辺ユニットP1が起動中の場合、データ処理装置102で起動中の周辺ユニットP1を用いてアプリaを実行する。すなわち、データ処理装置101は、自装置の周辺ユニットP1を起動しないで、データ処理装置102で起動中の周辺ユニットP1をデータ処理装置102と共用する。
 なお、上記(5)において、データ処理装置102で周辺ユニットP1が起動されていない場合、データ処理装置101は、自装置の周辺ユニットP1を起動してアプリaを実行することになる。この場合、自装置の周辺ユニットP1が起動中であることを示すフラグがセットされる。
 以上説明した実施の形態1によれば、データ処理装置101が周辺ユニットP1を用いるアプリaを実行する際に、データ処理装置102で既に起動されている周辺ユニットP1を利用することができる。これにより、データ処理装置101で周辺ユニットP1を起動しなくてもアプリaを実行することが可能となり、システム全体としての消費電力を削減することができる。
(実施の形態2)
 つぎに、実施の形態2にかかるデータ処理システムについて説明する。なお、実施の形態1で説明した箇所と同様の箇所については説明を省略する。
 図2は、実施の形態2にかかるデータ処理システムのシステム構成例を示す説明図である。図2において、データ処理システム200は、携帯端末N1~Nnを含む(n:2以上の自然数)。携帯端末N1~Nnは、例えば、携帯電話、PDA、スマートフォン、ノートPC、ゲーム機器などのコンピュータであり、図1に示したデータ処理装置101,102に相当する。
 データ処理システム200において、携帯端末N1~Nnは、無線または有線のネットワーク210を介して相互に通信可能に接続されている。ネットワーク210は、例えば、アドホックネットワーク、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
 アドホックネットワークは、無線通信でリンクする自己構成型のネットワークの一種である。アドホックネットワークは複数のノード(携帯端末N1~Nn)により構成される。アドホックネットワーク内の各携帯端末N1~Nnは、他の携帯端末とアドホック通信可能である。なお、データ処理システム200は、基地局やゲートウェイを含むことにしてもよい。
(携帯端末N1~Nnのハードウェア構成例)
 つぎに、実施の形態2にかかる携帯端末N1~Nnのハードウェア構成例について説明する。以下の説明では、携帯端末N1~Nnのうち任意の携帯端末を「携帯端末Ni」と表記する(i=1,2,…,n)。
 図3は、実施の形態2にかかる携帯端末のハードウェア構成例を示す説明図である。図3において、携帯端末Niは、CPU#1~CPU#k(k:1以上の自然数)と、メモリ301と、コプロセッサ302と、DSP303と、GPS304と、暗号化回路305と、通信I/F306と、を有している。
 携帯端末Niにおいて、CPU#1~CPU#k、メモリ301、コプロセッサ302、DSP303、GPS304、暗号化回路305および通信I/F306は、バス310を介して接続されている。また、図面では、携帯端末Niが有するソフトウェア(OS#1~#k、スケジューラ320)を一部抜粋して表示している。
 CPU#1は、OS#1を実行し、携帯端末Niの全体の制御を司る。OS#1は、マスタOSであり、アプリケーションをどのCPUに割り当てるかを制御するスケジューラ320を備えている。また、CPU#1は、割り当てられたアプリケーションを実行する。CPU#2~CPU#kは、それぞれOS#2~OS#kを実行し、各OSに割り当てられたアプリケーションを実行する。OS#2~OS#kは、スレーブOSである。
 メモリ301は、CPU#1~CPU#kに共有されるメモリである。メモリ301は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有している。
 具体的には、例えば、フラッシュROMが各OSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU#1~CPU#kのワークエリアとして使用される。メモリ301に記憶されているプログラムは、各CPUにロードされることで、コーディングされている処理を該各CPUに実行させることになる。
 コプロセッサ302は、CPU#1~CPU#kの補助を行う副処理装置である。コプロセッサ302としては、例えば、FPU(Floating Point number processing Unit)、GPU(Graphics Processing Unit)などがある。
 DSP303は、音声や画像などの処理に特化したマイクロプロセッサである。GPS304は、GPS衛星からの電波を受信し、携帯端末Niの位置を示す位置情報を出力するデバイスである。携帯端末Niの位置情報は、例えば、緯度・経度、高度などの地球上の1点を特定する座標データである。
 暗号化回路305は、データを暗号化する回路である。通信I/F306は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して外部装置に接続される。そして、通信I/F306は、ネットワーク210と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。
 なお、図示は省略するが、携帯端末Niは、例えば、メモリ301に対するデータのリード/ライトを制御するメモリコントローラ、各部に電源電圧を供給するPMU(Power Management Unit)のほか、ディスプレイやキーボードなどを有することにしてもよい。
 また、上述した説明では、携帯端末N1~Nnが同様のハードウェア構成を有するものとして説明したが、これに限らない。具体的には、例えば、携帯端末Niは、上述した周辺ユニット(符号301~306)とは異なる周辺ユニットを有することにしてもよく、また、上述した周辺ユニット(符号301~306)の一部を有さないことにしてもよい。
(共用リソーステーブル400の記憶内容)
 つぎに、携帯端末Niが用いる共用リソーステーブル400について説明する。ここで、アプリケーションの実行に用いられる周辺ユニットの中には、複数の携帯端末間で共用するのに好ましくないものがある。例えば、図3に示した暗号化回路305は、セキュリティの観点から複数の携帯端末間で共用するのに好ましくない。共用リソーステーブル400は、各アプリケーションの実行に用いられる周辺ユニットのうち、複数の携帯端末間での共用を許可する周辺ユニットを示す情報である。
 図4は、共用リソーステーブルの記憶内容の一例を示す説明図である。図4において、共用リソーステーブル400は、アプリID、アプリ名および共用リソース名のフィールドを有し、各フィールドに情報を設定することで、アプリケーションA1~Amごとの共用リソース情報400-1~400-mをレコードとして記憶している。
 アプリIDは、本明細書において使用する各アプリケーションの識別子である。アプリ名は、各アプリケーションの名称である。共用リソース名は、各アプリケーションの実行に用いられる周辺ユニットのうち、複数の携帯端末間での共用を許可する周辺ユニットの名称である。
 共用リソース情報400-1を例に挙げると、アプリケーションA1のアプリ名「グラフィック」およびアプリケーションA1の実行時に複数の携帯端末間で共用可能な共用リソース名「コプロセッサ」が示されている。
 また、共用リソース情報400-2を例に挙げると、アプリケーションA2のアプリ名「マルチメディア」およびアプリケーションA2の実行時に複数の携帯端末間で共用可能な共用リソース名「コプロセッサ、DSP」が示されている。
 共用リソーステーブル400は、例えば、図3に示したメモリ301に記憶されている。具体的には、例えば、各アプリケーションA1~Amの共用リソース情報400-1~400-mは、各アプリケーションA1~Amの実行オブジェクトとともに携帯端末Niのファイルシステムに格納されている。なお、共用リソーステーブル400は、例えば、各アプリケーションのコンパイル時に、各アプリケーションのメイクファイルを参照して、複数の携帯端末間で共用可能な周辺ユニットと各携帯端末Nが有する周辺ユニットとを照合することで作成される。
(携帯端末Niの機能的構成例)
 図5は、実施の形態2にかかる携帯端末の機能的構成例を示すブロック図である。図5において、携帯端末Niは、検出部501と、判定部502と、送信部503と、受信部504と、判断部505と、切替部506と、割当部507と、設定部508と、を含む構成である。この制御部となる機能(検出部501~設定部508)は、具体的には、例えば、図3に示したメモリ301に記憶されたプログラムをCPU♯1に実行させることにより、または、通信I/F306により、その機能を実現する。また、各機能部の処理結果は、例えば、メモリ301に記憶される。
 まず、携帯端末Niが他の携帯端末Nj(j≠i、j=1,2,…,n)に対して共用リソースの使用を依頼する側(以下、「クライアント」という)となる場合の携帯端末Niの各機能部について説明する。
 検出部501は、アプリケーションの起動要求を検出する。具体的には、例えば、スケジューラ320が、OS#1からのアプリケーションの起動要求を検出する。以下の説明では、起動要求が検出されたアプリケーションを「アプリA」と表記する。
 判定部502は、アプリAの起動要求が検出された場合、アプリAの実行時に共用リソースPを使用するか否かを判定する。ここで、共用リソースPとは、複数の携帯端末間での共用が許可されている周辺ユニット、すなわち、複数の携帯端末間で共用可能な周辺ユニットである。
 具体的には、例えば、スケジューラ320が、図4に示した共用リソーステーブル400を参照して、アプリAの実行時に共用リソースPを使用するか否かを判定する。例えば、アプリAを「アプリケーションA1」とする。この場合、スケジューラ320が、共用リソーステーブル400を参照して、アプリケーションA1の実行時に共用リソースPとして「コプロセッサ302」を使用すると判定する。また、例えば、アプリAを「アプリケーションA3」とする。この場合、スケジューラ320が、共用リソーステーブル400を参照して、アプリケーションA3の実行時に共用リソースPとして「コプロセッサ302、GPS304」を使用すると判定する。
 送信部503は、アプリAの実行時に共用リソースPを使用すると判定された場合、共用リソースPの起動確認要求を他の携帯端末Njに送信する。ここで、共用リソースPの起動確認要求とは、共用リソースPを起動しているか否かを他の携帯端末Njに問い合わせる情報である。
 具体的には、例えば、スケジューラ320が、通信I/F306を制御して、アドホック通信により、共用リソースPの起動確認要求をネットワーク210にブロードキャストする。例えば、アプリAを「アプリケーションA1」とする。この場合、スケジューラ320が、共用リソースPであるコプロセッサ302の起動確認要求をブロードキャストする。
 また、アプリAの実行時に用いられる共用リソースPが複数存在する場合、スケジューラ320は、各々の共用リソースPの起動確認要求をブロードキャストする。例えば、アプリAを「アプリケーションA3」とする。この場合、スケジューラ320が、共用リソースPであるコプロセッサ302の起動確認要求およびGPS304の起動確認要求をブロードキャストしてもよく、また、コプロセッサ302およびGPS304の起動確認要求を一括してブロードキャストしてもよい。
 受信部504は、共用リソースPの起動確認要求が送信された結果、共用リソースPの起動確認応答を他の携帯端末Njから受信する。ここで、共用リソースPの起動確認応答とは、共用リソースPを起動しているか否かを示す情報である。具体的には、例えば、スケジューラ320が、通信I/F306を介して、共用リソースPの起動確認応答を他の携帯端末Njから受信する。
 判断部505は、受信された共用リソースPの起動確認応答に基づいて、アプリAの実行に用いられる共用リソースPが他の携帯端末Njで起動しているか否かを判断する。具体的には、例えば、他の携帯端末Njから共用リソースPを起動していることを示す起動確認応答が受信された場合、スケジューラ320が、共用リソースPが他の携帯端末Njで起動していると判断する。
 一方、共用リソースPの起動確認要求が送信されてから一定時間経過しても、共用リソースPを起動していることを示す起動確認応答が受信されなかった場合、スケジューラ320が、共用リソースPが他の携帯端末Njで起動していないと判断してもよい。また、一定時間経過前に、携帯端末N1~Nnのうち自端末とは異なるすべての携帯端末から、共用リソースPを起動していないことを示す起動確認応答が受信された場合は、スケジューラ320が、共用リソースPが他の携帯端末Njで起動していないと判断する。
 切替部506は、共用リソースPが他の携帯端末Njで起動していると判断された場合、共用リソースPのデバイスドライバを、実デバイスドライバから仮想デバイスドライバに切り替える。ここで、実デバイスドライバとは、自端末の共用リソースPを動作させるためのソフトウェアである。仮想デバイスドライバとは、ネットワーク210を介して他の携帯端末Njと通信することにより、共用リソースPの機能を、他の携帯端末Njで起動している共用リソースPを用いて実現するためのソフトウェアである。
 具体的には、例えば、他の携帯端末Njで共用リソースPが起動している場合、スケジューラ320が、共用リソースPのドライバAPI(Application Program Interface)に関連付けるデバイスドライバを、実デバイスドライバから仮想デバイスドライバに切り替える。なお、初期状態では、共用リソースPのドライバAPIは、共用リソースPの実デバイスドライバと関連付けられている。より具体的には、例えば、スケジューラ320が、共用リソースPの実デバイスドライバをアンロードした後、共用リソースPの仮想デバイスドライバをロードする。
 また、共用リソースPのドライバAPIに、共用リソースPの仮想デバイスドライバを関連付ける場合、スケジューラ320が、共用リソースPを起動している他の携帯端末Njの識別情報を仮想デバイスドライバに設定する。他の携帯端末Njの識別情報としては、例えば、他の携帯端末Njのアドレスを用いることができる。これにより、アプリAの実行に用いられる共用リソースPを起動している他の携帯端末Njを識別することができる。
 また、共用リソースPを起動している他端末が複数存在する場合がある。この場合、スケジューラ320が、共用リソースPを起動している複数の他端末のうち、最も早く起動確認応答を送信してきた他端末の識別情報を仮想デバイスドライバに設定することにしてもよい。
 また、スケジューラ320が、共用リソースPを起動している複数の他端末のうち、共用リソースPの負荷が最小となる他端末の識別情報を仮想デバイスドライバに設定することにしてもよい。ここで、共用リソースPの負荷とは、例えば、共用リソースPの使用率である。
 各他端末での共用リソースPの負荷を特定する負荷情報は、例えば、共用リソースPを起動していることを示す起動確認応答に含まれている。このように、共用リソースPを起動している他端末が複数存在する場合は、より負荷が小さい共用リソースPを選択して共用することにより、共用リソースPの処理待ちが発生することを回避することができる。
 また、切替部506は、共用リソースPのデバイスドライバを仮想デバイスドライバに切り替えた場合、共用リソースPの切替フラグを「0」から「1」に設定する。ここで、共用リソースPの切替フラグとは、共用リソースPのドライバAPIに関連付けられているデバイスドライバを識別するための情報である。
 ここでは、切替フラグが「0」の場合、共用リソースPのドライバAPIに実デバイスドライバが関連付けられていることを示す。一方、切替フラグが「0」の場合、共用リソースPのドライバAPIに仮想デバイスドライバが関連付けられていることを示す。なお、初期状態では、共用リソースPの切替フラグは「0」である。
 割当部507は、共用リソースPのデバイスドライバが仮想デバイスドライバに切り替えられた結果、アプリAをCPU#1~#kのいずれかのCPUに割り当てる。具体的には、例えば、スケジューラ320が、各CPU#1~#kの負荷情報に基づいて、CPU#1~#kの中からアプリAの割当先となるCPUを選択して、該CPUにアプリAを割り当てる。
 この結果、割当先のCPUのOSにより、アプリAが実行される。この場合、共用リソースPのデバイスドライバが仮想デバイスドライバに切り替えられているため、他の携帯端末Njで起動している共用リソースPを用いてアプリAが実行される。これにより、自端末の共用リソースPを起動することなく、アプリAを実行することができる。
 なお、複数の携帯端末で共用リソースPを共用する際の携帯端末間の動作連携例については、図8を用いて後述する。
 設定部508は、共用リソースPが他の携帯端末Njで起動していないと判断された場合、共用リソースPを起動していることを示すフラグを設定する。具体的には、例えば、スケジューラ320が、図6に示す共用リソースフラグテーブル600に、共用リソースPを起動していることを示すフラグを設定することにしてもよい。
 ここで、共用リソースフラグテーブル600について説明する。共用リソースフラグテーブル600は、例えば、メモリ301により実現される。
 図6は、共用リソースフラグテーブルの記憶内容の一例を示す説明図である。図6において、共用リソースフラグテーブル600は、共用リソース名および共用リソースフラグのフィールドを有する。各フィールドに情報を設定することで、各共用リソースを起動しているか否かを示すフラグ情報600-1~600-3が記憶されている。
 共用リソース名は、共用リソースの名称である。この共有リソースは、例えば、図4に示した共用リソーステーブル400に登録されている周辺ユニットである。共用リソースフラグは、共用リソースを起動しているか否かを示すフラグである。ここでは、共用リソースフラグが「0」の場合、共用リソースを起動していないことを示す。一方、共用リソースフラグが「1」の場合は、共用リソースを起動していることを示す。なお、初期状態では、共用リソースフラグは「0」である。
 一例として、共用リソースPである「コプロセッサ302」が他の携帯端末Njで起動していないと判断された場合、スケジューラ320が、共用リソースフラグテーブル600内のフラグ情報600-1の共用リソースフラグを「0」から「1」に変更する。
 図5の説明に戻り、割当部507は、共用リソースPが他の携帯端末Njで起動していないと判断された場合、アプリAをCPU#1~#kのいずれかのCPUに割り当てる。この結果、割当先のCPUのOSにより、アプリAが実行される。この場合、共用リソースPのデバイスドライバが実デバイスドライバのため、自端末の共用リソースPを用いてアプリAが実行される。
 なお、上述した設定部508による、共用リソースPを起動していることを示すフラグを設定する処理は、アプリAがいずれかのCPUに割り当てられた後に行われることにしてもよい。
 また、割当部507は、アプリAの実行時に共用リソースPを使用しないと判定された場合、アプリAをCPU#1~#kのいずれかのCPUに割り当てる。この結果、割当先のCPUのOSにより、アプリAが実行される。すなわち、アプリAの実行に用いられる周辺ユニットの中に、他の携帯端末Njと共用可能な周辺ユニットがないため、自端末の周辺ユニットを用いてアプリAが実行される。
 つぎに、携帯端末Niが他の携帯端末Njから共用リソースPの使用を依頼される側(以下、「サーバ」という)となる場合の携帯端末Niの各機能部について説明する。
 受信部504は、共用リソースPの起動確認要求を他の携帯端末Njから受信する。ここで、共用リソースPは、他の携帯端末Njで起動要求が検出されたアプリAの実行に用いられる共用リソースである。具体的には、例えば、スケジューラ320が、ネットワーク210を介して、共用リソースPの起動確認要求を他の携帯端末Njから受信する。
 判断部505は、共用リソースPの起動確認要求が受信された場合、自端末で共用リソースPを起動しているか否かを判断する。具体的には、例えば、スケジューラ320が、図6に示した共用リソースフラグテーブル600を参照して、自端末で共用リソースPを起動しているか否かを判断することにしてもよい。
 一例として、共用リソースPである「コプロセッサ302」の起動確認要求が受信されたとする。この場合、スケジューラ320が、共用リソースフラグテーブル600の中からコプロセッサ302のフラグ情報600-1を特定する。そして、フラグ情報600-1の共用リソースフラグに「1」が設定されている場合、スケジューラ320が、コプロセッサ302を起動していると判断する。一方、フラグ情報600-1の共用リソースフラグに「0」が設定されている場合、スケジューラ320が、コプロセッサ302を起動していないと判断する。
 送信部503は、共用リソースPの起動確認応答を他の携帯端末Njに送信する。具体的には、例えば、共用リソースPを起動していないと判断された場合、スケジューラ320が、通信I/F306を制御して、アドホック通信により、共用リソースPを起動していないことを示す起動確認応答を要求元の他の携帯端末Njに送信する。一方、共用リソースPを起動していると判断された場合、スケジューラ320が、通信I/F306を制御して、アドホック通信により、共用リソースPを起動していることを示す起動確認応答を要求元の他の携帯端末Njに送信する。
 また、設定部508は、共用リソースPを起動していると判断された場合、他の携帯端末Njからの共用リソースPに対するアクセス許可を設定する。具体的には、例えば、スケジューラ320が、図7に示すアクセス許可テーブル700に要求元の他の携帯端末Njからの共用リソースPに対するアクセス許可を設定することにしてもよい。
 ここで、アクセス許可テーブル700について説明する。アクセス許可テーブル700は、例えば、メモリ301により実現される。
 図7は、アクセス許可テーブルの記憶内容の一例を示す説明図である。図7において、アクセス許可テーブル700は、共用リソース名および端末IDのフィールドを有する。各フィールドに情報を設定することで、共用リソースごとのアクセス許可情報700-1~700-3がレコードとして記憶されている。
 共用リソース名は、共用リソースの名称である。この共有リソースは、例えば、図4に示した共用リソーステーブル400に登録されている周辺ユニットである。端末IDは、共用リソースに対するアクセスを許可する他の携帯端末Njの識別情報である。端末IDとしては、例えば、他の携帯端末Njのアドレスを用いることができる。
 例えば、自端末を携帯端末N1とし、携帯端末N2から「コプロセッサ302」の起動確認要求を受信した場合を例に挙げる。ここで、コプロセッサ302を起動している場合、スケジューラ320が、アクセス許可テーブル700内のアクセス許可情報700-1の端末IDフィールドに携帯端末N2の端末ID「N2」を設定する(図7中、(7-2)参照)。
 以降、携帯端末N1は、携帯端末N2から自端末のコプロセッサ302に対するアクセス要求があった場合、コプロセッサ302に対するアクセスを許可する。一方、アクセス許可情報700-1の端末IDフィールドに端末IDが設定されていない他の携帯端末Njからコプロセッサ302に対するアクセス要求があった場合、携帯端末N1は、コプロセッサ302に対するアクセスを許可しない。
 これにより、自端末で起動している共用リソースPをクライアントと共用することができるとともに、クライアント以外の他端末からの共用リソースPに対する不正なアクセスを防ぐことができる。
 図5の説明に戻り、判断部505は、共用リソースPの動作が終了したか否かを判断する。具体的には、例えば、スケジューラ320が、自端末での共用リソースPを用いたアプリケーションの実行が終了した場合に、共用リソースPの動作が終了したと判断することにしてもよい。
 また、設定部508は、共用リソースPの動作が終了したと判断された場合、共用リソースPが起動していないことを示すフラグを設定する。具体的には、例えば、スケジューラ320が、共用リソースフラグテーブル600に、共用リソースPが起動していないことを示すフラグを設定することにしてもよい。
 一例として、共用リソースPである「コプロセッサ302」の動作が終了したと判断された場合、スケジューラ320が、共用リソースフラグテーブル600内のフラグ情報600-1の共用リソースフラグを「1」から「0」に変更する。
 また、設定部508は、共用リソースPの動作が終了したと判断された場合、他の携帯端末Njからの共用リソースPに対するアクセス許可を解除(すなわち、アクセス禁止)する。具体的には、例えば、スケジューラ320が、アクセス許可テーブル700に設定されている他の携帯端末Njからの共用リソースPに対するアクセス許可を解除することにしてもよい。
 例えば、図7に示す(7-2)において、コプロセッサ302の動作が終了した場合、スケジューラ320が、アクセス許可テーブル700内のアクセス許可情報700-1の端末IDフィールドから携帯端末N2の端末ID「N2」を削除する(図7中、(7-3)参照)。これにより、他の携帯端末Njからの共用リソースPに対する不正なアクセスを防ぐことができる。
 また、設定部508は、自端末で起動している共用リソースPを共用しているクライアントとの通信が切断された場合、該クライアントからの共用リソースPに対するアクセス許可を解除することにしてもよい。クライアントとの通信が切断された場合とは、例えば、クライアントとの間で確立されているセッションが切断された場合でもよく、また、クライアントとの間の通信強度が所定値以下となった場合でもよい。
 また、判断部505は、自端末で起動している共用リソースPの負荷情報に基づいて、共用リソースPの負荷が所定値X以上となるか否かを判断することにしてもよい。所定値Xは、例えば、共用リソースPの負荷が所定値X以上となると、共用リソースPの処理待ちが発生するような状態になる値に設定される。なお、所定値Xは、例えば、予め設定されてメモリ301に記憶されている。
 また、設定部508は、共用リソースPの負荷が所定値X以上であると判断された場合、他の携帯端末Njからの共用リソースPに対するアクセス許可を解除することにしてもよい。これにより、共用リソースPの処理待ちが発生することを防ぐことができる。
 また、共用リソースPの起動確認要求を受信した時点で、自端末で起動している共用リソースPの負荷が所定値X以上の場合、送信部503は、共用リソースPを起動していないことを示す起動確認応答を要求元の他の携帯端末Njに送信することにしてもよい。これにより、共用リソースPの処理待ちが発生することを未然に防ぐことができる。
 また、送信部503は、共用リソースPを起動していると判断された場合、共用リソースPの負荷情報を含む起動確認応答を要求元の他の携帯端末Njに送信することにしてもよい。これにより、上述したように、共用リソースPを起動している携帯端末が複数存在する場合に、クライアント側で、より負荷が小さい共用リソースPを選択して共用することができ、共用リソースPの処理待ちが発生することを回避することができる。
(携帯端末間の動作連携例)
 つぎに、複数の携帯端末で共用リソースPを共用する際の携帯端末間の動作連携例について説明する。図8は、携帯端末間の動作連携例を示す説明図である。図8において、携帯端末N1は、クライアント側の携帯端末であり、周辺ユニット810と通信I/F811とを含む。携帯端末N2は、サーバ側の携帯端末であり、周辺ユニット820と通信I/F821とを含む。
 通信I/F811,821は、図3に示した通信I/F306に相当する。また、周辺ユニット810と周辺ユニット820は、実質的に機能が同じ共用リソースPであり、例えば、図3に示したコプロセッサ302、DSP303、GPS304などに相当する。
 ここで、アプリAaは、実行時に共用リソースPである周辺ユニット810を用いるアプリケーションである。また、アプリAbは、実行時に共用リソースPである周辺ユニット820を用いるアプリケーションである。
 ドライバAPI812、実デバイスドライバ813および仮想デバイスドライバ814は、携帯端末N1のOSに含まれる周辺ユニット810に関するプログラムである。また、ドライバAPI822、実デバイスドライバ823および仮想デバイスドライバ824は、携帯端末N2のOSに含まれる周辺ユニット820に関するプログラムである。
 ここでは、クライアント側の携帯端末N1において、アプリAaの起動要求が検出された結果、周辺ユニット810のドライバAPI812と仮想デバイスドライバ814とが関連付けられている。一方、サーバ側の携帯端末N2では、周辺ユニット820のドライバAPI822と実デバイスドライバ823とが関連付けられており、アプリAbが周辺ユニット820を用いて実行されている。
 以下、携帯端末N1が、携帯端末N2で起動中の周辺ユニット820を用いてアプリAaを実行する場合の携帯端末N1,N2間の動作連携例について説明する。
 まず、アプリAaが、周辺ユニット810のドライバAPI812を介して、仮想デバイスドライバ814に関数の引数を渡す。このあと、仮想デバイスドライバ814が、通信I/F811を介して、アドホック通信により、携帯端末N2の周辺ユニット820の実デバイスドライバ823宛に関数の引数(関数の名称を含む)を送信する。
 この結果、実デバイスドライバ823が、通信I/F821によって受信された関数の引数を、ドライバAPI822を介して受け取る。つぎに、実デバイスドライバ823が、周辺ユニット820に関数の引数を与えることにより、関数の戻り値を取得する。
 そして、実デバイスドライバ823が、通信I/F821を介して、アドホック通信により、携帯端末N1の周辺ユニット810の仮想デバイスドライバ814宛に関数の戻り値を送信する。この結果、仮想デバイスドライバ814が、通信I/F811によって受信された関数の戻り値を受け取ってアプリAaに渡す。
 これにより、携帯端末N1では周辺ユニット810を起動することなくアプリAaを実行することができ、携帯端末N1,N2全体としてのエネルギー効率を向上させることができる。
(携帯端末Niのデータ処理手順)
 つぎに、実施の形態2にかかる携帯端末Niのデータ処理手順について説明する。ここでは、まず、クライアント側の携帯端末Niのデータ処理手順について説明する。
 図9は、実施の形態2にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その1)である。図9のフローチャートにおいて、まず、スケジューラ320により、アプリAの起動要求を検出したか否かを判断する(ステップS901)。
 ここで、スケジューラ320により、アプリAの起動要求を検出するのを待つ(ステップS901:No)。そして、スケジューラ320により、アプリAの起動要求を検出した場合(ステップS901:Yes)、共用リソーステーブル400を参照して、アプリAの実行時に共用リソースPを使用するか否かを判定する(ステップS902)。
 ここで、共用リソースPを使用しない場合(ステップS902:No)、ステップS913に移行する。一方、共用リソースPを使用する場合(ステップS902:Yes)、スケジューラ320により、共用リソースPの起動確認要求をネットワーク210にブロードキャストする(ステップS903)。
 つぎに、スケジューラ320により、他の携帯端末Njから共用リソースPの起動確認応答を受信したか否かを判断する(ステップS904)。ここで、スケジューラ320により、共用リソースPの起動確認応答を受信するのを待つ(ステップS904:No)。そして、スケジューラ320により、共用リソースPの起動確認応答を受信した場合(ステップS904:Yes)、共用リソースPが他の携帯端末Njで起動中か否かを判断する(ステップS905)。
 そして、共用リソースPが他の携帯端末Njで起動中の場合(ステップS905:Yes)、スケジューラ320により、共用リソースPの切替フラグを参照して、共用リソースPに仮想デバイスドライバが設定されているか否かを判断する(ステップS906)。
 ここで、共用リソースPに仮想デバイスドライバが設定されている場合(ステップS906:Yes)、ステップS908に移行する。一方、共用リソースPに仮想デバイスドライバが設定されていない場合(ステップS906:No)、スケジューラ320により、共用リソースPのデバイスドライバを、実デバイスドライバから仮想デバイスドライバに切り替える(ステップS907)。
 そして、スケジューラ320により、アプリAをCPU#1~#kのいずれかのCPUに割り当てる(ステップS908)。つぎに、スケジューラ320により、共用リソースPを起動している他の携帯端末Nj(以下、単に「サーバ」という)との接続状態が維持されているか否かを判断する生存確認を開始する(ステップS909)。
 このあと、スケジューラ320により、サーバとの通信が切断されたか否かを判断する(ステップS910)。ここで、サーバとの通信が切断された場合(ステップS910:Yes)、ステップS901に戻って、一連の処理を繰り返す。一方、サーバとの通信が切断されていない場合(ステップS910:No)、スケジューラ320により、アプリAの実行が終了したか否かを判断する(ステップS911)。
 ここで、アプリAの実行が終了していない場合(ステップS911:No)、ステップS910に戻る。一方、アプリAの実行が終了した場合(ステップS911:Yes)、本フローチャートによる一連の処理を終了する。
 また、ステップS905において、共用リソースPが他の携帯端末Njで起動していない場合(ステップS905:No)、スケジューラ320により、共用リソースフラグテーブル600内の共用リソースPの共用リソースフラグを「0」から「1」に変更する(ステップS912)。そして、スケジューラ320により、アプリAをCPU#1~#kのいずれかのCPUに割り当てて(ステップS913)、本フローチャートによる一連の処理を終了する。
 これにより、共用リソースPを用いるアプリAを実行する際に、他の携帯端末Njで起動している共用リソースPを利用してアプリAを実行することができる。
 つぎに、サーバ側の携帯端末Niのデータ処理手順について説明する。
 図10は、実施の形態2にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その2)である。図10のフローチャートにおいて、まず、スケジューラ320により、共用リソースPの起動確認要求を他の携帯端末Njから受信したか否かを判断する(ステップS1001)。
 ここで、スケジューラ320により、共用リソースPの起動確認要求を受信するのを待つ(ステップS1001:No)。そして、スケジューラ320により、共用リソースPの起動確認要求を受信した場合(ステップS1001:Yes)、共用リソースフラグテーブル600を参照して、自端末で共用リソースPを起動中か否かを判断する(ステップS1002)。
 ここで、共用リソースPを起動中の場合(ステップS1002:Yes)、スケジューラ320により、共用リソースPを起動していることを示す起動確認応答を、要求元の他の携帯端末Nj(以下、単に「クライアント」という)に送信する(ステップS1003)。
 そして、スケジューラ320により、アクセス許可テーブル700にクライアントからの共用リソースPに対するアクセス許可を設定する(ステップS1004)。つぎに、スケジューラ320により、クライアントとの通信が切断されたか否かを判断する(ステップS1005)。
 ここで、クライアントとの通信が切断されていない場合(ステップS1005:No)、スケジューラ320により、自端末での共用リソースPの動作が終了したか否かを判断する(ステップS1006)。ここで、共用リソースPの動作が終了していない場合(ステップS1006:No)、ステップS1005に戻る。
 一方、共用リソースPの動作が終了した場合(ステップS1006:Yes)、スケジューラ320により、共用リソースフラグテーブル600内の共用リソースPの共用リソースフラグを「1」から「0」に変更する(ステップS1007)。そして、スケジューラ320により、クライアントからの共用リソースPに対するアクセス許可を解除して(ステップS1008)、本フローチャートによる一連の処理を終了する。
 また、ステップS1002において、共用リソースPを起動していない場合(ステップS1002:No)、スケジューラ320により、共用リソースPを起動していないことを示す起動確認応答をクライアントに送信して(ステップS1009)、本フローチャートによる一連の処理を終了する。
 また、ステップS1005において、クライアントとの通信が切断された場合(ステップS1005:Yes)、スケジューラ320により、クライアントからの共用リソースPに対するアクセス許可を解除して(ステップS1008)、本フローチャートによる一連の処理を終了する。
 これにより、自端末で起動している共用リソースPを他の携帯端末Njと共用することができる。
 以上説明したように、実施の形態2にかかる携帯端末Niによれば、共用リソースPを用いるアプリAを実行する際に、ネットワーク210を介して、他の携帯端末Njで既に起動中の共用リソースPを利用することができる。これにより、携帯端末Niで共用リソースPを起動することなくアプリAを実行することができ、システム全体としての消費電力を削減することができる。
 また、実施の形態2にかかる携帯端末Niによれば、他の携帯端末Njからの共用リソースPの起動確認要求に対して、共用リソースPを起動しているか否かを示す起動確認応答を要求元に送信することができる。これにより、自端末で起動している共用リソースPを複数の携帯端末間で共用することができる。
 また、実施の形態2にかかる携帯端末Niによれば、共用リソースPの起動確認要求の要求元である他の携帯端末Njについてのみ、自端末で起動中の共用リソースPに対するアクセス許可を設定することができる。これにより、クライアント以外の他端末からの共用リソースPに対する不正なアクセスを防ぐことができる。
 また、実施の形態2にかかる携帯端末Niによれば、自端末での共用リソースPの動作が終了した場合やクライアントとの通信が切断された場合、クライアントからの共用リソースPに対するアクセス許可を解除することができる。
 また、実施の形態2にかかる携帯端末Niによれば、自端末で動作している共用リソースPの負荷が所定値X以上となった場合、他の携帯端末Njからの共用リソースPに対するアクセス許可を解除することができる。これにより、共用リソースPの処理待ちが発生することを防ぐことができる。
 また、実施の形態2にかかる携帯端末Niによれば、共用リソースPを起動している他端末が複数存在する場合、より負荷が小さい共用リソースPを選択して利用することにより、共用リソースPの処理待ちが発生することを回避することができる。
 一例として、データ処理システム200内の10台の携帯端末N1~N10が、GPS304を用いる同一または異なるアプリをそれぞれ実行する場合を例に挙げて説明する。ここで、各携帯端末NiにおけるGPS304の消費電力を200[mW]とし、通信I/F306の消費電力を50[mW]とする。
 ここで、10台の携帯端末N1~N10が連動して動作するような利用シーンを想定する。従来のように、すべての携帯端末N1~N10で1時間連続してGPS304を使用した場合、システム全体の消費電力は、例えば、『2000[mWh]=200[mW]×1[h]×10[台]』となる。
 一方、実施の形態2では、例えば、GPS304を起動している1台の携帯端末Niに対して、10台の携帯端末N1~N10が通信I/F306を介したアドホック通信を行う状態となる。この場合、システム全体の消費電力は、例えば、『700[mWh]=200[mW]×1[h]×1[台]+50[mW]×1[h]×10[台]』となる。
 したがって、実施の形態2にかかるデータ処理方法によれば、すべての携帯端末N1~N10で1時間連続してGPS304を使用した場合に比べて、システム全体として1300[mWh]のエネルギー消費を削減することができる。
 このように、実施の形態2にかかるデータ処理方法およびデータ処理システムによれば、複数のデータ処理装置が、実質的に同じ周辺ユニットを用いるアプリを各々実行する際の、システム全体の消費電力を抑制してエネルギー効率を向上させることができる。
(実施の形態3)
 つぎに、実施の形態3にかかる携帯端末Niについて説明する。なお、実施の形態1,2で説明した箇所と同一箇所については、同一符号を付して図示および説明を省略する。
 ここで、各携帯端末Niで実行されるアプリケーションの中には、携帯端末N1~Nnのうち2台以上の携帯端末が同時に実行する必要性の低いものがある。例えば、携帯端末Niが道路上の渋滞情報を交通管理センタなどのサーバにアップするアプリケーションの場合、同一エリア内に存在する複数の携帯端末から収集された渋滞情報の内容はほぼ同じものとなる。このため、複数の携帯端末から収集されたほとんどの渋滞情報は、サーバ側で使用されないことになる。すなわち、このアプリケーションは、同一エリア内に存在する2台以上の携帯端末が同時に実行する必要性の低いものである。
 そこで、実施の形態3では、携帯端末Niで起動要求が検出されたアプリAと同一のアプリAが他の携帯端末Njで起動されているときは、携帯端末NiでアプリAを起動しないことにより、無駄なアプリAの実行を抑制する場合について説明する。以下、携帯端末Niの各機能部について説明する。
 まず、判定部502は、アプリAの起動要求が検出された場合、アプリAが所定のグループに属するか否かを判定する。ここで、所定のグループとは、例えば、携帯端末N1~Nnのうち2台以上の携帯端末が同時に実行する必要性の低いアプリケーションの集合である。なお、所定のグループを特定する情報は、例えば、メモリ301に記憶されている。
 送信部503は、アプリAが所定のグループに属すると判定された場合、アプリAの起動確認要求を他の携帯端末Njに送信する。ここで、アプリAの起動確認要求とは、アプリAを起動しているか否かを他の携帯端末Njに問い合わせる情報である。
 受信部504は、アプリAの起動確認要求が送信された結果、アプリAの起動確認応答を他の携帯端末Njから受信する。ここで、アプリAの起動確認応答とは、アプリAを起動しているか否かを示す情報である。
 判断部505は、受信されたアプリAの起動確認応答に基づいて、アプリAが他の携帯端末Njで起動しているか否かを判断する。判断部505による判断処理は、例えば、アドホック通信により直接通信可能な他の携帯端末NjからのアプリAの起動確認応答に基づいて行うことにしてもよい。
 これにより、自端末の近傍に位置する他の携帯端末Nj、すなわち、同一エリア内に存在する可能性が高い他の携帯端末NjからのアプリAの起動確認応答に基づいて、自端末でのアプリAの実行の要否を判断することができる。
 割当部507は、アプリAが他の携帯端末Njで起動していないと判断された場合、アプリAをCPU#1~#kのいずれかのCPUに割り当てる。この結果、割当先のCPUのOSにより、アプリAが実行される。
 また、割当部507は、アプリAが他の携帯端末Njで起動していると判断された場合、アプリAを割り当てない。すなわち、アプリAは他の携帯端末Njで起動されており、携帯端末NiでアプリAを実行する必要性が低いため、携帯端末NiがアプリAを起動しない。
 これにより、携帯端末Niにおいて、他の携帯端末Njと同時に実行する必要性の低いアプリAの実行を抑制して、アプリAの実行にかかる消費電力を削減することができる。
 また、受信部504は、アプリAの起動確認要求を他の携帯端末Njから受信する。また、判断部505は、アプリAの起動確認要求が受信された場合、自端末でアプリAを起動しているか否かを判断する。そして、送信部503は、自端末でアプリAを起動しているか否かを示す起動確認応答を要求元の他の携帯端末Njに送信する。
(携帯端末Niのデータ処理手順)
 つぎに、実施の形態3にかかる携帯端末Niのデータ処理手順について説明する。ここでは、まず、アプリAの起動要求を検出した場合の携帯端末Niのデータ処理手順について説明する。
 図11は、実施の形態3にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その1)である。図11のフローチャートにおいて、まず、スケジューラ320により、アプリAの起動要求を検出したか否かを判断する(ステップS1101)。
 ここで、スケジューラ320により、アプリAの起動要求を検出するのを待つ(ステップS1101:No)。そして、スケジューラ320により、アプリAの起動要求を検出した場合(ステップS1101:Yes)、アプリAが所定のグループに属するか否かを判定する(ステップS1102)。
 ここで、所定のグループに属さない場合(ステップS1102:No)、ステップS1106に移行する。一方、所定のグループに属する場合(ステップS1102:Yes)、スケジューラ320により、アプリAの起動確認要求をネットワーク210にブロードキャストする(ステップS1103)。
 つぎに、スケジューラ320により、他の携帯端末NjからアプリAの起動確認応答を受信したか否かを判断する(ステップS1104)。ここで、スケジューラ320により、アプリAの起動確認応答を受信するのを待つ(ステップS1104:No)。そして、スケジューラ320により、アプリAの起動確認応答を受信した場合(ステップS1104:Yes)、アプリAが他の携帯端末Njで起動中か否かを判断する(ステップS1105)。
 そして、アプリAが他の携帯端末Njで起動中の場合(ステップS1105:Yes)、本フローチャートによる一連の処理を終了する。一方、アプリAが他の携帯端末Njで起動していない場合(ステップS1105:No)、スケジューラ320により、アプリAをCPU#1~#kのいずれかのCPUに割り当てて(ステップS1106)、本フローチャートによる一連の処理を終了する。
 これにより、他の携帯端末Njと同時に実行する必要性の低いアプリAの実行を抑制して、アプリAの実行にかかる消費電力を削減することができる。
 つぎに、アプリAの起動確認応答を受信した場合の携帯端末Niのデータ処理手順について説明する。
 図12は、実施の形態3にかかる携帯端末のデータ処理手順の一例を示すフローチャート(その2)である。図12のフローチャートにおいて、まず、スケジューラ320により、アプリAの起動確認要求を他の携帯端末Njから受信したか否かを判断する(ステップS1201)。
 ここで、スケジューラ320により、アプリAの起動確認要求を受信するのを待つ(ステップS1201:No)。そして、スケジューラ320により、アプリAの起動確認要求を受信した場合(ステップS1201:Yes)、自端末でアプリAを起動中か否かを判断する(ステップS1202)。
 ここで、アプリAを起動中の場合(ステップS1202:Yes)、スケジューラ320により、アプリAを起動していることを示す起動確認応答を、要求元の他の携帯端末Njに送信して(ステップS1203)、本フローチャートによる一連の処理を終了する。
 一方、アプリAを起動していない場合(ステップS1202:No)、スケジューラ320により、アプリAを起動していないことを示す起動確認応答を、要求元の他の携帯端末Njに送信して(ステップS1204)、本フローチャートによる一連の処理を終了する。これにより、他の携帯端末Njに対してアプリAを起動しているか否かを応答することができる。
(システムの適用例)
 図13は、本実施の形態にかかるコンピュータを用いたシステムの適用例を示す説明図である。図13において、ネットワークNWは、サーバ1301,1302とクライアント1331~1334とが通信可能なネットワークであり、例えば、LAN、WAN、インターネット、携帯電話網などで構成される。
 サーバ1302は、クラウド1320を構成するサーバ群(サーバ1321~1325)の管理サーバである。クライアント1331~1334のうち、クライアント1331はノート型パソコン、クライアント1332はデスクトップ型パソコン、クライアント1333は携帯電話機(スマートフォン、PHS(Personal Handyphone System)でもよい)、クライアント1334はタブレット型端末である。
 図13のサーバ1301,1302,1321~1325、クライアント1331~1334は、例えば、実施の形態1で説明したデータ処理装置101,102、または、実施の形態2で説明した携帯端末Niと同様の機能を有するコンピュータにより実現される。
 なお、本実施の形態で説明したデータ処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本データ処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本データ処理プログラムは、インターネット等のネットワークを介して配布してもよい。
 101,102 データ処理装置
 200 データ処理システム
 N1~Nn,Ni,Nj 携帯端末
 501 検出部
 502 判定部
 503 送信部
 504 受信部
 505 判断部
 506 切替部
 507 割当部
 508 設定部

Claims (12)

  1.  複数のデータ処理装置のうちの第1データ処理装置に起動要求されたアプリケーションが所定のグループに属するか否かを判定し、
     前記アプリケーションが前記所定のグループに属するときは、前記複数のデータ処理装置の他のデータ処理装置で前記アプリケーションが起動されているか否かを判定し、
     前記アプリケーションが前記他のデータ処理装置で起動されているときは、前記第1データ処理装置は前記アプリケーションを起動しないこと
     を特徴とするデータ処理方法。
  2.  前記第1データ処理装置は、前記他のデータ処理装置が実行する前記アプリケーションとの通信によって前記アプリケーションの機能を提供すること
     を特徴とする請求項1に記載のデータ処理方法。
  3.  前記他のデータ処理装置は、前記第1データ処理装置からの通信に基づいて前記アプリケーションを実行中であるか否かを前記第1データ処理装置に通知すること
     を特徴とする請求項1または請求項2に記載のデータ処理方法。
  4.  前記他のデータ処理装置が前記アプリケーションを起動中でないときは前記第1データ処理装置が前記アプリケーションを実行し、
     前記アプリケーションを起動中であることを示すフラグをセットすること
     を特徴とする請求項1乃至請求項3の何れか一に記載のデータ処理方法。
  5.  前記アプリケーションが前記所定のグループに属さないときは、前記第1データ処理装置が前記アプリケーションを実行すること
     を特徴とする請求項1乃至請求項4の何れか一に記載のデータ処理方法。
  6.  前記アプリケーションは暗号化機能を有すること
     を特徴とする請求項5に記載のデータ処理方法。
  7.  前記所定のグループは、コプロセッサ、デジタルシグナルプロセッサ、またはグローバルポジショニングシステムで実行されるアプリケーションを含むこと
     を特徴とする請求項1乃至請求項6の何れか一に記載のデータ処理方法。
  8.  前記他のデータ処理装置が前記アプリケーションを起動しているときに前記第1データ処理装置と前記他のデータ処理装置との間の通信強度が弱まるとき、前記複数のデータ処理装置のうちの前記他のデータ処理装置以外のデータ処理装置が前記アプリケーションを起動すること
     を特徴とする請求項1乃至請求項7の何れか一に記載のデータ処理方法。
  9.  それぞれが少なくとも一の周辺ユニットを含む複数のデータ処理装置と、
     前記複数のデータ処理装置のうちの第1データ処理装置の第1周辺ユニットに対する起動要求があるときに、前記複数のデータ処理装置のうちの第2データ処理装置の第2周辺ユニットが起動されているときは、前記第1周辺ユニットを起動しないで前記第2周辺ユニットの実行を共用するスケジューラと、
     を含むことを特徴とするデータ処理システム。
  10.  前記第1周辺ユニットの機能と前記第2周辺ユニットの機能とは実質的に同じであること
     を特徴とする請求項9に記載のデータ処理システム。
  11.  前記スケジューラは、前記起動要求に基づいて前記複数のデータ処理装置のうちの前記第1データ処理装置以外のデータ処理装置に対してブロードキャスト通信を行うこと
     を特徴とする請求項9または請求項10に記載のデータ処理システム。
  12.  前記周辺ユニットは、コプロセッサ、デジタルシグナルプロセッサ、またはグローバルポジショニングシステムを含むこと
     を特徴とする請求項9乃至請求項11の何れか一に記載のデータ処理システム。
PCT/JP2011/065519 2011-07-06 2011-07-06 データ処理方法およびデータ処理システム WO2013005323A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/065519 WO2013005323A1 (ja) 2011-07-06 2011-07-06 データ処理方法およびデータ処理システム
JP2013522659A JP5768884B2 (ja) 2011-07-06 2011-07-06 データ処理方法およびデータ処理システム
US14/148,288 US20140123154A1 (en) 2011-07-06 2014-01-06 Data processing method and data processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/065519 WO2013005323A1 (ja) 2011-07-06 2011-07-06 データ処理方法およびデータ処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/148,288 Continuation US20140123154A1 (en) 2011-07-06 2014-01-06 Data processing method and data processing system

Publications (1)

Publication Number Publication Date
WO2013005323A1 true WO2013005323A1 (ja) 2013-01-10

Family

ID=47436695

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/065519 WO2013005323A1 (ja) 2011-07-06 2011-07-06 データ処理方法およびデータ処理システム

Country Status (3)

Country Link
US (1) US20140123154A1 (ja)
JP (1) JP5768884B2 (ja)
WO (1) WO2013005323A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259590A (ja) * 1999-03-10 2000-09-22 Fujitsu Ltd モジュール連携方法およびこれを利用した計算機システム
JP2006252218A (ja) * 2005-03-11 2006-09-21 Nec Corp 分散処理システム及びプログラム
JP2008140120A (ja) * 2006-12-01 2008-06-19 Fujitsu Ltd 計算資源管理プログラム、計算資源管理装置および分散処理システム
JP2010041182A (ja) * 2008-08-01 2010-02-18 Nec Corp プログラム移動制御システムおよびプログラム移動制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6012150A (en) * 1997-03-27 2000-01-04 International Business Machines Corporation Apparatus for synchronizing operator initiated commands with a failover process in a distributed processing system
JP2005223436A (ja) * 2004-02-03 2005-08-18 Hitachi Ltd 携帯端末及び位置情報交換システム
JP5169674B2 (ja) * 2008-09-22 2013-03-27 日本電気株式会社 位置情報取得システム、位置情報取得方法、移動体通信端末、及び、プログラム
JP2010117241A (ja) * 2008-11-13 2010-05-27 Panasonic Corp Sps受信端末
JP2010230380A (ja) * 2009-03-26 2010-10-14 Ntt Docomo Inc 位置推定装置及び位置推定方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000259590A (ja) * 1999-03-10 2000-09-22 Fujitsu Ltd モジュール連携方法およびこれを利用した計算機システム
JP2006252218A (ja) * 2005-03-11 2006-09-21 Nec Corp 分散処理システム及びプログラム
JP2008140120A (ja) * 2006-12-01 2008-06-19 Fujitsu Ltd 計算資源管理プログラム、計算資源管理装置および分散処理システム
JP2010041182A (ja) * 2008-08-01 2010-02-18 Nec Corp プログラム移動制御システムおよびプログラム移動制御方法

Also Published As

Publication number Publication date
JP5768884B2 (ja) 2015-08-26
JPWO2013005323A1 (ja) 2015-02-23
US20140123154A1 (en) 2014-05-01

Similar Documents

Publication Publication Date Title
US10789044B2 (en) End-to-end user experiences with a digital assistant
EP3192289B1 (en) Real-time location sharing to facilitate a physical meet-up
EP3365777B1 (en) Physical and virtual phone mobility
CN114450927B (zh) 工作流处理方法、工作流管理器、设备以及计算机存储介质
CN113783922A (zh) 负载均衡的方法、系统和装置
CN109688191B (zh) 流量调度方法及通信装置
JP5397549B2 (ja) 携帯電話装置、着信処理プログラム、および着信処理方法
CN113553178A (zh) 任务处理方法、装置和电子设备
US10986066B2 (en) Systems, apparatuses, methods, and non-transitory computer readable media for efficient call processing
US20140073370A1 (en) Method of mobile device resource reuse in mobile cloud
Shetty et al. Cloud based application development for mobile devices for accessing LBS
Lee A framework for seamless execution of mobile applications in the cloud
JP2013174944A (ja) シンクライアントシステム、制御サーバ、端末、セキュリティ制御方法及びセキュリティ制御プログラム
KR101899970B1 (ko) 모바일 클라우드 환경에 적용되는 모바일 단말과 클라우드 서버 및 이를 이용한 모바일 클라우드 컴퓨팅 방법
JP5768884B2 (ja) データ処理方法およびデータ処理システム
US10231269B2 (en) Dynamic generation of geographically bound manet IDs
Alanezi et al. Panorama: A framework to support collaborative context monitoring on co-located mobile devices
CN117280703A (zh) 5g媒体流结构中边缘服务器的网络侧和客户端侧激活方法
Hu et al. A mobile crowdsensing system enhanced by cloud-based social networking services
KR20150054636A (ko) 복수의 전자 디바이스 사이에서 애플리케이션을 공유하는 방법 및 전자 디바이스
CN114363254A (zh) 租户隔离方法、装置及电子设备
JP2017107382A (ja) プログラム実行システム、プログラム実行方法、および、プログラム
US11405981B1 (en) Routing server communications through a nearby mobile device
US20160150368A1 (en) Virtual sensor apparatus and method
WO2016147611A1 (ja) 携帯端末、携帯端末の管理方法及び記録媒体

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11868972

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013522659

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11868972

Country of ref document: EP

Kind code of ref document: A1