WO2022092264A1 - 情報処理システム、処理装置及び情報処理方法 - Google Patents

情報処理システム、処理装置及び情報処理方法 Download PDF

Info

Publication number
WO2022092264A1
WO2022092264A1 PCT/JP2021/040021 JP2021040021W WO2022092264A1 WO 2022092264 A1 WO2022092264 A1 WO 2022092264A1 JP 2021040021 W JP2021040021 W JP 2021040021W WO 2022092264 A1 WO2022092264 A1 WO 2022092264A1
Authority
WO
WIPO (PCT)
Prior art keywords
candidate
unit
function
processing device
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2021/040021
Other languages
English (en)
French (fr)
Inventor
正也 藤吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micware Co Ltd
Original Assignee
Micware 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 Micware Co Ltd filed Critical Micware Co Ltd
Priority to EP21886381.9A priority Critical patent/EP4239483B1/en
Priority to JP2022559259A priority patent/JP7467672B2/ja
Publication of WO2022092264A1 publication Critical patent/WO2022092264A1/ja
Priority to US18/120,535 priority patent/US12061095B2/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • G01C21/3859Differential updating map data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors

Definitions

  • the present invention relates to a technique for mutually utilizing the results of processing executed by two or more processing devices constituting a network.
  • Patent Document 1 discloses a navigation system including a plurality of devices divided according to different functions regarding navigation.
  • the navigation system is configured to give an instruction from one device to the other device, and the other device to which the instruction is given processes the instruction according to the function and returns the result of the process. There is.
  • Patent Document 2 discloses a fax transmission instruction to a substitute device when it is determined that the fax transmission instruction information is transmitted to the designated fax device and the result information "line BUSY" is received. Techniques for transmitting information are disclosed.
  • the navigation device cannot communicate with the server.
  • the other device given an instruction from one device becomes unable to communicate in this way, one device cannot receive the processing result.
  • the technique described in Patent Document 2 since the substitute device is used after it is found that the designated device cannot execute the process, both the result of the process by the designated device and the result of the process by the substitute device can be obtained.
  • the reliability of the result of processing by the designated device and the alternative device is lowered.
  • the time lag until the result of processing by the alternative device is obtained becomes large.
  • An object of the present invention is to provide an information processing system or the like that can obtain reliable results with a reduced time lag.
  • the information processing system forms a network with two or more processing devices.
  • Each of the processing devices includes a communication unit and a control unit.
  • the control unit constitutes a module that executes a predetermined function based on software.
  • the communication unit communicates based on the control of the control unit.
  • At least one of the control units selects a first candidate and a second candidate.
  • the first candidate is any one of the modules.
  • the second candidate performs the same function as the first candidate.
  • the second candidate is a module having a lower rank based on a predetermined criterion than the first candidate.
  • At least one of the control units transmits a command to the first candidate and the second candidate.
  • An instruction is an instruction to execute a function.
  • At least one of the control units can receive the first execution result and the second execution result.
  • the first execution result is the result of the first candidate executing the instruction.
  • the second execution result is the result of the second candidate executing the instruction.
  • the information processing system of the first aspect since the first execution result and the second execution result can be received, the reliability of the obtained result is high, and if the first execution result cannot be received. , The second execution result can be received early. Therefore, the information processing system can obtain reliable results with less time lag.
  • the information processing system of the first aspect can have the following configuration.
  • At least one of the control units has a function execution unit.
  • the function execution unit selects the first candidate and the second candidate.
  • the function execution unit transmits commands to the first candidate and the second candidate.
  • the function execution unit receives the first execution result and the second execution result.
  • the function execution unit outputs information based on the second execution result to the output unit.
  • the output unit outputs at least one of image data and audio data. If the function execution unit does not receive the first execution result even after a predetermined time has elapsed after transmitting the command to the first candidate and the second candidate, the function execution unit outputs the above.
  • the result of executing the predetermined function by outputting the second execution result from the output unit when it takes time to acquire the first execution result or when the first execution result cannot be acquired, the result of executing the predetermined function by outputting the second execution result from the output unit. It is possible to prevent it from taking a long time to output the execution result.
  • the criteria are the magnitude of the communication speed, the new version of the software corresponding to the instruction, or the new version of the map data.
  • the communication speed is the amount of data that can be transmitted / received per unit time between the first processing device including the function executing unit and the second processing device that is a processing device different from the first processing device.
  • Map data is map data used when navigation is performed as a function.
  • the module having a high communication speed is selected as the first candidate and the second candidate, so that the time required for sending and receiving the execution result can be shortened. can. Therefore, it is possible to easily obtain the execution result quickly.
  • the standard is a new version of software corresponding to an instruction
  • a module based on the software with improved functions is selected as the first candidate and the second candidate. Therefore, it is possible to easily obtain a better execution result.
  • the reference is a version of map data, it is possible to acquire the execution result of navigation using a newer map.
  • the information processing system of the first aspect can have the following configuration.
  • the function executing unit selects the module incorporated in the first processing device as the first candidate or the second candidate.
  • the module incorporated in the first processing device provided with the control unit for outputting the execution result information to the output unit is selected as the first candidate or the second candidate. Therefore, it is easy to avoid a situation in which both the first execution result and the second execution result cannot be obtained due to the inability to communicate.
  • the information processing system of the first aspect can have the following configuration. If the function execution unit cannot receive the first execution result and the second execution result even after the lapse of a predetermined time, the function execution unit selects the first candidate and the second candidate again based on the predetermined criteria.
  • the function execution unit can be configured to select the first candidate and the second candidate from the modules whose communication status is incorporated in the online processing device, respectively.
  • the processing device forms a network together with other processing devices.
  • the processing device includes a control unit and a communication unit.
  • the control unit constitutes a module that executes a predetermined function based on software.
  • the communication unit communicates based on the control of the control unit.
  • the control unit selects a first candidate and a second candidate.
  • the first candidate is any one of the modules.
  • the second candidate performs the same function as the first candidate.
  • the second candidate is a module having a lower rank based on a predetermined criterion than the first candidate.
  • the control unit transmits a command to the first candidate and the second candidate.
  • An instruction is an instruction to execute a function.
  • the control unit receives the first execution result and the second execution result.
  • the first execution result is the result of the first candidate executing the instruction.
  • the second execution result is the result of the second candidate executing the instruction.
  • the processing device can receive the first execution result and the second execution result, the reliability of the obtained result is high, and if the first execution result cannot be received, the second execution result is received. You can receive the results early. Therefore, the processing device can obtain a reliable result with a reduced time lag.
  • the processing method is a processing method executed by an information processing system.
  • the information processing system forms a network with two or more processing devices.
  • Each processing device includes a communication unit and a control unit.
  • the control unit constitutes a module that executes a predetermined function based on software.
  • the communication unit communicates based on the control of the control unit.
  • the processing method includes a step of selecting a first candidate and a second candidate.
  • the first candidate is any one of the modules.
  • the second candidate performs the same function as the first candidate.
  • the second candidate is a module having a lower rank based on a predetermined criterion than the first candidate.
  • the processing method has a step of transmitting a command to the first candidate and the second candidate.
  • An instruction is an instruction to execute a function.
  • the processing method has a step of receiving the first execution result and the second execution result. These steps are performed by at least one of the controls.
  • the reliability of the obtained result is high, and if the first execution result cannot be received, the second execution result is received. You can receive the results early. Therefore, in the processing method, reliable results can be obtained with a reduced time lag.
  • the processing device includes a control unit and a communication unit.
  • the control unit performs software-based control.
  • communication is controlled by the control unit.
  • the software includes a first executable program.
  • the first execution program causes the control unit to execute a predetermined function.
  • the control unit forms a logical network.
  • the logical network communicates the results obtained by performing the function.
  • the control unit connects to another processing device that executes the same function as when the first execution program is executed, among other processing devices that can be connected via the communication unit.
  • the other processing device executes the function based on the second execution program. Alternatively, the other processing device executes the function based on the second utilization data.
  • the second executable program is at least partially different from the first executable program.
  • the first usage data is used when the first execution program is executed.
  • the second usage data is at least partially different from the first usage data.
  • the processing device of the first aspect Since the processing device of the first aspect selectively connects the same function as when the first execution program is executed to the second execution program or another processing device that is executed based on the second utilization data, It can be connected to other processing devices that can obtain different results from the case where the first execution program is executed for the same function. Therefore, the processing device of the first aspect can suppress the inclusion of two or more processing devices that can obtain only the same result for the same function in the logical network, and may include unused processing devices. A reduced logical network can be formed.
  • the software including the first execution program and the software including the second execution program are created or revised in different order in chronological order. Further, the first usage data and the second usage data are different in the order in the time series created or revised.
  • control unit when the control unit is connected to another processing device, the control unit includes the respective versions of the software including the first execution program and the software including the second execution program, or the first usage data. Compare each version of the second usage data.
  • control unit can easily identify other processing devices to be connected.
  • control unit performs the process of connecting to the other processing device again.
  • the processing device can maintain a state in which unused processing devices are less likely to be included in the logical network.
  • a reliable execution result can be obtained with a reduced time lag.
  • the information processing system 1 includes two or more processing devices 2. As shown in FIG. 1, the information processing system 1 constitutes a logical network 3 with two or more processing devices 2.
  • the logical network 3 is a network composed of a processing device 2 owned by a user and a processing device 2 owned by a member of the same group among the devices connected to the logical network 3.
  • each processing device 2 constituting the logical network 3 has two or more predetermined functions.
  • the type and number of functions of the processing device 2 are different for each processing device 2.
  • Each processing device 2 has the same function as one or two or more other processing devices 2.
  • Each processing device 2 may have a function that the other processing devices 2 do not have.
  • the information processing system 1 transmits the result of executing the function between two or more processing devices 2 having the same function via the logical network 3.
  • a function of linking two or more processing devices 2 capable of executing the same function and using each other is called a "link function".
  • the information processing system 1 can provide good results to the user by the link function.
  • the processing device 2 includes not only the processing device 2 that directly accesses the logical network 3 but also the processing device 2 that indirectly accesses the logical network 3.
  • the processing device 2 that directly accesses the logical network 3 is also referred to as a “parent node”.
  • the processing device 2 that indirectly accesses the logical network 3 is also referred to as a “child node”.
  • the child node accesses the logical network 3 via the parent node. Examples of the child node include a tablet terminal that cannot insert a SIM (Subscriber Identity Module) card and cannot make an LTE (Long Term Evolution) connection.
  • SIM Subscriber Identity Module
  • a child node can connect to the Internet by communication by Wi-Fi (registered trademark) in a home network or the like, but cannot directly connect to the Internet when communication by Wi-Fi cannot be performed such as when going out.
  • Wi-Fi registered trademark
  • the "node” is another name indicating the processing device 2.
  • the processing device 2 that directly accesses the logical network 3 may be referred to as a "normal node” in order to distinguish it from a child node.
  • the processing device 2 is a second processing device 2 based on a predetermined condition such as a communication speed among two or more processing devices 2 that can form a logical network 3 and execute the same function. Select as 1st candidate and 2nd candidate.
  • the processing device 2 uses the first candidate and the second candidate at the same time or with a reduced time lag. Therefore, the processing device 2 can obtain the best result from the first candidate from the results obtained when two or more processing devices 2 constituting the logical network 3 each execute a predetermined function. Even if the first candidate cannot be used due to communication failure or the like, the processing device 2 is the second best after the result obtained from the first candidate as a result of executing a predetermined function by using the second candidate. You can get the result quickly.
  • a predetermined condition such as a communication speed among two or more processing devices 2 that can form a logical network 3 and execute the same function. Select as 1st candidate and 2nd candidate.
  • the processing device 2 uses the first candidate and the second candidate at the same time or with a reduced time
  • Two or more processing devices 2 constituting the logical network 3 are connected wirelessly or by wire.
  • wireless and wired may be mixed in the method of connecting the processing devices 2.
  • the processing device 2 is a navigation device 2A, a server 2B, and a mobile terminal 2C.
  • Two or more servers of the same type 2B and two or more servers of different types from the server 2B form a server group 2Z.
  • Examples of the server having a different type from the server 2B include the signaling server 2B1 shown in FIG.
  • the signaling server 2B1 plays a central role in the servers included in the server group 2Z.
  • the signaling server 2B1 is used for constructing the logical network 3.
  • the signaling server 2B1 is used to grasp the communication state of each processing device 2.
  • the navigation device 2A and the mobile terminal 2C are processing devices 2 as one electronic device, respectively.
  • the mobile terminal 2C is, for example, a smartphone or a tablet device.
  • the processing device 2 shown in FIGS. 2 to 4 includes a control unit 21, a communication unit 23, a storage unit 24, an operation unit 25, a display unit 26, a voice output unit 27, and a positioning unit 28.
  • the configurations included in each processing device 2 are designated by the same reference numerals, and the description thereof is omitted.
  • the navigation device 2A includes a navigation control unit 21A which is a control unit 21, a navigation communication unit 23A which is a communication unit 23, a navigation storage unit 24A which is a storage unit 24, and a navigation operation unit which is an operation unit 25. It includes 25A, a navigation display unit 26A which is a display unit 26, and a navigation audio output unit 27A which is an audio output unit 27.
  • the server 2B includes a server control unit 21B which is a control unit 21, a server communication unit 23B which is a communication unit 23, and a server storage unit 24B which is a storage unit 24.
  • the mobile terminal 2C is a mobile control unit 21C which is a control unit 21, a mobile communication unit 23C which is a communication unit 23, a mobile storage unit 24C which is a storage unit 24, and an operation unit 25. It includes a mobile operation unit 25C, a mobile display unit 26C which is a display unit 26, a mobile audio output unit 27C which is an audio output unit 27, and a mobile positioning unit 28C which is a positioning unit 28.
  • the configuration of the navigation device 2A, the server 2B, or the mobile terminal 2C is not limited to the above, and may not include a part of the above configuration, or may include other configurations in addition to the configuration.
  • control unit 21 is a module 4, which includes a function execution unit 211, a communication control unit 212, an output control unit 213, a guidance unit 214, a search unit 215, a search unit 216, and a map drawing unit. It includes at least one of 217, a traffic information unit 218, a map matching unit 219, a difference updating unit 220, a status confirmation unit 221 and a link function unit 222.
  • Module 4 is a functionally cohesive part that constitutes at least a part of a device, a machine, a system, software, and the like. Each module 4 is a part of hardware and software for executing any one of the above functions of the control unit 21. Module 4 may be referred to as an engine.
  • Module 4 executes a predetermined function.
  • the predetermined functions are, for example, function execution, communication control, output control, guidance, search, search, map drawing, traffic information, map matching, difference update, status confirmation, and link function.
  • execution result the result of the module 4 executing a predetermined function is referred to as an “execution result”.
  • the execution result by the first candidate is also referred to as “first execution result”
  • the execution result by the second candidate is also referred to as "second execution result”.
  • the navigation control unit 21A, the server control unit 21B, and the mobile control unit 21C each constitute at least a part of the module 4.
  • a program that is software corresponding to the module 4 that can be executed by the control unit 21 is stored in the storage unit 24.
  • the program for executing the above function is referred to as an execution program 242.
  • the function execution unit 211 In the navigation device 2A, the function execution unit 211, the communication control unit 212, the output control unit 213, the guidance unit 214, the search unit 215, the search unit 216, the map drawing unit 217, the traffic information unit 218, the map matching unit 219, and the difference update unit.
  • the execution program 242 corresponding to the 220, the state confirmation unit 221 and the link function unit 222 is stored in the navigation storage unit 24A, respectively.
  • the execution program 242 corresponding to the communication control unit 212, the search unit 215, the search unit 216, the traffic information unit 218, the map matching unit 219, the difference update unit 220, the status confirmation unit 221 and the link function unit 222 are provided. , Are stored in the server storage unit 24B, respectively.
  • the mobile terminal 2C is the same as the navigation device 2A.
  • the control unit 21 controls the communication unit 23, the storage unit 24, the operation unit 25, the display unit 26, the voice output unit 27, and the positioning unit 28, respectively.
  • the control unit 21 is realized by, for example, a control device such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit) executing a program stored in the storage unit 24.
  • a control device such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit) executing a program stored in the storage unit 24.
  • Module 4 can use usage data when executing a predetermined function.
  • the usage data is, for example, map data.
  • Module 4 uses map data, for example, when performing functions such as search, search, map drawing, and map matching.
  • the control unit 21 may include two or more modules 4 that execute the same function by using different versions of software.
  • the software version corresponding to the module 4 is referred to as the module 4 version for convenience.
  • the processing device 2 and the signaling server 2B1 construct the logical network 3 by performing the construction process shown in FIG.
  • the information processing system 1 transmits the execution result between the processing devices 2 capable of executing the same function via the logical network 3. Therefore, the execution result does not need to be transmitted between the processing devices 2 that can obtain only the same result for the same function.
  • the logical network 3 is formed by connecting processing devices 2 that can obtain different execution results when the same function is executed. By using such a logical network 3, the information processing system 1 can effectively realize the link function.
  • the link function unit 222 performs a process for constructing the logical network 3.
  • the link function unit 222 automatically starts the construction process of the logical network 3 when the processing device 2 is started.
  • the link function unit 222 causes the display unit 26 to display a button for starting the construction of the logical network 3, and when the button displayed on the display unit 26 is pressed by the user, the construction of the logical network 3 starts. It may be configured to be.
  • the construction of the logical network 3 includes the new participation of the processing device 2 in the already constructed logical network 3.
  • the following describes a case where the processing device 2 newly joins the already constructed logical network 3. Even when the logical network 3 is constructed from scratch, the processing performed by the processing device 2 and the signaling server 2B1 is the same.
  • step S1 the link function unit 222 connects to the signaling server 2B1 shown in FIG. 6 via the communication unit.
  • Two or more signaling servers 2B1 are provided.
  • each processing device 2 is connected to any one of the signaling servers 2B1 in order to distribute the processing load.
  • the processing device 2 maintains the connection with the signaling server 2B1 connected in this step S1 until it leaves the logical network 3.
  • the processing device 2 is disconnected from the logical network 3 when the power is turned off. When the processing device 2 is restarted for updating software or usage data, for example, the processing device 2 leaves the logical network 3.
  • the link function unit 222 When connecting to the signaling server 2B1, the link function unit 222 transmits a connection request to the signaling server 2B1 via the communication unit 23.
  • the connection request is transmitted to the signaling server 2B1 selected by a load balancer (not shown).
  • the load balancer is a device that monitors the processing load of the signaling server 2B1.
  • the signaling server receives the connection request, it establishes a connection with the processing device 2.
  • the database 2B3 registers the location information.
  • the location information is information related to communication between the processing devices 2.
  • the link function unit 222 requests the signaling server 2B1 to register the location information.
  • the link function unit 222 requests registration of location information by transmitting location information to the signaling server 2B1 via the communication unit 23.
  • the signaling server 2B1 that has received the location information registers the location information in the database 2B3.
  • the location information is registered in the database 2B3 via the signaling server 2B1 connected to the processing device 2 when the processing device 2 makes a registration request.
  • the location information includes the device ID of the processing device 2, the user ID, the device ID of the parent node, the connection server, the IP address, the port, the online status, the expiration date of the location information, and the update date and time of the location information. Are shown respectively.
  • the device ID is information that identifies the processing device 2.
  • the device ID is given as unique information for each processing device 2.
  • the user ID is information that identifies a user who is using the processing device 2.
  • the user ID is, for example, an e-mail address.
  • the device ID of the parent node is information that identifies the parent node.
  • the connection server is the signaling server 2B1 to which the processing device 2 is connected.
  • the IP address is information for identifying a device connected to the Internet.
  • the IP address is assigned to each processing device 2.
  • the port is a port number used by the processing device 2 for communication.
  • the online state information indicates whether the communication state of the processing device 2 is online. For example, "1" indicates that the communication status is online.
  • the expiration date of the location information is the expiration date for the location information of the processing device 2 registered in the database 2B3 to function effectively.
  • the database 2B3 updates the location information of the corresponding processing device 2.
  • the database 2B3 deletes the location information without updating it.
  • the update date and time is the date and time when the location information is registered or updated in the database 2B3.
  • the location information is not limited to this information.
  • the processing device 2 and the signaling server 2B1 perform the processing of step S1 and the processing of step S2, for example, according to the timing chart of FIG.
  • the processing device 2 makes a WebSocket connection request to the signaling server 2B1 in order to enable communication according to the WebSocket communication standard.
  • a connection by WebSocket is established between the processing device 2 and the signaling server 2B1.
  • HTTP HyperText Transfer Protocol
  • the server side cannot deliver PUSH to the client.
  • the processing device 2 and the signaling server 2B1 can communicate in both directions by WebSocket.
  • the processing device 2 transmits a command indicating a registration request for location information to the signaling server 2B1.
  • the signaling server 2B1 stores the location information received from the processing device 2 in the database 2B3.
  • the location information of the processing device 2 is registered in the database 2B3.
  • the processing device 2 can refer to the location information of the other processing device 2 registered in the database 2B3 via the signaling server 2B1.
  • the signaling server 2B1 transmits information regarding the expiration date of the location information to the processing device 2.
  • the processing device 2 can recognize the expiration date of its own location information registered in the database 2B3.
  • the processing device 2 retransmits the location information registration request to the signaling server 2B1 in order to update the location information, as shown in A350, at the timing when the location information reaches the expiration date.
  • the child node participates in the logical network 3
  • the child node, the parent node, and the signaling server 2B1 perform the processing of step S1 and the processing of step S2, for example, according to the timing chart of FIG.
  • the child node requests connection with the parent node 2D3 by short-range wireless communication, for example, in the processing of A410.
  • the child node does not have a means for directly connecting to the signaling server 2B1 or the like.
  • the child node is connected to the parent node by, for example, short-range wireless communication or USB connection.
  • the child node is connected to the signaling server 2B1 via the parent node.
  • Short-range wireless communication includes, for example, a Bluetooth® connection.
  • the parent node notifies the child node that the connection by short-range wireless communication has become possible.
  • the child node requests the signaling server 2B1 to register the location information in the database 2B3 via the parent node.
  • the parent node makes a request for registration of location information from the child node to the signaling server 2B1 on behalf of the child node.
  • the signaling server 2B1 stores the received location information of the child node in the database 2B3.
  • the location information of the child node is registered in the database 2B3.
  • the processing device 2 can refer to the location information of the child node registered in the database 2B3 via the signaling server 2B1.
  • the signaling server 2B1 transmits information regarding the expiration date of the location information of the child node to the parent node.
  • the parent node transmits information regarding the expiration date of the location information of the child node to the child node.
  • the child node can recognize the expiration date of its own location information registered in the database 2B3.
  • each processing device 2 that intends to construct the logical network 3 can confirm each other's location information by referring to the database 2B3.
  • the communication standard and protocol used for the connection between the processing device 2 and the signaling server 2B1 may be arbitrarily changed.
  • the link function unit 222 creates node information.
  • the node information includes a session description unit and a media description unit.
  • the user ID, IP address, and device ID of the processing device 2 are described in the session description unit.
  • the media description unit can be provided with the function name, port number, version information, and the execution result of the function for each function to be executed by the processing device 2 or executed by another processing device 2 to receive the result. Whether or not and whether or not to request is described.
  • the function name indicates a function such as search and search.
  • the version information indicates the version of the software including the execution program 242 that executes the function.
  • step S4 the link function unit 222 acquires a contact list from the connected signaling server 2B1. Based on the contact list, the link function unit 222 determines another processing device 2 to be transmitted to transmit node information in order to construct the logical network 3.
  • the link function unit 222 When acquiring the contact list, the link function unit 222 requests the contact list from the connected signaling server 2B1 via the communication unit 23. Upon receiving the contact list request, the signaling server 2B1 transmits the contact list shown in FIG. 11 to the processing device 2.
  • the contact list includes information indicating the device ID, user ID, parent node, and connection server of each processing device 2 that may be able to construct the logical network 3, respectively.
  • the contact list is composed of the location information shown in FIG. 7 which is necessary for establishing a session.
  • the link function unit 222 transmits node information to, for example, another processing device 2 having the same user ID as the processing device 2 based on the location information.
  • step S5 the link function unit 222 requests another processing device 2 to start a session.
  • the process of starting a session between the processing devices 2 will be described with reference to FIGS. 12 and 13.
  • the link function unit 222 first transmits node information to another processing device 2 via the communication unit 23 in the processing of S400 and A500 and A510.
  • the other processing device 2 to which the node information is sent is the other processing device 2 having the same user ID as the processing device 2, but the present invention is not limited to this.
  • the link function unit 222 provided in the other processing device 2 that has received the node information has the processing device 2 that has transmitted the node information and the other processing device 2 that has received the node information based on the node information. It is determined whether or not the processing device 2 that has transmitted the node information has the function required by at least one of the above. That is, the other processing device 2 that has received the node information starts a session with the processing device 2 that has sent the node information, and determines whether or not to construct the logical network 3.
  • the link function unit 222 provided in the navigation device 2A compares the node information of the mobile terminal 2C received in the processes of S400 and A500 and A510 with the node information of the navigation device 2A created in the process of step S5.
  • the link function unit 222 provided in the navigation device 2A determines whether or not the corresponding software versions are different between the module 4 of the navigation device 2A and the module 4 of the mobile terminal 2C, which execute the same function.
  • the function here is a function that the mobile terminal 2C requests from the navigation device 2A and that the navigation device 2A can provide to the mobile terminal 2C.
  • the link function unit 222 provided in the navigation device 2A determines that the mobile terminal 2C has a function required by the mobile terminal 2C.
  • the link function unit 222 provided in the navigation device 2A is software corresponding to the module 4 that executes the function that the navigation device 2A requests from the mobile terminal 2C and that the mobile terminal 2C can provide to the navigation device 2A. Determine if each version of is different. When the software version corresponding to each module 4 is different, the link function unit 222 provided in the navigation device 2A determines that the mobile terminal 2C has the function required by the navigation device 2A.
  • the link function unit 222 is not limited to the configuration in which the versions of the software are compared.
  • the link function unit 222 may be configured so as to be able to determine whether or not at least a part of the execution program 242 of each module 4 is different.
  • the link function unit 222 has a configuration for determining whether or not the order in the time series in which each software is created or revised is the same or different, without comparing the versions of the software. May be good. Creation here does not mean that existing software is revised to create a new version of software, but that software that does not have a previous version is created.
  • the link function unit 222 may be configured to compare the versions of the usage data used by each module 4 instead of comparing the versions of the software corresponding to each module 4. In the case of this configuration, if the version of the usage data is different, the link function unit 222 determines that the other processing device has the function required by the processing device 2. Of the different usage data, the usage data used when the first execution program is executed corresponds to the first usage data. Of the different usage data, the usage data used when the second execution program is executed corresponds to the second usage data. The second usage data is at least partially different from the first usage data.
  • the link function unit 222 is not limited to the configuration for comparing the versions of the usage data.
  • the link function unit 222 may be configured so as to be able to determine whether or not at least a part of the usage data used by each module 4 is different. Therefore, the link function unit 222 is configured to determine whether or not the order in which each usage data is created or revised in the time series is the same or different, without comparing the versions of the usage data. There may be. Creation here does not mean that existing usage data is revised to create a new version of usage data, but that usage data that does not have a previous version is newly created.
  • the link function unit 222 may be configured to compare both the version of each software and the version of each usage data.
  • Each module 4 of the processing device 2 and the other processing device 2 can obtain different execution results even if the execution program 242 or the usage data is different, even if the same function is executed.
  • the link function unit 222 provided in the other processing device 2 that has received the node information determines whether to start a session with the processing device 2 that has transmitted the node information.
  • the link function unit 222 provided in the other processing device 2 that has received the node information returns the determination result and the node information to the processing device 2 that has transmitted the node information in the processing of A520 and A530 via the communication unit 23. do.
  • the link function unit 222 provided in the processing device 2 that has transmitted the node information receives from the other processing device 2 the determination result that the processing device 2 has the function required by at least one processing device 2 and the node information, S420 and A540.
  • the request for starting the session is transmitted to the other processing device 2 via the communication unit 23.
  • the link function unit 222 provided in the processing device 2 that has transmitted the node information receives a determination result from the other processing device 2 that it does not have the functions required by each other, the communication unit is processed by S430 and A550. Information for notifying that the start of the session is unnecessary is transmitted to the other processing device 2 via the 23.
  • the other processing device 2 that received the request to start the session starts the session with the processing device 2 that requested the start of the session, and establishes the session.
  • Each processing device 2 performs processing such as collection of address candidates in order to establish a session.
  • the logical network 3 is constructed not only when the processing device 2 is newly connected to the logical network 3, but also when the processing device 2 updates the software including the execution program 242 or the usage data such as the map data 241. Even if it happens, it will be done again.
  • the link function unit 222 performs a process of connecting to another processing device 2 again in order to construct the logical network 3.
  • the link function unit 222 provided in the processing device 2 is executed by the first execution program based on the second execution program or the second usage data among the other processing devices 2 that can be connected via the communication unit 23.
  • a logical network 3 is formed by connecting to another processing device 2 that performs the same function as the case where the data is performed. Therefore, the execution result obtained by executing the predetermined function by the other processing device 2 may be different from the result obtained by executing the predetermined function in the own processing device which is its own processing device. That is, forming a logical network 3 with another processing device 2 that obtains a different execution result, instead of another processing device 2 that obtains the same execution result as the execution result obtained by executing a predetermined function in the processing device 2. Will be.
  • the processing device 2 can form a logical network 3 in which a connection can be established only for the processing device 2 that produces a useful result in the execution of a predetermined function, and the management cost can be reduced.
  • the server group 2Z is composed of two or more servers 2B for information processing load balancing, data backup, and the like.
  • the two or more servers 2B are divided according to the function, and two or more servers 2B having the same function are provided.
  • the transmission information transmitted and received between the processing devices 2 in order to execute the link function includes at least one of a user ID, a command ID, a request ID, information indicating a time stamp, and information indicating a result. Or one is included.
  • the user ID is identification information that identifies the user of each processing device 2.
  • the command ID is identification information indicating an instruction to be executed.
  • the request ID is unique identification information given for each instruction.
  • the time stamp indicates the time when the information to be transmitted is transmitted.
  • the information indicating the result indicates the result of executing the instruction related to the command ID.
  • each processing device 2 When transmitting a command to execute a predetermined function to another processing device 2, each processing device 2 transmits transmission information including at least a command ID and a request ID to the other processing device 2. When transmitting the result of executing an instruction to another processing device 2, each processing device 2 transmits transmission information including at least a request ID and information indicating the result to the other processing device 2.
  • the information processing system 1 When the transmission information is transmitted from the navigation device 2A or the mobile terminal 2C to the server group 2Z, the information processing system 1 distributes the transmission information to different servers 2B in order to distribute the processing load of the server 2B.
  • the information processing system 1 distributes transmission information to each corresponding processing device 2.
  • the information of the server 2B to which the transmission information is distributed is stored in the server 2B for at least a certain period of time.
  • the transmission information is distributed to the same server 2B as before.
  • the information of the server 2B to which the transmission information is distributed is reset.
  • each processing device 2 communicates with the signaling server 2B1 called a heartbeat.
  • the signaling server 2B1 determines whether the communication status of each processing device 2 is online or offline by performing a heartbeat.
  • the signaling server 2B1 is configured to send a pin frame to the processing device 2, and the status confirmation unit 221 of the processing device 2 is configured to send a Pong frame back to the signaling server 2B1. .. Specifically, it is as follows.
  • Database 2B3 is one of the servers constituting the server group 2Z.
  • the processing device 2 to which the pin frame is sent in the processing of A101 sends back a ponframe to the signaling server 2B1.
  • the exchange between the pin frame and the pong frame is performed at predetermined time intervals.
  • the predetermined time interval may be constant or irregular. While such exchange between the pin frame and the pon frame is normally performed, the communication state of the processing device 2 is online.
  • the signaling server 2B1 sends a pin frame to the processing device 2 in the processing of A110, if there is no response from the processing device 2 like A111, the communication status of the processing device 2 is offline. It has become.
  • the signaling server 2B1 requests the database 2B3 to update the record that manages the communication status.
  • the record that manages the communication status of the database 2B3 is updated.
  • the signaling server 2B1 also notifies the other signaling server 2B1 that the communication status of the processing device 2 is offline.
  • the other signaling server 2B1 confirms the communication status of the other processing device 2. Then, in the processing of A114, the other signaling server 2B1 notifies the other processing device 2 that the communication state of the processing device 2 is offline.
  • the signaling server 2B1 sends a pin frame to the processing device 2 at a predetermined time interval in the processing of A120.
  • the predetermined time interval may be constant or irregular.
  • the signaling server 2B1 requests the database 2B3 to update the record that manages the communication status.
  • the signaling server 2B1 also notifies the other signaling server 2B1 that the communication status of the processing device 2 is online.
  • the other signaling server 2B1 notifies the other processing device 2 that the communication state of the processing device 2 is online.
  • the signaling server 2B1 can confirm the communication status of each processing device 2. For example, when the processing device 2 is the navigation device 2A, when a vehicle enters a place where radio waves do not reach, such as a tunnel or an underground parking lot, even if the signaling server 2B1 transmits a pin frame to the navigation device 2A, a response of the ponframe is received. It disappears. In such a case, by the above processing, each processing device 2 included in the logical network 3 recognizes that the communication state of the navigation device 2A is offline. The communication status of the processing device 2 may be confirmed by a method other than the heartbeat.
  • the function execution unit 211 determines the priority of each module 4 based on the selection criteria which is a predetermined criterion, and the first candidate having the highest priority and the first candidate next to the first candidate. Select the second candidate of priority respectively.
  • the first candidate is module 4, which is presumed to give the best execution results.
  • the second candidate is a module 4 that can execute the same function as the first candidate and is estimated to obtain the second best execution result after the first candidate.
  • the selection criteria of the module 4 are, for example, to receive a more accurate execution result, or to receive an execution result earlier.
  • the function execution unit 211 selects the first candidate and the second candidate based on any one of the version of the module 4, the version of the map data 241 and the communication speed.
  • the communication speed is the amount of data that can be transmitted / received per unit time between the processing device 2 that transmits a command for executing a predetermined function and the other processing device 2.
  • the function execution unit 211 selects a first candidate and a second candidate from the modules 4 whose communication status is incorporated in the online processing device 2. That is, the module 4 whose communication state is incorporated in the offline processing device 2 is not selected as either the first candidate or the second candidate.
  • the selection criterion is the version of the module 4
  • the function execution unit 211 raises the priority of the module 4 having a newer version.
  • the selection criterion is the version of the map data 241, the function execution unit 211 raises the priority of the module 4 having a new version.
  • the function execution unit 211 raises the priority of the module 4 incorporated in the processing device 2 having a high communication speed.
  • the selection criteria may be predetermined, and the processing device 2 may be configured so that the selection criteria can be changed by the user. In this case, the selection criterion may be stored in the storage unit 24. Further, the processing device 2 may be configured so that the selection criteria are determined by machine learning.
  • the function execution unit 211 selects a first candidate and a second candidate from two or more processing devices 2 constituting the logical network 3.
  • the processing device 2 can transmit and receive the execution result obtained by executing a predetermined function by communicating with another processing device 2 forming the logical network 3 via the communication unit 23.
  • the execution result that can be acquired from the other processing device 2 is the same as the execution result obtained when the processing device 2 is executed by the module 4 provided in the processing device 2, the execution result from the other processing device 2 Is less likely to be received. Therefore, the function execution unit 211 selects the first candidate and the second candidate from the two or more processing devices 2 constituting the logical network 3.
  • the logical network 3 is formed by connecting processing devices 2 having different versions of software including the execution program 242 and versions of usage data used when the execution program 242 is executed. Therefore, the function execution unit 211 is the first candidate from among two or more processing devices 2 that can execute the same function by using software including different execution programs 242 or usage data such as different map data 241. And the second candidate. Since the logical network 3 is unlikely to include a processing device 2 that is unlikely to be used, the information processing system 1 is effective as an option when the function execution unit 211 selects the first candidate and the second candidate. It can be narrowed down to, and the processing load can be reduced.
  • the function execution unit 211 transmits a command to each of the first candidate and the second candidate to execute a predetermined function. It should be noted that the transmission referred to here is an instruction, that is, transmission of transmission information, and does not include confirmation of transmission.
  • the function execution unit 211 simultaneously transmits commands to the first candidate and the second candidate. If it is possible to perform a plurality of processes in parallel, the function execution unit 211 performs a process for transmitting an instruction to the first candidate and a process for transmitting an instruction to the second candidate in parallel. And do it. When the parallel processing cannot be performed, the function execution unit 211 performs the processing for transmitting the instruction in the order of the processing for transmitting the instruction to the first candidate and the processing for transmitting the instruction to the second candidate. ..
  • the function execution unit 211 performs a process for transmitting an instruction to the second candidate immediately after performing a process for transmitting the command to the first candidate. Immediately after transmitting the command to the first candidate, it means that there is no delay after transmitting the command to the first candidate. It is preferable that the function execution unit 211 transmits the command to the second candidate within 1 second after transmitting the command to the first candidate. Further, it is more preferable that the function execution unit 211 transmits the command to the second candidate within 0.5 seconds after transmitting the command to the first candidate. Further, it is more preferable that the function execution unit 211 transmits the command to the second candidate within 0.1 seconds after transmitting the command to the first candidate.
  • the function execution unit 211 transmits the command to the second candidate within 0.05 seconds after transmitting the command to the first candidate. Further, it is extremely preferable that the function execution unit 211 transmits the command to the second candidate within 0.01 seconds after transmitting the command to the first candidate.
  • the function execution unit 211 can perform a process for transmitting an instruction to the second candidate before performing a process for recognizing the first execution result. Specific examples of the process of transmitting these commands will be described later.
  • the function execution unit 211 cannot perform parallel processing, the function execution unit 211 is a virtual parallel processing in which a process for transmitting an instruction to the first candidate and a process for transmitting an instruction to the second candidate are time-divided. You may go with.
  • the function execution unit 211 uses the execution result of the first candidate or the execution result of the second candidate.
  • the function execution unit 211 acquires the execution result of the first candidate within a predetermined time, it determines that the execution result of the first candidate is displayed on the display unit 26 and output from the voice output unit 27.
  • the function execution unit 211 does not acquire the execution result of the first candidate for a predetermined time, the function execution unit 211 causes the display unit 26 to display the execution result of the second candidate and outputs the second candidate execution result from the voice output unit 27. decide.
  • the function execution unit 211 acquires the execution result of the first candidate or the second candidate of the processing device 2. ..
  • the function execution unit 211 is the first candidate or the second candidate via the communication unit 23. Get the execution result of the candidate.
  • the communication control unit 212 controls the communication unit 23 to transmit and receive transmission information between the processing devices 2. Specifically, the communication control unit 212 manages the connection established between the processing devices 2 and specifies the processing device 2 which is the partner to be communicated with. The communication control unit 212 identifies another processing device 2 including the first candidate or the second candidate by specifying the other party to transmit the command for executing the function, and transmits the command to the specified processing device 2. The communication unit 23 is controlled so as to do so. Further, the communication control unit 212 identifies that the execution result transmitted from the processing device 2 specified above is the execution result transmitted from the processing device 2 that has transmitted the command.
  • the output control unit 213 controls the display unit 26 and the audio output unit 27, respectively.
  • the output control unit 213 outputs the image data generated based on the information based on the execution result of the first candidate or the second candidate to the display unit 26, and outputs the audio data to the audio output unit 27.
  • Guidance unit 214 generates information for guiding the user along at least one of voice and display along the route.
  • the search unit 215 searches for a facility based on the map data 241 based on information such as a facility name and a telephone number input by the user via the operation unit 25.
  • Facilities include, for example, gas stations, charging stations, hospitals, police stations, fire stations, train stations, convenience stores, parks, mountains, and other specific locations.
  • the map data 241 includes various information necessary for route guidance and map display.
  • the map data 241 includes road information and facility information. Road information is represented by a combination of nodes and links. Nodes are set, for example, at intersections, road ends, and the like. The link is set, for example, at a position connecting adjacent nodes.
  • the facility information is information representing a building or POI (Point Of Interest).
  • This map data may include information representing the shape of the road, the latitude and longitude of the road, the curvature of the road, the slope of the road, the direction of the road, the direction of passage of the road, and the like for each link.
  • the map data may also include information on the types of roads such as expressways and general roads. In general, the newer the version of the map data, the more suitable the content is.
  • the map data is composed of, for example, data corresponding to each of a plurality of parcels. The parcel is set by dividing the ground surface into rectangles of a predetermined size based on latitude and longitude.
  • the search unit 216 searches for a route from the departure point to the destination based on the map data 241.
  • the map drawing unit 217 generates data for displaying a map on the display unit 26 based on the map data 241.
  • This map shows, for example, the current location of the vehicle equipped with the processing device 2 or the person holding the processing device 2, and the route from the current location to the destination.
  • the vehicle is an automobile.
  • the vehicle may be, for example, a motorcycle, a bicycle, or a train.
  • the traffic information unit 218 and the traffic information unit 218 perform various processes related to traffic information.
  • the traffic information unit 218 notifies the user of the traffic information as necessary.
  • the notification of traffic information is performed by displaying the traffic information on the display unit 26 or outputting the voice from the voice output unit 27.
  • Traffic information includes information about traffic jams, information about the existence of accident vehicles, and information about dangers that exist in the vicinity or beyond an ongoing route.
  • the traffic information unit 218 may transmit information such as identification information, position information, and time for identifying the navigation device 2A to the server 2B.
  • the map matching unit 219 performs map matching processing based on the position information indicating the current location.
  • the map matching process is, for example, a process of correcting the latitude information and the longitude information acquired by the GPS (Global Positioning System) sensor provided in the vehicle to the position on the road indicated by the map data.
  • the map matching unit 219 superimposes the current location of the vehicle indicated by the latitude information and the longitude information on the map information, and obtains a link corresponding to the superposed position.
  • the information about the current location used in the map drawing unit 217 is the information of the current location corrected by the map matching unit 219.
  • the map matching unit 219 may acquire information about the current location such as latitude information and longitude information by the positioning unit 28 mounted on the processing device 2 instead of the GPS provided in the vehicle.
  • the difference update unit 220 updates the map data 241 stored in the storage unit 24.
  • the navigation device 2A is configured to automatically update the map, which is a process of updating the map data 241A.
  • the navigation device 2A is configured to download map difference data from the server 2B at a predetermined timing and write the downloaded map difference data to the navigation storage unit 24A or a recording medium (not shown).
  • the recording medium is, for example, an SD card.
  • the recording medium is connected to the navigation device 2A via an interface (not shown) of the navigation device 2A.
  • the map difference data is the map data of the part different from the map data of the previous version.
  • the map difference data is acquired in parcel units, for example.
  • the processing device 2 since the map difference data is used for updating the map, the time required for updating the map can be shortened as compared with the case where the entire map data is downloaded.
  • the status confirmation unit 221 transmits a Pong frame to another signaling server 2B1 via the communication unit 23 so that the status of the processing device 2 can be confirmed.
  • the communication unit 23 includes a navigation communication unit 23A, a server communication unit 23B, and a mobile communication unit 23C.
  • the communication unit 23 communicates with each other by transmitting and receiving data to and from each other via the network.
  • the navigation communication unit 23A is realized by a configuration having a communication function such as TCU (Telecommunication Control Unit or Telematics Control Unit) or DCM (Data Communication Unit).
  • the operation unit 25 includes a navigation operation unit 25A and a mobile operation unit 25C.
  • the operation unit 25 detects a user's instruction and outputs information indicating the detected operation to the control unit 21.
  • the navigation operation unit 25A and the mobile operation unit 25C are touch panels when the navigation display unit 26A and the mobile display unit 26C are each composed of a touch panel.
  • the display unit 26 includes a navigation display unit 26A and a mobile display unit 26C.
  • the display unit 26 displays a map based on the map data 241 respectively.
  • the display unit 26 is, for example, a liquid crystal display, an organic EL display, or the like.
  • the storage unit 24 includes a navigation storage unit 24A, a server storage unit 24B, and a mobile storage unit 24C.
  • the storage unit 24 stores various types of information.
  • the storage unit 24 stores the map data 241 and the software.
  • the software includes various programs executed by the processing device 2. Examples of these programs include a program for activating the processing device 2, a program for updating a map, and an execution program 242 for executing a search, search, link function, and the like.
  • the voice output unit 27 includes a navigation voice output unit 27A and a mobile voice output unit 27C.
  • the voice output unit 27 outputs guidance information as voice when guiding the user along the route.
  • the audio output unit 27 is a speaker.
  • the positioning unit 28 includes the mobile positioning unit 28C.
  • the positioning unit 28 acquires the current location of the processing device 2 having the positioning unit 28 as latitude information and longitude information.
  • the positioning unit 28 is, for example, a GPS sensor.
  • the processing device 2 that outputs the execution result to the display unit 26 and the audio output unit 27 is referred to as “own node”.
  • the "own node” corresponds to the first processing device. That is, in many cases, the own node is the own processing device 2 operated by the user. The own node is, for example, a navigation device 2A.
  • the processing device 2 other than the own node is referred to as "another node”. The other node is, for example, a mobile terminal 2C or a server 2B.
  • the "other node” corresponds to the second processing device.
  • step S100 the function execution unit 211 resets the value of the number of trials to 0.
  • step S110 the function execution unit 211 executes the candidate selection process.
  • the candidate selection process is performed by the function execution unit 211 provided in the own node, but the present invention is not limited to this. Even if the function execution unit 211 provided in the other node selects the first candidate and the second candidate, and the first candidate and the second candidate selected by the function execution unit 211 provided in the other node are transmitted to the own node. good. In such a configuration, the function execution unit 211 provided in the own node determines to accept the result selected by the function execution unit 211 provided in the other node. Therefore, even in the case of the above configuration, it can be said that the function execution unit 211 provided in the own node selects the first candidate and the second candidate.
  • step S200 of the candidate selection process shown in FIG. 16 first, the function execution unit 211 determines whether or not the candidate module 4 exists in the logical network 3. That is, the function execution unit 211 determines whether or not the predetermined function to be executed can be executed. In step S200, if the module 4 capable of executing a predetermined function does not exist in the logical network 3, the function execution unit 211 ends the candidate selection process.
  • the function execution unit 211 selects a first candidate from the modules 4 based on a predetermined selection criterion in step S210. do.
  • the selection criteria here are as described above and are omitted here.
  • step S220 the function execution unit 211 determines whether the selected first candidate is another node. If the selected first candidate is the module 4 of the own node instead of the other node, the function execution unit 211 ends the candidate selection process without selecting the second candidate in step S221. On the other hand, when the first candidate is the module 4 of the other node, in step S230, the function execution unit 211 determines whether or not there is a candidate other than the first candidate. If there are no candidates other than the first candidate, in step S221, the function execution unit 211 ends the candidate selection process without selecting the second candidate.
  • the function execution unit 211 determines whether or not the candidate module 4 exists in the own node.
  • the function execution unit 211 selects the module 4 incorporated in the own node as the second candidate.
  • the function execution unit 211 selects the most suitable module 4 next to the first candidate as the second candidate in the selection criteria, and is a candidate. End the selection process.
  • step S120 of the candidate selection process when no candidate for the module 4 that executes a predetermined function is selected in step S120 of the candidate selection process, the function execution unit 211 sets the display unit 26 and voice in step S121. The user is notified that an error has occurred via the output unit 27. Further, the function execution unit 211 notifies the control unit 21 that an error has occurred. On the other hand, when at least one candidate of the module 4 that executes a predetermined function is selected, the process proceeds to the function execution process in step S130.
  • step S300 the function execution unit 211 transmits an instruction to execute a predetermined function to the first candidate and the second candidate. After that, when the execution result is acquired from the first candidate within a predetermined time, the function execution unit 211 uses the execution result of the first candidate in step S311. Specifically, the function execution unit 211 outputs image data to the display unit 26 and outputs audio data to the audio output unit 27 based on the information based on the execution result of the first candidate.
  • step S330 the function execution unit 211 confirms whether or not the execution result is acquired from the second candidate.
  • step S331 the function execution unit 211 uses the execution result of the second candidate.
  • the function execution unit 211 ends the process as it is.
  • the function execution unit 211 ends the execution result acquisition process.
  • the function execution unit 211 confirms the number of trials at this time.
  • step S150 when the number of trials is less than the upper limit of the number of trials, in step S151, the function execution unit 211 adds 1 to the number of trials and repeats the processing after step S110.
  • step S152 the function execution unit 211 notifies the user that an error has occurred via the display unit 26 and the voice output unit 27. Further, the function execution unit 211 notifies the control unit 21 that an error has occurred.
  • the function execution unit 211 selects the first candidate and the second candidate up to the upper limit of the number of trials, and tries to acquire the execution result.
  • the control unit 21 uses the execution result of the first candidate when the execution result of the first candidate is obtained within a predetermined time, and uses the execution result of the second candidate otherwise.
  • the first candidate may be incorporated in either the own node or another node, but when the first candidate is incorporated in the own node, the function execution unit 211 , Do not select the second candidate.
  • the configuration is not limited to this, and the function execution unit 211 may select the second candidate when the first candidate is incorporated in the own node.
  • the first candidate and the second candidate may both be modules 4 incorporated in other nodes.
  • Example 1 of command transmission when the processing device 2 has two or more processing cores such as a CPU, the function executing unit 211 issues a processing A201 for transmitting an instruction to the first candidate and an instruction to the second candidate. Is processed in parallel with the process A202 for transmitting.
  • the first candidate and the second candidate When an instruction is transmitted from the function execution unit 211, the first candidate and the second candidate perform processes A211 and A221 for receiving the instruction, and processes A212 and A222 for executing the instruction, respectively. After that, the first candidate and the second candidate perform processes A213 and A223 for transmitting the execution result, respectively.
  • the function execution unit 211 receives the execution result and performs the processes A231 and A232 for recognizing the respective execution results.
  • the command is transmitted via a bus or the like.
  • the command is transmitted via the communication unit 23.
  • the process A202X for transmitting the command is performed.
  • the second candidate performs the process A221X for receiving the instruction
  • the second candidate performs the process A222X for executing the instruction and performs the process A223X for transmitting the execution result.
  • the time until the function execution unit 211 receives the execution result from the second candidate is longer than that in the first embodiment.
  • Example 2 of command transmission when the processing device 2 has only one processing core such as a CPU, the function executing unit 211 includes the processes A201A, A201B, and A201C for transmitting instructions to the first candidate. , Processings A202A, A202B, and A202C for transmitting instructions to the second candidate are time-divided and processed by virtual parallel processing. After that, the first candidate and the second candidate perform the processes A211 and A221 for receiving the instruction, perform the processes A212 and A222 for executing the instruction, and then perform the processes A213 and A223 for transmitting the execution result.
  • the function execution unit 211 receives the execution result and performs the processes A231A, A231B, A232A, and A232B for recognizing the respective execution results.
  • the transmission of the command to the first candidate is faster than the transmission of the command to the second candidate, but the transmission of the command to the first candidate and the second candidate is slower than that in the first embodiment.
  • the time until the function execution unit 211 receives the execution result from the second candidate is shorter.
  • the function execution unit 211 transmits the command to the second candidate immediately after transmitting the command to the first candidate, but there are various modes of command transmission. In either case, the function execution unit 211 transmits the command to the second candidate before the time when the execution result of the first candidate is received. In other words, the time until the function execution unit 211 transmits the instruction to the first candidate and receives the first execution result, and the function execution unit 211 transmits the instruction to the second candidate and receives the second execution result. It can be said that time overlaps. That is, as compared with the comparative example, the function executing unit 211 transmits the command to the second candidate without confirmation without confirming the result of transmitting the command to the first candidate.
  • the function execution unit 211 of the processing device 2 transmits an instruction to execute a predetermined function to the first candidate and the second candidate, and can receive the first execution result and the second execution result. ..
  • the subsequent processing can be performed based on both the first execution result and the second execution result. For example, when it is determined that the reliability of the first execution result is low, it is possible to use a more reliable execution result by using the second execution result. Further, by transmitting the instruction to the second candidate without waiting for the first execution result, it is possible to suppress the occurrence of a time lag for obtaining a highly reliable execution result.
  • the function execution unit 211 of the processing device 2 transmits a command to execute a predetermined function to the first candidate and the second candidate, and then receives a response from the first candidate to this command.
  • the order was transmitted to the second candidate.
  • the response from the first candidate includes the reception of the execution result and the reception of information that the processing device 2 including the first candidate is in the BUSY state, for example. Therefore, when the execution result of the predetermined function cannot be obtained from the first candidate, the execution result can be obtained earlier than the configuration in which the instruction to execute the predetermined function is transmitted to the second candidate again. .. Further, for example, when a module whose version is newer than the second candidate is selected as the first candidate, but the execution result of the first candidate cannot be obtained for a long time, the execution result of the second candidate which is an old version is used. be able to.
  • the information processing system 1 can receive the first execution result and the second execution result, even if the received first execution result cannot be used due to inadequate data or the like, the second execution result can be used for execution. The reliability of the result can be guaranteed.
  • the function execution unit 211 transmits the first execution result, which is the execution result of the first candidate, even after a predetermined time has elapsed after transmitting the command to the first candidate and the second candidate, respectively. If it cannot be acquired, the image data or audio data indicating the second execution result, which is the execution result of the second candidate, may be output to the display unit 26 or the audio output unit 27, respectively. As a result, when it takes time to acquire the first execution result, an image is displayed on the display unit 26 based on the second execution result, and the voice is output from the voice output unit 27 to execute a predetermined function. It is possible to prevent it from taking a long time to output the execution result which is the result.
  • the selection criterion of the first candidate and the second candidate by the function execution unit 211 is set to the magnitude of the communication speed, it is possible to easily acquire the result of executing the predetermined function earlier. Further, when the selection criterion is the version of the module 4, it becomes easier to obtain a better result as a result of executing a predetermined function. Further, when the selection criterion is the version of the map data 241, for example, the search result of the route based on the newer map data 241 can be obtained.
  • the version of the map data 241 of the processing device 2 including the function execution unit 211 to which the command is transmitted is different from the version of the map data 241 of the processing device 2 including the first candidate or the second candidate to which the command is transmitted. May cause a contradiction between the execution result and the map data 241.
  • the map data 241 corresponding to the road that is the route to the destination is not included in the map data 241 of the function executing unit 211 that has transmitted the command.
  • the function execution unit 211 requests the processing device 2 in which the first candidate or the second candidate is incorporated to transmit the map data of the portion necessary for displaying the execution result.
  • the function execution unit 211 requests the processing device 2 in which the first candidate or the second candidate is incorporated to transmit the data of the parcel including the route from the current location to the destination.
  • the processing device 2 which is the own node.
  • the function execution unit 211 provided in the own node transmits the parcel data including the route from the current location to the destination to the processing device 2 including the first candidate or the second candidate as described above. You may request to do so.
  • the function execution unit 211 may select at least the first candidate or the second candidate from the modules 4 incorporated in the own node. Since it usually does not occur that the execution result cannot be obtained from the module 4 incorporated in the own node, it is possible to avoid a state in which the execution result of a predetermined function cannot be obtained by doing so.
  • the function execution unit 211 again bases the first candidate and the second candidate on the predetermined selection criteria. You may reselect the second candidate.
  • the function execution unit 211 reselects the first candidate and the second candidate by using the order obtained in the previous candidate selection process. In this case, the function execution unit 211 newly selects the module 4, which has the lowest rank next to the second candidate selected in the previous candidate selection process, as the first candidate. The function execution unit 211 newly selects the module 4 having the lowest rank next to the newly selected first candidate as the second candidate.
  • the function execution unit 211 may change the selection criteria when the candidate selection process is performed again.
  • the function execution unit 211 selects only the module 4 whose communication status is incorporated in the online processing device 2. As a result, the function execution unit 211 can exclude the module 4 whose communication state is incorporated in the offline processing device 2 from the selection target, so that it is easy to avoid the situation where the execution result cannot be obtained from the module 4.
  • the navigation device 2A of the processing device 2 includes a CPU 51, a ROM (Read Only Memory) 52, a RAM (Random Access Memory) 53, an I / O interface 54, and a touch panel 55. It includes a TCU 56, a storage device 57, an SD host module 58, a bus 59, a display unit 60, and an audio output unit 61. These configurations are, but are not limited to, semiconductor integrated circuits that are one or more pieces of hardware.
  • the CPU 51 functions as an arithmetic processing unit and a control device.
  • the CPU 51 controls the overall operation of the navigation device 2A according to various programs.
  • the CPU 51 executes various programs stored in the ROM 52 with the RAM 53 as a work area.
  • the CPU functions as the control unit 21 of the processing device 2 by executing the program.
  • the ROM 52 stores programs, calculation parameters, etc. used by the CPU 51.
  • the ROM 52 stores, for example, a program of a module executed by the control unit 21.
  • the ROM 52 is a part of the storage unit 24 of the processing device 2.
  • the RAM 53 temporarily stores a program used when the CPU 51 executes control. Further, the RAM 53 temporarily stores variables and the like that are appropriately changed when the CPU 51 executes control.
  • the RAM 53 is a part of the storage unit 24 of the processing device 2.
  • the I / O interface 54 inputs / outputs data to / from the device connected to the navigation device 2A.
  • the I / O interface 54 receives information on input operations by the user, data on position information, and the like from sensors or input devices for navigation devices mounted on the vehicle.
  • the I / O interface 54 provides the read data and the like to the CPU 51 via the RAM 53 as needed.
  • the touch panel 55 detects an input operation by the user.
  • the touch panel 55 is an operation unit 25 of the processing device 2.
  • the touch panel 55 may be integrated with the display unit 60.
  • the TCU 56 communicates with the server 2B and the mobile terminal 2C, respectively.
  • the navigation device 2A may communicate with the mobile terminal 2C by short-range wireless communication.
  • the TCU 56 is a communication unit 23 of the processing device 2.
  • the storage device 57 is realized by, for example, a magnetic storage device, a semiconductor storage device, an optical storage device, an optical magnetic storage device, or the like.
  • the magnetic storage device is, for example, an HDD (Hard Disk Drive).
  • the storage device 57 stores a program executed by the CPU 51, various data including data acquired from the outside, and the like.
  • the storage device 57 is a part of the storage unit 24 of the processing device 2.
  • the SD host module 58 reads and writes information to the SD card which is the inserted recording medium.
  • the SD host module 58 outputs the information read from the recording medium to, for example, the RAM 53.
  • the display unit 60 outputs an image based on the input image data.
  • the display unit 60 is a display unit 26 of the processing device 2, and is a liquid crystal display, an organic EL display, or the like.
  • the voice output unit 61 outputs voice based on the input voice data.
  • the audio output unit 61 is an audio output unit 27 of the processing device 2 and is a speaker.
  • the bus 59 connects each configuration of the navigation device 2A. As a result, each configuration of the navigation device 2A can transmit and receive data to and from each other.
  • the mobile terminal 2C of the processing device 2 has the same configuration as the navigation device 2A described above, but differs in that it includes, for example, a GPS sensor (not shown).
  • the GPS sensor is a positioning unit 28 of the processing device 2.
  • the candidate selection process of the embodiment may be performed by the following modification shown in FIG. 22. This modification differs from the candidate selection process of the embodiment in that the first candidate and the second candidate are selected without considering whether the node is the own node or another node.
  • step S200 the function execution unit 211 determines whether or not the module 4 capable of executing the predetermined function to be executed exists in the logical network 3. If the module 4 capable of executing a predetermined function does not exist in the logical network, the function execution unit 211 ends the candidate selection process.
  • step S210 the function execution unit 211 selects a first candidate from the module 4 based on a predetermined selection criterion.
  • the selection criteria here are as described above and are omitted here.
  • the function execution unit 211 confirms whether or not the function execution unit 211 has a candidate other than the first candidate. If there is no candidate other than the first candidate, in S221, the function execution unit 211 ends the candidate selection process without selecting the second candidate.
  • the function execution unit 211 selects the most suitable module 4 next to the first candidate with respect to the selection criteria as the second candidate, and performs the candidate selection process. finish.
  • the function execution unit 211 may preferentially select a module of another node or its own node as the first candidate. That is, as one of the selection criteria for selecting the first candidate and the second candidate, the criterion of preferentially selecting the own node or another node may be used.
  • the processing device 2 forms a logical network 3 with another processing device 2 that performs the same function among the other processing devices 2 that can be connected.
  • the storage unit 24 of the self-processing device 2 and the other processing device 2 has software including an execution program 242 executed by the control unit 21, and map data 241 used when the execution program 242 is executed. Store usage data. At least a part of the above software and usage data is different between the self-processing device 2 forming the logical network 3 and the other processing device 2.
  • the self-processing device 2 forming the logical network 3 and the other processing device 2 have different versions of the software and usage data.
  • the processing device 2 can establish a connection only to other processing devices 2 that bring about useful results in the execution of a predetermined function to form the logical network 3, and reduce the management cost of the logical network 3. can.
  • the other processing devices 2 forming the logical network 3 have different versions of at least one of the software and the usage data, and also have different orders in the time series in which at least one of the software and the usage data is created. May be good.
  • control unit 21 of the processing device 2 reforms the logical network 3 when the version of the software including its own execution program 242 or the version of the usage data is changed.
  • the version of the execution program 242 of the processing device 2 or the usage data is changed, the same function is executed based on at least one of the execution program 242 and the usage data having a different version.
  • the network can be appropriately reformed with the other processing device 2.
  • the processing device 2 it is determined whether or not the processing device 2 that has received the node information should start the session, but the method is not limited to this method.
  • the processing device 2 newly connected to the signaling server 2B1 should send a signal requesting node information to another processing device 2, receive node information from the other processing device 2, and start a session. Processing that determines the processing device 2 of the above may be performed.
  • the number of modules selected as candidates by the function execution unit 211 may be three or more. That is, the function execution unit 211 may be configured to select the first candidate to the third candidate.
  • the function execution unit 211 is a first candidate and a second candidate from the module 4 in which the communication state is incorporated in the online processing device 2 and the module 4 in which the communication state is incorporated in the offline processing device 2. It may be configured to select and.
  • the function execution unit 211 uses the execution result of the first candidate or the execution result of the second candidate, it does not necessarily have to be displayed on the display unit 26 and output from the voice output unit 27.
  • at least one of the execution result of the first candidate and the execution result of the second candidate may be used for processing other than output.
  • at least one of the execution result of the first candidate and the execution result of the second candidate may be stored in the storage unit 24.
  • the logical network 3 may include a television as the processing device 2.
  • the same type of processing device 2 may be included in the same logical network 3.
  • the television may be connected to the Internet, that is, the logical network 3 by wire, for example.
  • the server control unit 21B which is the control unit 21 of the server 2B, may be configured to include the function execution unit 211.
  • Each of the processing devices 2 constituting the logical network 3 is one electronic device, but two or more electronic devices may be regarded as one processing device 2 to form a logical network.
  • the logical network 3 is managed by the group ID.
  • the information processing system 1 can connect the processing devices 2 in the same group.
  • module 4 is mainly software
  • the module 4 may be hardware or a combination of software and hardware.
  • the function execution unit 211 may select a candidate module 4 according to the response speed instead of the communication speed. That is, the time required for a response when data is transmitted / received between the processing device 2 for transmitting an instruction to execute a predetermined function and another processing device 2 may be used as the selection criterion of the module 4.
  • the module selection criteria by the function execution unit 211 is not based on any one index, but may be a combination of a plurality of indexes.
  • the function execution unit 211 may perform scoring based on indicators such as the communication speed, the version of the module 4, and the version of the map, and may select the module 4 having a high score as the first candidate or the second candidate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本発明は、接続する機器を選択してネットワークを形成できる処理装置及び情報処理システムを提供する。本発明の処理装置2は、制御部21と通信部23とを備える。ソフトウェアは、制御部21に所定の機能を実行させる第1実行プログラムを含む。第1実行プログラムが実行される場合には、第1利用データが利用される。制御部21は、通信できる他の処理装置2のうち、第2実行プログラム又は第2利用データに基づき、第1実行プログラムが実行される場合と同一の機能を実行する他の処理装置2と論理ネットワーク3を形成する。

