The present invention relates to a data processing system that provides a service to a user by a service function chaining technique, and a data processing method.
To flexibly provide an end-to-end service, Service Function Chaining (SFC) has been examined (non-patent literature 1). SFC is a technique of freely combining Service Functions (SF) scattered on a network, and it is possible to provide an optimum service for each user by using the SFC.
In a network using the SFC, as shown in
The SFC has been developed mainly for a network service. SFs are assumed to be firewall, Deep Packet Inspection (DPI), load balancing, and the like. Since these functions complete processing for each packet, users and packet orders need not be taken into consideration.
The SFC is a technique advantageous for a cloud service as well. For example, non-patent literature 2 discloses, as an image processing service using the SFC, a video monitoring service that combines two types of image processing functions. However, the technique disclosed in non-patent literature 2 does not assume a situation where a plurality of users use a network, and a problem may occur if each user operates a service.
A user who uses a cloud service divides data into a plurality of packets (data packets) and sends these to the server 13, generally as shown in
The conventional SFC does not take users and packet orders into consideration. For this reason, in a cloud service using the conventional SFC, the data packets 11A and 11B of the different users may successively arrive at the server 13. At this time, if the data packets 11A and 11B of the different users mix, the server 13 cannot guarantee an appropriate result. An X mark in
If the data packets are distributed in the server 13 for each user, a calculation resource needs to be spared for this. Also, a memory resource for holding data packets is necessary. If the users are managed in the server 13, resources that can be assigned to SFs decrease. Furthermore, since a user management function is needed in each server 13, many resources are consumed in the whole system. Hence, the SF implementation efficiency is low with respect to the system scale. Also usable is a method of assigning different SFs instead of sharing SFs among service chains. However, since the standby time is long, the SF use efficiency is low.
The present invention has been made to solve the above-described problem, and has as its object to provide a data processing system capable of avoiding collision of data in data processing devices and suppressing lowering of service function use efficiency even under use by a plurality of users, and a data processing method.
A data processing system according to embodiments of the present invention comprises a user management apparatus configured to perform management of information of a user who applies for use of a service, and transfer control of a packet received from the user; a data processing device configured to perform data processing of a service function for data included in the received packet; one or a plurality of data transfer devices having one or a plurality of data processing devices under control, a communication management apparatus configured to calculate a route of a service chain necessary for implementing the service requested by the user and transmit route information to the user management apparatus, and update a routing table registered in the data transfer device on the calculated route based on a result of route calculation; and an external transmission apparatus configured to return, to the user, the packet that has undergone all data processes of the service chain, wherein the user management apparatus is configured to add, to the packet received from the user, a tag in which the route information is described, and transmit the packet to the data transfer device, the data transfer device is configured to transfer the packet to one of the data processing devices under control and other data transfer devices based on the route information included in the tag added to the received packet and the routing table, and the data processing device returns the packet that has underdone the data processing to the data transfer device of a transmission source.
According to embodiments of the present invention, a user management apparatus, a data processing device, a data transfer device, a communication management apparatus, and an external transmission apparatus are provided, thereby managing data for each user using the user management apparatus and performing control to flow only data for one user per service chain. In embodiments of the present invention, it is possible to avoid collision of data in the data processing device, and a plurality of users can use one data processing device (service function). Hence, lowering of service function use efficiency can be suppressed even under use by a plurality of users.
An embodiment of the present invention will now be described with reference to the accompanying drawings.
As the data processing devices 3-1 to 3-13, a Central Processing Unit (CPU), a Field-Programmable Gate Array (FPGA), a Graphics Processing Units (GPU), an Application Specific Integrated Circuit (ASIC), and the like can be used.
In this embodiment, SFs implemented by the data processing devices 3-1 to 3-13 are combined, thereby providing a service customized for each user. More specifically, communication is performed between the data transfer devices 2-1 to 2-9, and a data packet sent from a user is transferred to an appropriate SF. If data processing in the SF is completed, the data packet is further transferred to another SF, and data processing is performed. Thus, in this embodiment, a service according to the purpose of a user is provided by changing the processing contents for each user.
A communication path through which a data packet passes is called a service chain. As in
Also, the user management apparatuses 1-1 to 1-3 each add a tag to each data packet. In the tag, the route information of the service chain is described. The data transfer devices 2-1 to 2-9 perform routing of a data packet based on the tag. Detailed examples of the tag are a Network Service Header (NSH), a Multi-Protocol Label Switching (MPLS) header, and a Segment Routing over IPv6 (SRv6). A unique header may be defined.
In routing using a Media Access Control (MAC) address or an Internet Protocol (IP) address, a large routing table needs to be provided in each of the data transfer devices 2-1 to 2-9. On the other hand, in routing using a tag, as in this embodiment, the scale of the routing table is made small by causing a data packet to include route information, thereby decreasing the calculation resource or memory resource necessary for routing.
The external transmission apparatuses 4-1 to 4-3 each add destination information to the data packet that has undergone all data processes, and return it to the user. The reason why the external transmission apparatuses 4-1 to 4-3 are necessary is that protocols used in and outside the data processing system are different. As communication outside the data processing system, TCP/IP is used as the world standard. On the other hand, in the data processing system, packet communication using a tag is performed due to the above-described reason. Hence, to absorb the difference of the protocols in and outside the data processing system, the external transmission apparatuses 4-1 to 4-3 are used.
The packet type determination unit 103 determines the packet type based on the analysis result by the packet analysis unit 102 (step S3 in
The packet type determination unit 103 sends a packet whose packet type is “service use application” to the user information extraction unit 104, and sends a packet whose packet type is “service use” to the data management unit 105.
The user information extraction unit 104 acquires user information (an ID address, a port number, a contract number, service information, a priority, and the like) described in the packet received from the packet type determination unit 103 (step S4 in
The user management unit 109 manages the user information received from the user information extraction unit 104. The user management unit 109 issues, to the user, a user ID needed to use the service (step S5 in
The QoS control unit 110 decides the priority of packet transfer for each user based the priority or the information of the service requested by the user, and registers the priority information (QOS information) in the data management unit 105 (step S7 in
The tag generation unit 111 receives the route information from the communication management apparatus 5, and generates a tag in which the route information is described. Then, the tag generation unit 111 associates the generated tag with the user ID issued by the user management unit 109 and registers these in the tag addition unit 107 (step S8 in
The data management unit 105 receives the packet determined as “service use” by the packet type determination unit 103, distributes the received packet on a user basis, and temporarily stores it in the storage unit 106. The data management unit 105 then extracts the packet of a specific user for each service chain from the storage unit 106 based on the information of the priority registered by the QoS control unit 110 and transfers it to the tag addition unit 107 (step S9 in
If a user ID is issued to a user, the user ID is added by the user to a packet whose packet type is “service use”, as will be described later.
The tag addition unit 107 adds, to the received packet, a tag corresponding to the user ID added to the packet received from the data management unit 105 among the tags registered by the tag generation unit 111, and outputs the packet with the tag to the packet transmission unit 101 (step S10 in
The packet transmission unit 101 transmits the packet output from the tag addition unit 107 to the closest one of the data transfer devices 2-1 to 2-9 (step S11 in
As described above, detailed examples of the tag are an NSH and an MPLS header. Also, a unique header may be defined. In place of the tag, a MAC address or an IP address can also be used. However, in a method using a MAC address or an IP address, the data transfer devices 2-1 to 2-9 need to have a large-scale routing table, and more calculation resources and memory resources are consumed as compared to a method using a tag.
Note that in the example shown in
The user determination unit 1051-1, the user selection unit 1052-1, and the output selection unit 1053-1 form a memory controller 1055-1. Similarly, the user determination unit 1051-N, the user selection unit 1052-N, and the output selection unit 1053-N form a memory controller 1055-N. Each of the memory controllers 1055-1 to 1055-N performs storage and extraction of data packets in and from the storage unit 106. Although one memory controller may suffice, if a plurality of memory controllers are provided, access to the storage unit 106 can be parallelized, and processing performance can be improved.
The data management unit 105 manages a data packet received from the packet type determination unit 103 for each user, and outputs it to the tag addition unit 107 at the subsequent stage at an appropriate timing.
The packet distribution unit 1050 decides a memory controller that controls storage of the data packet received from the packet type determination unit 103 and outputs the data packet to the user determination unit 1051 (1051-1 to 1051-N) of the decided memory controller. Note that if a part of the user ID is the number of a memory controller, the packet distribution unit 1050 can perform distribution at a high speed. In deciding the memory controller to distribute the packet, it is appropriately decided in accordance with, for example, the free state of the memory controller for processing.
The user determination units 1051-1 to 1051-N each refer to the user ID of the packet received from the packet distribution unit 1050, and decide to which of the storage unit 106 and the output selection units 1053-1 to 1053-N the packet should be transferred.
More specifically, upon receiving a packet having the same user ID as the user ID of the packet that is currently being output from a corresponding one of the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination unit itself, each of the user determination units 1051-1 to 1051-N transfers the received packet to the corresponding one of the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination unit itself. Also, upon receiving a packet having a user ID that is different from the user ID of the packet that is currently being output from a corresponding one of the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination unit itself, each of the user determination units 1051-1 to 1051-N temporarily stores the received packet in the storage unit 106.
Each of the user selection units 1052-1 to 1052-N selectively extracts the data packet from the storage unit 106 based on the QoS information (information of priority) registered by the QoS control unit 110. When not performing QoS control, the user selection units 1052-1 to 1052-N each extract the data packet of the user stored first among the data packets stored in the storage unit 106.
Each of the output selection units 1053-1 to 1053-N selects which data packet received from which one of the user determination units 1051-1 and the user selection units 1052-1 to 1052-N belonging to the same memory controller as the output selection unit itself should be output. Since a back pressure can be applied to the user selection units 1052-1 to 1052-N, data packets received from the user determination units 1051-1 to 1051-N are preferentially output. The packet order may be changed by the selection. For this reason, the data processing devices 3-1 to 3-13 need to have a packet order control function.
The output control unit 1054 outputs the packets output from the output selection units 1053-1 to 1053-N to the tag addition unit 107. If there exist a plurality of memory controllers (output selection units 1053-1 to 1053-N), the output control unit 1054 controls which packet from which memory controller should be output to the tag addition unit 107. As the control method, a round robin method, a best effort method, a DiffServ method (QoS), or the like can be used.
Upon receiving a packet having a user ID that is different from the user ID of the packet that is currently being output from a corresponding one of the output selection units 1053-1 to 1053-N belonging to the same memory controller as the user determination unit itself, each of the user determination units 1051-1 to 1051-N may directly store the received packet in the storage unit 106. At this time, if a packet having the same user ID as the received packet is already stored in the storage unit 106, the user determination units 1051-1 to 1051-N may store the stored packet and the received packet in the storage unit 106 such that these are combined, thereby causing the storage unit 106 to hold larger data.
The data transfer device 2-8 is formed by a packet reception unit 200, a packet transmission unit 201, a packet analysis unit 202, a transfer control unit 203, and a data communication control unit 204.
Each of the data processing devices 3-9 and 3-10 is formed by a payload acquisition unit 300, a data construction unit 301, a data processing unit 302, a register management unit 303, a packet creation unit 304, and a tag updating unit 305.
If the packet reception unit 200 of the data transfer device 2-8 receives a data packet from the user management apparatus at the preceding stage or another data transfer device (step S20 in
Based on route information included in the tag acquired by the packet analysis unit 202 and a routing table registered in itself, the transfer control unit 203 transfers the data packet output from the packet analysis unit 202 to the data processing device 3-9 or 3-10 via the data communication control unit 204, or transfers the data packet output from the packet analysis unit 202 to an adjacent data transfer device via the packet transmission unit 201 (step S22 in
The payload acquisition unit 300 of the data processing device 3-9 or 3-10 extracts a payload from the data packet received from the data transfer device 2-8 (steps S30 and S31 in
The data construction unit 301 of the data processing device 3-9 or 3-10 combines payloads acquired by the payload acquisition unit 300 from a plurality of data packets, thereby reconstructing original data (step S32 in
The data processing unit 302 executes predetermined processing for the data received from the data construction unit 301, and transmits the data that has undergone the processing to the packet creation unit 304 (step S33 in
The tag updating unit 305 refers to the route information included in the tag added to the packet received from the packet creation unit 304, updates the route information included in the tag such that the self-device (the data processing device 3-9 or 3-10) is excluded from the route of the service chain, and transmits the packet after the updating to the data transfer device 2-8 (step S35 in
The register management unit 303 performs parameter registration in the data processing unit 302 and parameter acquisition. More specifically, the register management unit 303 acquires a parameter that is unique to the user and necessary for processing in the SF from the user management apparatuses 1-1 to 1-3, as will be described later (step S36 in
Also, upon receiving a recovery request packet from the user management apparatuses 1-1 to 1-3 (step S38 in
Using, of the parameters registered by the register management unit 303, a parameter corresponding to the user ID acquired by the payload acquisition unit 300, the data processing unit 302 executes predetermined processing for the data received from the data construction unit 301.
The packet analysis unit 202 of the data transfer device 2-8 analyzes the packet received from the data processing device 3-9 or 3-10 via the data communication control unit 204, acquires the tag added to the packet, and outputs the received packet to the transfer control unit 203 (steps S20 and S21 in
Based on route information included in the tag acquired by the packet analysis unit 202 and a routing table registered in itself, the transfer control unit 203 transfers the data packet output from the packet analysis unit 202 to the data processing device 3-9 or 3-10 via the data communication control unit 204, or transfers the data packet output from the packet analysis unit 202 to an adjacent data transfer device via the packet transmission unit 201 (step S22 in
In this way, processing in the SF is executed by the data processing device 3-9 or 3-10. If the plurality of data processing devices 3-9 and 3-10 are connected in parallel to the data transfer device 2-8, as in the example shown in
As the data processing devices 3-9 and 3-10, for example, a CPU or a GPU may be used, and processing of the data processing devices 3-9 and 3-10 may be executed by software. Alternatively, as the data processing devices 3-9 and 3-10, for example, an FPGA may be used, and processing of the data processing devices 3-9 and 3-10 may be executed by hardware. However, to implement a high-speed network, hardware is preferably used because hardware has high packet processing performance in general.
Note that in the example shown in
Upon receiving service use end information, the communication management apparatus 5 deletes the SF from a corresponding one of the data processing devices 3-1 to 3-13 (step S100 in
Upon receiving user information and a user ID from the user management unit 109 of the user management apparatuses 1-1 to 1-3 (YES in step S101 in
Based on the acquired service information, the communication management apparatus 5 calculates a route passing through SFs necessary for implementing the service requested by the user (step S103 in
If there are many services under operation, it may be impossible to implement a new service using only existing SFs. Hence, in some cases, an SF is added to the data processing devices 3-1 to 3-13 under operation stop. If an SF needs to be added, the communication management apparatus 5 adds a desired SF to a data processing device under operation stop, which is located at the position of the desired SF on the route passing through SFs necessary for the new service chain (step S104 in
If the data processing device is formed by, for example, a CPU or a GPU, the communication management apparatus 5 transfers the program of a predetermined SF to the data processing device and stores it in the memory of the data processing device. If the data processing device is formed by, for example, an FPGA, the communication management apparatus 5 transfers data for updating the circuit configuration of the FPGA to the data processing device and adds a circuit for the desired SF.
If route calculation succeeds, the communication management apparatus 5 transmits the route information and the user ID to a user management apparatus serving as the start point of the calculated route among the user management apparatuses 1-1 to 1-3 (step S105 in
In addition, the communication management apparatus 5 transfers the user information and the user ID to an external transmission apparatus serving as the end point of the calculated route among the external transmission apparatuses 4-1 to 4-3 (step S106 in
If the user management apparatuses 1-1 to 1-3 and the external transmission apparatuses 4-1 to 4-3 of the transmission destinations accept the information sent from the communication management apparatus 5, the communication management apparatus 5 updates, based on the result of the route calculation, the routing tables registered in the transfer control units 203 of the data transfer devices 2-1 to 2-9 on the calculated route (step S107 in
If route calculation fails, or the user management apparatuses 1-1 to 1-3 or the external transmission apparatuses 4-1 to 4-3 of the transmission destination do not accept the information sent from the communication management apparatus 5, the communication management apparatus 5 notifies the user, via the user management apparatuses 1-1 to 1-3, that the service cannot be started.
The communication management apparatus 5 repetitively executes the above-described processing until the operation of the data processing system ends (YES in step S108 in
The network connection form of the data processing system according to this embodiment will be described next. As a network connection form according to this embodiment, a configuration in which specific user management apparatuses 1-1 to 1-6 or specific external transmission apparatuses 4-1 to 4-6 are connected to specific data transfer devices 2-1 to 2-9, as shown in
As another network connection form, a configuration in which all user management and external transmission apparatuses 1a-1 to 1a-9 are connected to all the data transfer devices 2-1 to 2-9, as shown in
Intra-system communication according to this embodiment is packet communication, and the data transfer devices 2-1 to 2-9 have an arbitrary connection configuration therebetween. The connection configuration between the data transfer devices 2-1 to 2-9 can be, for example, of a bus type, a star type, a line type, a tree type, a ring type, a torus type, a mesh type, or a complex thereof.
A packet from the user can be input to an arbitrary one of the user management apparatuses 1-1 to 1-6 or an arbitrary one of the user management and external transmission apparatuses 1a-1 to 1a-9 using a load balancer 6 outside the data processing system, as shown in
If the positions of the input and the output are fixed, like the configuration shown in
To return the packet that has undergone all data processes from an arbitrary one of the external transmission apparatuses 4-1 to 4-6 or an arbitrary one of the user management and external transmission apparatuses 1a-1 to 1a-9 to the user, a method of transferring, via the communication management apparatus 5, user information (an IP address and the like) held in one of the user management apparatuses 1-1 to 1-6 (or the function unit of a user management apparatus in the user management and external transmission apparatuses 1a-1 to 1a-9) to one of the external transmission apparatuses 4-1 to 4-6 (or the function unit of an external transmission apparatus in the user management and external transmission apparatuses 1a-1 to 1a-9) can be considered.
As described with reference to
The external transmission apparatuses 4-1 to 4-6 or the user management and external transmission apparatuses 1a-1 to 1a-9 specify the user as the destination of the packet based on the user ID added to the packet that has undergone the data processing, and returns the packet that has undergone the data processing to the user based on the user information transferred from the communication management apparatus 5.
The configuration shown in
As described above, the route of a service chain is calculated by the communication management apparatus 5. One communication management apparatus 5 is arranged in the domain, and the communication management apparatus 5 transmits route information to the user management apparatuses 1-1 to 1-6 in charge in the domain. By calculating the route by one communication management apparatus 5, unexpected route overlap can be avoided.
If the system scale is large, the domain is divided into, for example, two parts, as shown in
Thus, in this embodiment, an appropriate route can be assigned to each service chain.
In the data processing system according to this embodiment, since the data transfer devices 2-1 to 2-9 and the data processing devices 3-1 to 3-13 are separated, a bus type network or a partial mesh type network examined in the conventional SFC can be implemented.
To solve this problem, a branch point is formed in the data transfer devices 2-1 to 2-3. From the economical viewpoint, the branch point is preferably formed only at a necessary point. The bus type network is suitable for a carrier network because the input and the output are apart.
Upon receiving a packet whose packet type is “service use application” from the user terminal 8, the user information extraction unit 104 of the user management apparatus 1 acquires user information described in the packet. The user management unit 109 of the user management apparatus 1 issues a user ID, and transfers the user information and the user ID to the communication management apparatus 5 (step S201 in
Upon receiving the user information, the communication management apparatus 5 calculates the route of the service chain based on service information included in the user information, and transmits the route information and the user ID to the user management apparatus 1 serving as the start point of the calculated route among the plurality of user management apparatuses (step S202 in
Also, the communication management apparatus 5 transmits the user information and the user ID to the external transmission apparatus 4 serving as the end point of the calculated route among the plurality of external transmission apparatuses (step S203 in
In response to the packet of “service use application”, the user management unit 109 of the user management apparatus 1 returns a packet including the issued user ID to the user terminal 8, thereby notifying the user of the user ID (step S204 in
At the start of service use, the user for whom the user ID has been issued notifies the data processing system of the start of service use using the user terminal 8 of himself/herself (step S205 in
Upon receiving the packet of “service use start” from the user terminal 8, the user management unit 109 of the user management apparatus 1 identifies the user based on the user ID added to the packet, and generates a user-specific parameter necessary for data processing in the SF based on the service information included in the user information managed in association with the user ID. The user management unit 109 then transmits the user-specific parameter to the data processing devices 3-1 to 3-N(SF) on the route of the service chain based on the route information managed in association with the user ID (step S206 in
Although the data transfer devices are not illustrated in
The register management unit 303 of one of the data processing devices 3-1 to 3-N (SF), which has received the packetized parameter, registers the parameter in the data processing unit 302 in association with the user ID added to the received packet.
To use the service, the user transmits the data packet to the data processing system using the user terminal 8 of himself/herself (step S207 in
The tag addition unit 107 of the user management apparatus 1 adds, to the packet, a tag corresponding to the user ID added to the packet whose packet type is “service use”, which is received from the user terminal 8, and outputs the packet with the tag to the packet transmission unit 101. The packet transmission unit 101 of the user management apparatus 1 transmits the packet output from the tag addition unit 107 to the closest data transfer device.
Although the data transfer devices are not illustrated in
The data processing devices 3-1 to 3-N(SF) each receive a packet from the data transfer device connected to the self-device, and transmit the packet that has undergone processing in the SF to the data transfer device. In this way, transferring the packet to the data processing device (SF) by the data transfer device on the route of the service chain is performed a plurality of times, and the packet that has undergone all data processes is transferred by the data transfer device to the external transmission apparatus 4 serving as the end point of the service chain (step S209 in
The external transmission apparatus 4 specifies the user of the destination of the packet based on the user ID added to the received packet, and deletes the tag from the packet. Then, based on the user information corresponding to the user ID, the external transmission apparatus 4 returns the packet with the destination information of TCP/IP to the user terminal 8 (step S210 in
If another user uses the same SF, at the timing of switching the user, the user management unit 109 of the user management apparatus 1 transmits a packet that requests recovery of the parameter specific to the user who has ended service use to the data processing devices 3-1 to 3-N(SF) on the route of the service chain based on the route information managed in association with the user ID of the user. Based on the result of packet analysis by the packet analysis unit 202, the transfer control unit 203 of each data transfer device transfers the recovery request packet from the user management apparatus 1 to the data processing device connected to the self-device among the data processing devices 3-1 to 3-N(SF).
Upon receiving the recovery request packet from the user management apparatus 1, the register management unit 303 of the data processing device deletes, from the data processing unit 302, a parameter corresponding to the user ID included in the recovery request packet. The packet creation unit 304 of the data processing device packetizes the parameter registered in the data processing unit 302, and transmits it to the data transfer device connected to the self-device. The packetized parameter is transferred from the data transfer device to the user management apparatus 1 (step S211 in
The user management unit 109 of the user management apparatus 1 manages the parameter recovered from the data processing devices 3-1 to 3-N(SF) via the data transfer device in association with the user ID of the user who has ended service use. Also, the user management apparatus 1 notifies the user terminal 8 of the end of service use (step S212 in
The timing of determining that the system ends service use is when the user notifies that he/she stops service use or when data is not sent for a predetermined time (timeout). In any case, the user terminal 8 is notified of the end of service use. At this time, if a parameter to the user remains in the data processing devices 3-1 to 3-N(SF), it is recovered (discarded), and a parameter to the next user is transmitted.
In a case where another user is standing by even during service use of the user, after the service is used for a predetermined time, as the result of QoS control or in response to an instruction from the outside, the service is temporarily interrupted, and the data processing devices 3-1 to 3-N(SF) are released for the next user. At this time, the parameter is recovered from the data processing devices 3-1 to 3-N(SF), and the parameter for the next user is transmitted. However, the timing of release is the timing when data processing is finished. For example, in an image processing service, processing is performed on a frame basis. Hence, after transmission of data of one frame is ended, the process shifts to parameter updating processing.
An example of a service that does not use a parameter is a network service. For example, a network service such as firewall, DPI, or load balancing is assumed to be simultaneously used by a plurality of traffics, and parameter switching is unnecessary.
In a cloud service as well, for example, if the same learning data is used in machine learning, or if the same parameter is usable in image processing, parameter switching is unnecessary, and the service can be handled as a service that does not use a parameter.
The data processing system according to this embodiment can use a general IP network for communication with the user terminal 8. In this case, the data processing system uniquely identifies a user from an IP address and a port number described in a packet received from the user terminal 8, and issues a user ID.
The packet of “service use application” includes an Ethernet® header 400, an IP header 401, a TCP header or UDP header 402, a payload 403, and a Frame Check Sequence (FCS) 404.
At the time of service use application, the user terminal 8 stores packet type information indicating “service use application” (a portion 405 in
As described above, the user management unit 109 of the user management apparatus 1 uniquely identifies the user from a transmission source IP address and a transmission source port number extracted from the packet of “service use application”, and issues a user ID. The user management unit 109 returns, to the user terminal 8, a packet in which the issued user ID is stored in the portion 405 in
At the time of service use, the user terminal 8 stores the user ID, a sequence number, and packet type information indicating “service use” in the portion indicated by 405 in the payload 403 of the packet shown in
At the time of service use, in the data processing system, a packet having the format shown in
As described above, in this embodiment, data is managed for each user using the user management apparatuses 1 and 1-1 to 1-6, and control is performed to flow only data for one user per service chain. In this embodiment, it is possible to avoid collision of data in the data processing devices 3-1 to 3-13, and a plurality of users can use one data processing device (service function). Hence, lowering of service function use efficiency can be suppressed even under use by a plurality of users.
Also, in this embodiment, each of the user management apparatuses 1 and 1-1 to 1-6 is formed by the user management unit 109, the tag generation unit 111, the tag addition unit 107, the packet transmission unit 101, the QoS control unit 110, and the data management unit 105, and a tag in which route information is described is added to a packet received from a user, thereby implementing packet communication in the data processing system. Also, in this embodiment, the QoS control unit 110 is provided, thereby controlling priority of packet transfer for each user.
In this embodiment, the data management unit 105 is formed by the user selection units 1052-1 to 1052-N, the user determination units 1051-1 to 1051-N, and the output selection units 1053-1 to 1053-N, and therefore, the packet received from the user can be transferred to the tag addition unit 107 at a timing according to the priority of transfer.
In this embodiment, a plurality of memory controllers 1055-1 to 1055-N formed by the user determination units 1051-1 to 1051-N, the user selection units 1052-1 to 1052-N, and the output selection units 1053-1 to 1053-N, respectively, are provided, and therefore, access to the storage unit 106 can be parallelized, and processing performance can be improved.
In this embodiment, before service use by the user, the user management apparatuses 1 and 1-1 to 1-6 transmit a user-specific parameter necessary for processing of a service function to the data processing devices 3-1 to 3-13 on the route of the service chain based on the route information, and after the end of service use, recover the parameter from the data processing devices 3-1 to 3-13, thereby replacing the parameter for each user and performing data processing using the parameter suitable for each user.
Also, in this embodiment, if a new service function is necessary for implementing the service requested by the user, the communication management apparatuses 5, 5-1, and 5-2 add the necessary service function to the data processing devices 3-1 to 3-13 under operation stop, and after the end of service use, delete the service function from the data processing devices 3-1 to 3-13 used to implement the service, thereby appropriately performing addition and deletion of the service function.
Each of the user management apparatuses 1 and 1-1 to 1-6, the user management and external transmission apparatuses 1a-1 to 1a-9, the data transfer devices 2-1 to 2-9, the data processing devices 3-1 to 3-13, the external transmission apparatuses 4, 4-1 to 4-6, the communication management apparatuses 5, 5-1, and 5-2, and the user terminal 8 described in this embodiment can be implemented by a computer including a CPU (or a GPU), a storage device, and an interface, and a program that controls these hardware resources.
At least some of the user management apparatuses 1 and 1-1 to 1-6, the user management and external transmission apparatuses 1a-1 to 1a-9, the data transfer devices 2-1 to 2-9, the data processing devices 3-1 to 3-13, the external transmission apparatuses 4, 4-1 to 4-6, and the communication management apparatuses 5, 5-1, and 5-2 may be formed by an FPGA or an ASIC. In particular, if part of packet processing and data processing is executed by these pieces of hardware, processing performance can be expected to be improved.
Some or all of the above-described embodiments can also be described as in the following supplementary notes but are not limited to the followings.
(Supplementary Note 1) According to embodiments of the present invention, there is provided a data processing system comprising a user management apparatus configured to perform management of information of a user who applies for use of a service, and transfer control of a packet received from the user, a data processing device configured to perform data processing of a service function for data included in the received packet, one or a plurality of data transfer devices having one or a plurality of data processing devices under control, a communication management apparatus configured to calculate a route of a service chain necessary for implementing the service requested by the user and transmit route information to the user management apparatus, and update a routing table registered in the data transfer device on the calculated route based on a result of route calculation, and an external transmission apparatus configured to return, to the user, the packet that has undergone all data processes of the service chain, wherein the user management apparatus adds, to the packet received from the user, a tag in which the route information is described, and transmits the packet to the data transfer device, the data transfer device transfers the packet to one of the data processing devices under control and other data transfer devices based on the route information included in the tag added to the received packet and the routing table, and the data processing device returns the packet that has underdone the data processing to the data transfer device of a transmission source.
(Supplementary Note 2) In the data processing system according to Supplementary Note 1, the user management apparatus comprises a user management unit configured to manage the information of the user who applies for use of the service, issue a user ID, and notify the user of the issued user ID, a tag generation unit configured to generate the tag in which the route information received from the communication management apparatus is described, a tag addition unit configured to add the tag to the packet received from the user, a packet transmission unit configured to transmit the packet with the added tag to the data transfer device, a QoS control unit configured to decide, based on the information of the user managed by the user management unit, priority of transfer of the packet for each user, and a data management unit configured to transfer the packet received from the user to the tag addition unit at a timing according to the priority, wherein the user ID is added to the packet received from the user.
(Supplementary Note 3) The data processing system according to Supplementary Note 1 further comprises a storage unit configured to temporarily store the packet received from the user, wherein the data management unit comprises a user selection unit configured to selectively extract the packet from the storage unit based on information of the priority, a user determination unit configured to determine whether the packet received from the user has the same user ID as a user ID of a packet that is currently being output to the tag addition unit, and an output selection unit configured to selectively output, to the tag addition unit, a packet output from one of the user determination unit and the user selection unit, and the user determination unit transfers the packet received from the user to one of the storage unit and the output selection unit based on a result of determination.
(Supplementary Note 4) In the data processing system according to Supplementary Note 3, the data management unit comprises a plurality of memory controllers each formed by the user determination unit, the user selection unit, and the output selection unit, and further comprises a packet distribution unit configured to decide the memory controller that is a distribution destination of the packet received from the user and output the packet received from the user to the decided memory controller, and an output control unit configured to select, in accordance with a predetermined control method, a packet output from the output selection unit of each of the plurality of memory controllers, and output the packet to the tag addition unit.
(Supplementary Note 5) In the data processing system according to any one of Supplementary Notes 1 to 4, before service use by the user, the user management apparatus transmits a user-specific parameter necessary for processing of the service function to the data processing device on the route of the service chain based on the route information, and after an end of service use, recovers the parameter from the data processing device.
(Supplementary Note 6) In the data processing system according to any one of Supplementary Notes 1 to 5, if a new service function is necessary for implementing the service requested by the user, the communication management apparatus adds the necessary service function to the data processing device under operation stop, and after the end of service use, deletes the service function from the data processing device used to implement the service.
(Supplementary Note 7) According to embodiments of the present invention, there is provided a data processing method comprising a first step of transmitting, by a user management apparatus, information of a user who applies for use of a service to a communication management apparatus and an external transmission apparatus, a second step of calculating, by the communication management apparatus, a route of a service chain necessary for implementing the service requested by the user, based on service information included in the information of the user, and transmitting route information to the user management apparatus, and updating a routing table registered in a data transfer device on the calculated route based on a result of route calculation, a third step of adding, by the user management apparatus, a tag in which the route information is described to the packet received from the user and transmitting the packet to the data transfer device, a fourth step of transferring, by the data transfer device, the packet to one of data processing devices under control and other data transfer devices based on the route information included in the tag added to the received packet and the routing table managed by a self-device, a fifth step of performing, by the data processing device, processing of a service function for data included in the received packet and returning the packet that has underdone the data processing to the data transfer device of a transmission source, and a sixth step of returning, by the external transmission apparatus, to the user, the packet that has undergone all data processes of the service chain.
(Supplementary Note 8) The data processing method according to Supplementary Note 7 further comprises a seventh step of transmitting, before service use by the user, by the user management apparatus, a user-specific parameter necessary for processing of the service function to the data processing device on the route of the service chain based on the route information, and an eighth step of recovering, after an end of service use, by the user management apparatus, the parameter from the data processing device.
Embodiments of the present invention can be applied to a service function chaining technique.
Number | Date | Country | Kind |
---|---|---|---|
2021-184725 | Nov 2021 | JP | national |
This application is a national phase entry of PCT Application No. PCT/JP2022/041554, filed on Nov. 8, 2022, which claims priority to Japanese Patent Application No. 2021-184725, filed on Nov. 12, 2021, which applications are hereby incorporated herein by reference.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2022/041554 | 11/8/2022 | WO |