Abstract:
In nodes ( 141 - 142 ) disposed between terminal devices ( 105 - 110 ) and a processing server ( 101 ), in response to the problem in which a central portion of a network gets congested when data from a variety of apparatuses, such as sensors or control devices, is passed as is over the network, determinations are made as to whether the nodes will process packets being sent from the terminal devices to the processing server. If it is determined that the nodes will process the packets, it will be possible for the nodes to minimize load on the central portion of the network by carrying out the processing in place of the processing server.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to a network-distributed processing device and packet data processing method that dispose multiple nodes capable of processing packet data, on a local area network (LAN) located at an end of a network and that reduce the load imposed on the network and improve response performance by performing processes instead of a server. 
       BACKGROUND ART 
       [0002]    Networks have become rapidly widespread and have become an infrastructure which is indispensable for our life. The rate of diffusion of optical lines to households has exceeded 20% at a national average, and various services using lines in a wide band of 100 Mbps have started to be provided. For example, conversion of media infrastructures into IP (internet protocol), such as IP phones and IP re-transmission of terrestrial digital broadcasting is steadily proceeding. Accumulation of knowledge information in networks is also proceeding. In cloud computing, information accumulated in a user&#39;s information terminal is accumulated in a data center on a network, and the user can extract the information via the network anywhere at any time. It can be expected that not only information terminals but also devices having a computer system embedded therein (embedding devices), including home appliances such as televisions, air-conditioners, and refrigerators, security cameras, and sensors such as temperature sensors and moisture sensors, will be connected to networks and thus real-time information such as information on ambient environment will be accumulated in cloud in the future. 
         [0003]    As seen, the importance of networks is being further increased. Demands to ensure the connectivity, reliability, and quality of service (QoS) thereof are being further increased accordingly. Under this trend, a next-generation network (NGN) is being constructed, aiming to provide a high degree of service such as the QoS assurance of phone calls or video distribution and the security assurance of communications. 
         [0004]    Devices that have participated in networks so far are mainly information terminals such as servers and personal computers (PCs). Accordingly, information distributed over networks has been mainly information that occurs when humans actively use these information terminals. Currently, due to cloud, such information that is dispersed at information terminals is being aggregated on networks and being used as a huge knowledge database (DB) . However, there is a problem that such information does not reflect the real-time situation of the real world. For example, consider large commercial facilities. In recent years, websites for introducing these facilities or goods handled by the facilities have been established on the Internet and used as means for attracting customers. While these websites can be used to check, for example, what kind of shops each facility includes or what kind of selection of goods each shop has, the websites cannot provide, for example, information on how congested each shop is currently or information on the detailed inventory of each shop. It is expected that in the future, a great number of sensors for obtaining information in real time will be connected to networks, and information will be gathered in cloud, thereby providing real-time information. 
         [0005]    It is also expected that terminal devices will have greater functionality and higher performance. For example, it is expected that robots will appear in our life space in the future as devices for responding to humans in the real world. Specifically, it is expected that as embedding devices have greater functionality and higher performance, embedding devices present at the interface with the real world will be actively connected to networks, and information held by cloud computing providers will be fed back to humans. When embedding devices are connected to networks in this way, control information, which is information different in quality (responsiveness, data unit, distribution frequency, or the like) from traditional knowledge information, is distributed over the networks. As a result, information having a large data amount, such as sensor information, is frequently distributed over the networks. Accordingly, there is a concern that the traffic may increase, increasing the network communication time (communication latency). Further, since the server intensively performs processing, it is concerned that imposition of a heavier load on the server may lead to an increase in processing time. 
         [0006]    Examples of an idea for reducing the amount of data being distributed include a technology that disperses data access and reduces the load imposed on the entire network by disposing information on a network in a divided manner. For example, Patent Literature 1, in a system where a higher-level server and lower-level servers are connected together via a network, divides information generated by the higher-level server into pieces of partial information and stores the pieces of partial information in the lower-level servers. When a lower-level server receives a request from a user terminal, it transmits data corresponding to the request to the user terminal if it holds the data; it transmits a data transmission request to the higher-level server if it does not hold the data. Asa result, if the lower-level server holds the data, response to the user is improved. 
       CITATION LIST 
     Patent Literature 
       [0007]    Patent Literature 1: Japanese Unexamined Patent Application Publication No. Hei8-166916 
       SUMMARY OF INVENTION 
     Technical Problem 
       [0008]    In the invention described in Patent Literature 1, the lower-level server receives data from the higher-level server and holds it. Thus, transmission of the data from the higher-level server to the lower-level server can be omitted thereafter. 
         [0009]    However, it is not considered in the invention described in Patent Literature 1 that the higher-level server gathers data from a user terminal and processes it. Even when the invention described in Patent Literature 1 is applied to a system that performs processing as described above, the lower-level server eventually must transfer all packets received from a user terminal to the higher-level server. As a result, problems described below occur. 
         [0010]    First, in a system where conventional information terminals, as well as various embedding devices such as home appliances having a computer system embedded therein and sensors are connected to a network, an increase in network traffic becomes a larger problem. This is because sensor information such as images, sound, temperature, and moisture is large in amount. Further, if sensor information is obtained 24 hours, 365 days and distributed over a network as it is, network resources would be used constantly. If the lower-level server receives packets including such a large capacity of information and transmits them to the higher-level server without performing any process on the packets, problems such as degradation of the communication speed and the response time and increases in the power consumption of the network devices would occur. Further, the load imposed on the server that receives the sensor information would be increased. 
         [0011]    Further, an embedding device cannot include a high-functionality information processing system owing to cost, size, and power constraints. To achieve higher functionality, the embedding device needs to be associated with an external server device via the network. However, the device is required to rapidly respond to an input from the user or a variation in environment detected by a sensor. For this reason, if the lower-level server achieves the above-mentioned high functionality by accessing the higher-level server, which is remotely disposed via the network, without processing packets, responsiveness would be degraded due to communication delay time taken by a network communication. For example, a physical distribution robot for carrying baggage is used as an example. The robot has the function of avoiding an obstacle during a move by receiving information from an image sensor disposed in space via a network and using the information and the function of carrying multiple pieces of baggage in cooperation with another robot by communicating with the other robot via the network. In this case, the information from the image sensor is processed by a server disposed on the network once, and the processing result is transmitted to the robot. Thus, multiple pieces of image sensor information are concentrated on the center of the network and the server, increasing the load imposed on the center of the network. As a result, there occurs a problem that the time taken to perform a communication over the network (communication delay time) increases the response delay time staring with an input from a sensor, through processing performed by the server, and ending with device control based on the processing result. 
         [0012]    It can be considered to distribute image sensor information directly to the robot and cause the robot itself to process the information. In this case, the robot requires a wide-band, wireless network or high-performance information processing device. As a result, there occur problems such as upsizing of the casing of the robot and a reduction in operating time resulting from an increase in power consumption. 
         [0013]    As seen, if the lower-level server has only the function of holding data received from the higher-level server and distributing it, the following problems occur in accordance with the device that the lower-level server causes to process packets: a first problem that if various devices such as sensors and embedding devices are connected to the network and if the lower-level server causes the external higher-level server to process information via the network, a load is imposed on the center of the network, including the higher-level server, or the network communication delay time occurs; and a second problem that if an embedding device itself directly processes information, the casing of the embedding device is upsized or power consumption is increased. 
       Solution to Problem 
       [0014]    A typical aspect of the invention disclosed in this application in order to solve the above-mentioned problems will be outlined below. 
         [0015]    A first aspect of the present invention provides a method for processing information upon an information processing device, the information processing device being disposed between a terminal device and a processing server, the processing server being configured to process a plurality of packets transmitted by the terminal device, the information processing device being configured to intervene in transfer of the packets from the terminal device to the processing server. The method is characterized in that the method comprises: a first step of receiving a first packet; a second step of, after the first step, determining whether the information processing device should process the first packet, on the basis of header information of the first packet; a third step of, if it is determined in the second step that the information processing device should process the first packet, performing a first process on a payload of the first packet; and a fourth step of, if it is determined in the second step that the information processing device should not process the first packet, transmitting the first packet to the processing server. A second aspect of the present invention provides an information processing device disposed on a network connecting a router and a processing server and configured to process multiple packets transmitted to the processing server by a terminal device via the router and the network. The information processing device is characterized in that it holds a first table for, when the information processing device receives a first packet, determining whether the information processing device should perform a first process on the first packet and a second table for defining the first process. 
         [0016]    A third aspect of the present invention provides an information processing device disposed between a terminal device and a processing server, the processing server being configured to process a plurality of packets transmitted by the terminal device, the information processing device being configured to intervene in transfer of the packets from the terminal device to the processing server. The information processing device is characterized in that it comprises: a plurality of ports for transmitting or receiving the packets; a first determination unit that, when one of the ports receives a first packet included in the packets, determines whether the information processing device should process the first packet, on the basis of a header of the first packet and, when determining that the information processing device should not process the first packet, transfers the first packet to the processing server; and a first processing unit that, when the determination unit determines that the information processing device should process the first packet, performs a first process on a payload of the first, packet . 
       ADVANTAGEOUS EFFECTS OF INVENTION 
       [0017]    According to the present invention, it is possible to reduce a delay in the response of an embedding device while reducing the load imposed on the center of the network. It is also possible to prevent upsizing of the casing of the embedding device or an increase in power consumption. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0018]      FIG. 1  A diagram showing an example configuration of a network to which distributed processing nodes are applied 
           [0019]      FIG. 2  A diagram showing a basic flow of a process performed by a distributed processing node instead of a server 
           [0020]      FIG. 3  A diagram showing an example hardware configuration of the distributed processing node 
           [0021]      FIG. 4  A diagram showing an example hardware configuration of the distributed processing node 
           [0022]      FIG. 5  A diagram showing a configuration of a processing processor of the distributed processing node 
           [0023]      FIG. 6  A diagram showing a configuration of a packet processing processor 
           [0024]    FIG  7  A diagram showing an example configuration of a service table on the distributed processing node 
           [0025]      FIG. 8  A diagram showing an example configuration of a service definition table on the distributed processing node 
           [0026]      FIG. 9  A diagram showing an example configuration of a service process management table on the distributed processing node 
           [0027]      FIG. 10  A diagram showing an example configuration of a distributed node management table on a management server 
           [0028]      FIG. 11  A diagram showing an example configuration of a service management master table on the management server 
           [0029]      FIG. 12  A diagram showing a detailed flow of a process performed by the distributed processing node instead of the server 
           [0030]      FIG. 13  A flow of distribution of service table information and a process program performed instead of the processing server by the management server 
           [0031]      FIG. 14  A diagram showing a flow of reception of service table information and a process program performed instead of the processing server by the distributed processing node 
       
    
    
     DESCRIPTION OF EMBODIMENTS 
     &lt;Example Configuration of Network to Which Present Invention Is Applied&gt; 
       [0032]    Hereafter, detailed description will be made using an embodiment of the present invention.  FIG. 1  shows an example configuration of a network where servers and devices are connected together and to which the present invention is applied. Connected to ends of the network are information terminals (TM)  109  and  114 , such as an IP telephone or network television, computers (PC)  110  and  114 , sensors (SNS)  105 ,  106 ,  116 , and  118 , such as a camera, microphone, temperature senor, moisture sensor, or human sensor, and control devices (ACT)  107 ,  113 , and  117 , such as a lighting system or automatic door. These devices can be defined as devices directly used by users, that is, user devices. These devices are connected to a center  102  of the network via a hub (HUB)  108  and routers (RT)  103  and  111 . Connected to the center  102  of the network is a server  101 . These devices are connected to the network by wire  131  or wirelessly  132 . For example, if the devices are connected together wirelessly, they are connected together via a wireless gateway WGW  104  for performing media conversion to a wired network. In this example, the sensors SNS  105 , SNS  106 , SNS  116 , and SNS  118  and the control devices ACT  107  and ACT  117  are connected to the network wirelessly. The network is formed in the shape of a tree where the center is branched into ends from an upstream toward a downstream. It is divided into areas in accordance with geographical or positional conditions, such as rooms or buildings, and logical conditions, such as sections, users, and the authority over connected terminal devices. For example, in this example, the network is divided into two areas: LAN-A 120  and LAN-B 121 . 
         [0033]    Disposed on the network having the terminal devices (SNS or ACT) and the processing server (SRV) connected together thereon as described above are distributed processing nodes (DN)  141 ,  142 , and  143 . Each distributed processing node performs some of processes performed by a predetermined server on multiple packets that are transmitted to the processing server by a terminal device (SNS or ACT) via the routers or the network. Details of the distributed processing nodes will be described later. Further, a management server (DNSRV)  140  for managing the distributed processing nodes DN is disposed at the center of the network. The DNSRV holds a service management table (SVMT) for managing processes performed by each DN and a distributed node management table (DNMT) for managing the operating state of each DN. Details of the tables (SVMT, DNMT) held by the DNSRV will be described later. 
         [0000]    &lt;Network without Distributed Processing Nodes According to Present Invention&gt; 
         [0034]    First, a network without the distributed processing nodes  141  and  142  is considered. In this case, all the terminal devices access the server  101  via the center  102  of the network. Accordingly, communication packets from the respective devices in the LAN-A and LAN-B pass through the center  102  of the network. As a result, the center  102  of the network becomes congested with communication traffic from the devices. For example, assume that the SNS  105  is an image sensor and the ACT  107  is an automatic door and consider an application where a human is sensed by the image sensor and authenticated by facial recognition and then the automatic door is opened. On a traditional network, the SNS  105  transmits a captured image directly to the SRV  101  over the network. The SRV  101  receives the image transmitted by the SNS  105  on a frame-by-frame basis and performs a face detection process. If a face is extracted as a result of the face detection, the SRV  101  performs a process of comparing the extracted face with a previously registered face database. If a registered face and the detected face are matched as a result of the comparison process, the SRV  101  transmits a command to open the door, to the ACT  107 . As seen, even when the SNS  105  does not capture the face of a human, it always transmits an image to the center  102  of the network. via the wireless gateway WGW  104  and the router  103 . Thus, the load imposed on the network is increased. Asa result, for example, when the network television TM  109  receives an image from the server by streaming, a sufficient band may not be secured and the degradation of image quality, such as a reduction in resolution or frame rate, may occur. Further, since the load imposed on the network is increased, a communication delay may occur on the network. As a result, the response time from the recognition of the user until the open or close of the automatic door may be prolonged. 
         [0035]    As seen, the traditional network has a problem that the load imposed on the center of the network is increased. 
         [0000]    &lt;First Example where Distributed Processing Nodes are Applied to Network&gt; 
         [0036]    A first example where the distributed processing nodes (DN) disclosed in the present invention are applied will be described. This example is an example where the DN  141  is disposed at a level higher than the router connected to the center of the network in the LAN-A. As in the example where the traditional network is used, assume that the SNS  105  is an image sensor and the control device (ACT)  107  is an automatic door. While the image sensor transmits an image output to the server SRV  101 , a setting is made such that the distributed processing node (DN)  141  performs a face extraction process of processes performed by the SRV  101  instead of the SRV  101 . The DN  141  analyzes header information of a packet passing through the DN to extract the IP address and port number of the source, the SNS  105 , and the IP address and port number of the destination, the SRV  101 . The SRV  101  previously makes a setting such that the DN  141  detects an image data-containing packet transmitted from the SNS  105  to the SRV  101 . When the DN  141  detects such a packet, it performs the predetermined process (face extraction process) on the packet instead of the SRV  101 . The DN  141  transmits the result of the face extraction process, that is, the presence or absence of a face and, if a face is detected, the face image data to the SRV  101  in accordance with the setting made by the SRV  101 . The SRV  101  performs a face recognition process only when a face is detected and it receives the face image, and then performs a process of comparing the face image with the previously registered face database. If a registered face and the detected face are matched as a result of the comparison process, the SRV  101  transmits a command to open the door, to the ACT  107 . As a result, the image data from the SNS  105  can be prevented from passing through the center  102  of the network, reducing traffic. Further, since the SRV  101  causes the DN  141  to perform a face extraction process instead of itself , it is possible to reduce the load imposed on the server and to reduce the response time of the server. 
         [0000]    &lt;Second Example where Distributed Processing Nodes are Applied to Network&gt; 
         [0037]    An application where a machine abnormality is monitored in a factory is used as a second example where the distributed processing nodes (DN) of  FIG. 1  are applied. For example, assume that the sensor SNS  116  is a temperature sensor and the sensor SNS  118  is an image sensor. Also assume that the control device ACT  117  is a material processing device and that the PC  114  is a monitoring terminal device and, when a machine abnormality is found by the temperature sensor, displays the machine abnormality information and image information on itself. In a traditional network, temperature data of the SNS  116  and image data of the SNS  118  are transmitted to the server SRV  101 ; the server always performs monitoring; and abnormality information is transmitted to the PC  114  under prescribed conditions such as a temperature abnormality. On the other hand, assume that a distributed processing node (DN) is interposed between the wireless gateway WGW  115  and the router RT  111  (DN  143 ) and that the SRV  101  previously makes a setting such that the distributed processing node (DN) detects a packet transmitted from the temperature sensor SNS  116  and the image sensor SNS  118  to the SRV  101  and performs a temperature monitoring process and an image distribution process instead of the SRV  101 . When the DN  143  detects the packet, it starts a temperature monitoring process and checks if an abnormality is occurring in temperature. Further, the DN  143  updates the image data while holding it for a given time period. When the DN  143  detects that an abnormal temperature is found in the data of the SNS  116 , it transmits the abnormality information directly to the PC  114 . At the same time, it transmits the image data held by itself directly to the PC  114 . As a result, the temperature data and the image data are prevented from passing through a level higher than the, router RT  111  of the LAN-B 121 , reducing the load imposed on the network. Further, a direct response is made to the abnormality detection and notification thereof in the local network LAN-B 121  without passing through the center  102  of the network. As a result, the communication path on the network is reduced, which can reduce the response time. 
       &lt;Basis Flow of Process Performed by Distributed Processing Node Instead of Server&gt; 
       [0038]    Next, a flow of a process performed by the distributed processing node DN instead of the server will be described. The flow is shown in  FIG. 2 . The DN receives all packets on the network to which the DN is connected ( 301 ). To identify a packet to be processed, the DN first analyzes and extracts header information added to each packet ( 302 ). Specifically, the DN extracts the source IP (SIP), the source port number (SPORT), the destination IP (DIP), and the destination port (DPORT) of each packet. Then, the DN searches a “service table (SVT)” that defines a packet to be subjected to a process by the DN instead of the server and details of the process ( 303 ). It then checks if there is an entry matching the extracted header information ( 304 ). If there is no matching entry, the packet is a packet not to be processed by the processing node DN. Accordingly, the DN again transmits the packet to the network without processing it as it is ( 310 ). If there is a matching entry, the packet is a packet to be processed by the distributed processing node DN. Accordingly, the DN searches the “service definition table (SVDT)” for what type of process to be performed on the packet ( 305 ). If the service definition table SVDT shows “abandon packet” as service mode for the packet, the DN abandons the packet and returns to reception mode ( 311 ). If “process” is shown as service mode for the packet, the DN extracts target data from the packet and processes the data instead of the server on the basis of table information ( 306 ). After processing the data instead of the server, the DN determines whether the processed packet needs to be transmitted, on the basis of a parameter outputted in the processing ( 309 ). If the packet can be abandoned, the DN returns to reception mode ( 311 ). Where the DN transmits the packet processed by itself instead of the server, it reconfigures the processed packet into a packet to be transmitted to a destination defined in the table information ( 307 ) and transmits the reconfigured packet to the network again ( 308 ). After the transmission, the DN returns to packet reception mode. 
         [0039]    As seen, the method for processing information upon the distributed processing node is characterized that when receiving a packet, the step of determining whether the packet should be processed by the distributed processing node ( 304 ) is performed; and if the packet is a packet to be processed by the distributed processing node, the steps of performing a predetermined process on the payload of the packet ( 306 ,  311 ) are further performed. The processes performed by the distributed processing node include abandoning the packet ( 311 ). Such characteristics allow some of packets transmitted by a terminal device to be processed without having to transmit them to the processing server. As a result, the problem of imposing a load on the center of the network, which has been a problem for traditional networks, is solved. This method is also characterized that if the packet is a packet not to be processed by the distributed processing node, the packet is transmitted to the router without performing a special process on it ( 310 ). The method is also characterized that even if the distributed processing node processes the packet, the above-mentioned predetermined process is not all of processes that can be performed by the processing server but part thereof. Owing to such characteristics, the distributed processing node is only required to perform part of the processes performed by the processing server and can be realized using a cheaper processor or the like. This is advantageous in terms of cost. 
         [0040]    Whether the packet should be processed by the distributed processing node is determined based on a comparison between the header of the packet and the service table. This is because the header contains information on the source, destination, or the like of the packet and thus the determination is made in a simplest manner. 
         [0041]    After performing the predetermined process, the step of determining whether the processed packet can be abandoned is performed ( 309 ). If it is determined that the packet can be abandoned, the packet is actually abandoned ( 311 ). Owing to this process, the distributed processing node can transmit only a packet that indeed needs to be transmitted, to the router. Thus, the response time from the distributed processing node can be further reduced. In particular, the distributed processing node can be favorably operated at high speed in examples where most of data can be abandoned, such as the above-mentioned application where an abnormality in an automatic door or factory machine is monitored. Whether the packet can be abandoned is determined based On a definition in the service definition table or a parameter outputted in the process. If it is not desired to pass a predetermined packet through the center of the network for security reasons or the like or if it is determined in the predetermined process, for example, that the data does not meet a specific condition, the packet is not passed through the center of the network and thus the load imposed on the network is reduced. 
         [0042]    If it is determined in step ( 309 ) that the packet cannot be abandoned, the process of changing the destination of the packet is performed ( 307 ), and the packet is actually transmitted ( 308 ). Owing to this characteristic, the packet can be completely processed without through the processing server. As a result, the load imposed on the center of the network can be reduced. 
         [0043]    To realize the above-mentioned flow, the distributed processing node according to the present invention includes determination units for realizing the steps ( 304 ,  306 ,  312 ), processing units for realizing the steps ( 306 ,  307 ,  308 ,  310 ,  311 ), and storage units for storing the service table SVT and the service definition table SVDT. The determination units and the processing units are composed of processors PRC ( 404 ,  506 ) to be discussed later, or the like. The storage units are composed of memories ( 403 ,  404 ) or the like. 
       &lt;Configuration of Distributed Processing Node&gt; 
       [0044]    A distributed processing node DN is added to any one of ends of a network and used. For this reason, the DN includes two network ports and a processor for processing information, as basic hardware components thereof. Since the DN is disposed at an end of the network, it is expected to be small, low-power, and low-cost. While the DN performs a process instead of the server, it does not perform all processes performed by the server. While the DN has a lower processing capability than the server, it is considered to use an embedded processor as the DN so that the DN is small, low-power, and low-cost. Since the DN processes packets in parallel and performs multiple processes in parallel instead of the server, it is preferably composed of a multi-core processor including multiple processor cores. Since a multi-core processor operates multiple processor cores in parallel at a low clock frequency and at a low operating voltage, high power performance (high performance, low power) is obtained. If the multi-core processor is a dedicated processor (accelerator) that performs a particular process efficiently and has a heterogeneous configuration, power performance can be further increased. 
         [0045]      FIG. 3  shows a configuration of the distributed processing node DN. A DN  400  includes the following components: first, physical layer chips (PHY)  401  and  402  that are connected to the network (LAN) and configured to receive physical electrical signals and convert them into logical signals specified by a standard; next, a processor (PRC)  404  that performs a protocol process of receiving or transmitting packets (a process of extracting packet data in accordance with a protocol such as TCP/IP), a packet analysis process of analyzing the header of a packet and determining the attributes and processing of the packet in accordance with the processing flow of  FIG. 2 , and processes performed instead of the server; further, a memory (RAM)  403  for temporarily storing programs and data; and a non-volatile memory (FROM)  405  for holding a boot program. The RAM  403  holds the service table SVT and the service definition table SVDT for performing the various searches shown in  FIG. 2 , as well as the service process definition table SVPT that defines a process number for starting a process as a result of a search of the service definition table Details of the SVPT will be described later. While  FIG. 3  shows a configuration where the PRC includes a network controller (NWCTL) for performing a protocol process for transmitting or receiving a packet and a packet analysis processing unit (PKTPRC) for analyzing the header of a packet and determining the attributes and processing of the packet in accordance with the processing flow of  FIG. 2  in the form of one chip, the DN may include these components as separate ones.  FIG. 4  shows a configuration diagram where the DN includes the network controller (NWCTL) and the packet analysis processing unit (PKTPRC) as separate components. Attached to the packet analysis processing unit is a memory RAM  509  that stores a CAM (content addressable memory)  508  for storing the service table SVT and rapidly searching for a table entry and the service definition table SVDT, and the service process definition table SVPT. The PKTPRC is hardware for performing the packet header analysis ( 302 ) and the service table search ( 303 ) in the flow shown in  FIG. 2 . The PKTPRC holds a service table to be discussed later and, when receiving a packet, compares the header of the packet with the service table. When the packet does not match any entries of the service table, the PKTPRC transmits the packet again as it is; when the packet matches an entry, the PKTPRC temporarily holds the packet and transfers only the data thereof to a processing processor PRC  506 . The PRC connects with a memory RAM  505  for temporarily storing programs and data and a non-volatile memory (FROM)  510  for storing a boot program. By forming the PKTPRC as hardware separate from the processor as described above, the determination as to whether the distributed processing node receives a packet, shown in the above-mentioned step  304  of  FIG. 2 , can made rapidly. 
       &lt;Configuration of Processing Processor of Distributed Processing Node&gt; 
       [0046]    Next, the configuration of the processing processor (PRC)  404  shown in  FIG. 3  will be described.  FIG. 5  shows an example configuration of the processor PRC. The PRC includes processor blocks  601 ,  602 ,  603 , and  604  for processing information, a network controller (NWCTL)  605  for performing a protocol process for transmitting or receiving a packet, a packet analysis processing unit (PKTPRC)  606  for analyzing the header of a packet and determining the attributes and processing of the packet in accordance with the processing flow of  FIG. 2 , an interrupt controller (INTC)  607  for controlling an interrupt to the processor, an on-chip shared memory CSM for temporarily storing data, a data transfer mechanism (DMAC)  609  for autonomously transferring data between memories with efficiency, and a memory controller (MEMTCL)  610  for accessing a large-capacity, external memory. These blocks are connected together via an in-chip shared network ICNNW ( 611 ). Connected to the PKTPRC is a CAM ( 612 ) holding the service table SVT, a RAM ( 613 ) holding the service definition table SVDT and the service process definition table SVPT. While  FIG. 5  shows a configuration where the CAM  612  and the RAM  613  are included in the same chip, they may be layered on the chip as multi-chip modules (MCM) or connected to outside of the chip as separate components. 
         [0047]    Multiple types of processors for processing information are included in accordance with function and performance requirements. In the example configuration of  FIG. 5 , the processing processor PRC includes two general-purpose processors (CPU) ( 601 ,  602 ), one dynamically reconfigurable processor (DRP) ( 603 ) that can dynamically change the configuration of hardware and perform a process efficiently, and one hardware processing engine (HWIP) ( 604 ) for exclusively performing only a particular process. The CPUs perform a management process. In the management process, the CPUs control the entire DN, update the tables SVDT and SVPT on the service tables SVT and RAM  613  on the CAM  612  connected to the PKTPRC, and receive table information and a program executed instead of the processing server SRV  101  from the management server DNSRV  140 . Each processor core includes a high-speed local memory LM  621  and can increase processing performance by loading frequently accessed data into the LM. Similarly, each processor core includes a data transfer unit DTU  623  for transferring data from an external memory RAM  631  or shared memory CSM  608 . Each processor core also includes a power control register PR  622  for setting the clock frequency or power supply voltage of each core. 
       &lt;Configuration of Packet Analysis Processing Unit&gt; 
       [0048]    Next, packet analysis processing units PKTPRC  507  and  606  will be described using  FIG. 6 . As described, the PKTPRC has the function of analyzing and extracting the header of a packet, searching for an entry of the preset service table, and comparing the header with an entry. While this process may be performed by the general-purpose processors  601  and  602 , performing this process in a Gbps-support LAN requires high performance. For this reason, it is essential to increase the speed by means of conversion into hardware. A PKTPRC can be divided into two blocks: a block that mainly transmits or receives a packet and analyzes the header thereof; and a block that searches a service table and determines details of processing of the packet. 
         [0049]    First, the configuration of the block that transmits or receives a packet and analyzes the header thereof will be described. This block includes a packet analysis block (HDRANL)  702  for analyzing the header of a packet and extracting the source IP address, the source port, the destination IP address, and the destination port of the packet, a reception data buffer (RXDBUF)  703  for temporarily holding a reception packet, a session management manager (SSNMNG)  713  for managing a session corresponding to a protocol such as TCP/IP, and a transmission data buffer (TXDBUF)  712  for temporarily holding a transmission packet. The SSNMNG holds a session state corresponding to a received packet and is managed by a management process performed by a processor. 
         [0050]    For a packet received via the network controller NWCTL, the header thereof is first analyzed by the HDRANL  702 , and the main body thereof is temporarily held by the RXDBUF  703 . The extracted header information is transmitted to the service block search block (SVTSRC)  704 . The SVTSRC searches the service table. If the service table does not contain an entry matching the header information, the SVTSRC instructs the SSNMNG  713  to transfer the packet. The SSNMNG reads the packet temporarily held by the RXDBUF  703  and transfers the packet to the PKTSTR  714 . As a result, the packet is transmitted to the network via the NWCTL  701  as it is without being processed by the DN. If the service table contains an entry matching the header information, the packet is processed by a processor of the DN. As a result, if the processing result is transmitted, the result is transferred to the TXDBUF  712  and reconfigured into a packet by the PTKSTR  714  via the SSNMNG  713  on the basis of an instruction transmitted by the processor via the NWCTL  701 . If the processing result is not transmitted (that is, if the packet is abandoned), the packet is abandoned by the SSNMNG  713 , which has received the instruction from the processing processor. 
         [0051]    Next, the configuration of the block that searches a service table and determines details of processing of a packet will be described. The block includes a service table search block (STVSRC) for searching a service table and determining whether header information of the packet matches the table, a service definition table reference block (SVTDEF) for referring to the table defining details of processing if the header information matches the service table, a service process management table reference block (PRCSRC) for searching for an interrupt to a processor that performs processing, a process determination block (PRCJDG)  708  for determining details of processing and determining which processor core should perform processing, and a data transfer block (RXDTU)  711  for transferring packet data to the shared memory CSM  608 , the external memory RAM  631 , and the local memory LM  621  included in each processor core. Connected to the STVSRC  704  is an IF (CAMIF)  705  for connecting with the CAM  716  that holds the service table SVT and searches the table at high speed. Connected to the SVTDEF  706  is an IF (RAMIF)  707  for connecting with a memory TRAM  717  holding the service definition table SVDT. Connected to the PRCSRC  709  is an IF (RAMIF)  710  for connecting with a memory TRAM  719  holding the service process management table SVPT. Each IF block is connected to the shared bus ICNNW  720  so that each table can be updated in the management process performed by the CPU. 
         [0052]    The SVTSRC  704  searches the service table for an entry matching the header information extracted by the HDRANL. If the service table contains a matching entry, the SVTSRC  704  transmits a service ID corresponding to the entry to the SVTDEF  706 , which then refers to the service definition table defining details of processing. The SVTDEF first identifies a service mode for determining an operation, on the basis of the result of the reference. There are three service modes: “Pass” in which the packet is transmitted to a higher level as it is without being processed; “Abandon” in which the packet is abandoned by the DN; and “process” which indicates that information will be processed by the DN. If the service mode is “Pass,” the SVTDEF instructs the SSNMNG  713  to read the packet from the RXDBUF  703  and transfer it to a higher level. If the service mode is “Abandon,” the SVTDEF instructs the SSNMNG  713  to delete the entry of the packet held by the RXDBUF and abandon the packet. If the service mode is “Process,” the SVTDEF transmits a service process ID in the service definition table referred to in order to start a corresponding process, to the PRCJDG  708 . The PRCJDG inquires a service process ID of the PRCSRC, refers to the service process management table defining a processor core which should perform a process, and determines an execution processor core. The PRCJDG transfers the packet data to one of the CSM  608 , the RAM  631 , the LM  621  via the RXDTU  711 . The PRCJDG also starts a process by specifying an interrupt destination processor core to an interrupt controller INTC  718  and making an interrupt. 
       &lt;Configuration of Service Table&gt; 
       [0053]    Next, the configuration of the service table (SVT) defining conditions for determining whether the distributed processing node DC should process a received packet instead of the server will be described.  FIG. 7  shows an example configuration of the service table. In this example, TCP/IP or UDP is used as a communication protocol. The service table contains source IP addresses (SIP), source port numbers (SPORT), destination IP addresses (DIP), destination port numbers (DPORT), and service IDs corresponding to combinations thereof. The SIP, SPORT, DIP, and DPORT are used as search keys, and the SVID is outputted as a search result. The SIP identifies the source device, and the SPORT represents the type of data of the source or a corresponding service. The DIP identifies the destination server (or device), and the DPORT represents the type of a service provided by the destination server (or device). That is, by defining these combinations, it is possible to identify a communication for a specified service of any server made by any device on the network and to cause the DN to perform a process instead of the server. For example, if the DN receives a packet having a destination device address SIP of 10.1.1.1, a data service type SPORT of  2001 , a destination server address DIP of 10.1.10.10, and a service type DPORT of  5001 , it outputs “1” as a service ID. The service ID is an ID for identifying details of processing performed by the DN instead of the server. By referring to the service definition table (SVDT) to be discussed next, the DN determines details of the processing. Depending on the item, a wild card or regular expression may be used. For example, wild cards (*) are used as the DIP and DPORT. Accordingly, if the DN receives a packet having a SIP of 10.1.1.5 and a SPORT of 23, it outputs a service ID “6.” Since searches are performed from the top of the table, items in a higher table entry row are selectively searched. 
         [0054]    As seen, the distributed processing node is characterized in that it has the service table. Basically, the service table is pieces of information for, when receiving a packet, determining whether the packet should be processed by the distributed processing node. Holding such a table allows the distributed processing node to perform some of processes performed by the processing server instead of the server. 
         [0055]    More specifically, the service table contains information on the source and destination of a packet received by the distributed processing node. Such information allows the above-mentioned determination to be made, allowing the load imposed on the center of the network to be reduced. It is most preferable to use the source IP address (SIP), the source port number (SPORT), the destination IP address (DIP), and the destination port number (DPORT) as information on the source and destination of the packet. 
         [0056]    The service table also contains pieces of ID (service ID) information corresponding to the above-mentioned source information and destination information. By holding such IDs, it is possible to establish correspondences between the service table and a service definition table to be discussed later and to identify a process to be performed in accordance with a received packet. 
       &lt;Service Definition Table&gt; 
       [0057]    A service definition table (SVDT) is a table that defines details of processing with respect to a service ID that satisfies the conditions as a result of the search of the service table and is thus outputted.  FIG. 8  shows an example configuration of the service definition table. The service definition table contains service IDs (SVID)  901 , service modes (SVMODE)  902 , service process IDs (SPID)  903 , processing time constraint or priority (PRI)  904 , output result destination IP addresses (ADIP)  905 , and output result destination port numbers (ADPORT)  906 . The table is referred to using an SVID as a key so as to obtain pieces of definition information. The SVMODE  902  represents the mode of a process performed by the distributed processing node instead of the server. Specifically, the SVMODE includes “Process,” in which the received packet will be processed by the DN, “Pass,” in which it will be transferred to a higher-level without processing it, and “Abandon,” in which it will be abandoned. “Process” indicates that the target packet data will be processed by a processor of the DN instead of the server. However, it can be also considered to replace only the address of the received packet without processing it and then transmit the resulting packet again. In this case, by setting the SVMODE to “Pass,” the DN can replace the header of the packet and then specify, as a packet destination server, a server which is previously statically determined from among multiple servers for performing the same process, for example, in order to disperse the load imposed on the server. A case is also considered where it is not desired to pass a specified packet or unspecified packet through a higher level in terms of security. In this case, by setting the SVMODE to “abandon, ” it is possible to block communications of, for example, P2P traffic or the like at an end of the network on the basis of a setting made by the administrator. The service process IDSPID  903  is an ID for specifying a process (the substance of a program) performed by the DN. By referring to the service process management table using the SPID as a key, an execution processor core is determined. In an example of  FIG. 8 , an SPID corresponding to an SVID of “2” is “−” This indicates that the SVMODE  902  is “Pass” and that a corresponding service process ID is not defined. Similarly, when the SVMODE is “abandon,” the SPID is not defined. The PRI  904  represents the response time or priority of the service. When multiple services are performed, they are performed in the descending order of priority. If the response time cannot be obeyed, the DN transmits the packet again without processing it instead of the server and without modifying the header thereof. The ADIP  905  is a destination address to which the DN transmits the result of processing performed instead of the server. The ADPORT  906  is a destination port number to which the DN transmits the result. 
         [0058]    As seen, the distributed processing node is characterized in that it has the service definition table. The service definition table is basically pieces of information that define processes (service modes) to be performed by the distributed processing node. Holding such a table allows specification of details of a process to be performed by the distributed processing node instead of the server. 
         [0059]    More specifically, the service definition table contains the correspondences between the above-mentioned service IDs and processes to be performed and defines a process to be performed for each service ID. Such a characteristic allows the distributed processing node to perform multiple processes instead of the server. 
         [0060]    The service definition table also contains information indicating processing time constraints or priority. Thus, it is possible to operate the distributed processing node flexibly so that the distributed processing node transmits the packet again to the processing server when the distributed processing node cannot actually perform a process instead of the server. 
         [0061]    The service definition table also contains information indicating the destination of the processed packet. Thus, the DN can completely process the packet without through the processing server, reducing the load imposed on the center of the network. 
       &lt;Service Process Management Table&gt; 
       [0062]    While the service definition table specifies details of a process performed instead of the server, the service process management table (SVPT) manages the types of execution processors, process IDs, and the like.  FIG. 9  shows an example configuration of the service process table. The service process table contains service process IDs (SPID)  1001  for serving as a key when referring to the table, the types of execution processor cores (TRG)  1002 , allocated processor core numbers (BID)  1003 , process IDs on allocated processor cores (PID)  1004 , process priority (PPRI)  1005 , and process states (STAT)  1006 . The TRG  1002  represents the type of a processor core that should perform a distributed program. If multiple cores can perform the program, multiple types may be specified. In a management process performed by a CPU of the DU, a processor core to be actually allocated is determined in consideration of the processing situation of each processor core and a time constraint condition PRI  904  corresponding to a service ID. The BID  1003  represents a processor core to be allocated. In an example of  FIG. 9 , a BID corresponding to an SPID of “13” is “ANY.” This indicates that a processor core has yet to be determined. The PID  1004  is the process ID of a process to be performed by the core. When the type of the processor core is a dynamically reconfigurable processor (DRP), the PID  1004  represents a configuration surface number for setting a configuration. In the example of  FIG. 9 , a PID corresponding to an SPID of “11” is “−” This indicates that the execution processor core TRG  1002  is a “HWIP-A,” which represents a dedicated circuit, and that there is no process ID concept. The PPPRI  1005  specifies the priority of a process performed by the processor core. This is also determined in the management process in accordance with the time constraint condition PRI  904  represented by the service ID. The STAT  1006  represents the state of the process. For example, “Running” indicates that the process is being performed, “Sleeping” that the process is on standby, and “Unloaded” that the main body of the program has yet to be loaded. 
       &lt;Distributed Node Management Table Held by Management Server&gt; 
       [0063]    Distributed processing nodes DN are collectively managed by a management server. Hereafter, a distributed node management table (DNMT) for managing DN will be described.  FIG. 10  is an example of a distributed node management table held by a management server and showing the management states of DN. The distributed node management table contains distributed node IDs (DNID)  1101 , DN IP addresses (DNIP)  1102 , DN states DNSTAT  1103 , under-execution service process numbers NUMPRS  1104 , and processor load states AVGWL  1105 . Accessing this table allows information on the DN to be obtained. The DN information can be used as a guideline when registering a new service. The DNID  1101  is an ID for uniquely identifying a node and is determined by the management server. The DNIP represents an IP address for accessing a DN. The DNSTAT  1103  represents an operating state. In an example of  FIG. 10 , “Serving” indicates that the DN is serving, and “Stopped” indicates that the DN is stopped. The NUMPRS  1104  represents the number of service processes which are currently being performed by the DN. The AVGWL  1105  represents the average load imposed on the processor cores of the DN. 
       &lt;Service Management Master Table Held by Management Server&gt; 
       [0064]    Information contained in the service table and the service definition table held by each distributed processing node is centrally managed by a service management master table (SVMT) held by the management server. When the user registers service information in this master table, the management server distributes the service information to the nodes. Anode starts the service (instead of the server).  FIG. 11  shows an example configuration of the service management master table. The service management master table contains distributed processing node IDs (DNID)  1201 , service IDs (SVID)  1202 , execution processor types (TRG)  1203 , source ID addresses of packets performed instead of server (SIP)  1204 , source port numbers (SPORT)  1205 , destination IP addresses (DIP)  1206 , destination port numbers (DPORT)  1207 , processing result destination IP addresses (ADIP)  1208 , destination port numbers (ADPORT)  1209 , and service process response time constraints or priority (PRI)  1211 . These items are the same as those described in the service table and the service definition table held by the DN. 
       &lt;Detailed Flow of Determination of Process Performed by Distributed Processing Node Instead of Server&gt; 
       [0065]    A method for performing a process using the distributed processing node DN instead of the server is provided using the hardware configuration and table information described above.  FIG. 12  shows a detailed flow of a process that the DN to which the packet processing processor PKTPRC shown in  FIG. 6  is applied performs instead of the server. The DN first receives a packet ( 1301 ). The DN then analyzes the header of the packet to extract the SIP, SPORT, DIP, and DPORT ( 1302 ). The DN then searches the service table for a service ID (SVID) for identifying a process which is to performed instead of the server and which corresponds to the SIP, SPORT, DIP, and DPORT serving as keys ( 1303 ). If no search key is hit ( 1304 ), this means that the target packet should not be performed by the DN instead of the server. The DN transmits the packet onto the network again without modifying the packet ( 1311 ). If a search key is hit, the DN refers to the service definition table defining details of processes performed instead of the server by using the SVID as a key so as to obtain a service process ID (SPID) ( 1305 ). The DN then refers to the service process management table to obtain an execution processor core (TRG) and a process ID (PID) on the basis of the SPID obtained ( 1306 ). Since the execution processor is determined, the DN transfers the packet data to a local memory or shared memory on the processor or an external memory ( 1307 ). The DN then starts the service process by issuing an interrupt to an execution processor core ( 1308 ). The DN transmits the processing result to a buffer for packet transmission (TXDBUF) ( 1308 ) and reconfigures the packet by replacing part of the header thereof with a destination address (ADIP) and a destination port (ADPORT) defined in the service definition table ( 1309 ). The DN eventually transmits the packet to the network ( 1310 ). 
       &lt;Flow of Distribution of Service Table Information and Program by Management Server&gt; 
       [0066]    The service table for determining a process to be performed by the DN instead of the server is distributed by the management server.  FIG. 13  shows a processing flow of distribution of service table information by the management server and distribution of a program object performed by the DN instead of the server. The user registers a process to be performed instead of the server, the ID of a DN to perform this process, and conditions for a packet to be subjected to the process in the service management master table on the management server ( 1401 ). At the same time as the registration, the management server registers entries in the service table of the target DN via the network in the management process ( 1402 ). The management server then transmits the main body of a program object to be executed, to the DN ( 1403 ). After registering the entries in the service table and transmitting the program, the management server instructs the DN to start a service process ( 1404 ). The DN starts the service process. If it detects a packet matching the entry conditions registered in the service table, the DN processes the packet instead of the server. In the management process, the management server receives the state of the node at every given time and registers the state in the distributed node management table ( 1405 ). To cancel the process performed instead of the server, the user instructs the DN to stop and delete the program under execution and delete the target entry in the service table ( 1407 ). The user then deletes the target entry from the service management master table on the server and completes the service (the process performed instead of the server). 
       &lt;Flow of Reception of Service Table Information and Program by Distributed Processing Node&gt; 
       [0067]    Hereafter, a flow of reception of service table information and program from the management server by the distributed processing node DN will be described.  FIG. 14  shows a flow of reception of service table information and a program by the DN. A DN management process for managing the DN is running on the DN. This process is monitoring management and control communications transmitted from the management server. Upon receipt of an instruction to perform a new service from the management server, the DN management process receives new service table information ( 1501 ). The DN management process registers the information in the service table on the DN ( 1502 ). At the same time, the DN management process receives, from the management server, a program object to be performed by the DN instead of the server ( 1503 ). Subsequently, based on the information received, the DN management process determines a processor core which should perform this process ( 1504 ), checks the operating state of the current allocated processor by referring to the service process management table, and if there are multiple processor cores, allocates a process to a processor core on which a lower load is imposed ( 1505 ). After the allocation, the DN management process obtains a process ID on the processor core and updates the service process management table ( 1506 ). The DN is placed on standby until it receives a packet to be processed ( 1507 ). These are steps for receiving and registering a new service (a process performed instead of the server). 
       LIST OF REFERENCE SIGNS 
       [0068]      101  sever,  102  center of the network,  103 ,  111  router,  104 ,  115  wireless gateway,  105 ,  106 ,  116 ,  118  sensor,  107 ,  113 ,  117  control device,  108 ,  112  hub,  109  information processing terminal device,  110 ,  114  computer,  120 ,  121  local area network,  131  wired network,  132  wireless network,  141  to  143  distributed processing node,  301  to  303 ,  305  to  308 ,  310  process,  304 ,  309  bifurcation,  400  distributed processing node,  401 ,  402  physical laye chip,  403  memory,  404  processor,  405  non-volatile memory,  500  distributed processing node,  501 ,  502  physical layer chip,  503 ,  504  network controller,  505  memory,  506  processor,  507  packet processing processor,  508  associative memory,  509  memory,  510  non-volatile memory,  600  processor,  601 ,  602  general-purpose processor,  603  dynamic reconfigurable processor,  604  processing processor solely for hardware,  605  network controller,  606  packet processing processor,  607  interrupt controller,  608  shared memory,  609  data transfer controller,  610  memory controller,  611  on-chip shaped bus,  612  associative memory,  613  memory,  620  general-purpose processor core,  621  local memory,  622  control register,  623  data transfer unit,  624  ALU array,  625  hardware IP core,  630  physical layer chip,  631  external memory,  701  network controller,  702  header analysis block,  703  reception packet data buffer,  704  server table search block,  705  associative memory interface,  706  service definition table reference block,  707  memory interface,  708  process determination block,  709  process management table reference block,  710  memory interface,  711  reception packet data transfer unit,  712  transmittedr data buffer,  713  session management block,  714  packet reconfiguration block,  716  associative memory,  717  memory,  718  interrupt controller,  719  associative memory,  720  in-chip shared bus,  730  packet processing processor,  801  source IP address,  802  destination port number,  803  differencee IP address,  804  destination port number,  805 ,  901  service ID,  902  operation mode,  903  service process ID,  904  priority  905  result destination address,  906  result destination port,  1001  service process ID,  1002  target processor type,  1003  target processor core ID,  1004  process ID,  1005  process priority,  1006  service process state,  1101  distributed processing node ID,  1102  distributed processing node IP address,  1103  distributed processing node state,  1104  service process number,  1105  average processor load,  1201  distributed processing node ID,  1202  service ID,  1203  target processor type,  1204  source IP address,  1205  source port number,  1206  destination IP address,  1207  destination port number,  1208  result destination IP address,  1209  result destination port number,  1210  priority,  1301  to  1303 ,  1305  to  1311  process,  1304  bifurcation,  1401  input from user,  1402  to  1405 ,  1407 ,  1408  process,  1406  bifurcation,  1501  to  1507  process