Description

情報処理システム、処理装置及び情報処理方法
 本発明は、ネットワークを構成する2以上の処理装置で実行された処理の結果を相互に利用する技術等に関する。
 従来、例えば特許文献1には、ナビゲーションに関して異なる機能別に分割された複数の機器を備えるナビゲーションシステムが開示されている。ナビゲーションシステムは、一方の機器から、他方の機器に指示を与え、指示を与えられた他方の機器は、指示に対して機能に応じた処理を行なって当該処理の結果を返すように構成されている。
 2以上の機器でネットワークを構成する技術に関して、特許文献2には、指定FAX装置にFAX送信指示情報が送信され、結果情報"回線BUSY"を受信したと判断した場合、代替装置にFAX送信指示情報を送信する技術が開示されている。
特開2018-028518号公報 特開2018-201112号公報
 例えば、車両がトンネルを通過しているときなどの通信状態が悪い場合、ナビゲーション装置はサーバと通信することができない。特許文献1に記載のナビゲーションシステムでは、一方の機器から指示を与えられた他方の機器がこのように通信できない状態になった場合に、一方の機器が処理の結果を受け取ることができなかった。このような状況に対応するため、たとえば、特許文献2に記載の技術を採用して代替装置を利用することが考えられる。しかし、特許文献2に記載の技術では、指定機器が処理を実行できないことが判明した後に代替機器を利用するため、指定機器による処理の結果と、代替装置による処理の結果との両方を得られず、指定機器及び代替装置による処理の結果の信頼性が低下する。また、特許文献2に記載の技術では、代替機器による処理の結果が得られるまでのタイムラグが大きくなる。
 本発明の目的は、信頼性のある結果を、タイムラグを抑えて得られる情報処理システムなどを提供することにある。
 本開示の第一態様に係る情報処理システムは、2以上の処理装置でネットワークを形成する。処理装置のそれぞれは、通信部と、制御部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。制御部の少なくともいずれか1つは、第1候補と第2候補とを選択する。第1候補は、モジュールのうちのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。かつ、第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。制御部の少なくともいずれか1つは、第1候補と第2候補とに命令を伝達する。命令は、機能を実行させる命令である。制御部の少なくともいずれか1つは、第1実行結果、及び、第2実行結果を受け取れる。第1実行結果は、第1候補が命令を実行した結果である。第2実行結果は、第2候補が命令を実行した結果である。
 第一態様の情報処理システムでは、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、また、もし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、情報処理システムは、信頼性のある結果を、タイムラグを抑えて取得できる。
 第一態様の情報処理システムにおいて、以下の構成とすることができる。制御部の少なくともいずれか1つは、機能実行部を有する。機能実行部は、第1候補及び第2候補の選択を行う。機能実行部は、第1候補及び第2候補への命令の伝達を行う。機能実行部は、第1実行結果及び第2実行結果の受け取りを行う。機能実行部は、第2実行結果に基づく情報を、出力部に出力させる。出力部は、画像データ及び音声データの少なくともいずれか一方を出力する。機能実行部は、第1候補と第2候補とに命令を伝達した後、所定の時間が経過しても、第1実行結果を受け取れない場合、上記の出力を行う。
 上記構成によれば、第1実行結果の取得に時間を要する場合、又は、第1実行結果を取得できない場合に、第2実行結果を出力部から出力することで、所定の機能を実行した結果である実行結果を出力するのに長時間を要することを防止できる。
 第一態様の情報処理システムにおいて、基準を、通信速度の大きさ、命令に対応するソフトウェアのバージョンの新しさ、又は地図データのバージョンの新しさとする。通信速度は、機能実行部を備える第1処理装置と、第1処理装置と異なる処理装置である第2処理装置との間で単位時間あたりに送受信できるデータの量である。地図データは、機能としてナビゲーションが実行される場合に利用される地図のデータである。
 上記構成によれば、基準を、通信速度の大きさにした場合には、通信速度が大きいモジュールを第1候補及び第2候補として選択するため、実行結果の送受信に要する時間を短くすることができる。そのため、実行結果を早く取得しやすくできる。また、基準を、命令に対応するソフトウェアのバージョンの新しさにした場合には、例えば機能改善されたソフトウェアに基づくモジュールを第1候補及び第2候補として選択する。そのため、より優れた実行結果を取得しやすくすることができる。また、基準を、地図データのバージョンにした場合には、より新しい地図を用いたナビゲーションの実行結果を取得することができる。
 第一態様の情報処理システムにおいて、以下の構成とすることができる。機能実行部は、第1処理装置が命令に沿った機能を実行できる場合、第1処理装置に組み込まれたモジュールを第1候補又は第2候補として選択する。
 上記構成によれば、出力部に実行結果の情報を出力させる制御部を備えた第1処理装置に組み込まれたモジュールを第1候補又は第2候補として選択する。そのため、通信ができないことなどが原因で第1実行結果及び第2実行結果の双方が得られない状況を避けやすくできる。
 第一態様の情報処理システムにおいて、以下の構成とすることができる。機能実行部は、所定の時間が経過しても、第1実行結果及び第2実行結果を受け取れない場合、所定の基準に基づいて、再度、第1候補及び第2候補をそれぞれ選択する。
 上記構成によれば、所定時間が経過した後に改めて第1候補及び第2候補を選択することで、実行結果がいつまでも取得できない状況を回避することができる。
 第一態様の情報処理システムにおいて、機能実行部が、通信の状態がオンラインの処理装置に組み込まれたモジュールの中から、第1候補及び第2候補をそれぞれ選択する構成とすることができる。
 上記構成によれば、通信の状態がオフラインの処理装置に組み込まれたモジュールを第1候補又は第2候補として選択することをなくすことができる。
 本開示の一の態様に係る処理装置は、他の処理装置とともにネットワークを形成する。処理装置は、制御部と通信部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。制御部は、第1候補と第2候補とを選択する。第1候補は、モジュールのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。かつ、第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。制御部は、第1候補と第2候補とに命令を伝達する。命令は、機能を実行させる命令である。制御部は、第1実行結果、及び、第2実行結果を受け取れる。第1実行結果は、第1候補が命令を実行した結果である。第2実行結果は、第2候補が命令を実行した結果である。
 上記の処理装置では、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、またもし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、処理装置は、信頼性のある結果を、タイムラグを抑えて取得できる。
 本開示の一の態様に係る処理方法は、情報処理システムで実行される処理方法である。情報処理システムは、2以上の処理装置でネットワークを形成する。処理装置は、それぞれ、通信部と、制御部とを備える。制御部は、ソフトウェアに基づいて所定の機能を実行するモジュールを構成する。通信部は、制御部の制御に基づいて通信する。処理方法は、第1候補と第2候補とを選択するステップを有する。第1候補は、モジュールのいずれか1つである。第2候補は、第1候補と同一の機能を実行する。第2候補は、第1候補よりも所定の基準に基づく順位が低いモジュールである。処理方法は、第1候補と第2候補とに命令を伝達するステップを有する。命令は、機能を実行させる命令である。処理方法は、第1実行結果、及び、第2実行結果を受け取れるステップを有する。これらのステップは、制御部の少なくともいずれか1つによって実行される。
 上記の処理方法では、第1実行結果及び第2実行結果を受け取ることができるので、得られる結果の信頼性が高く、またもし第1実行結果を受け取ることができなかった場合に、第2実行結果を早く受け取ることができる。そのため、処理方法では、信頼性のある結果を、タイムラグを抑えて取得できる。
 本開示の第一態様に係る処理装置は、制御部と通信部とを備える。制御部は、ソフトウェアに基づく制御を行う。通信部は、制御部によって通信が制御される。ソフトウェアは、第1実行プログラムを含む。第1実行プログラムは、制御部に所定の機能を実行させる。制御部は、論理ネットワークを形成する。論理ネットワークは、機能の実行によって得られる結果を通信する。制御部は、通信部を介して接続できる他の処理装置のうち、第1実行プログラムが実行される場合と同一の機能を実行する他の処理装置と接続する。他の処理装置は、第2実行プログラムに基づいて機能を実行する。又は、他の処理装置は、第2利用データに基づいて機能を実行する。第2実行プログラムは、第1実行プログラムと少なくとも一部が異なる。第1利用データは、第1実行プログラムが実行される場合に利用される。第2利用データは、第1利用データと少なくとも一部が異なる。
 上記第一態様の処理装置は、第1実行プログラムが実行される場合と同一の機能を、第2実行プログラム又は第2利用データに基づいて実行する他の処理装置と選択的に接続するので、それぞれ同一の機能に対して第1実行プログラムが実行される場合と異なる結果を得ることができる他の処理装置と接続できる。そのため、第一態様の処理装置は、それぞれ同一の機能に対して同一の結果しか得られない2以上の処理装置が論理ネットワークに含まれることを抑制でき、利用されない処理装置が含まれる可能性を低減した論理ネットワークを形成できる。
 第一態様の処理装置において、具体的に、第1実行プログラムを含むソフトウェアと第2実行プログラムを含むソフトウェアとは、作成又は改訂された時系列上の順番がそれぞれ異なる。また、第1利用データと第2利用データとは、作成又は改訂された時系列上の順番がそれぞれ異なる。
 第一態様の処理装置において好ましくは、制御部は、他の処理装置と接続する場合、第1実行プログラムを含むソフトウェアと第2実行プログラムを含むソフトウェアのそれぞれのバージョン、又は、第1利用データと第2利用データのそれぞれのバージョンを比較する。
 上記構成によれば、制御部は、接続する他の処理装置を容易に判別できる。
 第一態様の処理装置において好ましくは、制御部は、第1実行プログラムを含むソフトウェア又は第1利用データが更新された場合、他の前記処理装置と接続する処理を再度行う。
 上記構成によれば、処理装置は、利用されない処理装置が論理ネットワークに含まれにくい状態を維持できる。
 本発明によれば、信頼性のある実行結果を、タイムラグを抑えて得ることができる。
