WO2007074905A1 - ネットワーク機器システム - Google Patents

ネットワーク機器システム Download PDF

Info

Publication number
WO2007074905A1
WO2007074905A1 PCT/JP2006/326258 JP2006326258W WO2007074905A1 WO 2007074905 A1 WO2007074905 A1 WO 2007074905A1 JP 2006326258 W JP2006326258 W JP 2006326258W WO 2007074905 A1 WO2007074905 A1 WO 2007074905A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
network device
unit
variable
network
Prior art date
Application number
PCT/JP2006/326258
Other languages
English (en)
French (fr)
Inventor
Tomoyuki Hatanaka
Original Assignee
Matsushita Electric Works, Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Works, Ltd. filed Critical Matsushita Electric Works, Ltd.
Priority to KR1020077013003A priority Critical patent/KR100928913B1/ko
Priority to EP06843636A priority patent/EP1890238B1/en
Publication of WO2007074905A1 publication Critical patent/WO2007074905A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation 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 the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a network device system, and more particularly to a network device system of a distributed function processing system.
  • a network device system in which a plurality of network devices are connected via an electric communication line such as the Internet and the network devices cooperate to perform a predetermined operation.
  • a center server is connected to a home server and various equipment (for example, an information display device and an air-conditioning control device) installed in each home via an Internet line.
  • various equipment for example, an information display device and an air-conditioning control device
  • object-oriented languages have been widely used to design such systems.
  • Object-oriented languages have features such as encapsulation, inheritance, and polymorphism, and are particularly useful for large-scale software development.
  • Japanese Patent Laid-Open No. 8-137697 discloses that a plurality of agents can communicate with each other.
  • An autonomous decentralized system that cooperates and processes tasks according to specified system characteristics is disclosed.
  • the problem of the entire system is broken down into child problems that can be solved independently, and each agent decides the share of each child problem through negotiation.
  • Each child problem is set up so that it has no dependency on the other child problems and the result of each child problem is not required by the other child problems.
  • each agent autonomously solves the problem, and it is described that system maintenance such as changing system settings becomes easy.
  • the present invention has been made to solve the above-described problems, and is a network device that can easily cope with a change and expansion of a system, can avoid deadlock, and can optimize the system.
  • the purpose is to provide a system.
  • a functional language is a programming language with a mathematical language specification (for example, Haskell). It has no concept of state, its result is determined only by its arguments, and has reference transparency with no side effects.
  • the network device system of the present invention is a network device system in which a plurality of network devices connected to a telecommunication line cooperate with each other to perform a predetermined operation, and are based on a combination of functions in a function language. The entire system is built. Then, the functions of the entire system are appropriately distributed to each network device, and each network device executes a function assigned to each network device so that the entire system performs a predetermined operation.
  • Each network device includes a function storage unit, a variable storage exchanger, an execution function selection unit, and a function execution unit.
  • the function storage unit is a function that needs to be executed in the local network device.
  • the variable storage switch is connected to each network device via a telecommunication line, stores variables necessary for executing functions stored in the function storage unit of each network device, and is shared among the network devices.
  • the execution function selection unit refers to the variable stored by the variable storage exchanger and selects an executable function from among the functions stored in the function execution unit of the own network device.
  • the function execution unit executes the function selected by the execution function selection unit using the variables stored in the variable storage exchanger, and uses the variables obtained by the execution of the function to store the variable storage exchanger. Update stored variables.
  • a variable necessary for execution of a function can be monitored, and the function can be executed when all the variables necessary for execution of the function are constrained.
  • each function is mainly processed inside the computer, so it was easy to monitor the variables necessary for the execution of the function.
  • a function processing system is applied to a network device system in which each network device is installed in a remote place as in the present invention, how to monitor variables becomes a problem. Therefore, the inventor of the present invention solved this problem by providing each network device with the function storage unit, variable storage exchanger, execution function selection unit, and function execution unit.
  • variables necessary for executing the functions of the entire system are stored and shared by the variable storage exchangers of the network devices connected to each other via the telecommunication line.
  • the execution function selection unit refers to a variable shared by the variable storage exchanger, and if there is an executable function among the functions stored in the function execution unit of the own network device, selects the function.
  • the function execution unit executes the function selected by the execution function selection unit and updates (constrains) the variable stored in the variable storage exchange according to the execution result. The updated variable is used in another function, and the variable stored in the variable memory card is updated again by the execution result.
  • a distributed function processing network device system in which a function processing system is implemented in a distributed network device can be realized. Since this network equipment system is composed of a function processing system, even if a new function is added, it can easily cope with a system change that does not have the side effects. In addition, function processing system Since it does not depend on the order, there is no risk of deadlock. In addition, the system can be optimized by appropriately distributing functions to each network device. Regardless of how the functions are distributed, it can be mathematically guaranteed that the behavior of the entire system will not change.
  • the function storage unit stores at least a function unique to the own network device.
  • a function unique to the network device is a function that can be executed only by the network device, and is often a function related to input / output, such as reading a sensor value.
  • the network device system further includes a function distribution negotiation unit.
  • the function distribution negotiation unit is connected to another network device via a telecommunication line, and the functions stored in the function storage unit excluding the functions specific to the own network device are transferred to the other network device.
  • the function storage unit stores a function delegated to other network device power by the function distribution negotiation unit. In this case, the calculation subject of the function can be dynamically changed, and the optimal capacity of the system can be improved in a distributed manner.
  • the function distribution negotiation unit inquires the processing load to each network device, receives the response of each network device, and determines another network device to delegate the function based on the response. .
  • a preferred network device can be selected to delegate the function.
  • the processing load includes the load status of each network device and the processing time required for executing a certain function.
  • At least one of the plurality of network devices includes a function repository that stores an implementation of a function used in the network device system, and each of the network devices further includes a predetermined function execution unit. Describes the implementation of the function required to execute the function Function implementation storage unit that acquires from the function repository the implementation of functions that are not stored in the function implementation storage unit among the functions that have been delegated by the function distribution negotiation unit and other network device capabilities And an additional unit. In this case, it becomes easy to change and expand the system.
  • each network device further includes a variable disclosure control unit that divides the variable stored in the variable storage exchange into a shared variable that should be shared between the network devices and a non-shared variable that is not shared.
  • the variable storage switch shares only the shared variable among the network devices via the telecommunication line. In this case, it is possible to suppress sharing of unnecessary variables in the variable memory exchanger, and it is possible to reduce the network load for sharing the variables.
  • the plurality of network devices include at least a center server, a home server installed in each home, and equipment installed in each home.
  • a home system in which the center server and home servers and equipment in the home are connected to each other can be constructed, and the functions are distributed to the center server and home server that have high processing capabilities. The processing capacity can be improved.
  • FIG. 1 is a diagram showing a configuration of a network device system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing the configuration of each network device used in the network device system of FIG.
  • FIG. 3 is a flowchart for explaining a procedure for executing a function in the network device system of FIG. 1.
  • FIG. 4A is a diagram for explaining function delegation in the network device system of FIG. 1.
  • FIG. 4B is a diagram for explaining function delegation in the network device system of FIG. 1.
  • FIG. 1 shows a network function system of a distributed function processing system according to an embodiment of the present invention. It is a figure which shows a structure.
  • various equipment such as a center server 1, a home server 3 installed in each home H, an information display device 4 installed in each home H, and an air conditioning control device 5 are used as network equipment. They are connected to each other via Internet line 2 or LAN.
  • Internet line 2 or LAN In the present embodiment, for ease of understanding, only the above-described network device is used as an example. Of course, the network device is not limited to these.
  • the center server 1 is composed of a general-purpose computer device having a network function, and includes a function implementation repository 6 that stores implementations of functions used in the network device system.
  • the home server 3 provides various functions to each facility device in the home through lan while cooperating with the center server 1.
  • the home server 3 may be equipped with a gateway function and a Web server function.
  • the information display device 4 includes a display and can display various types of information on the display.
  • the air conditioning control device 5 includes a temperature sensor (not shown) for detecting the temperature in the room, and can also control the air conditioning in the room with an external force via the Internet.
  • a temperature sensor not shown
  • the operation screen of the air conditioning control device 5 is displayed on the display of the information display device 4, and the user can operate while viewing the display of the information display device 4.
  • This network device system is a function processing system in which the entire system is constructed by a combination of functions. In other words, the functions of the entire system are described by a combination of functions in a functional language.
  • any network device may execute the function except for the function unique to each network device.
  • the function can be executed at any place (computation subject). Therefore, in this network equipment system, a group of functions necessary for the entire system is appropriately distributed to each network equipment, and each network equipment performs a predetermined operation by executing a function assigned to each network equipment. It is configured as follows.
  • a method for distributing the function is, for example, by connecting the network to the center server 1 or the home server 3.
  • a list describing the functions to be assigned to each network device in accordance with the combination of network devices is stored in advance, and the center server 1 or home server 3 refers to the list while referring to the list. May be statically distributed to each network device.
  • the center server 1 or the home server 3 is connected to each network device power network.
  • the processing capability (spec) of the network device may be taken up, and an optimal distribution method may be simulated based on the processing capability of each network device, and distributed dynamically based on the simulation result.
  • each network device may be dynamically distributed to each other by negotiation.
  • the home server 3, the information display device 4, and the air conditioning control device 5 are respectively a function storage unit 10, a variable storage exchanger 11, and an execution function selection unit 12.
  • the function execution unit 13, the function distribution negotiation unit 14, the function implementation storage unit 15, the implementation function addition unit 16, and the variable disclosure control unit 17 are provided.
  • the function storage unit 10 stores a function that needs to be executed in its own network device. Here, there are the following three types of functions that must be executed in the network device.
  • the first is a function specific to a network device that cannot be executed by another network device. For example, if there is a function “read the temperature sensor of the air conditioning control device 5”, the function can be executed only by the air conditioning control device 5 having the temperature sensor.
  • the function storage unit 10 stores at least a function specific to the network device.
  • the second is a function in which other network device capabilities are also delegated as a result of negotiation with the center server 1, the home server 3, or other network devices.
  • the third is a function that is stored in the function storage unit 10 from the time of shipment of the network device and is delegated to another network device.
  • the variable storage exchanger 11 is connected to each network device via a telecommunication line such as a LAN or an Internet line, and is a variable necessary for executing a function stored in the function storage unit 10 of each network device. Is stored and shared among network devices. Shared work As a method, for example, the variable exchange 11 in which the shared variable is updated transmits the update list of the shared variable by multicast to the variable exchanger 11 of each network device, and each variable exchange that receives the update list of the shared variable is transmitted. Make sure that ll remembers the shared variables listed in its update list.
  • the execution function selection unit 12 periodically refers to a variable shared by the variable memory exchanger 11, and selects an executable function from among the functions stored in the function execution unit 10 of the own network device. To do.
  • the function execution unit 13 executes the function selected by the execution function selection unit 12 using the variables stored in the variable storage interchange 11.
  • the function execution unit 13 updates the variable stored in the variable storage exchanger with the variable obtained by executing the function.
  • the function implementation storage unit 15 stores the implementation necessary for the function execution unit 13 to execute the function stored in the function storage unit 10!
  • variable storage exchanger 11 the execution function selection unit 12, the function execution unit 13, and the function implementation storage unit 15 will be specifically described with reference to the flowchart of FIG.
  • a, b, c, d, e are variables
  • f (a, b) means a function with arguments a, b
  • g (d) means a function with variable d as an argument.
  • the execution function selection unit 12 periodically refers to a variable shared by the variable memory exchanger 11 and functions stored in the function execution unit 10 of its own network device (ie, f (a, b) , g (d)) is checked whether the variables (ie, a, b, d) necessary for execution are constrained (step Sl). Specifically, the execution function selection unit 12 includes the variables a, b, and d necessary for executing the function stored in the function execution unit 10 of the own network device, and the variable stored in the variable storage exchanger 11. Perform pattern matching.
  • the function execution unit 13 selects the function f (a, b) by the execution function selection unit 12, the function execution storage unit 15 loads the implementation necessary for executing the function f (a, b).
  • the function f (a, b) is executed using the variables a, b acquired and stored in the variable memory exchanger 11 (step S3).
  • the variable c is newly stored in the variable memory 1 and shared among the network devices.
  • this variable c is not used in this network device, it is used by another network device, and as a result, a new variable is constrained (updated), and functions are executed one after another in a chain.
  • the network device returns to step S 1 and periodically refers to the variable shared by the variable memory switch 11 again, and stores the function stored in the function execution unit 10 of its own network device.
  • the function g (d) that can be executed is selected (step S2).
  • the function execution unit 13 acquires the implementation necessary for executing the function g (d) from the function implementation storage unit 15, and executes the function g (d) (step S3).
  • the execution function selection unit 12 may share only the necessary variables set in advance, instead of referring to all the variables shared by the variable memory exchanger 11! . In this case, The load of the execution function selection unit 12 can be reduced and the reference speed of the execution function selection unit 12 can be reduced as compared with the case where the row function selection unit 12 refers to all the variables stored in the variable storage interface ll. You can speed up.
  • the function distribution negotiation unit 14 is connected to the function distribution negotiation unit 14 of another network device via a LAN or the like, and has a function of delegating the function stored in the function storage unit 10 to another network device. .
  • this network device system is a functional processing system
  • functions other than the functions unique to the network device may be executed by any network device, except for the functions unique to the network device. It is possible to improve the system optimization 'function by distributing it appropriately.
  • the function distribution negotiation unit 14 does not allow the center server 1 and the home server 3 to perform function distribution in a concentrated manner, and each network device moves a function assigned to its own network device to other network devices. It is provided for the purpose of delegation in a distributed and decentralized manner.
  • each facility device includes a detection unit that monitors the CPU operating rate of the facility device.
  • the function distribution negotiation unit 14 is activated when the network approaches the limit, when a new network device is installed in the system, or when the network device software is updated.
  • the function distribution negotiation unit 14 When the function distribution negotiation unit 14 is activated, the function distribution negotiation unit 14 performs calculation of a function excluding a function unique to the own network device among the functions stored in the function storage unit 10 of the own network device. Negotiate with the function distribution negotiation section14 of other network devices. Specifically, the function distribution negotiation unit 14 inquires each network device by multicast about the processing load (including processing time, processing capacity, etc.) necessary for executing a certain function, and receives a response from each network device. Based on the answer, the most preferred network device is finally determined to delegate the function. Preferably, conditions such as the overhead of communication that only requires processing load The network device to be transferred is determined in consideration of the matter. If, as a result of answering, it is determined that it is most preferable for the local network device to execute, execute it on the local network device without delegating.
  • the processing load including processing time, processing capacity, etc.
  • the network device to which the function has been delegated stores the delegated function in the function storage unit 10. Thereafter, the function is executed by the network device.
  • FIG. 4A it is assumed that an air conditioning control device 5 and an information display device 4 are installed in a home.
  • the air conditioning control device 5 and the information display device 4 are connected via a LAN.
  • the operation screen of the air conditioning control device 5 is displayed on the display of the information display device 4, The user can operate while looking at the display of the information display device 4.
  • functions A to C are allocated and stored in the air conditioning control device 5.
  • Function A is a function specific to the air conditioning control device 5 (here, it is assumed that the value of the temperature sensor of the air conditioning control device 5 is read), and functions B and C are other than functions specific to the air conditioning control device 5. This function can be delegated to other network devices.
  • the function C is a function for creating an operation screen of the air conditioning control device 5 to be displayed on the information display device 4 (hereinafter referred to as a drawing function C).
  • the function A (function for reading the value of the temperature sensor) of the air conditioning control device 5 is executed by the air conditioning control device 5.
  • the function B, C or another function of the information display device 4 is executed.
  • another function is executed based on a variable constrained by execution of a certain function, and as a result, all the functions of the information display device 4 and the air conditioning control device 5 are executed one after another in time series.
  • a human body detection sensor, a lighting device, a camera device, an information display device, a home server, and the like operate as network devices.
  • the variable of the result of the human body detection sensor executing the human body detection function is constrained in its own device variable memory exchange 11 and shared with each network device.
  • the functions in the luminaire and power camera device that take the constrained variable as input are constrained by the input variable. For example, lighting is turned on or camera imaging is started.
  • the home server receives the variable as an input and the Web Executes a function to be displayed on an information display device such as a TV with a browser. In this way, a home security system can be realized.
  • a variable for example, a variable with meaning such as shooting time
  • the drawing function C is assigned to the air conditioning control device 5
  • the operation screen of the air conditioning control device 5 is drawn by the air conditioning control device 5 itself.
  • the information display device 4 can display only a simple operation screen.
  • the air conditioning control device 5 makes an inquiry to the home server 3 and the display control device 4 by multicasting about the processing time and processing capacity necessary for executing the functions B and C stored in the function storage unit 10.
  • function A is a function specific to the air conditioning control device 5, it is not subject to negotiation.
  • the home server 3 to which the function C has been delegated stores the function C in the function storage unit 10 of the home server 3, and thereafter, the home server 3 executes the function C. Since the home server 3 has a short drawing processing time and high processing capability, in FIG. 4B, a colorful operation screen can be displayed on the display of the information display device 4 at high speed.
  • the function calculation subject can be dynamically changed by the function distribution negotiation unit 14, thereby improving the system optimization function.
  • functions of the functional processing system have no side effects, so even if the function is delegated, the original operation of the network device to which the delegation is performed is not affected. That is, in the example of FIG. 4B, even if the drawing function C of the air conditioning control device 5 is delegated to the home server 3, the original operation of the home server 3 can be guaranteed. Of course, the operation of the air conditioning control device 5 can also be guaranteed.
  • the function distribution negotiation unit 14 has improved the processing time and the drawing ability.
  • the function distribution negotiation unit 14 has other capabilities, for example, a history that refers to the history of operation status. It can be improved by improving the reference ability and the ability to reduce power consumption.
  • the function distribution negotiation unit 14 negotiates only the network devices 3, 4, and 5 installed in the home. For example, as shown in FIG. In the case where it is connected to the center server 1 via the S Internet 2, each function distribution negotiation unit 14 may negotiate within the range including the center server 1. . If the function is delegated to the center server 1, the processing capability may be further improved.
  • each network device preferably includes an implementation function tracking unit 16.
  • the implementation function adding unit 16 is connected to the function implementation repository 6 of the center server 1 via the Internet 2.
  • the implementation function addition unit 16 acquires the implementation of the function from the function implementation repository 6 via the Internet line.
  • the function execution unit 13 can execute the function.
  • any network device can execute the function just by storing the implementation in the function implementation repository 6 of the center server 1.
  • the function implementation addition unit 16 receives functions from the network device that delegates functions that are not limited to the function repository 6 alone. You may get a number of implementations.
  • each network device includes a variable disclosure control unit 17 as shown in FIG.
  • the variable disclosure control unit 17 classifies the variables stored in the variable memory exchanger 1 1 into non-shared variables that are not shared with the shared variables that should be shared among the network devices. Only the shared variable is shared between each network device via the telecommunication line.
  • variable disclosure control unit 17 sets the variable ⁇ as a non-shared variable, and the variable storage exchange does not share the variable ⁇ between network devices.
  • variable ⁇ must be disclosed (shared). In this case, the variable disclosure control unit 17 shares the variable ⁇ .
  • variable memory exchange 1 shares the variable ⁇ between network devices via a telecommunication line.
  • which variable should be a shared variable is known from the negotiation result of the function distribution negotiation unit 14.
  • variable disclosure control section 17 it is possible to suppress sharing of unnecessary variables, thereby reducing the network load for sharing variables.
  • each network device By configuring each network device as described above, a distributed function processing network device system can be realized. Since this network device system is composed of a combination of functions in the function processing system, even if a new network device is added, the function (function) of the new network device has a side effect on the existing network device system. It can easily cope with changes in the system. Also, by optimizing the functions of the entire system among network devices (in Figure 1, between the center server 1, home server 3, information display device 4, and air conditioning control device 5), the optimization of the entire system Capability can be improved. For example, even if a security device (not shown) is added to the system shown in Fig. 1, the functions provided in the security device have side effects on the functions of existing network devices.
  • Security devices can easily be added to the system, and functions other than the security device detection function can be delegated according to the processing load of each network device.
  • the method of distributing the functions may be performed by the sensor server 1 or the home server 3 in a centralized manner, or each network device may be performed by the function distribution negotiation unit 14 in a distributed manner. Regardless of how the functions are distributed, it can be mathematically guaranteed that the behavior of the entire system does not change. In addition, since the function processing system does not depend on the execution order, there is no risk of deadlock! /.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

 このネットワーク機器システムは、関数処理系のシステムで、各ネットワーク機器が各自に割り当てられた関数を実行することによってシステム全体として所定の動作を行う。各ネットワーク機器は、関数記憶部10と、変数記憶交換器11と、実行関数選択部12と、関数実行部13とを備える。変数記憶交換器11は、電気通信回線を介して各ネットワーク機器と接続されており、各ネットワーク機器の関数記憶部10に記憶された関数の実行に必要な変数を記憶し、各ネットワーク機器間で共有する。実行関数選択部は、変数記憶交換器が記憶している変数を参照し、関数実行部に記憶された関数のうち実行可能な関数を選択する。関数実行部は、前記実行関数選択部により選択された関数を実行すると共に、実行結果によって、変数記憶交換器に記憶された変数を更新する。

