WO2015121304A1 - Sdn-based processing platform - Google Patents

Sdn-based processing platform Download PDF

Info

Publication number
WO2015121304A1
WO2015121304A1 PCT/EP2015/052877 EP2015052877W WO2015121304A1 WO 2015121304 A1 WO2015121304 A1 WO 2015121304A1 EP 2015052877 W EP2015052877 W EP 2015052877W WO 2015121304 A1 WO2015121304 A1 WO 2015121304A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
computers
program
forwarding rules
functions
Prior art date
Application number
PCT/EP2015/052877
Other languages
French (fr)
Inventor
Roberto BIFULCO
Maurizio Dusi
Original Assignee
Nec Europe Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nec Europe Ltd. filed Critical Nec Europe Ltd.
Publication of WO2015121304A1 publication Critical patent/WO2015121304A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing

Definitions

  • the present invention relates to a software-defined network (SDN) controller system for distributing processing tasks on a network.
  • SDN software-defined network
  • Datacenters deploy distributed-processing platforms to execute complex computation tasks on data.
  • Platforms such as Hadoop, Storm, Apache S4 and Blockmon allow tasks to be distributed across machines: complex tasks can be parallelized and computational power can scale out by adding nodes to the computational environment.
  • a problem with nowadays' solutions to distributed processing of data is that tasks are basically statically assigned to nodes. Either during the design of the specific application to execute, or before deploying the application, the user or the controller embedded in the platform carries out this assignment. And this assignment will not change during the execution of the application, unless some nodes experience failure: the
  • reassignment of nodes is done without taking into consideration the state of the network underneath, but just the state of the node itself.
  • the reassignment of tasks to machines can be triggered by reasons that are related to the network topology and load: those parameters dynamically change over time, and neither the users nor the controller that comes with the platform have knowledge about it.
  • reasons that are related to the network topology and load those parameters dynamically change over time, and neither the users nor the controller that comes with the platform have knowledge about it.
  • Reasons for doing this can be several: data locality (moving the execution closer to where the data is), change in network topology, etc.
  • a distributed-processing network system 100 includes a plurality of computers 110.1-110.5, and a TCP/IP switch/router 190.
  • Each of the computers 110.1-110.5 is connected as a node via a port to the router 190.
  • Each of the computers 110.1 - 110.5 includes additional components to perform respective computation tasks assigned thereto.
  • computer 110.1 includes a kernel 130.1 with a TCP/IP stack, and a collection of application programs 120.1.
  • Application programs 120.1 include an interface, a control & synchronization logic, a dispatcher, a state memory, and a set of functions.
  • the Platform Controller (illustrated as the TCP/IP switch/router 190) and the overlay nodes (illustrated as the computers 110.1-110.5) exchange information on how the execution of tasks must proceed.
  • the network underneath for instance in the form of SDN switches, becomes then a mere executor of the above
  • the present invention provides switch, or a network of switches, connected to a plurality of computers.
  • the switch, or the network of switches includes a network controller configured to convert a program into a set of forwarding rules.
  • the set of forwarding rules includes information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers.
  • the switch, or the network of switches is configured to forward data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the first or a second one of the computers.
  • FIG. 1 illustrates a traditional distributed-processing network.
  • FIG. 2 illustrates a distributed-processing network according to an embodiment.
  • FIG. 3 illustrates a distributed-processing workflow process according to an embodiment.
  • FIG. 4 illustrates a distributed-processing workflow and a forwarding table according to an embodiment.
  • the present invention provides a mechanism to enable the network to work as a distributed computing platform, where the processing functions are distributed to stateless edge nodes, while the program execution control flow is enforced by a software-defined network (SDN).
  • SDN software-defined network
  • the logic of the controller is moved directly into the SDN controller, and the control and synchronization logic is removed from the nodes.
  • nodes become executor of whatever tasks they are asked to do on each incoming input (e.g., a network packet), and the SDN controller and the switches collaborate to infer the status of the network (e.g., load, topology) and forward incoming input to nodes accordingly.
  • network quantities such as dropping rate
  • this kind of quantities are already collected by switches and transmitted to the controller in a SDN network environment.
  • the SDN controller has full knowledge of the network underneath, it can control the load and change the network topology as needed.
  • nodes are mere executors and dynamic task migration can be done very efficiently.
  • a distributed-processing network system 200 includes a plurality of nodes 210.1-210.5 which each may be a computer, and a TCP/IP switch/router 290 with a SDN controller 291.
  • Each of the nodes 210.1-210.5 is connected as a node via a port to the router 290.
  • Each of the nodes 210.1-210.5 includes additional components to perform respective computation tasks assigned thereto.
  • node 210.1 includes a kernel 230.1 with a TCP/IP stack, and a collection of application programs 220.1.
  • Application programs 220.1 include a state memory, and a set of functions.
  • the SDN controller 291 include a collection of application programs 292 and a SDN control stack 293.
  • Application programs 292 include interface 294, control & synchronization logic 295, and dispatcher 296.
  • a node 210.1-210.5 is therefore modeled with the list of functions it provides, and the Platform Controller (embedded in the SDN controller 291) sees the nodes 210.1- 210.5 as a list of functions that are available to be called.
  • users submit a program 310 to the controller 291 via user request 320, which in turn installs them as functions on the network 200 underneath according to a given allocation strategy 330.2-330.5, corresponding to specific lists of functions to be installed on corresponding specific nodes 210.2-210.5.
  • the controller 291 specifies the flow of the program to be executed into the flow tables of the network elements which interconnect the end-nodes 210.1-210.5 in charge of the computation, and where the operations to execute are written by the network elements directly into the packets flowing into the network.
  • the controller 291 converts the program flow 310 into a set of forwarding rules for the network elements.
  • the controller 291 includes control logic that distributes computing functions to be operated by devices along the network which interconnect the computing nodes, rather than by a platform-specific logic.
  • Computing nodes 210.1-210.5 in a distributed environment are agnostic to the execution of the overall program and that read the computing function and variables to be executed on a given data directly from the packet itself.
  • nodes 210.1-210.5 are not aware of the whole program to execute: they just run particular tasks and return the results. To be precise, they are operational-oriented, meaning that they execute an operation on the incoming data, and send out the result of it.
  • the network is instead in charge of making sure to follow the workflow and have all the nodes working cooperatively to execute the full program as specified by the user. Therefore, the workflow of a program becomes precisely a sequence of matching rules and actions which are represented exactly as the forwarding table of a switch, and they are exactly implemented as forwarding rules in the switch's table.
  • Figure 4 illustrates a distributed-processing workflow and a forwarding table 410 according to an embodiment.
  • the controller 291 converts the program flow 310 into a set of forwarding rules for the network elements, as a forwarding table 410.
  • the forwarding table 410 lists a sequence of matching rules and actions that corresponds to the specific lists of functions installed on corresponding specific nodes 210.2-210.5 connected to ports p2-p5.
  • the user submits data through port pi to the switch 490 implementing the forwarding table 410.
  • the switch 490 sends and receives data packets to and frome the computing nodes 210.2-210.5 to call the specific functions, forward intermediate results, and finally obtain the output on port p6 as the result of program 310.
  • the execution environment is not bound to any particular network protocol and can implement its own.
  • SDN devices usually are meant to read/write only the packet's headers, in which we can embed the following information: function name, output variables and extra input variables.
  • Such fields can be used for dispatching decisions or to drive the next computation.
  • the stream of data on which the computation is actually applied can be stored and switches can leave it untouched.
  • Adding an extra header with a "program id” would allow for execution of multiple concurrent programs.
  • the "program id” needs to be taken into account also by the specialized stack, in order to maintain per-program state if necessary.
  • streams can be represented by a live packet capture, which requires packets to be adapted to the network-centric execution environment. This means that:
  • tags can be pushed in front of the header instead of rewriting it.
  • the SDN Controller can enforce a centralized control over the "speed" of the stream and throttle the amount of packets delivered to the nodes, e.g., the stream can be throttled at the input port (through shaping), or "queue" of nodes can be introduced in the system.
  • task migration may be bound to state migration, because the output of a function may also depend on the current internal state of the function itself.
  • programs/functions description can be extended to explicitly describe the presence or absence of a state; the controller is aware of the tasks which require state, and applies a strategy to migrate state among nodes at need by using techniques available known to a person of ordinary skill in the art.
  • Embodiments of the invention provide the following features and advantages:
  • a network centric execution environment for distributed computing where a central control logic specifies the flow of the program to be executed into the flow tables of the network elements which interconnect the end-nodes in charge of the computation, and where the operations to execute are written by the network elements directly into the packets flowing into the network;
  • a control logic for distributed computing operated by devices along the network which interconnect the computing nodes, rather than by a platform-specific logic;
  • An embodiment of the invention uses the following:
  • a network controller able to convert a program flow description into a set of network elements forwarding rules, which encloses both the operations flow and the computing resources assignment; 3) A network packet encoding strategy to include the operation and input/output data used by the computing node to advance the computation;
  • a node's network stack able to decode/encode the information in the packet and call the corresponding node's computing operation as written in the packet;
  • a node able to execute one or more computing operations.
  • an embodiment of the invention provides that:
  • Program Flow is encoded in the network, and the network steers the execution of the program
  • End hosts can be lightweight (no control interface has to be implemented) and are unaware of the program logic: the impact that their failure has on the computation is reduced as they can be easily replaced; and/or
  • programmable switches are network devices that could be instructed to perform flow-specific computation according to the application requirements.
  • the switches are programmed in advance with the code which is to be executed and the corresponding network flows on which such a code is executed.
  • capsule-based active networking instead, the code that needs to be executed is carried directly in special packets, called capsules.
  • the switch is an executor itself. More precisely, each switch executes a function, while the complete function flows is decided by the endpoints involved in the
  • communication e.g., programming switches in advance using capsules.
  • the network instead, the network itself enforces the program flow, while the actual functions are implemented still at network end-points.
  • Another approach is the process of applying a sequence of services to a given network flow (also referred to as network service chaining).
  • the network operator configures any flow to pass through a fixed set of middleboxes, each one applying a specialized function to the network flows.
  • An example includes a network flow which needs to pass through a firewall and a NAT before accessing an end-point.
  • the network in network service chaining, the network is not aware of the function executed on the devices and does not know about the actual required execution flow. The network is involved only in the role of moving packets from one middlebox to the next one, according to the static provided configuration. Hence, service chains are implemented usually as a static routing solution.
  • the steering itself happens by configuring static IP routes or exploiting some sort of virtual tunnels, e.g., the ones based MPLS, VLAN, etc..
  • the invention can provide a high impact for the design of high-availability distributed platforms, like NEC's Blockmon and M2M CONNEXIVE platform, and in any system for batch and stream processing, like Hadoop, Spark, TwitterStorm, Apache S4. It simplifies the control operations and allows for network-based optimization in the distributed execution environment.
  • the invention can be characterized by checking the exchange of messages between computing nodes within a topology, and the forwarding rules of the switches and the interaction between the controller and the switches in a SDN environment. Additionally, an embodiment of the invention can be characterized by the distributed platform not basing decision on network load or topology. [0047] While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims. In particular, the present invention covers further embodiments with any combination of features from different embodiments described above and below. Additionally, statements made herein characterizing the invention refer to an embodiment of the invention and not necessarily all embodiments.
  • the recitation of "at least one of A, B and C” should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise.
  • the recitation of "A, B and/or C" or "at least one of A, B or C” should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C.