本発明の実施形態に係る情報処理システムの概略構成図である。 実施形態に係る処理装置のひとつであるナビゲーション装置の構成図である。 実施形態に係る処理装置のひとつであるサーバの構成図である。 実施形態に係る処理装置のひとつであるモバイル端末の構成図である。 論理ネットワークの構築の手順を示すフローチャートである。 論理ネットワークの構築方法を説明するためのイメージ図である。 データベースに登録されるロケーション情報の一例を示す表である。 通常ノードのロケーション情報がデータベースに登録される場合のタイミングチャートである。 子ノードのロケーション情報がデータベースに登録される場合のタイミングチャートである。 ノード情報の構成例を示す概念図である。 シグナリングサーバから送信されるコンタクトリストの一例を示す表である。 処理装置間におけるセッション開始の判断の処理を示すフローチャートである。 処理装置間におけるセッション開始の処理を示すタイミングチャートである。 ハートビートに関する処理の具体例を示す図である。 所定の機能が実行された結果を取得する処理を示すフローチャートである。 候補選択処理を示すフローチャートである。 機能実行処理を示すフローチャートである。 命令伝達の処理の実施例1を示すタイミングチャートである。 命令伝達の処理の比較例を示すタイミングチャートである。 命令伝達の処理の実施例2を示すタイミングチャートである。 実施形態に係る処理装置のハードウェア構成図である。 変形例における候補選択処理を示すフローチャートである。
 ≪実施形態≫
 図1に示す本発明の一実施形態である情報処理システム1は、2以上の処理装置2を備える。図1に示すように、情報処理システム1は、2以上の処理装置2で論理ネットワーク3を構成する。論理ネットワーク3は、論理ネットワーク3に接続された機器のうち、ユーザが所有している処理装置2及び同一のグループのメンバーがそれぞれ所有している処理装置2で構成されるネットワークである。
 本実施形態において、論理ネットワーク3を構成する各処理装置2は、所定の機能を2以上有する。処理装置2が有する機能の種類及び数は、処理装置2ごとに異なる。各処理装置2は、1又は2以上の他の処理装置2と同一の機能を有する。各処理装置2は、他の処理装置2にない機能を有している場合もある。
 情報処理システム1は、それぞれ同一の機能を有する2以上の処理装置2間で、論理ネットワーク3を介して、機能が実行された結果を伝達する。論理ネットワーク3を構成する処理装置2のうち、それぞれ同一の機能を実行できる2以上の処理装置2をリンクさせて相互に利用する機能を、「リンク機能」と呼ぶ。情報処理システム1は、リンク機能によって、ユーザに良好な結果を提供できる。
 本実施形態において、処理装置2には、論理ネットワーク3に直接アクセスする処理装置2だけでなく、論理ネットワーク3に間接的にアクセスする処理装置2も含まれる。以下、論理ネットワーク3に直接アクセスする処理装置2を「親ノード」とも呼ぶ。論理ネットワーク3に間接的にアクセスする処理装置2は、「子ノード」とも呼ぶ。子ノードは、親ノードを介して論理ネットワーク3にアクセスする。子ノードは、たとえば、SIM(Subscriber Identity Module)カードを挿入できず、LTE(Long Term Evolution)接続を行えないタブレット端末等が挙げられる。子ノードは、例えば、ホームネットワークなどではワイファイ(WiFi(登録商標))による通信でインターネットに接続できるが、外出先などワイファイによる通信を行えない場合、インターネットに直接接続できない。なお、「ノード」は処理装置2を示す別名である。論理ネットワーク3に直接アクセスする処理装置2は、子ノードと区別するために「通常ノード」と呼ばれる場合もある。
 本実施形態において、処理装置2は、論理ネットワーク3を構成し、かつ同一の機能を実行できる2以上の処理装置2のうち、通信速度などの所定の条件に基づいて2つの処理装置2を第1候補及び第2候補として選択する。処理装置2は、第1候補及び第2候補を同時又はタイムラグを抑えて利用する。そのため、処理装置2は、論理ネットワーク3を構成する2以上の処理装置2がそれぞれ所定の機能を実行する場合に得られる結果の中から最善の結果を第1候補から取得できる。処理装置2は、通信不良などが原因で第1候補を利用できない場合でも、第2候補を利用することで、所定の機能を実行した結果として、第1候補から得られる結果の次に良好な結果を早く取得できる。
 論理ネットワーク3を構成する2以上の処理装置2同士は、無線又は有線で接続される。論理ネットワーク3において、処理装置2同士の接続の手法には、無線と有線とが混在してもよい。本実施形態において、処理装置2は、ナビゲーション装置2Aと、サーバ2Bと、モバイル端末2Cとである。
 2以上の同一の種類のサーバ2B、及び、サーバ2Bと種類の異なる2以上のサーバは、サーバ群2Zを構成する。サーバ2Bと種類の異なるサーバとしては、図6に示すシグナリングサーバ2B1が挙げられる。シグナリングサーバ2B1は、サーバ群2Zに含まれるサーバの中で、中心的な役割を果たす。シグナリングサーバ2B1は、論理ネットワーク3の構築に利用される。シグナリングサーバ2B1は、各処理装置2の通信状態の把握に利用される。
 本実施形態において、ナビゲーション装置2A、及びモバイル端末2Cは、それぞれ1つの電子機器としての処理装置2である。モバイル端末2Cは、例えば、スマートフォンまたはタブレット機器等である。
 図2~4に示す処理装置2は、制御部21、通信部23、記憶部24、操作部25、表示部26、音声出力部27、及び測位部28を含む。各処理装置2に含まれる構成は、同じ符号を付してそれぞれの説明を省略している。
 図2に示すように、ナビゲーション装置2Aは、制御部21であるナビ制御部21A、通信部23であるナビ通信部23A、記憶部24であるナビ記憶部24A、操作部25であるナビ操作部25A、表示部26であるナビ表示部26A、及び音声出力部27であるナビ音声出力部27Aを備える。
 図3に示すように、サーバ2Bは、制御部21であるサーバ制御部21Bと、通信部23であるサーバ通信部23Bと、記憶部24であるサーバ記憶部24Bとを備える。
 図4に示すように、モバイル端末2Cは、制御部21であるモバイル制御部21Cと、通信部23であるモバイル通信部23Cと、記憶部24であるモバイル記憶部24Cと、操作部25であるモバイル操作部25Cと、表示部26であるモバイル表示部26Cと、音声出力部27であるモバイル音声出力部27Cと、測位部28であるモバイル測位部28Cを備える。
 なお、ナビゲーション装置2A、サーバ2B、またはモバイル端末2Cの構成は上記に限定されず、上記の構成の一部を含まなくてもよいし、構成に加えて他の構成を含んでもよい。
 本実施形態において、制御部21は、モジュール4として、機能実行部211と、通信制御部212と、出力制御部213と、誘導部214と、検索部215と、探索部216と、地図描画部217と、交通情報部218と、マップマッチング部219と、差分更新部220と、状態確認部221と、リンク機能部222との少なくともいずれか1つを含む。モジュール4は、装置、機械、システム及びソフトウェア等の少なくとも一部を構成する、機能的にまとまった部分である。それぞれのモジュール4は、制御部21の上記機能のいずれか1つを実行するためのハードウェア及びソフトウェアの一部である。モジュール4は、エンジンと呼ばれる場合がある。
 モジュール4は、所定の機能を実行する。所定の機能は、例えば、機能実行、通信制御、出力制御、誘導、検索、探索、地図描画、交通情報、マップマッチング、差分更新、状態確認、及び、リンク機能である。以下、本明細書では、モジュール4が所定の機能を実行した結果を「実行結果」という。また、第1候補による実行結果を「第1実行結果」、第2候補による実行結果を「第2実行結果」ともいう。
 ナビ制御部21A、サーバ制御部21B、及びモバイル制御部21Cは、それぞれモジュール4の少なくとも一部を構成する。制御部21を含む処理装置2では、当該制御部21で実行可能な、モジュール4に対応するソフトウェアであるプログラムが記憶部24に記憶される。以下では、ソフトウェアに含まれるプログラムのうち、上記機能を実行するためのプログラムを実行プログラム242と呼ぶ。
 ナビゲーション装置2Aでは、機能実行部211、通信制御部212、出力制御部213、誘導部214、検索部215、探索部216、地図描画部217、交通情報部218、マップマッチング部219、差分更新部220、状態確認部221、及び、リンク機能部222に対応する実行プログラム242が、ナビ記憶部24Aにそれぞれ記憶される。
 サーバ2Bでは、通信制御部212、検索部215、探索部216、交通情報部218、マップマッチング部219、差分更新部220、状態確認部221、及び、リンク機能部222に対応する実行プログラム242が、サーバ記憶部24Bにそれぞれ記憶される。モバイル端末2Cは、ナビゲーション装置2Aと同様である。
 制御部21は、通信部23、記憶部24、操作部25、表示部26、音声出力部27、及び測位部28をそれぞれ制御する。制御部21は、例えば、CPU(Central Processing Unit)またはMPU(Micro Processing Unit)等の制御装置が記憶部24に記憶されているプログラムを実行することで実現される。
 モジュール4は、所定の機能を実行する場合に、利用データを利用できる。利用データは、例えば地図データである。モジュール4は、例えば、検索、探索、地図描画、マップマッチングなどの機能を実行する場合に、地図データを利用する。
 制御部21は、それぞれバージョンの異なるソフトウェアを用いて、同じ機能を実行するモジュール4を2以上備えてもよい。なお、モジュール4に対応するソフトウェアのバージョンを、便宜的にモジュール4のバージョンという。
 ≪論理ネットワーク3の構築方法≫
 処理装置2及びシグナリングサーバ2B1は、図5に示す構築処理を行うことで論理ネットワーク3を構築する。情報処理システム1は、論理ネットワーク3を介して、それぞれ同一の機能を実行できる処理装置2間で実行結果を伝達する。そのため、実行結果は、同一の機能に対して同一の結果しか得られない処理装置2間では伝達される必要がない。論理ネットワーク3は、同一の機能を実行した場合にそれぞれ異なる実行結果が得られる処理装置2同士を接続して形成される。このような論理ネットワーク3を利用することで、情報処理システム1は、リンク機能を効果的に実現できる。
 リンク機能部222は、論理ネットワーク3を構築するための処理を行う。本実施形態において、リンク機能部222は、処理装置2が起動した場合に自動で論理ネットワーク3の構築処理を開始する。リンク機能部222は、例えば、論理ネットワーク3の構築を開始するためのボタンを表示部26に表示させ、表示部26に表示されたボタンがユーザに押された場合に論理ネットワーク3の構築が開始される構成であってもよい。論理ネットワーク3の構築には、すでに構築されている論理ネットワーク3に処理装置2が新たに参加することも含まれる。
 以下では、すでに構築されている論理ネットワーク3に、処理装置2が新たに参加する場合について記載する。なお、論理ネットワーク3が一から構築される場合も、処理装置2及びシグナリングサーバ2B1が行う処理は同様である。
 ステップS1において、リンク機能部222は、通信部を介して、図6に示すシグナリングサーバ2B1と接続する。シグナリングサーバ2B1は、2以上設けられる。論理ネットワーク3を構築しようとする処理装置2が複数ある場合、各処理装置2は、処理負荷の分散のために、いずれか1つのシグナリングサーバ2B1と接続される。処理装置2は、論理ネットワーク3から離脱するまで、本ステップS1で接続されたシグナリングサーバ2B1との接続を維持する。本実施形態において、処理装置2は、電源が切られると論理ネットワーク3から離脱する。処理装置2は、例えば、ソフトウェア又は利用データの更新のために再起動した場合、論理ネットワーク3から離脱する。
 リンク機能部222は、シグナリングサーバ2B1と接続する場合、通信部23を介してシグナリングサーバ2B1に接続要求を送信する。接続要求は、図示しないロードバランサ-によって選択されたシグナリングサーバ2B1に伝達される。ロードバランサ-は、シグナリングサーバ2B1の処理の負荷を監視する装置である。シグナリングサーバは、接続要求を受信した場合、処理装置2との接続を確立する。
 ステップS2において、データベース2B3は、ロケーション情報を登録する。ロケーション情報は、処理装置2同士の通信に関する情報である。リンク機能部222は、シグナリングサーバ2B1との接続が確立した場合、シグナリングサーバ2B1にロケーション情報の登録要求を行う。リンク機能部222は、通信部23を介してシグナリングサーバ2B1にロケーション情報を送信することで、ロケーション情報の登録要求を行う。ロケーション情報を受信したシグナリングサーバ2B1は、データベース2B3にロケーション情報を登録する。ロケーション情報は、処理装置2が登録要求を行った場合に、処理装置2に接続されたシグナリングサーバ2B1を介してデータベース2B3に登録される。
 図7に示すように、ロケーション情報は、処理装置2のデバイスID、ユーザID、親ノードのデバイスID、接続サーバ、IPアドレス、ポート、オンライン状態、ロケーション情報の有効期限、及びロケーション情報の更新日時をそれぞれ示す。
 デバイスIDは、処理装置2を識別する情報である。デバイスIDは、各処理装置2に対してユニークな情報として与えられる。ユーザIDは、処理装置2を使用しているユーザを識別する情報である。ユーザIDは、例えば、メールアドレスなどである。親ノードのデバイスIDは、親ノードを識別する情報である。接続サーバは、処理装置2が接続するシグナリングサーバ2B1である。IPアドレスは、インターネットに接続された機器を判別するための情報である。IPアドレスは、各処理装置2に付与される。ポートは、処理装置2が通信に使用するポート番号である。オンライン状態の情報は、処理装置2の通信状態がオンラインかどうかを示す。例えば、通信状態がオンラインであることは、「1」で示す。ロケーション情報の有効期限は、データベース2B3に登録された処理装置2のロケーション情報が有効に機能する期限である。データベース2B3は、ロケーション情報が有効期限を迎えると、対応する処理装置2のロケーション情報を更新する。このとき、既にシグナリングサーバ2B1と処理装置2との接続が解除されている場合には、データベース2B3は、ロケーション情報を更新せずに削除する。更新日時は、ロケーション情報がデータベース2B3に登録または更新された日時である。なお、ロケーション情報はこれらの情報に限定されるものではない。
 処理装置2及びシグナリングサーバ2B1は、例えば、図8のタイミングチャートに沿って、ステップS1の処理と、ステップS2の処理を行う。
 まず、図8に示すA300の処理で、処理装置2は、WebSocketの通信規格での通信を可能な状態にするため、シグナリングサーバ2B1に対してWebSocketの接続要求を行う。これにより、A310に示すように、処理装置2とシグナリングサーバ2B1との間でWebSocketによるコネクションが確立される。通常、HTTP(Hyper Text Transfer Protocol)通信は、クライアントからのリクエストに対して、サーバがレスポンスを返す場合に利用され、クライアントとサーバの双方向の通信には利用されない。HTTP通信が利用される場合、サーバ側は、クライアントへPUSH配信を行えない。これに対して、処理装置2とシグナリングサーバ2B1とは、WebSocketによって、双方方向で通信を行える。WebSocketであれば、処理装置2とシグナリングサーバ2B1とのコネクションが継続的に確立されるため、任意のタイミングでシグナリングサーバ2B1から処理装置2に情報をPUSH配信できる。またWebSocketを使用した通信は、双方向通信を低コストで実現できる。
 次に、A320の処理で、処理装置2は、シグナリングサーバ2B1にロケーション情報の登録要求を示すコマンドを送信する。
 次に、A330の処理で、シグナリングサーバ2B1は、処理装置2から受信したロケーション情報をデータベース2B3に記憶させる。これによって、データベース2B3には、処理装置2のロケーション情報が登録される。データベース2B3にロケーション情報が登録されることで、処理装置2は、シグナリングサーバ2B1を介して、データベース2B3に登録された他の処理装置2のロケーション情報を参照できるようになる。
 次に、A340の処理で、シグナリングサーバ2B1は、処理装置2に対してロケーション情報の有効期限に関する情報を送信する。これにより、処理装置2は、データベース2B3に登録された自身のロケーション情報の有効期限を認識することができる。
 処理装置2は、ロケーション情報が有効期限を迎えるタイミングで、A350に示すように、ロケーション情報の更新のために、ロケーション情報の登録要求をシグナリングサーバ2B1に再度送信する。
 子ノードが論理ネットワーク3に参加する場合、子ノード、親ノード及びシグナリングサーバ2B1は、例えば、図9のタイミングチャートに沿って、ステップS1の処理と、ステップS2の処理を行う。
 子ノードをシグナリングサーバ2B1に接続する場合、A400に示すように、親ノードとシグナリングサーバ2B1との間では、WebSocketによるコネクションが確立されていることが必要である。
 子ノードは、例えばA410の処理で、近距離無線通信によって、親ノード2D3との接続を要求する。子ノードは、シグナリングサーバ2B1などに直接接続する手段を有していない。子ノードは、例えば、近距離無線通信、又はUSB接続などで親ノードに接続される。子ノードは、親ノードを介してシグナリングサーバ2B1に接続される。近距離無線通信としては、例えば、Bluetooth(登録商標)接続が挙げられる。
 次に、A420の処理で、親ノードは、子ノードに対して近距離無線通信による接続が可能となったことを通知する。
 次に、A430の処理で、子ノードは、親ノードを介して、シグナリングサーバ2B1に、データベース2B3へのロケーション情報の登録を要求する。
 次に、A440の処理で、親ノードは、子ノードからのロケーション情報の登録要求を、子ノードに代理してシグナリングサーバ2B1に行う。
 次に、A450の処理で、シグナリングサーバ2B1は、受信した子ノードのロケーション情報をデータベース2B3に記憶させる。これによって、データベース2B3には、子ノードのロケーション情報が登録される。処理装置2は、シグナリングサーバ2B1を介して、データベース2B3に登録された子ノードのロケーション情報を参照できるようになる。
 次に、A460の処理で、シグナリングサーバ2B1は、親ノードに対して、子ノードのロケーション情報の有効期限に関する情報を送信する。次に、A470の処理で、親ノードは子ノードに対して、子ノードのロケーション情報の有効期限に関する情報を送信する。これにより、子ノードは、データベース2B3に登録された自身のロケーション情報の有効期限を認識できる。
 上記処理によって、論理ネットワーク3を構築しようとする各処理装置2は、データベース2B3を参照することで互いのロケーション情報を確認できる状態となる。なお、処理装置2とシグナリングサーバ2B1との接続に用いられる通信規格及びプロトコルなどは、任意に変更してよい。
 ステップS3において、リンク機能部222は、ノード情報を作成する。図10に示すように、ノード情報には、セッション記述部とメディア記述部とが含まれる。セッション記述部には、処理装置2のユーザID、IPアドレス、及びデバイスIDが記述される。メディア記述部には、処理装置2で実行する、または他の処理装置2に実行させて結果を受信したい機能ごとに、機能名、ポート番号、バージョン情報、並びに、当該機能の実行結果を提供可能か否か、及び要求するか否か、が記述される。機能名は、例えば、検索、及び探索などの機能が示される。バージョン情報には、当該機能を実行させる実行プログラム242を含むソフトウェアのバージョンが示される。
 ステップS4において、リンク機能部222は、接続されたシグナリングサーバ2B1からコンタクトリストを取得する。リンク機能部222は、コンタクトリストに基づき、論理ネットワーク3を構築するためにノード情報を送信する送信対象となる他の処理装置2を決定する。
 コンタクトリストを取得する際、リンク機能部222は、通信部23を介して、接続されたシグナリングサーバ2B1にコンタクトリストを要求する。コンタクトリストの要求を受信したシグナリングサーバ2B1は、処理装置2に対して図11に示すコンタクトリストを送信する。
 図11に示すように、コンタクトリストには、論理ネットワーク3を構築できる可能性のある各処理装置2のデバイスID、ユーザID、親ノード、及び接続サーバを示す情報がそれぞれ含まれる。コンタクトリストは、図7に示したロケーション情報のうち、セッションを確立するために必要な情報により構成される。リンク機能部222は、ロケーション情報に基づき、例えば、処理装置2と同一のユーザIDを有する他の処理装置2に対してノード情報を送信する。
 ステップS5において、リンク機能部222は、他の処理装置2にセッション開始の要求を行う。ここで、図12及び図13を参照して処理装置2間におけるセッション開始の処理について説明する。
 リンク機能部222は、上述のように、まずS400、ならびにA500及びA510の処理で、通信部23を介してノード情報を他の処理装置2に送信する。本実施形態において、ノード情報の送付対象となる他の処理装置2は、処理装置2とユーザIDが同一の他の処理装置2とするが、これに限定されるものではない。
 次に、S410の処理で、ノード情報を受信した他の処理装置2に備わるリンク機能部222は、ノード情報に基づき、ノード情報を送信した処理装置2とノード情報を受信した他の処理装置2との少なくとも一方が必要とする機能を、ノード情報を送信した処理装置2が有するかどうかを判断する。すなわち、ノード情報を受信した他の処理装置2は、ノード情報を送付した処理装置2とのセッションを開始して論理ネットワーク3を構築するか否かを判断する。
 具体的に、ノード情報を送信した処理装置2がモバイル端末2Cであり、ノード情報を受信した他の処理装置2がナビゲーション装置2Aの場合を例に説明する。ナビゲーション装置2Aに備わるリンク機能部222は、S400、ならびにA500及びA510の処理で受信したモバイル端末2Cのノード情報と、ステップS5の処理で作成したナビゲーション装置2Aのノード情報とを比較する。ナビゲーション装置2Aに備わるリンク機能部222は、それぞれ同一の機能を実行するナビゲーション装置2Aのモジュール4とモバイル端末2Cのモジュール4とで、対応するソフトウェアのバージョンが異なるか否か判断する。ここでの機能は、モバイル端末2Cがナビゲーション装置2Aに求め、かつ、ナビゲーション装置2Aがモバイル端末2Cに提供できる機能である。ナビゲーション装置2Aに備わるリンク機能部222は、各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、モバイル端末2Cが必要とする機能を有すると判断する。
 また、ナビゲーション装置2Aに備わるリンク機能部222は、ナビゲーション装置2Aがモバイル端末2Cに求め、かつ、モバイル端末2Cがナビゲーション装置2Aに提供できる機能についても、当該機能を実行するモジュール4に対応するソフトウェアのバージョンがそれぞれ異なるかどうかを判断する。ナビゲーション装置2Aに備わるリンク機能部222は、各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、ナビゲーション装置2Aが必要とする機能をモバイル端末2Cが有すると判断する。
 各モジュール4に対応するソフトウェアのバージョンがそれぞれ異なる場合、各モジュール4に対応するソフトウェアに含まれる実行プログラム242は、少なくとも一部がそれぞれ異なる。それぞれ異なる実行プログラム242のうち、ノード情報を送信した処理装置2で実行される実行プログラム242は、第1実行プログラムに相当する。それぞれ異なる実行プログラム242のうち、ノード情報を受信した他の処理装置2で実行される実行プログラム242は、第2実行プログラムに相当する。第2実行プログラムは、第1実行プログラムと少なくとも一部が異なる。なお、リンク機能部222は、各ソフトウェアのバージョンを比較する構成に限定されない。リンク機能部222は、各モジュール4の実行プログラム242の少なくとも一部が、それぞれ異なるか否か判断できる構成であればよい。そのため、リンク機能部222は、各ソフトウェアのバージョンを比較することなく、各ソフトウェアが作成又は改訂された時系列上の順番がそれぞれ同じか否か、又はそれぞれ異なるか否か判断する構成であってもよい。ここでの作成は、既存のソフトウェアが改訂されてバージョンの新しいソフトウェアが作られることではなく、前のバージョンがないソフトウェアが新しく作られることを意味する。
 なお、リンク機能部222は、各モジュール4に対応するソフトウェアのバージョンを比較する代わりに、各モジュール4が利用する利用データのバージョンを比較する構成であってもよい。この構成の場合、リンク機能部222は、利用データのバージョンがそれぞれ異なると、処理装置2が必要とする機能を他の処理装置が有すると判断する。それぞれ異なる利用データのうち、第1実行プログラムが実行される場合に利用される利用データは、第1利用データに相当する。それぞれ異なる利用データのうち、第2実行プログラムが実行される場合に利用される利用データは、第2利用データに相当する。第2利用データは、第1利用データと少なくとも一部が異なる。なお、リンク機能部222は、各利用データのバージョンを比較する構成に限定されない。リンク機能部222は、各モジュール4によって利用される利用データの少なくとも一部が、それぞれ異なるか否か判断できる構成であればよい。そのため、リンク機能部222は、各利用データのバージョンを比較することなく、各利用データが作成又は改訂された時系列上の順番がそれぞれ同じか否か、又はそれぞれ異なるか否か判断する構成であってもよい。ここでの作成は、既存の利用データが改訂されてバージョンの新しい利用データが作られることではなく、前のバージョンがない利用データが新しく作られることを意味する。
 リンク機能部222は、各ソフトウェアのバージョン及び各利用データのバージョンを両方とも比較する構成であってもよい。
 処理装置2と他の処理装置2の各モジュール4は、実行プログラム242又は利用データがそれぞれ異なる場合、たとえ同一の機能を実行した場合でも、それぞれ異なる実行結果を得ることができる。
 このようにして、ノード情報を受信した他の処理装置2に備わるリンク機能部222は、ノード情報を送信した処理装置2とセッションを開始すべきかを判断する。ノード情報を受信した他の処理装置2に備わるリンク機能部222は、通信部23を介して、A520及びA530の処理で、判断結果とノード情報とを、ノード情報を送信した処理装置2に返送する。
 ノード情報を送信した処理装置2に備わるリンク機能部222は、他の処理装置2から、少なくとも一方の処理装置2が必要とする機能を有するという判断結果及びノード情報を受信した場合、S420及びA540の処理で、通信部23を介して、セッションを開始するための要求を他の処理装置2に送信する。一方、ノード情報を送信した処理装置2に備わるリンク機能部222は、他の処理装置2から互いに必要とする機能を有さないという判断結果を受信した場合、S430及びA550の処理で、通信部23を介して、セッションの開始が不要であることを通知するための情報を他の処理装置2に送信する。
 セッションを開始する要求を受信した他の処理装置2は、セッションの開始を要求した処理装置2との間でセッションを開始し、セッションを確立する。各処理装置2は、セッションを確立するため、アドレス候補の収集等の処理を行う。
 なお、論理ネットワーク3の構築は、処理装置2が新たに論理ネットワーク3に接続される場合だけでなく、実行プログラム242を含むソフトウェア、又は地図データ241等の利用データの更新を処理装置2が行った場合にも、改めて行われる。リンク機能部222は、実行プログラム242を含むソフトウェア又は利用データが更新された場合、論理ネットワーク3を構築するために他の処理装置2と接続する処理を再度行う。
 以上のように、処理装置2に備わるリンク機能部222は、通信部23を介して接続できる他の処理装置2のうち、第2実行プログラム又は第2利用データに基づき、第1実行プログラムが実行される場合と同一の機能を実行する他の処理装置2と接続して論理ネットワーク3を形成する。そのため、他の処理装置2による所定の機能の実行により得られる実行結果は、自身の処理装置である自処理装置における所定の機能の実行により得られる結果とは異なるものとなり得る。すなわち、処理装置2における所定の機能の実行により得られる実行結果と同一の実行結果を得る他の処理装置2ではなく、異なる実行結果が得られる他の処理装置2と論理ネットワーク3を形成することとなる。これにより、処理装置2は、所定の機能の実行において有益な結果をもたらす処理装置2に限定して接続を確立でき、管理コストを下げることができる論理ネットワーク3を形成できる。
 ≪論理ネットワーク3を構成する各装置の詳細な構成≫
 サーバ群2Zは、情報処理の負荷分散及びデータのバックアップ等のため、2以上のサーバ2Bで構成される。2以上のサーバ2Bは、機能ごとに分けられるとともに、同じ機能を有するサーバ2Bが2以上設けられている。
 リンク機能を実行するために、処理装置2同士の間で送信及び受信される送信情報には、それぞれにユーザID、コマンドID、要求ID、タイムスタンプを示す情報、及び結果を示す情報の少なくともいずれか1つが含まれる。ユーザIDは、それぞれの処理装置2の使用者を特定する識別情報である。コマンドIDは、実行すべき命令を示す識別情報である。要求IDは、それぞれの命令ごとに与えられたユニークな識別情報である。タイムスタンプは、送信される情報が送信された時刻を示す。結果を示す情報は、コマンドIDに関わる命令が実行された結果を示す。
 各処理装置2は、所定の機能を実行させる命令を他の処理装置2に伝達する場合、少なくともコマンドID及び要求IDを含む送信情報を他の処理装置2に送信する。各処理装置2は、命令が実行された結果を他の処理装置2に伝達する場合、少なくとも要求ID及び結果を示す情報を含む送信情報を他の処理装置2に送信する。
 情報処理システム1は、ナビゲーション装置2A又はモバイル端末2Cからサーバ群2Zに送信情報が送信された場合、サーバ2Bの処理負荷を分散させるため、送信情報を異なるサーバ2Bに振り分ける。情報処理システム1は、送信情報を、対応する処理装置2ごとに振り分ける。送信情報が振り分けられるサーバ2Bの情報は、少なくとも一定の期間、サーバ2Bに記憶される。当該一定の期間に次の送信情報が送信されると、その送信情報は、以前と同じサーバ2Bに再度振り分けられる。一方、一定の期間が経過すると、送信情報が振り分けられるサーバ2Bの情報はリセットされる。
 リンク機能を実行するため、各処理装置2は、シグナリングサーバ2B1と、ハートビートと呼ばれる通信を行う。シグナリングサーバ2B1は、ハートビートを行うことで、各処理装置2の通信の状態がオンラインか、又はオフラインかを判断する。
 シグナリングサーバ2B1は、図14に示すように、処理装置2にピン(Ping)フレームを送り、処理装置2の状態確認部221は、シグナリングサーバ2B1にポン(Pong)フレームを送り返すように構成される。具体的には以下のとおりである。
 ここでは、2つの処理装置2、2つのシグナリングサーバ2B1、並びにデータベース2B3を含む構成で行われるハートビートの具体例を説明する。データベース2B3はサーバ群2Zを構成するサーバの一つである。A100の処理で、一方のシグナリングサーバ2B1が一方の処理装置2に対してピンフレームを送ると、A101の処理で、ピンフレームが送られた処理装置2はシグナリングサーバ2B1にポンフレームを送り返す。ピンフレームとポンフレームとのやり取りは、所定の時間間隔で行われる。所定の時間間隔は、一定でもよく、変則でもよい。このようなピンフレームとポンフレームとのやり取りが正常に行われている間は、処理装置2の通信の状態はオンラインである。ここで、A110の処理でシグナリングサーバ2B1が処理装置2に対してピンフレームを送ったにもかかわらず、A111のように処理装置2からの応答がなければ、処理装置2の通信の状態がオフラインになっている。このとき、A112の処理で、シグナリングサーバ2B1はデータベース2B3に対して、通信の状態を管理するレコードの更新を行うよう要求する。これにより、データベース2B3の通信の状態を管理するレコードが更新される。また、A113の処理で、シグナリングサーバ2B1は、もう一方のシグナリングサーバ2B1に対しても、処理装置2の通信の状態がオフラインであることを通知する。
 もう一方のシグナリングサーバ2B1は、もう一方の処理装置2の通信の状態を確認する。そして、A114の処理で、もう一方のシグナリングサーバ2B1は、もう一方の処理装置2に対して、処理装置2の通信状態がオフラインであることを通知する。
 処理装置2の通信の状態がオフラインであるときも、A120の処理で、シグナリングサーバ2B1は処理装置2に対して所定の時間間隔でピンフレームを送る。所定の時間間隔は、一定でもよく、変則でもよい。そして、処理装置2の通信状態がオンラインになると、A121の処理で、処理装置2からポンフレームが送り返されてくる。A122の処理で、シグナリングサーバ2B1はデータベース2B3に対して、通信の状態を管理するレコードの更新を行うよう要求する。また、A123の処理で、シグナリングサーバ2B1は、もう一方のシグナリングサーバ2B1に対しても、処理装置2の通信の状態がオンラインになったことを通知する。そして、A124の処理で、もう一方のシグナリングサーバ2B1は、もう一方の処理装置2に対して、処理装置2の通信状態がオンラインとなったことを通知する。
 このようなピンフレームとポンフレームのやり取りによって、シグナリングサーバ2B1は、それぞれの処理装置2の通信の状態を確認できる。例えば、処理装置2がナビゲーション装置2Aの場合、トンネル又は地下駐車場などの電波が届かない場所に車両が進入すると、シグナリングサーバ2B1がナビゲーション装置2Aにピンフレームを送信してもポンフレームの応答がなくなる。このような場合、上記処理によって、論理ネットワーク3に含まれる各処理装置2は、ナビゲーション装置2Aの通信の状態がオフラインであると認識する。なお、処理装置2の通信の状態は、ハートビート以外の方法で確認されてもよい。
 機能実行部211は、リンク機能を実行する場合、予め定められた基準である選択基準に基づいて各モジュール4の優先順位を決定し、優先順位の最も高い第1候補と、第1候補に次ぐ優先順位の第2候補とをそれぞれ選択する。第1候補は、最も良好な実行結果を得られると推定されるモジュール4である。第2候補は、第1候補と同じ機能を実行でき、第1候補の次に良好な実行結果を得られると推定されるモジュール4である。モジュール4の選択基準は、例えば、より正確な実行結果を受け取れる、又は、より早く実行結果を受け取れる、等である。機能実行部211は、モジュール4のバージョン、地図データ241のバージョン、及び通信速度のいずれか1つに基づいて、第1候補と第2候補とをそれぞれ選択する。通信速度は、所定の機能を実行させる命令を伝達する処理装置2と、他の処理装置2との間で単位時間あたりに送受信できるデータの量である。機能実行部211は、通信の状態がオンラインの処理装置2に組み込まれたモジュール4の中から、第1候補と第2候補とをそれぞれ選択する。すなわち、通信の状態がオフラインの処理装置2に組み込まれたモジュール4は、第1候補及び第2候補のいずれとしても選択されない。機能実行部211は、選択基準をモジュール4のバージョンとした場合、バージョンが新しいモジュール4の優先順位を高くする。機能実行部211は、選択基準を地図データ241のバージョンとした場合、バージョンが新しいモジュール4の優先順位を高くする。機能実行部211は、優先条件を通信速度とした場合、通信速度が速い処理装置2に組み込まれたモジュール4の優先順位を高くする。なお、選択基準は、予め決められていてもよく、ユーザによって変更できるように処理装置2が構成されてもよい。この場合、選択基準は記憶部24に記憶されていてもよい。また、処理装置2は、機械学習によって選択基準が決定されるように構成されてもよい。
 ここで、機能実行部211は、論理ネットワーク3を構成する2以上の処理装置2の中から第1候補と第2候補とを選択する。処理装置2は、通信部23を介して論理ネットワーク3を形成する他の処理装置2と通信することで、所定の機能の実行によって得られた実行結果を送信及び受信することができる。このとき、処理装置2は、他の処理装置2から取得できる実行結果が、処理装置2に備わるモジュール4で実行した場合に得られる実行結果と同一であると、他の処理装置2から実行結果を受信する必要性が低い。そのため、機能実行部211は、論理ネットワーク3を構成する2以上の処理装置2の中から第1候補と第2候補とを選択する。論理ネットワーク3は、実行プログラム242を含むソフトウェアのバージョン、及び実行プログラム242が実行されるときに利用される利用データのバージョンの少なくともいずれかが異なる処理装置2同士を接続して形成される。そのため、機能実行部211は、それぞれ異なる実行プログラム242を含むソフトウェア、又は、それぞれ異なる地図データ241などの利用データを用いて同一の機能を実行できる2以上の処理装置2の中から、第1候補と第2候補とを選択する。論理ネットワーク3には、利用される可能性の低い処理装置2が含まれにくいので、情報処理システム1は、機能実行部211が第1候補と第2候補とを選択する場合の選択肢を効果的に絞ることができ、処理の負荷を低減できる。
 機能実行部211は、第1候補及び第2候補にそれぞれ所定の機能を実行させる命令を伝達する。なお、ここでいう伝達とは、命令、すなわち送信情報を送ることであって、送ったことを確認することを含まない。機能実行部211は、第1候補及び第2候補に対して、同時に命令を伝達する。なお、機能実行部211は、複数の処理を並列して行うことが可能であれば、第1候補に命令を伝達するための処理と、第2候補に命令を伝達するための処理とを並行して行う。機能実行部211は、並列処理を行うことができない場合、命令を伝達するための処理を、第1候補に命令を伝達するための処理、第2候補に命令を伝達するための処理の順に行う。この場合、機能実行部211は、第1候補に命令を伝達するための処理を行った直後に、第2候補に命令を伝達するための処理を行う。なお、第1候補に命令を伝達した直後とは、第1候補に命令を伝達した後遅滞なくという意味である。機能実行部211は、第1候補に命令を伝達してから1秒以内に第2候補に命令を伝達することが好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.5秒以内に第2候補に命令を伝達することがより好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.1秒以内に第2候補に命令を伝達することがさらに好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.05秒以内に第2候補に命令を伝達することが特に好ましい。また、機能実行部211は、第1候補に命令を伝達してから0.01秒以内に第2候補に命令を伝達することがきわめて好ましい。これによって、機能実行部211は、第1実行結果を認識する処理を行うよりも前に、第2候補に命令を伝達するための処理を行うことができる。これらの命令を伝達する処理の具体例については後述する。機能実行部211は、並列処理を行うことができない場合、第1候補に命令を伝達するための処理と第2候補に命令を伝達するための処理とを時間的に分割した仮想的な並列処理で行ってもよい。
 機能実行部211は、第1候補での実行結果、または第2候補での実行結果を利用する。機能実行部211は、所定の時間以内に、第1候補の実行結果を取得した場合、第1候補の実行結果を、表示部26に表示させ、音声出力部27から出力することを決定する。機能実行部211は、所定の時間を超えて、第1候補の実行結果を取得しなかった場合、第2候補の実行結果を、表示部26に表示させ、音声出力部27から出力させることを決定する。なお、第1候補又は第2候補が、機能実行部211が含まれる処理装置2に含まれる場合は、機能実行部211が当該処理装置2の第1候補または第2候補の実行結果を取得する。一方、第1候補または第2候補が、機能実行部211が含まれる処理装置2以外の処理装置2に含まれる場合には、機能実行部211は通信部23を介して第1候補または第2候補の実行結果を取得する。
 通信制御部212は、通信部23を制御して、処理装置2同士の間で送信情報の送受信を行わせる。具体的には、通信制御部212は、処理装置2同士の間で確立したコネクションを管理し、通信を行うべき相手となる処理装置2を特定する。通信制御部212は、機能を実行させる命令を伝達する相手を特定することで、第1候補又は第2候補を含む他の処理装置2を特定し、特定した処理装置2に対して命令を伝達するよう通信部23を制御する。また、通信制御部212は、上記で特定した処理装置2から送信されてきた実行結果が、命令を伝達した処理装置2から送信された実行結果であることを特定する。
 出力制御部213は、表示部26及び音声出力部27をそれぞれ制御する。出力制御部213は、第1候補または第2候補の実行結果に基づく情報に基づいて生成された画像データを表示部26に出力し、音声データを音声出力部27に出力する。
 誘導部214は、経路に沿って、音声及び表示の少なくともいずれか一方でユーザを誘導するための情報を生成する。
 検索部215は、操作部25を介して、ユーザによって入力された施設名及び電話番号等の情報に基づき、地図データ241に基づいて施設を検索する。施設としては、例えば、ガソリンスタンド、充電スタンド、病院、警察署、消防署、鉄道駅、コンビニエンスストア、公園、山、その他の特定の場所などが挙げられる。地図データ241は、経路案内及び地図の表示に必要な各種の情報を含む。地図データ241は、道路情報と、施設情報とを含む。道路情報は、ノードとリンクの組み合わせで表される。ノードは、例えば、交差点や道路の末端等に設定される。リンクは、例えば、隣り合うノードをつなぐ位置に設定される。施設情報は、建物やPOI(Point Of Interest)を表す情報である。この地図データは、リンクごとに、道路の形状、道路の緯度および経度、道路の曲率、道路の勾配、道路の方位、ならびに道路の通行方向等を表す情報を含んでもよい。また地図データは、高速道路や一般道等の道路の種別に関する情報等も含んでもよい。地図データは、一般的に、バージョンが新しいほど現状に合った内容となっている。地図データは、例えば、複数のパーセルにそれぞれ対応するデータによって構成されている。パーセルは、緯度及び経度に基づいて地表を所定のサイズの矩形に区割りして設定される。
 探索部216は、地図データ241に基づいて、出発地から目的地までの経路を探索する。
 地図描画部217は、地図データ241に基づき、表示部26に地図を表示するためのデータを生成する。この地図は、例えば、処理装置2を搭載する車両、又は処理装置2を保持する人の現在地、及び、現在地から目的地までの経路を示す。本実施形態において、車両は自動車である。なお、車両は、例えば、自動二輪車、自転車又は電車であってもよい。
 交通情報部218は、交通情報部218は、交通情報に関する各種の処理を行う。本実施形態において、ナビゲーション装置2A及びモバイル端末2Cの場合、交通情報部218は、必要に応じて交通情報をユーザに通知する。交通情報の通知は、表示部26に表示させる、又は、音声出力部27から音声を出力させることで行われる。交通情報は、渋滞に関する情報、事故車の存在に関する情報、及び周囲または進行中の経路の先に存在する危険に関する情報などである。例えばナビゲーション装置2Aの場合、交通情報部218は、ナビゲーション装置2Aを特定する識別情報、位置情報、及び時刻などの情報をサーバ2Bに送信してもよい。
 マップマッチング部219は、現在地を示す位置情報を基に、マップマッチング処理を行う。マップマッチング処理は、例えば、車両に備わるGPS(Global Positioning System)センサが取得した緯度情報および経度情報を、地図データが示す道路上の位置に修正する処理である。マップマッチング部219は、緯度情報および経度情報によって示される車両の現在地を地図情報に重畳させ、その重畳させた位置に対応するリンクを求める。上記地図描画部217で用いられる現在地に関する情報は、マップマッチング部219で修正された現在地の情報である。なお、マップマッチング部219は、車両に備わるGPSでなく、処理装置2に搭載された測位部28により緯度情報及び経度情報などの現在地に関する情報を取得してもよい。
 差分更新部220は、記憶部24に記憶された地図データ241を更新する。例えば、ナビゲーション装置2Aは、地図データ241Aを更新する処理である地図更新を自動で行うように構成されている。ナビゲーション装置2Aは、サーバ2Bから地図差分データを所定のタイミングでダウンロードし、ダウンロードした地図差分データをナビ記憶部24A又は図示しない記録媒体に書き込むように構成されている。記録媒体は、例えばSDカードなどである。記録媒体は、ナビゲーション装置2Aの図示しないインターフェースを介して、ナビゲーション装置2Aに接続される。地図差分データは、以前のバージョンの地図データと相違する部分の地図データである。地図差分データは、例えば、パーセル単位で取得される。処理装置2では、地図更新に地図差分データが用いられることで、地図データ全体がダウンロードされる場合よりも地図更新に要する時間を短くできる。
 状態確認部221は、当該処理装置2の状態を確認できるようにするため、通信部23を介して、他のシグナリングサーバ2B1にポン(Pong)フレームを送信する。
 通信部23は、ナビ通信部23A、サーバ通信部23B、及びモバイル通信部23Cを含む。通信部23は、ネットワークを介して、それぞれ互いにデータを送受信することで通信する。ナビ通信部23Aは、例えば、TCU(Telecommunication Control Unit、またはTelematics Control Unit)、またはDCM(Data Communication Mudule)などの通信機能を有する構成で実現される。
 操作部25は、ナビ操作部25A、及びモバイル操作部25Cを含む。操作部25は、ユーザの指示を検知し、制御部21に検知した操作を示す情報を出力する。ナビ操作部25A及びモバイル操作部25Cは、ナビ表示部26A及びモバイル表示部26Cがそれぞれタッチパネルで構成される場合、タッチパネルである。
 表示部26は、ナビ表示部26A、及びモバイル表示部26Cを含む。表示部26は、それぞれ、地図データ241に基づいて地図を表示する。表示部26は、例えば、液晶ディスプレイ又は有機ELディスプレイ等である。
 記憶部24は、ナビ記憶部24A、サーバ記憶部24B、及びモバイル記憶部24Cを含む。記憶部24は、各種の情報を記憶する。本実施形態において、記憶部24は、地図データ241と、ソフトウェアとを記憶する。ソフトウェアは、処理装置2が実行する各種のプログラムを含む。これらのプログラムとしては、処理装置2を起動させるためのプログラム、地図更新のためのプログラム、及び、検索、探索及びリンク機能等を実行するための実行プログラム242等が挙げられる。
 音声出力部27は、ナビ音声出力部27A及びモバイル音声出力部27Cを含む。音声出力部27は、経路に沿ってユーザを誘導する際に、案内情報を音声として出力する。音声出力部27は、スピーカである。
 測位部28は、モバイル測位部28Cを含む。測位部28は、当該測位部28を有する処理装置2の現在地を、緯度情報及び経度情報として取得する。測位部28は、例えば、GPSセンサである。
 ≪実行結果取得処理≫
 次に、所定の機能を実行する際に第1候補及び第2候補を用いて実行結果を取得する実行結果取得処理について、図15から図17に示すフローチャートを参照しながら説明する。なお、以下の説明では、実行結果を表示部26及び音声出力部27に出力する処理装置2を「自ノード」という。「自ノード」は第1処理装置に相当する。すなわち、多くの場合において自ノードはユーザが操作している自己の処理装置2である。自ノードは、例えばナビゲーション装置2Aである。一方、自ノード以外の処理装置2を「他ノード」という。他ノードは、例えばモバイル端末2C又はサーバ2Bである。「他ノード」は第2処理装置に相当する。
 図15に示されるように、まず、ステップS100において、機能実行部211は、試行回数の値をリセットして0にする。次に、ステップS110において、機能実行部211は、候補選択処理を実行する。
 なお、本実施形態において、候補選択処理は、自ノードに備わる機能実行部211によって行われるが、これに限定されない。他ノードに備わる機能実行部211が第1候補及び第2候補を選択し、他ノードに備わる機能実行部211によって選択された第1候補及び第2候補が自ノードに伝えられる構成であってもよい。このような構成の場合、自ノードに備わる機能実行部211は、他ノードに備わる機能実行部211が選択した結果を受容する判断を行う。そのため、上記の構成の場合にも、自ノードに備わる機能実行部211は、第1候補及び第2候補を選択すると言える。
 ≪候補選択処理≫
 図16に示した候補選択処理のステップS200において、まず、機能実行部211は、候補となるモジュール4が論理ネットワーク3に存在するかどうかを判断する。すなわち、機能実行部211は、実行しようとする所定の機能を実行できるかどうか判断する。ステップS200において、論理ネットワーク3に所定の機能を実行できるモジュール4が存在しなければ、機能実行部211は候補選択処理を終了する。
 ステップS200において、論理ネットワーク3に所定の機能を実行できるモジュール4が存在した場合、ステップS210において、機能実行部211は、そのモジュール4の中から、所定の選択基準に基づいて第1候補を選択する。ここでの選択基準は上述のとおりであるため省略する。
 次に、ステップS220において、機能実行部211は、選択した第1候補が他ノードかどうか判断する。選択した第1候補が他ノードではなく自ノードのモジュール4であった場合、ステップS221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。一方、第1候補が他ノードのモジュール4であった場合、ステップS230において、機能実行部211は、第1候補以外に候補が存在するか否かを判断する。第1候補以外に候補が存在しない場合には、ステップS221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。
 一方、第1候補以外に候補となるモジュール4が存在する場合、ステップ240において、機能実行部211は、候補となるモジュール4が自ノードに存在するか否かを判断する。自ノードに候補となるモジュール4が存在した場合、ステップS241において、機能実行部211は、自ノードに組み込まれたモジュール4を第2候補として選択する。一方、自ノードに候補となるモジュール4が存在しなかった場合、ステップS242において、機能実行部211は、選択基準において第1候補の次に最適なモジュール4を第2候補として選択して、候補選択処理を終了する。
 図15に示すように、上記候補選択処理のステップS120において、所定の機能を実行するモジュール4の候補が1つも選択されなかった場合、機能実行部211は、ステップS121において、表示部26及び音声出力部27を介して、エラーが発生したことをユーザに通知する。また、機能実行部211は、制御部21にエラーが発生したことを通知する。一方、所定の機能を実行するモジュール4の候補が少なくとも1つ選択された場合、ステップS130において機能実行処理に進む。
 ≪機能実行処理≫
 図17の機能実行処理において、まず、ステップS300において、機能実行部211は、第1候補及び第2候補に、所定の機能を実行させる命令を伝達する。その後、所定時間の間に第1候補から実行結果を取得した場合は、ステップS311において、機能実行部211は、この第1候補の実行結果を利用する。具体的には、機能実行部211は、第1候補の実行結果に基づく情報に基づいて、表示部26に画像データを出力し、音声出力部27に音声データを出力する。
 一方、所定時間が経過しても第1候補から実行結果を取得しない場合には、ステップS330において、機能実行部211は、第2候補から実行結果を取得しているか否かを確認する。機能実行部211が第2候補から実行結果を取得していた場合、ステップS331において、機能実行部211は、この第2候補の実行結果を利用する。一方、第2候補からも実行結果を取得していなかった場合、機能実行部211はそのまま処理を終了する。
 図15の実行結果取得処理の説明に戻る。上記機能実行処理のステップS140において、第1候補及び第2候補の少なくとも一方から実行結果を取得した場合、機能実行部211は実行結果取得処理を終了する。一方、ステップS140において第1候補及び第2候補のどちらからも実行結果を取得しなかった場合、機能実行部211は、この時点での試行回数の数を確認する。ステップS150において、試行回数が試行回数上限よりも少なかった場合、ステップS151において、機能実行部211は試行回数に1を加算して、ステップS110以降の処理を繰り返す。一方、試行回数が試行回数上限になった場合、ステップS152において、機能実行部211は、表示部26及び音声出力部27を介して、エラーが発生したことをユーザに通知する。また、機能実行部211は、制御部21にエラーが発生したことを通知する。
 すなわち、機能実行部211は、試行回数上限まで、第1候補及び第2候補を選択し、実行結果の取得を試みる。このとき、制御部21は、所定時間以内に第1候補の実行結果が得られた場合には第1候補の実行結果を利用し、そうでない場合には第2候補の実行結果を利用する。
 なお、図16に示す上記候補選択処理では、第1候補が自ノードまたは他ノードのいずれに組み込まれていてもよいが、第1候補が自ノードに組み込まれている場合、機能実行部211は、第2候補の選択を行わない。しかしながらこの構成に限定されず、第1候補が自ノードに組み込まれていた場合に、機能実行部211が、第2候補を選択する構成であってもよい。また、上記候補選択処理では、第1候補及び第2候補が、いずれも他ノードに組み込まれたモジュール4である場合がある。
 ここで、処理装置2から第1候補及び第2候補に所定の機能を実行する命令を伝達してから、その実行結果を受信するまでの処理の実施例及び比較例について、タイミングチャートを参照しながら具体的に説明する。
 ≪命令伝達の実施例1≫
 図18に示されるように、処理装置2がCPUなどの処理用のコアを2以上有する場合には、機能実行部211は、第1候補に命令を伝達する処理A201と、第2候補に命令を伝達する処理A202とを並列に処理する。機能実行部211から命令が伝達されると、第1候補及び第2候補は、それぞれ命令を受信する処理A211及びA221を行い、命令を実行する処理A212及びA222を行う。その後、第1候補及び第2候補は、それぞれ実行結果を送信する処理A213及びA223を行う。その後、機能実行部211は、実行結果を受信して、それぞれの実行結果を認識する処理A231及びA232を行う。なお、第1候補または第2候補が、自ノードに組み込まれている場合には、バスなどを介して命令が伝達される。一方、第1候補または第2候補が、他ノードに組み込まれている場合には、通信部23を介して命令が伝達される。
 ≪命令伝達の比較例≫
 ここで、図19に示された比較例をみると、機能実行部211が第1候補に命令を伝達する処理A201Xを行った後、機能実行部211はすぐには第2候補に対して命令を伝達しない。その後、第1候補が命令を受信する処理A211Xを行うと、第1候補は、第1候補を含む処理装置2がBUSY状態であり命令を実行できないこと示す情報を送信する処理A214Xを行う。第1候補に命令を伝達した機能実行部211が、第1候補を含む処理装置2がBUSY状態であることを示す情報を受信する処理A231Xを行うと、機能実行部211は、第2候補に命令を伝達する処理A202Xを行う。第2候補が命令を受信する処理A221Xを行うと、第2候補は命令を実行するための処理A222Xを行い、実行結果を送信する処理A223Xを行う。この比較例では、上記の実施例1と比較して、機能実行部211が第2候補からの実行結果を受け取るまでの時間が長くなる。
 ≪命令伝達の実施例2≫
 図20に示されるように、処理装置2がCPUなどの処理用のコアを1つだけ有する場合には、機能実行部211は、第1候補に命令を伝達する処理A201A、A201B、及びA201Cと、第2候補に命令を伝達する処理A202A、A202B、及びA202Cとを、時間的に分割して仮想的な並列処理で処理する。その後、第1候補及び第2候補は、それぞれ命令を受信する処理A211及びA221を行い、命令を実行する処理A212及びA222を行い、その後、実行結果を送信する処理A213及びA223を行う。その後、機能実行部211は、実行結果を受信し、それぞれの実行結果を認識する処理A231A、A231B、A232A、及びA232Bを行う。この場合、第1候補への命令の伝達が、第2候補への命令の伝達より早くなるが、第1候補及び第2候補への命令の伝達は、上記の実施例1よりも遅くなる。ただし、比較例と比較すると、機能実行部211が第2候補から実行結果を受け取るまでの時間が短くなる。
 このように、情報処理システム1では、機能実行部211は、第1候補に命令を伝達した直後に第2候補に命令を伝達するが、命令伝達の方法には様々な態様がある。いずれの場合でも、機能実行部211は、第1候補の実行結果を受け取ることになる時点よりも前に、第2候補へ命令を伝達することとなる。言い換えれば、機能実行部211が第1候補に命令を伝達して第1実行結果を受け取るまでの時間と、機能実行部211が第2候補に命令を伝達して第2実行結果を受け取るまでの時間が重なっているともいえる。すなわち、比較例と比較すると、機能実行部211が第1候補に命令を伝達したことに対する結果を確認せずに、遅滞なく第2候補に命令を伝達する態様としている。
 情報処理システム1では、上述のとおり、処理装置2の機能実行部211が、第1候補及び第2候補に所定の機能を実行する命令を伝達し、第1実行結果及び第2実行結果を受け取れる。これにより、第1実行結果と第2実行結果との双方を踏まえてその後の処理を行うことができる。例えば、第1実行結果の信頼性が低いと判断された場合には、第2実行結果を利用することで、より信頼性の高い実行結果を利用することが可能となる。また、第1実行結果を待たずに第2候補に命令を伝達することで、信頼性の高い実行結果を得るためのタイムラグが生まれることを抑制できる。
 また、情報処理システム1では、処理装置2の機能実行部211が、第1候補及び第2候補に所定の機能を実行する命令を伝達した後、この命令に対する第1候補からの応答を受信する前に、第2候補に命令を伝達している。なお、第1候補からの応答とは、実行結果の受信、及び第1候補を含む処理装置2が例えばBUSY状態であることの情報の受信を含む。そのため、所定の機能の実行結果が第1候補から取得できなかった場合に、改めて第2候補に所定の機能を実行させる命令を伝達する構成と比較して、実行結果を早く取得することができる。また、例えば、第2候補よりバージョンが新しいモジュールを第1候補として選択したものの、第1候補の実行結果が長時間取得できないような場合に、古いバージョンである第2候補の実行結果を利用することができる。
 また、情報処理システム1では、第1実行結果及び第2実行結果を受信できるので、受信した第1実行結果がもしデータ不備などで使用できない場合でも、第2実行結果を利用することで、実行結果の信頼性を担保できる。
 また、情報処理システム1では、機能実行部211は、第1候補及び第2候補にそれぞれ命令を伝達した後、所定の時間が経過しても第1候補の実行結果である第1実行結果を取得できない場合、第2候補の実行結果である第2実行結果を示す画像データまたは音声データを、それぞれ表示部26または音声出力部27に出力してよい。これにより、第1実行結果の取得に時間を要する場合に、第2実行結果に基づいて表示部26に画像を表示させ、音声出力部27から音声を出力することで、所定の機能を実行した結果である実行結果を出力するのに長時間を要することを防止できる。
 機能実行部211による第1候補及び第2候補の選択基準を通信速度の大きさとした場合には、より早く所定の機能を実行した結果を取得しやすくすることができる。また、選択基準を、モジュール4のバージョンとした場合には、所定の機能を実行した結果として、より良好な結果を取得しやすくなる。また、選択基準を地図データ241のバージョンとした場合には、例えば、より新しい地図データ241に基づいた経路の探索結果を得ることができる。
 なお、命令を伝達した機能実行部211を含む処理装置2の地図データ241のバージョンと、命令が伝達された第1候補または第2候補を含む処理装置2の地図データ241のバージョンとが異なる場合には、実行結果と地図データ241との間に矛盾が生じる場合がある。具体的には、目的地までの経路となる道路に対応する地図データ241が、命令を伝達した機能実行部211の地図データ241に含まれない場合などが考えられる。このような場合には、機能実行部211は、実行結果を表示するために必要な部分の地図データを送信するよう、第1候補または第2候補が組み込まれた処理装置2に要求する。例えば、機能実行部211は、第1候補または第2候補が組み込まれた処理装置2に対して、現在地から目的地までの経路を含むパーセルのデータを送信するよう要求する。これにより、自ノードである処理装置2において、第1候補または第2候補の実行結果を利用する際に矛盾が発生することを防止することができる。
 また、経路に矛盾が生じない場合であっても、地図データ241のバージョンの違いにより、経路の沿線の施設に関する情報が異なる場合がある。このような場合には、自ノードに備わる機能実行部211が、第1候補または第2候補を含む処理装置2に対して、上記同様に現在地から目的地までの経路を含むパーセルのデータを送信するよう要求してもよい。
 機能実行部211は、少なくとも第1候補または第2候補を、自ノードに組み込まれたモジュール4の中から選択してもよい。自ノードに組み込まれたモジュール4から実行結果が得られないことは通常発生しないため、このようにすることで、所定の機能の実行結果が取得できない状態を回避することができる。
 機能実行部211は、所定の時間が経過しても、第1候補及び第2候補のいずれからも実行結果が得られない場合には、所定の選択基準に基づいて、再度、第1候補及び第2候補を選択し直してもよい。これにより、通信の状態が変化したことに起因して、第1候補及び第2候補から実行結果が取得できない場合に、改めて実行結果を取得するための処理をし直すことができる。本実施形態において、機能実行部211は、前の候補選択処理で求めた順位を利用して、第1候補及び第2候補を再度選択する。この場合、機能実行部211は、前の候補選択処理で選択された第2候補の次に順位が低いモジュール4を、新たに第1候補として選択する。機能実行部211は、新たに選択された第1候補の次に順位が低いモジュール4を新たに第2候補に選択する。なお、この構成に限定されず、機能実行部211は、候補選択処理を再度行う場合に、選択基準を変更してもよい。
 機能実行部211は、第1候補及び第2候補を選択する際に、通信の状態がオンラインの処理装置2に組み込まれたモジュール4のみから選択する。これによって、機能実行部211は、通信の状態がオフラインの処理装置2に組み込まれたモジュール4を選択対象から除外できるので、モジュール4から実行結果が取得できない状況を避けやすくすることができる。
 ≪ハードウェアによる実現例≫
 図21に示すように、処理装置2のうちのナビゲーション装置2Aは、CPU51と、ROM(Read Only Memory)52と、RAM(Random Access Memory)53と、I/Oインターフェース54と、タッチパネル55と、TCU56と、ストレージ装置57と、SDホストモジュール58と、バス59と、表示部60と、音声出力部61とを備える。これらの構成は、1以上のハードウェアである半導体集積回路であるが、これに限定されない。
 CPU51は、演算処理装置および制御装置として機能する。CPU51は、各種プログラムに従ってナビゲーション装置2Aの動作全般を制御する。CPU51は、ROM52に記憶されている各種プログラムを、RAM53を作業領域として実行する。CPUは、プログラムを実行することで処理装置2の制御部21として機能する。
 ROM52は、CPU51が使用するプログラムや演算パラメータ等を記憶する。ROM52は、例えば、制御部21で実行されるモジュールのプログラムを記憶する。ROM52は、処理装置2の記憶部24の一部である。
 RAM53は、CPU51が制御を実行する際に使用するプログラムを一時的に記憶する。またRAM53は、CPU51が制御を実行する際に適宜変化する変数等を一時的に記憶する。RAM53は、処理装置2の記憶部24の一部である。
 I/Oインターフェース54は、ナビゲーション装置2Aに接続された機器との間でデータの入出力を行う。I/Oインターフェース54は、車両に搭載されたナビゲーション装置用のセンサまたは入力デバイスから、ユーザによる入力操作の情報及び位置情報のデータ等を受け取る。I/Oインターフェース54は、読み取ったデータ等を、必要に応じてRAM53を介してCPU51に提供する。
 タッチパネル55は、ユーザによる入力操作を検出する。タッチパネル55は、処理装置2の操作部25である。タッチパネル55は、表示部60と一体であってもよい。
 TCU56は、サーバ2B及びモバイル端末2Cとそれぞれ通信する。ナビゲーション装置2Aは、モバイル端末2Cと近距離無線通信により通信してもよい。TCU56は、処理装置2の通信部23である。
 ストレージ装置57は、例えば磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、または、光磁気記憶デバイス等によって実現される。磁気記憶部デバイスは、例えばHDD(Hard Disk Drive)である。ストレージ装置57は、CPU51が実行するプログラム、および外部から取得したデータを含む各種のデータ等を格納する。ストレージ装置57は、処理装置2の記憶部24の一部である。
 SDホストモジュール58は、挿入されている記録媒体であるSDカードに対して、情報の読み出し及び書き込みを行う。SDホストモジュール58は、記録媒体から読み出した情報を、例えばRAM53に出力する。
 表示部60は、入力された画像データに基づいて画像を出力する。表示部60は、処理装置2の表示部26であって、液晶ディスプレイ又は有機ELディスプレイ等である。
 音声出力部61は、入力された音声データに基づいて音声を出力する。音声出力部61は、処理装置2の音声出力部27であって、スピーカである。
 バス59は、ナビゲーション装置2Aの各構成を接続する。これによりナビゲーション装置2Aの各構成が、相互にデータの送受信を行うことできる。
 処理装置2のうちのモバイル端末2Cは、上記のナビゲーション装置2Aと同様の構成であるが、例えば、図示しないGPSセンサを備える点で相違する。GPSセンサは、処理装置2の測位部28である。
 ≪候補選択処理の変形例≫
 実施形態の候補選択処理は、図22に示す以下の変形例により行われてもよい。本変形例では、第1候補及び第2候補を、自ノードか他ノードかを考慮することなく選択する点で、実施形態の候補選択処理と異なる。
 まず、ステップS200において、機能実行部211は、実行しようとする所定の機能を実行できるモジュール4が論理ネットワーク3に存在するかどうかを判断する。論理ネットワークに所定の機能を実行できるモジュール4が存在しなければ、機能実行部211は候補選択処理を終了する。
 論理ネットワーク3に所定の機能を実行できるモジュール4が存在した場合、ステップS210において、機能実行部211は、そのモジュール4の中から、所定の選択基準に基づいて第1候補を選択する。ここでの選択基準は上述のとおりであるため省略する。
 次に、S230において、機能実行部211は、機能実行部211は、第1候補以外に候補が存在するか否かを確認する。第1候補以外に候補が存在しない場合には、S221において、機能実行部211は、第2候補を選択することなく、候補選択処理を終了する。
 一方、第1候補以外に候補が存在する場合、S242Aにおいて、機能実行部211は、選択基準に対して第1候補の次に最適なモジュール4を第2候補として選択して、候補選択処理を終了する。
 なお、候補選択処理は、実施形態または上記変形例1のような態様に限定されない。例えば、機能実行部211は、第1候補として他ノードまたは自ノードのモジュールを優先的に選択してもよい。すなわち、第1候補及び第2候補を選択する選択基準のひとつとして、自ノードまたは他ノードを優先的に選択するという基準が用いられてもよい。
 ≪論理ネットワーク3を構築する際の特徴≫
 上記のように、処理装置2は、接続できる他の処理装置2のうち、同一の機能を実行する他の処理装置2と論理ネットワーク3を形成する。自処理装置2及び他の処理装置2の記憶部24は、それぞれ制御部21で実行される実行プログラム242を含むソフトウェアと、この実行プログラム242が実行される場合に利用される地図データ241などの利用データを記憶する。論理ネットワーク3を形成する自処理装置2と他の処理装置2とでは、上記ソフトウェア、及び利用データの少なくとも一部が異なる。好ましくは、論理ネットワーク3を形成する自処理装置2と他の処理装置2とでは、上記ソフトウェア、及び利用データのバージョンが異なる。このようにして論理ネットワーク3を形成することで、他の処理装置2による所定の機能の実行により得られる結果は、自処理装置2における所定の機能の実行により得られる結果とは異なるものとなる。すなわち、自処理装置2における所定の機能の実行により得られる結果と同一の結果を得る他の処理装置2ではなく、異なる結果が得られる他の処理装置2と論理ネットワーク3を形成することとなる。これにより、処理装置2は、所定の機能の実行において有益な結果をもたらす他の処理装置2に限定して接続を確立して論理ネットワーク3を形成し、論理ネットワーク3の管理コストを下げることができる。
 なお、論理ネットワーク3を形成する他の処理装置2は、ソフトウェア及び利用データの少なくとも一方のバージョンが異なるものに加え、ソフトウェア及び利用データの少なくとも一方が作成された時系列上の順番が異なるものとしてもよい。
 好ましくは、処理装置2の制御部21は、自身の実行プログラム242を含むソフトウェアのバージョン、又は利用データのバージョンが変更されたとき、論理ネットワーク3を形成し直す。このようにすることで、処理装置2の実行プログラム242又は利用データのバージョンが変更された場合でも、これらとは異なるバージョンの実行プログラム242及び利用データの少なくとも一方に基づいて同一の機能を実行する他の処理装置2と、適宜ネットワークを形成し直すことができる。
 なお、実施形態の例では、ノード情報を受信した処理装置2がセッションを開始すべきか否かの判断を行ったが、この方法に限定されない。例えば、新たにシグナリングサーバ2B1に接続された処理装置2がノード情報を要求する信号を他の処理装置2に送信し、他の処理装置2からノード情報を受信して、セッションを開始すべき他の処理装置2を決定するような処理を行ってもよい。
 ≪その他の変形例≫
 機能実行部211によって候補として選択されるモジュールは、3つ以上であってもよい。すなわち、機能実行部211は、第1候補から第3候補までを選択する構成であってもよい。
 機能実行部211は、通信の状態がオンラインの処理装置2に組み込まれたモジュール4、及び、通信の状態がオフラインの処理装置2に組み込まれたモジュール4の中から、第1候補と第2候補とを選択する構成であってもよい。
 機能実行部211は、第1候補の実行結果または第2候補の実行結果を利用するとき、必ずしも表示部26に表示させ、音声出力部27から出力させなくてもよい。この場合、第1候補の実行結果及び第2候補の実行結果の少なくとも一方は、出力以外の処理に利用されてもよい。また、第1候補の実行結果及び第2候補の実行結果の少なくとも一方は、記憶部24に記憶されてもよい。
 論理ネットワーク3には、処理装置2としてテレビが含まれてもよい。同じ種類の処理装置2が同一の論理ネットワーク3に含まれても良い。テレビは、例えば有線でインターネット、すなわち論理ネットワーク3につなげられてもよい。
 情報処理システム1において、サーバ2Bの制御部21であるサーバ制御部21Bが、機能実行部211を備える構成であってもよい。
 論理ネットワーク3を構成する処理装置2は、それぞれが1つの電子機器であるが、2以上の電子機器が1つの処理装置2とみなされて論理ネットワークが構成されてもよい。この場合、グループIDで論理ネットワーク3が管理される。これにより、情報処理システム1は、同じグループ内の処理装置2をつなぐことができる。
 実施形態では、モジュール4が主にソフトウェアである形態について説明したが、モジュール4は、ハードウェア、またはソフトウェアとハードウェアとの組み合わせであってもよい。
 機能実行部211は、通信速度ではなく、応答速度に応じて候補となるモジュール4を選択してもよい。すなわち、所定の機能を実行させる命令を伝達する処理装置2と、他の処理装置2との間でデータを送受信したときに応答に要する時間をモジュール4の選択基準としてもよい。
 機能実行部211によるモジュールの選択基準は、いずれか1つの指標に基づくものではなく、複数の指標を組み合わせたものであってもよい。例えば、機能実行部211は、通信速度、モジュール4のバージョン、及び地図のバージョン等の指標に基づくスコアリングを行い、スコアの高いモジュール4を第1候補または第2候補として選択してもよい。
 本発明は上述した各実施形態に限定されるものではなく、種々の変更が可能であり、変形例にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