Description

ネットワーク機器システム
技術分野
[0001] 本発明は、ネットワーク機器システムに関し、より詳細には分散型関数処理系のネッ トワーク機器システムに関する。
背景技術
[0002] 従来、インターネット等の電気通信回線を介して複数のネットワーク機器が接続され 、各ネットワーク機器が連係して所定の動作を行うネットワーク機器システムが提供さ れている。例えば、センターサーバと、各家庭に設置されたホームサーバや各種設 備機器 (例えば情報表示装置や空調制御装置など)がインターネット回線を介して接 続され、インターネットを介して家庭内の設備機器の制御や電力監視などを行うシス テムが提供されている。
[0003] このようなシステムを設計するために、従来オブジェクト指向型言語が広く用いられ ている。オブジェクト指向型言語は、カプセル化、継承、ポリモーフイズムなどの特徴 を有し、特に大規模なソフトウェア開発において有効である。
[0004] オブジェクト指向型言語によって構成されたネットワーク機器システムに新 、ネット ワーク機器を追加する場合、そのネットワーク機器がシステム全体に及ぼす影響を検 証する必要あり、その作業は、システムが複雑になるにつれて多くの時間と労力を要 する。これは、オブジェクト指向型言語では各オブジェクトが相互作用しながら動作し ており、あるオブジェクトを追加すると、そのオブジェクトによって他のオブジェクトの状 態が影響を受けるからである。システムの検証が不完全な場合、いわゆるデッドロック が発生する恐れもある。従って、システムが複雑になるにつれ、オブジェクト指向型言 語によって構成されたネットワーク機器システムに新しいネットワーク機器を追加する のは容易ではな力つた。さらに、オブジェクトは内部状態情報を多く抱えているため、 システムの検証の際にある問題が生じると、その問題を再現させるためには内部状態 情報を特定し再現する必要があるため、デバッグも容易ではな力つた。
[0005] ところで、 日本公開特許第 8— 137697号公報は、複数のエージェントが通信により 所定のシステム特性に従って協調動作しタスクを処理する自律分散型システムを開 示している。この分散型システムでは、システム全体の問題を独立に求解可能な子 問題に分解し、各エージェントがネゴシエーションによって各子問題の分担を決めて いる。各子問題は、他の子問題と依存関係がなく且つ各子問題の結果が他の子問 題で必要とされないように設定される。この自立分散型システムでは、各エージェント が自律して問題を解決するため、システム設定の変更など、システムの保守が容易と なると記載されている。
[0006] そこでシステム変更に容易に対応するために、このような自律分散型システムを、上 述のネットワーク機器システムに適用することが考えられる。し力しながら、上述のよう なネットワーク機器システムは、システム全体の問題を子問題に分解するのが困難で あり、また分解された子問題間に依存関係があるため、上記文献の自律分散型シス テムを適用することは困難であった。
発明の開示
[0007] 本発明は上記の問題点を解決するために為されたものであって、システムの変更' 拡張に容易に対応でき、デッドロックが生じる恐れもなぐ且つシステムを最適化でき るネットワーク機器システムを提供することを目的とする。
[0008] 本発明の発明者は、上記問題を解決するために、いわゆる関数型言語に着目した 。関数型言語は、数学的な言語仕様をもつプログラミング言語 (例えば、 Haskell)のこ とで、状態という概念をもたず、引数によってのみ結果が決まり、副作用がなぐ参照 透過性を有する。
[0009] 本発明のネットワーク機器システムは、電気通信回線に接続された複数のネットヮ ーク機器が互いに連係して所定の動作を行うネットワーク機器システムであって、関 数型言語の関数の組み合わせによってシステム全体が構築されている。そして、シス テム全体の関数を適切に各ネットワーク機器に分散させ、各ネットワーク機器が各自 に割り当てられた関数を実行することによってシステム全体として所定の動作を行うよ うに構成されている。
[0010] 各ネットワーク機器は、関数記憶部と、変数記憶交換器と、実行関数選択部と、関 数実行部とを備える。関数記憶部は、自ネットワーク機器において実行が必要な関 数を記憶する。変数記憶交換器は電気通信回線を介して各ネットワーク機器と接続 され、各ネットワーク機器の関数記憶部に記憶された関数の実行に必要な変数を記 憶し、各ネットワーク機器間で共有する。実行関数選択部は、前記変数記憶交換器 が記憶して 、る変数を参照し、自ネットワーク機器の関数実行部に記憶された関数の うち実行可能な関数を選択する。関数実行部は、前記実行関数選択部により選択さ れた関数を前記変数記憶交換器に記憶された変数を用いて実行すると共に、関数 の実行によって得られた変数によって、前記変数記憶交換器に記憶された変数を更 新する。
[0011] 関数型言語では、ある関数の実行に必要な変数を監視し、その関数の実行に必要 な変数が全て拘束された時点で、その関数を実行することができる。従来研究されて いる関数処理系では、各関数は主にコンピュータの内部で処理されるため、関数の 実行に必要な変数を監視することは容易であった。し力しながら、本発明のように遠 隔地に各ネットワーク機器が設置されたネットワーク機器システムに関数処理系を適 用する場合、如何に変数を監視するかが問題となる。そこで、本発明の発明者は、各 ネットワーク機器に上述の関数記憶部と、変数記憶交換器と、実行関数選択部と、関 数実行部とを設けることによってこの問題を解決した。
[0012] すなわち、本発明のネットワーク機器システムにおいては、システム全体の関数の 実行に必要な変数が、電気通信回線を介して互いに接続された各ネットワーク機器 の変数記憶交換器によって記憶,共有される。実行関数選択部は、変数記憶交換器 が共有している変数を参照し、自ネットワーク機器の関数実行部に記憶された関数の うち実行可能な関数があれば、その関数を選択する。関数実行部は前記実行関数 選択部により選択された関数を実行すると共に、実行結果によって前記変数記憶交 翻に記憶された変数を更新 (拘束)する。更新された変数は別の関数で使用され、 再びその実行結果によって、変数記憶交^^に記憶された変数が更新される。
[0013] 上述の構成によって、分散したネットワーク機器に関数処理系が実装された分散型 関数処理系のネットワーク機器システムを実現することができた。このネットワーク機 器システムは、関数処理系によって構成されているため、新しい関数を追加しても、 その副作用がなぐシステムの変更に容易に対応できる。また、関数処理系は、実行 順序に依存しないため、デッドロックが生じる恐れもない。また、各ネットワーク機器に 関数を適切に分散させることによって、システムの最適化を図ることができる。関数の 分散のさせ方に拘わらず、システム全体の挙動は、変化しないことが数学的に保証 できる。
[0014] 好ましくは、前記関数記憶部は、少なくとも自ネットワーク機器に固有の関数を記憶 する。自ネットワーク機器に固有の関数とは、そのネットワーク機器にしか実行できな い関数のことであり、例えば、センサの値を読むなど、入出力に関する関数であること が多い。ネットワーク機器システムでは、各ネットワーク機器が"センサの値を読む,,な どその機器固有の関数を備えていることが多ぐすべての関数をシステム全体に分散 させることはできない。従って、少なくとも自ネットワーク機器に固有の関数は自ネット ワーク機器の関数記憶部で記憶し、自ネットワーク機器に固有でない関数は各ネット ワーク機器に分散して割り当てることによって、入出力に応じて時系列で処理が進む ような関数処理系のネットワーク機器システムを実現することができる。
[0015] 好ましくは、このネットワーク機器システムは、さらに機能分散ネゴシエーション部を 備える。機能分散ネゴシエーション部は、電気通信回線を介して他のネットワーク機 器と接続され、前記関数記憶部に記憶された関数のうち、自ネットワーク機器に固有 の関数を除いた関数を他のネットワーク機器に委譲する機能を有する。前記関数記 憶部は、前記機能分散ネゴシエーション部によって他のネットワーク機器力 委譲さ れた関数を記憶する。この場合、関数の計算主体を動的に変更し、システムの最適 ィ匕 '能力向上を分散的に図ることができる。
[0016] 好ましくは、前記機能分散ネゴシエーション部は、各ネットワーク機器に対して処理 負荷を問い合わせ、各ネットワーク機器力 その回答を受け取り、その回答に基づい て、関数を委譲する他のネットワーク機器を決定する。この場合、その関数を委譲す るのに好ましいネットワーク機器を選択することができる。なお、前記処理負荷は、各 ネットワーク機器の負荷状況や、ある関数の実行に必要な処理時間などを含む。
[0017] 好ましくは、前記複数のネットワーク機器の少なくとも一つは、このネットワーク機器 システムで使用される関数の実装を記憶した関数リポジトリを備え、各ネットワーク機 器はさらに、前記関数実行部が所定の関数を実行するのに必要な関数の実装を記 憶する関数実装記憶部と、前記機能分散ネゴシエーション部によって他のネットヮー ク機器力も委譲された関数のうち、前記関数実装記憶部に記憶されていない関数の 実装を、前記関数リポジトリから取得する関数実装追加部とを備える。この場合、シス テムの変更 ·拡張が容易となる。
[0018] 好ましくは、各ネットワーク機器はさらに、前記変数記憶交翻に記憶された変数を 、各ネットワーク機器間で共有すべき共有変数と共有しない非共有変数とに区分す る変数公開制御部を備え、前記変数記憶交換器は、共用変数のみを電気通信回線 を介して各ネットワーク機器間で共有する。この場合、変数記憶交換器で不要な変数 を共有するのを抑制することができ、変数を共有するためのネットワーク負荷を下げる ことができる。
[0019] 好ましくは、前記複数のネットワーク機器は、少なくとも、センターサーバと、各家庭 に設置されるホームサーバと、各家庭に設置される設備機器とを含む。この場合、セ ンターサーバと家庭内のホームサーバや設備機器が互いに接続されたホームシステ ムを構築することが出来き、処理能力の高いセンターサーバやホームサーバに関数 を分散させることで、システムの処理能力を向上させることができる。
図面の簡単な説明
[0020] [図 1]本発明の実施形態に係るネットワーク機器システムの構成を示す図である。
[図 2]図 1のネットワーク機器システムに使用される各ネットワーク機器の構成を示す ブロック図である。
[図 3]図 1のネットワーク機器システムにおいて関数が実行される手順を説明するため のフローチャートである。
[図 4A]図 1のネットワーク機器システムにおいて関数の委譲を説明するための図であ る。
[図 4B]図 1のネットワーク機器システムにおいて関数の委譲を説明するための図であ る。
発明を実施するための最良の形態
[0021] 以下、本発明を添付の図面を参照しながら詳細に説明する。
[0022] 図 1は、本発明の実施形態に係る分散型関数処理系のネットワーク機器システムの 構成を示す図である。このネットワーク機器システムでは、ネットワーク機器として、セ ンターサーバ 1、各家庭 Hに設置されたホームサーバ 3、および各家庭 Hに設置され た情報表示装置 4、空調制御装置 5などの各種設備機器が、インターネット回線 2や LANを介して互いに接続されている。なお、本実施形態においては理解を容易とす るために上述のネットワーク機器のみを例に挙げた力 もちろんネットワーク機器はこ れらに限定されるものではない。
[0023] センターサーバ 1は、ネットワーク機能を有する汎用のコンピュータ装置で構成され ており、このネットワーク機器システムで使用される関数の実装を記憶した関数実装リ ポジトリ 6を備える。
[0024] ホームサーバ 3は、センターサーバ 1と連係をとりながら家庭内の各設備機器に LA Nを通じて様々な機能を提供する。ホームサーバ 3は、ゲートウェイ機能や、 Webサ ーバ機能などを備えて 、ても良 、。
[0025] 情報表示装置 4は、ディスプレイを備え、ディスプレイ上に各種情報を表示すること ができる。
[0026] 空調制御装置 5は、室内の温度を検知する温度センサ(図示せず)を備え、インタ 一ネットを介して宅内外力も室内の空調を制御することができる。空調制御装置 5を 宅内で操作する際は、情報表示装置 4のディスプレイ上に空調制御装置 5の操作画 面が表示され、使用者は情報表示装置 4のディスプレイを見ながら操作できる。
[0027] このネットワーク機器システムは、関数の組み合わせによってシステム全体が構築さ れた関数処理系のシステムである。すなわち、システム全体の機能が関数型言語の 関数の組み合わせによって記述されている。関数処理系のシステムでは、各ネットヮ ーク機器固有の関数を除いて、関数の実行はどのネットワーク機器が行ってもよい。 すなわち、ネットワーク機器システム内において、関数はその実行場所 (計算主体)を 問わない。従ってこのネットワーク機器システムは、システム全体で必要とされる関数 群を適切に各ネットワーク機器に分散させ、各ネットワーク機器が各自に割り当てられ た関数を実行することによってシステム全体として所定の動作を行うように構成されて いる。
[0028] 関数を分散させる方法は、例えば、センターサーバ 1或いはホームサーバ 3に、ネッ トワーク機器の組み合わせに応じて各ネットワーク機器に割り当てる関数を記したリス トを予め保存しておき、センターサーバ 1或いはホームサーバ 3は、そのリストを参照 しながらネットワーク機器の組み合わせに応じて、各関数を各ネットワーク機器に静 的に分散させても良い。或いは、上記リストにないネットワーク機器の組み合わせが 行われた場合や、センターサーバ 1、ホームサーバ 3に予め上記リストを持っていない 場合などは、センターサーバ 1或いはホームサーバ 3が各ネットワーク機器力 各ネッ トワーク機器の処理能力(スペック)を吸い上げ、各ネットワーク機器の処理能力を基 に最適な分散方法をシミュレーションし、シミュレーション結果に基づいて動的に分散 させても良い。或いは、詳しくは後述するように、各ネットワーク機器がネゴシエーショ ンによって、互いに動的に分散させても良い。
[0029] 図 2に示すように、ホームサーバ 3、および情報表示装置 4、空調制御装置 5は、そ れぞれ、関数記憶部 10と、変数記憶交換器 11と、実行関数選択部 12と、関数実行 部 13と、機能分散ネゴシエーション部 14と、関数実装記憶部 15と、実装関数追加部 16と、変数公開制御部 17とを備える。
[0030] 関数記憶部 10は、自ネットワーク機器において実行が必要な関数を記憶する。ここ で、自ネットワーク機器において実行が必要な関数とは、大きく次の 3種類の関数が ある。
[0031] 第 1は、他のネットワーク機器では実行できないそのネットワーク機器固有の関数で ある。例えば、 "空調制御装置 5の温度センサを読む"という関数があるとすると、その 関数は温度センサを備えた空調制御装置 5でしか実行できない。このように、関数記 憶部 10は、少なくともそのネットワーク機器固有の関数を記憶する。
[0032] 第 2は、センターサーバ 1或いはホームサーバ 3、あるいは他のネットワーク機器との ネゴシエーションの結果、他のネットワーク機器力も委譲された関数である。
[0033] 第 3は、ネットワーク機器の出荷時から関数記憶部 10に記憶され、他のネットワーク 機器に委譲されて 、な 、関数である。
[0034] 変数記憶交換器 11は、 LANやインターネット回線などの電気通信回線を介して各 ネットワーク機器と接続されており、各ネットワーク機器の関数記憶部 10に記憶され た関数の実行に必要な変数を記憶し、各ネットワーク機器間で共有する。共有の仕 方としては、例えば、共用変数が更新された変数交翻 11が各ネットワーク機器の 変数交換器 11に対してマルチキャストで共用変数の更新リストを伝達し、共用変数 の更新リストを受けた各変数交 l lがその更新リストに記載されている共用変数を 記憶するようにすればょ 、。
[0035] 実行関数選択部 12は、変数記憶交換器 11が共有している変数を定期的に参照し 、自ネットワーク機器の関数実行部 10に記憶された関数のうち実行可能な関数を選 択する。
[0036] 関数実行部 13は、実行関数選択部 12により選択された関数を変数記憶交翻 11 に記憶された変数を用いて実行する。また、関数実行部 13は、関数の実行によって 得られた変数によって、前記変数記憶交換器に記憶された変数を更新する。
[0037] 関数実装記憶部 15は、関数実行部 13が関数記憶部 10に記憶された関数を実行 するのに必要な実装を記憶して!/、る。
[0038] 以下、変数記憶交換器 11、実行関数選択部 12、関数実行部 13、関数実装記憶 部 15について、図 3のフローチャートを参照しながら、具体的に説明する。
[0039] あるネットワーク機器の関数記憶部 10に、次の 2つの関数が記憶されているとする( 換言すれば、あるネットワーク機器に次の 2つの関数が割り当てられているとする。 )0
[0040] c=f (a, b) ; (関数 1)
e=g (d) ; (関数 2)
ただし、 a, b, c, d, eは変数で、 f (a, b)は、変数 a, bを引数とする関数を意味し、 g (d)は変数 dを引数とする関数を意味する。
[0041] 実行関数選択部 12は、変数記憶交換器 11が共有している変数を定期的に参照し 、自ネットワーク機器の関数実行部 10に記憶された関数 (すなわち、 f (a, b) , g (d) ) の実行に必要な変数 (すなわち、 a, b, d)が拘束されている力否かを調べる (ステツ プ Sl)。具体的には、実行関数選択部 12は、自ネットワーク機器の関数実行部 10に 記憶された関数の実行に必要な変数 a, b, dと、変数記憶交換器 11に記憶された変 数とのパターンマッチングを行って 、る。
[0042] あるタイミングで、変数記憶交 1にお 、て、変数 a, bが共に拘束されたとする 。実行関数選択部 12は、パターンマッチングの結果、自ネットワーク機器の関数実行 部 10に記憶された関数 f (a, b)の実行に必要な変数 a, bが、変数記憶交翻11で 拘束されたことを検知すると、実行可能となった関数 f (a, b)を選択する (ステップ S2
) o
[0043] 関数実行部 13は、実行関数選択部 12で関数 f (a, b)が選択されると、関数実装記 憶部 15からその関数 f (a, b)の実行に必要な実装を取得し、変数記憶交換器 11に 記憶された変数 a, bを用いて、関数 f (a, b)を実行する (ステップ S3)。そして、関数 実行部 13は、関数の実行によって得られた変数 c (c = f (a, b) )で、変数記憶交換器 11に記憶された変数を更新する (ステップ S4)。これによつて、変数 cが変数記憶交 1に新たに記憶され、各ネットワーク機器間で共有される。
[0044] この変数 cはこのネットワーク機器では使用されないが、別のネットワーク機器によつ て使用され、その結果によって新たな変数が拘束 (更新)され、連鎖的に次々と関数 が実行される。
[0045] その間、このネットワーク機器は、ステップ S 1に戻って、再び、変数記憶交換器 11 が共有している変数を定期的に参照し、自ネットワーク機器の関数実行部 10に記憶 された関数 (すなわち、 g (d) )の実行に必要な変数 (すなわち、 d)が拘束されている か否かを調べる。あるタイミングで変数 dが拘束されると、実行可能となった関数 g (d) を選択する (ステップ S2)。そして、関数実行部 13は、関数 g (d)の実行に必要な実 装を関数実装記憶部 15から取得し、関数 g (d)を実行する (ステップ S3)。そして、関 数実行 13は、得られた変数 e (e = g (d) )で、変数記憶交 l lに記憶された変数 を更新する (ステップ S4)。
[0046] 以上のように、関数型処理系のこのネットワーク機器システムでは、システム全体の 関数のうち、関数の実行に必要な変数が拘束された関数力 順に次々と実行され、 結果的に、システム全体の関数が実行される。
[0047] なお、実行関数選択部 12が定期的に変数記憶交換器 11を参照しにいく代わりに 、変数が更新されると、その更新をトリガーとして、変数記憶交換器 11が自設備機器 内の実行関数選択部 12にイベントを挙げるようにしてもよい。或いは、実行関数選択 部 12は、変数記憶交換器 11に共有されて!、る全ての変数を参照するのではなく、 予め設定された必要な変数のみを部分的に参照するようにしてもよい。この場合、実 行関数選択部 12が変数記憶交 l lに記憶された変数全てを参照する場合と比 較して、実行関数選択部 12の負荷を減らすことができ、また、実行関数選択部 12の 参照速度を速めることができる。
[0048] 次に、機能分散ネゴシエーション部 14について説明する。機能分散ネゴシエーショ ン部 14は、 LANなどを介して他のネットワーク機器の機能分散ネゴシエーション部 1 4と接続され、関数記憶部 10に記憶された関数を他のネットワーク機器に委譲する機 能を有する。
[0049] 上述のように、このネットワーク機器システムは、関数型処理系のため、ネットワーク 機器固有の関数を除いては、関数の実行はどのネットワーク機器が行ってもよぐ関 数を各ネットワーク機器に適切に分散させることによって、システムの最適化'機能向 上を図ることが出来る。
[0050] 機能分散ネゴシエーション部 14は、センターサーバ 1やホームサーバ 3が関数の分 散を集中的に行うのではなぐ各ネットワーク機器が自ネットワーク機器に割り当てら れた関数を他のネットワーク機器に動的且つ分散的に委譲するために設けられてい る。
[0051] 機能分散ネゴシエーション部 14が起動されるタイミングは特に限定されるものでは ないが、例えば、各設備機器が自設備機器の CPUの稼働率をモニタする検出手段 を備え自設備機器の処理能力が限界に近づ 、たときや、システムに新 、ネットヮー ク機器が取り付けられたとき、或いは、ネットワーク機器のソフトウェアが更新されたと きなどに、機能分散ネゴシエーション部 14は起動される。
[0052] 機能分散ネゴシエーション部 14が起動されると、機能分散ネゴシエーション部 14は 、自ネットワーク機器の関数記憶部 10に記憶された関数のうち、自ネットワーク機器 固有の関数を除いた関数の計算主体について、他のネットワーク機器の機能分散ネ ゴシエーシヨン部 14と交渉を行う。具体的には、機能分散ネゴシエーション部 14は、 ある関数の実行に必要な処理負荷 (処理時間、処理能力などを含む)を各ネットヮー ク機器にマルチキャストで問い合わせ、各ネットワーク機器より回答を受け取る。そし て、その回答に基づいて、最終的にその関数を委譲するのに最も好ましいネットヮー ク機器を決定する。好ましくは、処理負荷だけでなぐ通信のオーバーヘッド等の条 件も考慮して、委譲するネットワーク機器を決定する。もし回答の結果、自ネットワーク 機器が実行するのが最も好ましいと判断した場合は、委譲せずに自ネットワーク機器 で実行する。
[0053] 関数を委譲されたネットワーク機器は、関数記憶部 10に委譲された関数を記憶す る。そしてそれ以降、その関数はそのネットワーク機器によって実行される。
[0054] このように、関数の計算主体を負荷状況や、処理時間や処理能力に応じて動的に 変更することでシステムの最適化'機能向上を動的かつ分散的に図ることができる。
[0055] 以下、機能分散ネゴシエーション部 14について具体例を挙げて説明する。
[0056] 図 4Aに示すように、ある家庭に、空調制御装置 5と情報表示装置 4とが設置されて いるとする。空調制御装置 5と情報表示装置 4とは LANを介して接続されており、空 調制御装置 5を使用する際は、情報表示装置 4のディスプレイ上に空調制御装置 5 の操作画面が表示され、使用者は情報表示装置 4のディスプレイを見ながら操作で きる。
[0057] 空調制御装置 5には、関数 A〜Cが割り当てられ記憶されているとする。関数 Aは、 空調制御装置 5固有の関数 (ここでは、空調制御装置 5の温度センサの値を読むとい う関数とする)で、関数 B、 Cは、空調制御装置 5固有の関数ではなぐ他のネットヮー ク機器に委譲可能な関数である。関数 Cは、情報表示装置 4に表示させる空調制御 装置 5の操作画面を作成するための関数 (以下、作画関数 Cと称す。)とする。
[0058] 図 4Aの場合、まず空調制御装置 5の関数 A (温度センサの値を読む関数)が空調 制御装置 5によって実行される。次に、関数 Aの実行によって拘束された変数を基に 、関数 B、 C、或いは、情報表示装置 4の別の関数が実行される。その後、ある関数の 実行によって拘束された変数に基づいて、別の関数が実行され、結果的に情報表示 装置 4、空調制御装置 5の全ての関数が時系列で次々と実行される。
[0059] また、例えば、ホームセキュリティーシステムにおいては、人体検知センサ、照明器 具、カメラ装置、情報表示装置、ホームサーバ等がネットワーク機器として動作する。 まず、人体検知センサが人体検知の関数を実行した結果の変数を自機器の変数記 憶交翻 11において拘束し、各ネットワーク機器と共有する。次に、照明器具及び力 メラ装置にある、その拘束されたその変数を入力とする関数が、入力変数が拘束され たことによって実行され、それぞれ、たとえば照明を点灯させたり、カメラ撮像を開始 したりする。さらに、カメラが、その関数処理の結果、ある変数 (たとえば撮影時間など の意味をもった変数)を拘束し、この変数を各ネットワーク機器間で共有すると、ホー ムサーバがその変数を入力として、 Webブラウザ付 TVなどの情報表示装置に表示さ せる関数を実行する。このように、ホームセキュリティーシステムを実現することも可能 となる。
[0060] ところで、図 4Aの場合、作画関数 Cは空調制御装置 5に割り当てられているため、 空調制御装置 5の操作画面は空調制御装置 5自身によって作画される。しかしながら 、空調制御装置 5は、処理能力が低いため、情報表示装置 4には単純な操作画面し か表示することができない。
[0061] ここで、図 4Aのネットワーク機器システムに、図 4Bに示すように、処理能力の高い ホームサーバ 3を新たに追カ卩したとする。ホームサーバ 3をシステムに設置すると、シ ステムに新しいネットワーク機器が取り付けられたことに起因するトリガーによって、空 調制御装置 5とホームサーバ 3、情報表示装置 4の各機能分散ネゴシエーション部 1 4力 関数の計算主体について交渉を始める。
[0062] 空調制御装置 5は、関数記憶部 10に記憶されている関数 B, Cの実行に必要な処 理時間や処理能力をホームサーバ 3、表示制御装置 4にマルチキャストで問い合わ せる。ここで、関数 Aは空調制御装置 5固有の関数のため、交渉対象とならない。
[0063] その結果、関数 C (作画関数 C)に関しては、ホームサーバ 3が、空調制御装置 5、 情報表示装置 4よりも処理時間、処理能力が優れていることがわかると、空調制御装 置 5は関数 Cをホームサーバ 3に委譲する。
[0064] 関数 Cを委譲されたホームサーバ 3は、ホームサーバ 3の関数記憶部 10に関数 Cを 記憶し、それ以降、ホームサーバ 3が関数 Cを実行する。ホームサーバ 3は作画の処 理時間が短ぐかつ処理能力も高いため、図 4Bでは、情報表示装置 4のディスプレイ に、色彩豊カな操作画面を高速に表示することができる。
[0065] 委譲されな力つた関数 A, Bは、これまでどおり、空調制御装置 5が実行する。
[0066] 以上のように、機能分散ネゴシエーション部 14によって関数の計算主体を動的に 変更することができ、それによつてシステムの最適化'機能向上を図ることができる。し 力も、関数型処理系の関数は副作用がないため、関数を委譲しても、委譲先のネット ワーク機器本来の動作に影響を及ぼすことがない。つまり、図 4Bの例では、ホームサ ーバ 3に、空調制御装置 5の作画関数 Cが委譲されたとしても、ホームサーバ 3の本 来の動作は保証できる。もちろん、空調制御装置 5の動作も保証できる。
[0067] 図 4A,図 4Bでは、機能分散ネゴシエーション部 14によって処理時間、および作画 能力が向上されたが、もちろん、機能分散ネゴシエーション部 14によって他の能力、 例えば、作動状況の履歴を参照する履歴参照能力や、消費電力を下げる能力など を高めることちでさる。
[0068] また、図 4A,図 4Bでは、機能分散ネゴシエーション部 14が交渉を行う範囲は、家 庭内に設置されたネットワーク機器 3, 4, 5のみであつたが、例えば、図 1のように家 庭内の設備機器力 Sインターネット 2を介してセンターサーバ 1と接続されているような 場合は、各機能分散ネゴシエーション部 14はセンターサーバ 1を含めた範囲で交渉 を行うようにしてもよい。センターサーバ 1に関数を委譲した場合、さらに処理能力を 向上できる可能性がある。
[0069] ところで、機能分散ネゴシエーション部 14によって新しい関数が委譲されると、自ネ ットワーク機器の関数実装記憶部 15にその関数の実装が記憶されていない場合が ある。関数実装記憶部 15がシステムで使用される全ての関数の実装を記憶するよう にしてもよいが、記憶容量が無駄であり現実的ではない。また新たに追加された関数 にも対応できない。そこで、図 2に示すように、各ネットワーク機器は、実装関数追カロ 部 16を備えるのが好ましい。実装関数追加部 16はインターネット 2を介して、センタ 一サーバ 1の関数実装リポジトリ 6と接続されている。機能分散ネゴシエーション部 14 によって、関数実装記憶部 15に実装がない関数が委譲されると、実装関数追加部 1 6はインターネット回線を介して、関数実装リポジトリ 6からその関数の実装を取得する 。これにより、関数実装記憶部 15に実装が記憶されていない関数が委譲されても、 関数実行部 13はその関数を実行できるようになる。また、新 、ネットワーク機器をシ ステムに追加しても、センターサーバ 1の関数実装リポジトリ 6にその実装を記憶させ るだけで、どのネットワーク機器もその関数を実行できるようになる。なお、関数実装 追加部 16は、関数リポジトリ 6のみではなぐ関数を委譲したネットワーク機器から、関 数の実装を取得しても良い。
[0070] より好ましいシステム構成としては、各ネットワーク機器は、図 2に示すように、変数 公開制御部 17を備える。変数公開制御部 17は、変数記憶交換器 1 1に記憶された 変数を、各ネットワーク機器間で共有すべき共有変数と共有しな 、非共有変数とに 区分し、変数記憶交換器 1 1は、共用変数のみを電気通信回線を介して各ネットヮー ク機器間で共有する。
[0071] より詳細に述べると、変数記憶交 l lが共有する変数の数は、システムが大きく なるにつれて多くなる。し力しながら、全ての変数を共有する必要はなぐ例えば、あ る関数 Xの実行によって拘束された変数 exを別の関数 Yが使用する場合、もし双方 の関数 X, Yが同じネットワーク機器で実行されるならば、その変数 αを公開(共有) する必要はない。従って、その場合、変数公開制御部 17は、変数 αを非共用変数と し、変数記憶交 は、変数 αをネットワーク機器間で共用しない。しかし、もし双 方の関数 X, Υが別のネットワーク機器で実行されるならば、その変数 αは公開(共有 )しなければならず、その場合、変数公開制御部 17は、変数 αを共用変数とし、変数 記憶交 1は、変数 αを電気通信回線を介して各ネットワーク機器間で共有する 。なお、どの変数を共用変数とすべきかは、機能分散ネゴシエーション部 14の交渉 結果によってわかる。変数公開制御部 17を設けることで、不要な変数を共有するの を抑制することができ、それにより変数を共有するためのネットワーク負荷を下げるこ とがでさる。
[0072] 以上のように各ネットワーク機器を構成することで、分散型関数処理系のネットヮー ク機器システムを実現することができる。このネットワーク機器システムは、関数処理 系の関数の組み合わせによって構成されているため、新たなネットワーク機器を追カロ しても、新しいネットワーク機器の機能(関数)が既存のネットワーク機器システムに副 作用を与えることがなぐシステムの変更に容易に対応できる。また、システム全体の 関数を各ネットワーク機器間(図 1では、センターサーバ 1、ホームサーバ 3、情報表 示装置 4、空調制御装置 5間)で適切に分散させることで、システム全体の最適化 ·能 力向上を図ることができる。例えば、図 1のシステムに防犯装置(図示せず)を追加し たとしても、防犯装置に設けられた関数が既存のネットワーク機器の関数に副作用を 与えることがないため、容易に防犯装置をシステムに追加することができ、防犯装置 の検出機能以外の機能を担う関数を各ネットワーク機器の処理負荷に応じて委譲さ せることも可能である。関数を分散させる方法は、センサーサーバ 1或いはホームサ ーバ 3が集中的に行っても良いし、各ネットワーク機器が、機能分散ネゴシエーション 部 14によって分散的に行っても良い。関数の分散のさせ方に拘わらず、システム全 体の挙動は、変化しないことが数学的に保証できる。また、関数処理系は、実行順序 に依存しな 、ため、デッドロックが生じる恐れもな!/、。
上記のように、本発明の技術的思想に反することなしに、広範に異なる実施形態を 構成することができることは明白なので、この発明は、請求の範囲において限定した 以外は、その特定の実施形態に制約されるものではない。