Abstract

A switch, or a network of switches, is connected to a plurality of computers. The switch, or the network of switches, includes a network controller configured to convert a program into a set of forwarding rules. The set of forwarding rules includes information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers. The switch, or the network of switches, is configured to forward data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the first or a second one of the computers.

Description

SDN-BASED PROCESSING PLATFORM
CROSS-REFERENCE TO PRIOR APPLICATION
[0001] Priority is claimed to U.S. Provisional Patent Application Serial No. 61/939,771, filed on February 14, 2014, the entire disclosure of which is hereby incorporated by reference herein.
FIELD
[0002] The present invention relates to a software-defined network (SDN) controller system for distributing processing tasks on a network.
BACKGROUND
[0003] Datacenters deploy distributed-processing platforms to execute complex computation tasks on data. Platforms such as Hadoop, Storm, Apache S4 and Blockmon allow tasks to be distributed across machines: complex tasks can be parallelized and computational power can scale out by adding nodes to the computational environment.
[0004] For reliability purposes, distributed-processing platforms must implement fault- tolerant and high-availability techniques. In case of stream computation, an additional requirement is that the application running on top of the platform should be able to process and extract information from the input messages (e.g., packets) on-the-fly.
[0005] A problem with nowadays' solutions to distributed processing of data is that tasks are basically statically assigned to nodes. Either during the design of the specific application to execute, or before deploying the application, the user or the controller embedded in the platform carries out this assignment. And this assignment will not change during the execution of the application, unless some nodes experience failure: the
reassignment of nodes is done without taking into consideration the state of the network underneath, but just the state of the node itself. [0006] However, the reassignment of tasks to machines can be triggered by reasons that are related to the network topology and load: those parameters dynamically change over time, and neither the users nor the controller that comes with the platform have knowledge about it. In the case where the computational environment is composed of virtual machines, at some point in time, it may be desirable to migrate a virtual machine where a given task is running. Reasons for doing this can be several: data locality (moving the execution closer to where the data is), change in network topology, etc.
[0007] Current solutions in datacenters rely on a control and synchronization logic, which is in charge of:
• Finding (new) execution nodes
• Handling communications between nodes
• Instructing dispatchers on the sequence of functions to call
• Managing reliability and state replications
[0008] The above control and synchronization logic is implemented both on the Platform Controller provided with the processing platform, and on the executing nodes, following a schema as provided in Figure 1.
[0009] As illustrated in Figure 1, a distributed-processing network system 100 includes a plurality of computers 110.1-110.5, and a TCP/IP switch/router 190. Each of the computers 110.1-110.5 is connected as a node via a port to the router 190. Each of the computers 110.1 - 110.5 includes additional components to perform respective computation tasks assigned thereto. For example, computer 110.1 includes a kernel 130.1 with a TCP/IP stack, and a collection of application programs 120.1. Application programs 120.1 include an interface, a control & synchronization logic, a dispatcher, a state memory, and a set of functions.
[0010] Through a common protocol, the Platform Controller (illustrated as the TCP/IP switch/router 190) and the overlay nodes (illustrated as the computers 110.1-110.5) exchange information on how the execution of tasks must proceed. The network underneath, for instance in the form of SDN switches, becomes then a mere executor of the above
instructions: the whole computational environment cannot take advantage of the network information to optimize the execution environment. SUMMARY
[0011] In an embodiment, the present invention provides switch, or a network of switches, connected to a plurality of computers. The switch, or the network of switches, includes a network controller configured to convert a program into a set of forwarding rules. The set of forwarding rules includes information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers. The switch, or the network of switches, is configured to forward data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the first or a second one of the computers.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The present invention will be described in even greater detail below based on the exemplary figures. The invention is not limited to the exemplary embodiments. Other features and advantages of various embodiments of the present invention will become apparent by reading the following detailed description with reference to the attached drawings which illustrate the following:
[0013] FIG. 1 illustrates a traditional distributed-processing network.
[0014] FIG. 2 illustrates a distributed-processing network according to an embodiment.
[0015] FIG. 3 illustrates a distributed-processing workflow process according to an embodiment.
[0016] FIG. 4 illustrates a distributed-processing workflow and a forwarding table according to an embodiment.
DETAILED DESCRIPTION
[0017] In an embodiment, the present invention provides a mechanism to enable the network to work as a distributed computing platform, where the processing functions are distributed to stateless edge nodes, while the program execution control flow is enforced by a software-defined network (SDN). [0018] In the context of a network composed of SDN controller and switches which route information among nodes, the logic of the controller is moved directly into the SDN controller, and the control and synchronization logic is removed from the nodes. In this view, nodes become executor of whatever tasks they are asked to do on each incoming input (e.g., a network packet), and the SDN controller and the switches collaborate to infer the status of the network (e.g., load, topology) and forward incoming input to nodes accordingly. In fact, given a stream-computation environment, network quantities, such as dropping rate, help to infer the current state and the capabilities of a node, and this kind of quantities are already collected by switches and transmitted to the controller in a SDN network environment. As the SDN controller has full knowledge of the network underneath, it can control the load and change the network topology as needed. On the other side, nodes are mere executors and dynamic task migration can be done very efficiently.
[0019] A schema of the proposed solution according to an embodiment is given in Figure 2.
[0020] As illustrated in Figure 2, a distributed-processing network system 200 includes a plurality of nodes 210.1-210.5 which each may be a computer, and a TCP/IP switch/router 290 with a SDN controller 291. Each of the nodes 210.1-210.5 is connected as a node via a port to the router 290. Each of the nodes 210.1-210.5 includes additional components to perform respective computation tasks assigned thereto. For example, node 210.1 includes a kernel 230.1 with a TCP/IP stack, and a collection of application programs 220.1.
Application programs 220.1 include a state memory, and a set of functions. The SDN controller 291 include a collection of application programs 292 and a SDN control stack 293. Application programs 292 include interface 294, control & synchronization logic 295, and dispatcher 296.
[0021] The idea is to change the computation paradigm so that each computer/node 210.1-210.5 provides and advertises to the SDN controller 291 a set of functions
(capabilities) in the following form: function n am e( sir earn, [input list]) : [output list] [0022] A node 210.1-210.5 is therefore modeled with the list of functions it provides, and the Platform Controller (embedded in the SDN controller 291) sees the nodes 210.1- 210.5 as a list of functions that are available to be called.
[0023] As illustrated in Figure 3, users submit a program 310 to the controller 291 via user request 320, which in turn installs them as functions on the network 200 underneath according to a given allocation strategy 330.2-330.5, corresponding to specific lists of functions to be installed on corresponding specific nodes 210.2-210.5.
[0024] The controller 291 specifies the flow of the program to be executed into the flow tables of the network elements which interconnect the end-nodes 210.1-210.5 in charge of the computation, and where the operations to execute are written by the network elements directly into the packets flowing into the network.
[0025] The controller 291 converts the program flow 310 into a set of forwarding rules for the network elements. The controller 291 includes control logic that distributes computing functions to be operated by devices along the network which interconnect the computing nodes, rather than by a platform-specific logic.
[0026] Computing nodes 210.1-210.5 in a distributed environment are agnostic to the execution of the overall program and that read the computing function and variables to be executed on a given data directly from the packet itself.
[0027] One particular advantage provided by an embodiment of the invention is that nodes 210.1-210.5 are not aware of the whole program to execute: they just run particular tasks and return the results. To be precise, they are operational-oriented, meaning that they execute an operation on the incoming data, and send out the result of it. The network is instead in charge of making sure to follow the workflow and have all the nodes working cooperatively to execute the full program as specified by the user. Therefore, the workflow of a program becomes precisely a sequence of matching rules and actions which are represented exactly as the forwarding table of a switch, and they are exactly implemented as forwarding rules in the switch's table.
[0028] Figure 4 illustrates a distributed-processing workflow and a forwarding table 410 according to an embodiment. [0029] As illustrated in Figure 4, the controller 291 converts the program flow 310 into a set of forwarding rules for the network elements, as a forwarding table 410. The forwarding table 410 lists a sequence of matching rules and actions that corresponds to the specific lists of functions installed on corresponding specific nodes 210.2-210.5 connected to ports p2-p5.
[0030] During distributed processing, the user submits data through port pi to the switch 490 implementing the forwarding table 410. The switch 490 sends and receives data packets to and frome the computing nodes 210.2-210.5 to call the specific functions, forward intermediate results, and finally obtain the output on port p6 as the result of program 310.
[0031] Given the proposed schema, the execution environment is not bound to any particular network protocol and can implement its own. In this regard, SDN devices usually are meant to read/write only the packet's headers, in which we can embed the following information: function name, output variables and extra input variables. Such fields can be used for dispatching decisions or to drive the next computation. In the packet's payload the stream of data on which the computation is actually applied can be stored and switches can leave it untouched. Adding an extra header with a "program id" would allow for execution of multiple concurrent programs. The "program id" needs to be taken into account also by the specialized stack, in order to maintain per-program state if necessary.
[0032] In stream computation, streams can be represented by a live packet capture, which requires packets to be adapted to the network-centric execution environment. This means that:
• header rewriting can take place at the network INPUT port;
• if required, rewriting can also happen at the network OUTPUT port in order to restore the original header of the packets; and/or
• If the packet header needs to be preserved, tags can be pushed in front of the header instead of rewriting it.
[0033] At this point in time, the problem of how to carry the information required by the execution environment in the packets is considered with respect to implementation details. [0034] The SDN Controller can enforce a centralized control over the "speed" of the stream and throttle the amount of packets delivered to the nodes, e.g., the stream can be throttled at the input port (through shaping), or "queue" of nodes can be introduced in the system.
[0035] In regard to the state of a node, task migration may be bound to state migration, because the output of a function may also depend on the current internal state of the function itself. To handle this, programs/functions description can be extended to explicitly describe the presence or absence of a state; the controller is aware of the tasks which require state, and applies a strategy to migrate state among nodes at need by using techniques available known to a person of ordinary skill in the art.
[0036] Embodiments of the invention provide the following features and advantages:
1) A network centric execution environment for distributed computing, where a central control logic specifies the flow of the program to be executed into the flow tables of the network elements which interconnect the end-nodes in charge of the computation, and where the operations to execute are written by the network elements directly into the packets flowing into the network;
2) A network centric execution environment where a central control logic converts the program flow into a set of forwarding rules for the network elements;
3) A control logic for distributed computing operated by devices along the network which interconnect the computing nodes, rather than by a platform-specific logic; and/or
4) Computing nodes in a distributed environment which are agnostic to the execution of the overall program and that read the computing function and variables to be executed on a given data directly from the packet itself.
[0037] An embodiment of the invention uses the following:
1) A software defined network which connects the computing nodes;
2) A network controller able to convert a program flow description into a set of network elements forwarding rules, which encloses both the operations flow and the computing resources assignment; 3) A network packet encoding strategy to include the operation and input/output data used by the computing node to advance the computation;
4) A node's network stack able to decode/encode the information in the packet and call the corresponding node's computing operation as written in the packet; and/or
5) A node able to execute one or more computing operations.
[0038] Common distributed-processing platforms, such as TwitterStorm and Apache S4, rely on the presence of a controller, and interfaces on the nodes to exchange control messages with the controller itself. Operations such as task assignment or dynamic topology change are statically assigned by the controller (or by the user) before executing the distributed application. In case of failure, such topology might change, but no network load or topology information is taken into account during the execution.
[0039] Such information is embedded by routing and forwarding devices in SDN networks, and none of the existing distributed platforms take that into account.
[0040] E.g., unlike current computing platforms, an embodiment of the invention provides that:
1) Program Flow is encoded in the network, and the network steers the execution of the program;
2) End hosts can be lightweight (no control interface has to be implemented) and are unaware of the program logic: the impact that their failure has on the computation is reduced as they can be easily replaced; and/or
3) The functions to be executed on a packet and its additional state variables are encoded into the packet headers.
[0041] Scientific literature presented in the past the concept of enabling the network in being "computation aware". This was achieved by making switches able to execute arbitrary code when processing network flows, creating a so called active network. Two approaches were defined to this purpose, varying in the way the switches were programmed:
programmable switches and capsule-based networking. Programmable switches, are network devices that could be instructed to perform flow-specific computation according to the application requirements. With this approach the switches are programmed in advance with the code which is to be executed and the corresponding network flows on which such a code is executed. In capsule-based active networking, instead, the code that needs to be executed is carried directly in special packets, called capsules. In both cases, differently from our approach, the switch is an executor itself. More precisely, each switch executes a function, while the complete function flows is decided by the endpoints involved in the
communication, e.g., programming switches in advance using capsules. In an approach according to an embodiment of the present invention, instead, the network itself enforces the program flow, while the actual functions are implemented still at network end-points.
[0042] Another approach is the process of applying a sequence of services to a given network flow (also referred to as network service chaining). In this case the network operator configures any flow to pass through a fixed set of middleboxes, each one applying a specialized function to the network flows. An example includes a network flow which needs to pass through a firewall and a NAT before accessing an end-point. In contrast to an embodiment of the present invention, in network service chaining, the network is not aware of the function executed on the devices and does not know about the actual required execution flow. The network is involved only in the role of moving packets from one middlebox to the next one, according to the static provided configuration. Hence, service chains are implemented usually as a static routing solution.
[0043] The steering itself happens by configuring static IP routes or exploiting some sort of virtual tunnels, e.g., the ones based MPLS, VLAN, etc..
[0044] An adaptation of the traffic entering the system is provided in order to correctly handle the program execution flow.
[0045] The invention can provide a high impact for the design of high-availability distributed platforms, like NEC's Blockmon and M2M CONNEXIVE platform, and in any system for batch and stream processing, like Hadoop, Spark, TwitterStorm, Apache S4. It simplifies the control operations and allows for network-based optimization in the distributed execution environment.
[0046] In an embodiment, the invention can be characterized by checking the exchange of messages between computing nodes within a topology, and the forwarding rules of the switches and the interaction between the controller and the switches in a SDN environment. Additionally, an embodiment of the invention can be characterized by the distributed platform not basing decision on network load or topology. [0047] While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. It will be understood that changes and modifications may be made by those of ordinary skill within the scope of the following claims. In particular, the present invention covers further embodiments with any combination of features from different embodiments described above and below. Additionally, statements made herein characterizing the invention refer to an embodiment of the invention and not necessarily all embodiments.
[0048] The terms used in the claims should be construed to have the broadest reasonable interpretation consistent with the foregoing description. For example, the use of the article "a" or "the" in introducing an element should not be interpreted as being exclusive of a plurality of elements. Likewise, the recitation of "or" should be interpreted as being inclusive, such that the recitation of "A or B" is not exclusive of "A and B," unless it is clear from the context or the foregoing description that only one of A and B is intended. Further, the recitation of "at least one of A, B and C" should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise. Moreover, the recitation of "A, B and/or C" or "at least one of A, B or C" should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C.