1…情報処理システム、2…処理装置、21…制御部、23…通信部、3…論理ネットワーク、4…モジュール、211…機能実行部

Claims (8)

  1.  ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とをそれぞれ備える2以上の処理装置でネットワークを形成する情報処理システムであって、
     前記制御部の少なくともいずれか1つは、
      前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択し、
      前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達し、
      前記第1候補が前記命令を実行した第1実行結果、及び、前記第2候補が前記命令を実行した第2実行結果を受け取れることを特徴とする情報処理システム。
  2.  前記制御部の少なくともいずれか1つは、前記第1候補及び前記第2候補の選択と、前記第1候補及び前記第2候補への前記命令の伝達と、前記第1実行結果及び前記第2実行結果の受け取りを行う機能実行部を有し、
     前記機能実行部は、
      前記第1候補と前記第2候補とに前記命令を伝達した後、所定の時間が経過しても、前記第1実行結果を受け取れない場合、前記第2実行結果に基づく情報を、画像データ及び音声データの少なくともいずれか一方を出力する出力部に出力させることを特徴とする請求項1に記載の情報処理システム。
  3.  前記基準は、前記機能実行部を備える第1処理装置と、前記第1処理装置と異なる第2処理装置との間で単位時間あたりに送受信できるデータの量である通信速度の大きさ、前記命令に対応する前記ソフトウェアのバージョンの新しさ、又は、前記機能としてナビゲーションが実行される場合に利用される地図データのバージョンの新しさであることを特徴とする請求項2に記載の情報処理システム。
  4.  前記機能実行部は、
      前記第1処理装置が前記命令に沿った前記機能を実行できる場合、前記第1処理装置に組み込まれた前記モジュールを、前記第1候補又は前記第2候補として選択することを特徴とする請求項3に記載の情報処理システム。
  5.  前記機能実行部は、
      前記所定の時間が経過しても、前記第1実行結果及び前記第2実行結果を受け取れない場合、所定の基準に基づいて、再度、前記第1候補及び前記第2候補をそれぞれ選択することを特徴とする請求項4に記載の情報処理システム。
  6.  前記機能実行部は、
      通信の状態がオンラインの前記処理装置に組み込まれた前記モジュールの中から、前記第1候補及び前記第2候補をそれぞれ選択することを特徴とする請求項4又は請求項5に記載の情報処理システム。
  7.  ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とを備える処理装置であって、
     他の前記処理装置とともにネットワークを形成し、
     前記制御部は、
      前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択し、
      前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達し、
      前記第1候補が前記命令を実行した第1実行結果、及び、前記第2候補が前記命令を実行した第2実行結果を受け取れることを特徴とする処理装置。
  8.  ソフトウェアに基づいて所定の機能を実行するモジュールを構成する制御部と、前記制御部の制御に基づいて通信する通信部とをそれぞれ備える2以上の処理装置でネットワークを形成する情報処理システムで実行される処理方法であって、
     前記制御部の少なくともいずれか1つによって、
      前記モジュールのいずれか1つである第1候補と、前記第1候補と同一の前記機能を実行し、かつ、前記第1候補よりも所定の基準に基づく順位が低い前記モジュールである第2候補とを選択するステップと、
      前記第1候補と前記第2候補とに前記機能を実行させる命令を伝達するステップと、
      前記第1候補が前記命令を実行した結果である第1実行結果、及び、前記第2候補が前記命令を実行した結果である第2実行結果を受け取れるステップと、が実行されることを特徴とする処理方法。