Claims

請求の範囲
[1] 電気通信回線に接続された複数のネットワーク機器が互いに連係して所定の動作を 行うネットワーク機器システムであって、
このネットワーク機器システムは関数の組み合わせによってシステム全体が構築さ れ、各ネットワーク機器が各自に割り当てられた関数を実行することによってシステム 全体として所定の動作を行うように構成されており、
各ネットワーク機器は以下の構成を備える:
関数記憶部;この関数記憶部は、自ネットワーク機器において実行が必要な関数を nC feす ;
変数記憶交換器;この変数記憶交換器は電気通信回線を介して各ネットワーク機 器と接続され、各ネットワーク機器の前記関数記憶部に記憶された関数の実行に必 要な変数を記憶し、各ネットワーク機器間で共有する;
実行関数選択部;この実行関数選択部は、前記変数記憶交換器が記憶している変 数を参照し、自ネットワーク機器の関数実行部に記憶された関数のうち実行可能な 関数を選択する;
関数実行部;この関数実行部は、前記実行関数選択部により選択された関数を前 記変数記憶交^^に記憶された変数を用いて実行すると共に、関数の実行によって 得られた変数によって、前記変数記憶交換器に記憶された変数を更新する。
[2] 請求項 1に記載の分散型関数処理系を用いたネットワーク機器システムにお 、て、 前記関数記憶部は、少なくとも自ネットワーク機器に固有の関数を記憶する。
[3] 請求項 1に記載の分散型関数処理系を用いたネットワーク機器システムにお 、て、 各ネットワーク機器はさらに、機能分散ネゴシエーション部を備え、この機能分散ネ ゴシエーシヨン部は、電気通信回線を介して他のネットワーク機器と接続され、前記 関数記憶部に記憶された関数のうち、自ネットワーク機器に固有の関数を除いた関 数を、他のネットワーク機器に委譲する機能を有し、
前記関数記憶部は、前記機能分散ネゴシエーション部によって他のネットワーク機 器力 委譲された関数を記憶する。
[4] 請求項 3に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、 前記機能分散ネゴシエーション部は、各ネットワーク機器に対して処理負荷を問 ヽ 合わせ、各ネットワーク機器力 その回答を受け取り、その回答に基づいて、関数を 委譲する他のネットワーク機器を決定する。
[5] 請求項 3に記載の分散型関数処理系を用いたネットワーク機器システムにおいて、 前記複数のネットワーク機器の少なくとも一つは、このネットワーク機器システムで使 用される関数の実装を記憶した関数リポジトリを備え、
各ネットワーク機器はさらに、
前記関数実行部が所定の関数を実行するのに必要な関数の実装を記憶する関数 実装記憶部と、
前記機能分散ネゴシエーション部によって他のネットワーク機器力 委譲された関 数のうち、前記関数実装記憶部に記憶されていない関数の実装を、前記関数リポジ トリから取得する関数実装追加部とを備える。
[6] 請求項 1に記載の分散型関数処理系を用いたネットワーク機器システムにお 、て、 各ネットワーク機器はさらに、前記変数記憶交換器に記憶された変数を、各ネットヮ ーク機器間で共有すべき共有変数と共有しない非共有変数とに区分する変数公開 制御部を備え、
前記変数記憶交換器は、共用変数のみを電気通信回線を介して各ネットワーク機 器間で共有する。
[7] 請求項 1に記載の分散型関数処理系を用いたネットワーク機器システムにお 、て、 前記複数のネットワーク機器は、少なくとも、センターサーバと、各家庭に設置され るホームサーバと、各家庭に設置される設備機器とを含む。
PCT/JP2006/326258 2005-12-28 2006-12-28 ネットワーク機器システム WO2007074905A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020077013003A KR100928913B1 (ko) 2005-12-28 2006-12-28 네트워크 기기 시스템
EP06843636A EP1890238B1 (en) 2005-12-28 2006-12-28 Distributed functional processing system in a network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005379947 2005-12-28
JP2005-379947 2005-12-28