Claims

PATENT CLAIMS What is claimed is:
1. A switch, or a network of switches, connected to a plurality of computers, the switch, or the network of switches, comprising: a network controller configured to convert a first program into a first set of forwarding rules, the first set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers, wherein the switch, or the network of switches, is configured to forward data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the first or a second one of the computers.
2. The switch, or the network of switches, of claim 1, wherein the switch, or the network of switches, is configured to encode network packets to include the functions assigned to be executed in the respective ones of the computers and data for processing the functions.
3. The switch, or the network of switches, of claim 1 or claim 2, wherein the network controller is configured to convert a second program into a second set of forwarding rules, the second set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers, and wherein the second set of forwarding rules is executed in parallel to the first set of forwarding rules.
4. The switch, or the network of switches, of claim 3, wherein a program identification is encoded in the network packets to identify the first program and the second program.
5. The switch, or the network of switches, of any of claims 1 to 4, wherein the switch, or the network of switches, is configured to forward different data representing results of the different functions to different ones of the computers in accordance with the forwarding rules such that a final result of the program is obtainable without any of the computers having full knowledge of the program.
6. A method of controlling a switch, or a network of switches, connected to a plurality of computers, the method comprising: receiving a first program via a user request at a network controller; converting, by the network controller, the first program into a first set of forwarding rules, the first set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers; and forwarding, by the switch, or the network of switches, data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the second one of the computers.
7. The method of claim 6, further comprising encoding, by the switch, or the network of switches, network packets to include the functions assigned to be executed in the respective ones of the computers and data for processing the functions.
8. The method of claim 6 or claim 7, further comprising, converting, by the network controller, a second program into a second set of forwarding rules, the second set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers, the second set of forwarding rules being executable in parallel to the first set of forwarding rules.
9. The method of claim 8, wherein a program identification is encoded in the network packets to identify the first program and the second program.
10. The method of any of claims 6 to 9, wherein the switch, or the network of switches, forwards different data representing results of the different functions to different ones of the computers in accordance with the forwarding rules so as to obtain a final result of the program without any of the computers having full knowledge of the program.
11. A system comprising: a plurality of computers connected in a network; and a switch, or a network of switches, including a network controller configured to convert a first program into a first set of forwarding rules, the first set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers, wherein the switch, or the network of switches, is configured to forward data which includes a result of a first one of the functions from a first one of the computers for use in a second one of the functions, based on the first set of forwarding rules, such that the second one of the functions is executable by the first or a second one of the computers.
12. The system of claim 11, wherein the switch is configured to encode network packets to include the functions assigned to be executed in the respective ones of the computers and data for processing the functions.
13. The system of claim 11 or claim 12, wherein the network controller is configured to convert a second program into a second set of forwarding rules, the second set of forwarding rules including information to control data flow between the computers and different functions assigned to be executed in respective ones of the computers, and wherein the second set of forwarding rules is executed in parallel to the first set of forwarding rules.
14. The system of claim 13, wherein a program identification is encoded in the network packets to identify the program and the second program.
15. The system of any of claims 11 to 14, wherein the switch is configured to forward different data representing results of the different functions to different ones of the computers in accordance with the forwarding rules such that a final result of the program is obtainable without any of the computers having full knowledge of the program.
PCT/EP2015/052877 2014-02-14 2015-02-11 Sdn-based processing platform WO2015121304A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461939771P 2014-02-14 2014-02-14
USUS61/939,771 2014-02-14