PCT/JP2021/040021 2020-10-30 2021-10-29 情報処理システム、処理装置及び情報処理方法 Ceased WO2022092264A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP21886381.9A EP4239483B1 (en) 2020-10-30 2021-10-29 Information processing system and information processing method
JP2022559259A JP7467672B2 (ja) 2020-10-30 2021-10-29 情報処理システム、処理装置及び情報処理方法
US18/120,535 US12061095B2 (en) 2020-10-30 2023-03-13 Information processing system, processing device, and information processing method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2020-183058 2020-10-30
JP2020183058 2020-10-30
JP2021014004 2021-01-29
JP2021-014004 2021-01-29

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/120,535 Continuation US12061095B2 (en) 2020-10-30 2023-03-13 Information processing system, processing device, and information processing method

Publications (1)

Publication Number Publication Date
WO2022092264A1 true WO2022092264A1 (ja) 2022-05-05

Family

ID=81384017

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/040021 Ceased WO2022092264A1 (ja) 2020-10-30 2021-10-29 情報処理システム、処理装置及び情報処理方法

Country Status (4)

Country Link
US (1) US12061095B2 (ja)
EP (1) EP4239483B1 (ja)
JP (1) JP7467672B2 (ja)
WO (1) WO2022092264A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4449270A4 (en) * 2021-12-17 2025-12-24 Blackthorn Ip Llc Data ingestion from independent sources and data partitioning across database systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041015A (ja) * 2015-08-18 2017-02-23 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP2018028518A (ja) 2016-08-19 2018-02-22 株式会社 ミックウェア ナビゲーションシステム及びコンピュータプログラム
JP2018147339A (ja) * 2017-03-08 2018-09-20 日本電気株式会社 システム管理装置、システム管理方法、プログラム、情報処理システム
JP2018201112A (ja) 2017-05-26 2018-12-20 ブラザー工業株式会社 プログラム及び携帯端末

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2868583C (en) * 2010-03-19 2015-11-17 Martin Palzer Concept for communicating between different entities using different data portions for different channels
CN103346974B (zh) * 2013-06-03 2015-04-08 华为技术有限公司 一种业务流程的控制方法及网络设备
JP6237737B2 (ja) * 2015-09-15 2017-11-29 株式会社デンソー 車両用通信装置、コンピュータプログラム及び通信システム
WO2020079941A1 (ja) * 2018-10-15 2020-04-23 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータプログラム
EP3996058B1 (en) * 2018-10-29 2024-03-06 Hexagon Technology Center GmbH Facility surveillance systems and methods
WO2021205407A1 (en) * 2020-04-09 2021-10-14 Telefonaktiebolaget Lm Ericsson (Publ) Handling of conditional reconfiguration delay

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017041015A (ja) * 2015-08-18 2017-02-23 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP2018028518A (ja) 2016-08-19 2018-02-22 株式会社 ミックウェア ナビゲーションシステム及びコンピュータプログラム
JP2018147339A (ja) * 2017-03-08 2018-09-20 日本電気株式会社 システム管理装置、システム管理方法、プログラム、情報処理システム
JP2018201112A (ja) 2017-05-26 2018-12-20 ブラザー工業株式会社 プログラム及び携帯端末

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4239483A4