Publications (1)

Publication Number Publication Date
WO2007074905A1 true WO2007074905A1 (ja) 2007-07-05

Family

ID=38218126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/326258 WO2007074905A1 (ja) 2005-12-28 2006-12-28 ネットワーク機器システム

Country Status (5)

Country Link
EP (1) EP1890238B1 (ja)
JP (1) JP4966004B2 (ja)
KR (1) KR100928913B1 (ja)
CN (1) CN100514314C (ja)
WO (1) WO2007074905A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102841A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスによる遠隔電子デバイスの制御
JP2014102837A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスからのプロセッシングの委任
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US10194060B2 (en) 2012-11-20 2019-01-29 Samsung Electronics Company, Ltd. Wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662420B (zh) * 2008-08-29 2012-09-05 国际商业机器公司 用于整合网络设备的系统和方法
CN108304492B (zh) * 2018-01-09 2020-07-31 武汉斗鱼网络科技有限公司 一种搜索列表更新方法、存储介质、设备及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137697A (ja) 1994-11-15 1996-05-31 Kobe Steel Ltd 自律分散型システム
JP2002057785A (ja) * 2000-08-11 2002-02-22 Kenwood Corp 自動車電話装置
JP2004265425A (ja) 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2988462B2 (ja) * 1998-02-12 1999-12-13 三菱電機株式会社 自律協調処理装置、自律協調処理方法、並びに、その記録媒体
AU2490100A (en) * 1999-01-07 2000-07-24 Iq Netsolutions, Inc. Distributed processing systems incorporating a plurality of cells which process information in response to single events
JP2004126896A (ja) * 2002-10-02 2004-04-22 Hitachi Ltd 自律分散データ計算処理サーバーシステム
JP2005251068A (ja) * 2004-03-08 2005-09-15 Nippon Telegr & Teleph Corp <Ntt> 分散機能連携システム、分散機能管理装置、分散機能連携方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137697A (ja) 1994-11-15 1996-05-31 Kobe Steel Ltd 自律分散型システム
JP2002057785A (ja) * 2000-08-11 2002-02-22 Kenwood Corp 自動車電話装置
JP2004265425A (ja) 2004-03-08 2004-09-24 Fuji Xerox Co Ltd メッセージ通信方法及び装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HONISHI Y.: "Bunsan Object Kiban Object Director", FUJITSU LTD., vol. 48, no. 2, 10 March 1997 (1997-03-10), pages 93 - 97, XP003015050 *
See also references of EP1890238A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014102841A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスによる遠隔電子デバイスの制御
JP2014102837A (ja) * 2012-11-20 2014-06-05 Samsung Electronics Co Ltd 着用式電子デバイスからのプロセッシングの委任
US10185416B2 (en) 2012-11-20 2019-01-22 Samsung Electronics Co., Ltd. User gesture input to wearable electronic device involving movement of device
US10194060B2 (en) 2012-11-20 2019-01-29 Samsung Electronics Company, Ltd. Wearable electronic device
US10423214B2 (en) 2012-11-20 2019-09-24 Samsung Electronics Company, Ltd Delegating processing from wearable electronic device
US10551928B2 (en) 2012-11-20 2020-02-04 Samsung Electronics Company, Ltd. GUI transitions on wearable electronic device
US11157436B2 (en) 2012-11-20 2021-10-26 Samsung Electronics Company, Ltd. Services associated with wearable electronic device
US11237719B2 (en) 2012-11-20 2022-02-01 Samsung Electronics Company, Ltd. Controlling remote electronic device with wearable electronic device
US11372536B2 (en) 2012-11-20 2022-06-28 Samsung Electronics Company, Ltd. Transition and interaction model for wearable electronic device
US10691332B2 (en) 2014-02-28 2020-06-23 Samsung Electronics Company, Ltd. Text input on an interactive display