Publications (1)

Publication Number Publication Date
WO2015121304A1 true WO2015121304A1 (en) 2015-08-20

Family

ID=52633225

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2015/052877 WO2015121304A1 (en) 2014-02-14 2015-02-11 Sdn-based processing platform

Country Status (1)

Country Link
WO (1) WO2015121304A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107179912A (en) * 2017-06-07 2017-09-19 广州市品高软件股份有限公司 A kind of hot upgrade method of distributed structure/architecture software defined network controller
US10083224B2 (en) 2016-03-15 2018-09-25 International Business Machines Corporation Providing global metadata in a cluster computing environment

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BOUCADAIR C JACQUENET FRANCE TELECOM R PARKER AFFIRMED NETWORKS D LOPEZ TELEFONICA I+D P YEGANI M: "Differentiated Service Function Chaining Framework; draft-boucadair-network-function-chaining-03.txt", DIFFERENTIATED SERVICE FUNCTION CHAINING FRAMEWORK; DRAFT-BOUCADAIR-NETWORK-FUNCTION-CHAINING-03.TXT, INTERNET ENGINEERING TASK FORCE, IETF; STANDARDWORKINGDRAFT, INTERNET SOCIETY (ISOC) 4, RUE DES FALAISES CH- 1205 GENEVA, SWITZERLAND, 21 August 2013 (2013-08-21), pages 1 - 22, XP015093513 *
FOSTER N ET AL: "Languages for software-defined networks", IEEE COMMUNICATIONS MAGAZINE, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 51, no. 2, 1 February 2013 (2013-02-01), pages 128 - 134, XP011505038, ISSN: 0163-6804, DOI: 10.1109/MCOM.2013.6461197 *
YING ZHANG ET AL: "StEERING: A software-defined networking for inline service chaining", 2013 21ST IEEE INTERNATIONAL CONFERENCE ON NETWORK PROTOCOLS (ICNP), IEEE, 7 October 2013 (2013-10-07), pages 1 - 10, XP032563772, DOI: 10.1109/ICNP.2013.6733615 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10083224B2 (en) 2016-03-15 2018-09-25 International Business Machines Corporation Providing global metadata in a cluster computing environment
US10083221B2 (en) 2016-03-15 2018-09-25 International Business Machines Corporation Providing global metadata in a cluster computing environment
CN107179912A (en) * 2017-06-07 2017-09-19 广州市品高软件股份有限公司 A kind of hot upgrade method of distributed structure/architecture software defined network controller
CN107179912B (en) * 2017-06-07 2020-09-01 广州市品高软件股份有限公司 Hot upgrading method for distributed architecture software defined network controller

Similar Documents

Publication Publication Date Title
US11625154B2 (en) Stage upgrade of image versions on devices in a cluster
EP3143733B1 (en) Virtual flow network in a cloud environment
US20150085870A1 (en) Co-operative load sharing and redundancy in distributed service chains in a network environment
US9491094B2 (en) Path optimization in distributed service chains in a network environment
US9203765B2 (en) Flow based network service insertion using a service chain identifier
CN108062482B (en) Method and apparatus for providing virtual security appliance architecture to virtual cloud infrastructure
CN112398676B (en) Vendor-independent profile-based modeling of service access endpoints in a multi-tenant environment
Tourrilhes et al. Sdn and openflow evolution: A standards perspective
US9548890B2 (en) Flexible remote direct memory access resource configuration in a network environment
CN103763367A (en) Method and system for designing distributed virtual network in cloud calculating data center
CN107003860B (en) Software defined network controller and creating method thereof
EP3821589B1 (en) Session management in a forwarding plane
KR20160042441A (en) Application-aware network management
CN105915470A (en) Flexible bandwidth configuration method based on Linux flow control
US10652213B2 (en) Agent-less micro-segmentation of a network
CN105052113A (en) Common agent framework for network devices
Davoli et al. Implementation of service function chaining control plane through OpenFlow
KR20180028499A (en) Method and system for providing ICT service
US20190199622A1 (en) Data packet forwarding unit in a data transmission network
WO2015121304A1 (en) Sdn-based processing platform
US10079718B1 (en) Network traffic processing system
KR101543735B1 (en) System and method for processing packets for nfv
Shuo et al. Nxt-Max: for supporting VDC-based maximum redundant bandwidth allocation in cloud datacenter
US11895013B1 (en) Systems and methods to migrate a virtual sub-network
Cortes Simulation of Software Defined Networks With Open Network Operating System and Mininet

Legal Events

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

Ref document number: 15708742

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15708742

Country of ref document: EP

Kind code of ref document: A1