Also Published As

Publication number Publication date
US12061095B2 (en) 2024-08-13
EP4239483C0 (en) 2025-09-17
JP7467672B2 (ja) 2024-04-15
EP4239483B1 (en) 2025-09-17
EP4239483A4 (en) 2024-10-09
US20230221141A1 (en) 2023-07-13
JPWO2022092264A1 (ja) 2022-05-05
EP4239483A1 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
RU2653412C2 (ru) Навигационная система для мобильного устройства
JP6619797B2 (ja) 所定の位置データ点の決定およびサービス提供者への供給
CN111736584B (zh) 信息处理装置、信息处理方法和存储介质
JP2010054484A (ja) ナビゲーションシステム、ナビゲーション装置、ナビゲーション方法およびナビゲーションプログラム
CN109561380A (zh) 在移动网络中识别并定位用户
US20150339593A1 (en) Vehicle generated social network updates
US20220058763A1 (en) Information processing apparatus, information processing method, and non-transitory storage medium
US20200175446A1 (en) System and method for managing taxi dispatch, and program for controlling taxi dispatch requests
JP6951935B2 (ja) 動態管理サーバ、動態管理方法および動態管理プログラム
JP6663824B2 (ja) ナビゲーションシステム及びコンピュータプログラム
US20200020245A1 (en) Information processing apparatus, information processing method, and program
JP7467672B2 (ja) 情報処理システム、処理装置及び情報処理方法
JP7081320B2 (ja) 情報処理装置及び情報処理方法、プログラム
US11514387B2 (en) Information processing apparatus, information processing method, and non-transitory storage medium
JP2021143905A (ja) 情報処理装置、プログラム、及びシステム
US20210245768A1 (en) Information processing apparatus, system, and information processing method
JP2002310700A (ja) 駐車場案内システム
JP2022084457A (ja) サーバ装置、端末装置、プログラム、車両、及びシステムの動作方法
JP2017208009A (ja) 検索システムおよび検索プログラム
US11908033B2 (en) Information processing apparatus, information processing system, and non-temporary storage medium
US20230324186A1 (en) Route information providing device and route information providing method
US11561537B2 (en) Information processing device, information processing method, and system
US20240070793A1 (en) Order reception system, order reception method, and storage medium
JP7287254B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2008192087A (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: 21886381

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022559259

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021886381

Country of ref document: EP

Effective date: 20230530

WWG Wipo information: grant in national office

Ref document number: 2021886381

Country of ref document: EP