Also Published As

Publication number Publication date
EP1890238A4 (en) 2009-07-15
EP1890238B1 (en) 2011-10-19
JP2007200313A (ja) 2007-08-09
JP4966004B2 (ja) 2012-07-04
KR20070090911A (ko) 2007-09-06
CN101103342A (zh) 2008-01-09
KR100928913B1 (ko) 2009-11-30
CN100514314C (zh) 2009-07-15
EP1890238A1 (en) 2008-02-20

Similar Documents

Publication Publication Date Title
WO2007074905A1 (ja) ネットワーク機器システム
Liang et al. An integrated, flexible, and Internet-based control architecture for home automation system in the Internet era
US20220360653A1 (en) Distributed software-defined industrial systems
Chen et al. Internet of intelligent things and robot as a service
US20220404810A1 (en) Visualization of A software defined process control system for industrial process plants
Zhang et al. Design and implementation of a real-time holonic control system for manufacturing
US20220404801A1 (en) I/O Server Services for selecting and utilizing active controller outputs from containerized Controller Services in a Process Control Environment
Gunther A general theory of computational scalability based on rational functions
Hou et al. Optimization of web service-based control system for balance between network traffic and delay
US20220404790A1 (en) Visualization of a software defined process control system for industrial process plants
US11960588B2 (en) Security services in a software defined control system
US20220404804A1 (en) Security Services in a Software Defined Control System
Seebach et al. Design and construction of organic computing systems
CN106537343A (zh) 使用动态可配置主动协同处理单元的并行处理的系统和方法
Park et al. An efficient dynamic integration middleware for cyber-physical systems in mobile environments
US7877467B2 (en) Network equipment system
Guerrero-Contreras et al. Dynamic replication and deployment of services in mobile environments
Takase et al. Work-in-Progress: Design Concept of a Lightweight Runtime Environment for Robot Software Components Onto Embedded Devices
Mili et al. Modeling agent-environment interactions in adaptive mas
Moga et al. Embedded platform for Web-based monitoring and control of a smart home
Wargui et al. Application of controller area network to mobile robots
Mehanovic et al. Brume-a horizontally scalable and fault tolerant building operating system
JP2020149631A (ja) 制御システム、中継装置、および中継プログラム
Lilis et al. Building virtualization engine: A novel approach based on discrete event simulation
US9946580B2 (en) Multi-core processor system for information processing

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2006843636

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020077013003

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 11793139

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200680002279.0

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 2006843636

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE