Systems, methods, devices and software for negotiating and executing registry composition are described. signaling frameworks for both of these aspects of registry composition are provided.
|
14. A communication node comprising:
a processor for executing a negotiated registry composition agreement by receiving a first message to activate an overlay node, said first message including a list of at least one registry that supports an interface being used by said overlay node; and by sending a second message toward a re-director module of each of said at least one registry in said list;
a signaling application, associated with a signaling layer of said overlay node, for processing said first and second messages; and
a messaging primitive module, associated with a messaging layer of said overlay node, said messaging primitive module including:
a send message primitive function for sending a message to one or more destinations including a group identification parameter and a minimum response parameter indicating a minimum number of responses; and
a receive message primitive function for processing messages received by said overlay node, and selectively passing said messages on to said signaling application when said minimum number of responses have been received.
9. A communication node comprising:
a processor for executing a negotiated registry composition agreement by receiving a first message to activate an overlay node, said first message including a list of at least one registry that supports an interface being used by said overlay node; and by sending a second message toward a re-director module of each of said at least one registry in said list;
wherein said overlay node further comprises:
a signaling application, associated with a signaling layer of said overlay node, for processing said first and second messages; and
a group management module, associated with a messaging layer of said overlay node and in communication with said signaling application, said group management module including:
a create group function for creating a communication group to enable messages to be sent to a plurality of destinations;
an add member function for adding a new member to said communication group;
a remove member function for removing a member from said communication group; and
a change member function for changing an ip address associated with a member of said communication group.
8. A method for executing a negotiated registry composition agreement, comprising:
receiving a first message at an overlay node to activate said overlay node, said first message including a list of at least one registry that supports an interface being used by said overlay; and
sending, from said overlay node, a second message toward a re-director module of each of said at least one registry in said list node
wherein said overlay node further comprises a signaling application, associated with a signaling layer of said overlay node, for processing said first and second messages and a messaging primitive module, associated with a messaging layer of said overlay node, said messaging primitive module including:
a send message primitive function for sending a message to one or more destinations including a group identification parameter and a minimum response parameter indicating a minimum number of responses; and
a receive message primitive function for processing messages received by said overlay node, and selectively passing said messages on to said signaling application when said minimum number of responses have been received.
1. A method for executing a negotiated registry composition agreement, comprising:
following negotiation of the registry composition agreement, receiving a first message at an overlay node to activate said overlay node, said first message including a list of at least one registry that supports an interface being used by said overlay node; and
sending, from said overlay node, a second message toward a re-director module of each of said at least one registry in said list;
wherein said overlay node further comprises:
a signaling application, associated with a signaling layer of said overlay node, for processing said first and second messages; and
a group management module, associated with a messaging layer of said overlay node and in communication with said signaling application, said group management module including:
a create group function for creating a communication group to enable messages to be sent to a plurality of destinations;
an add member function for adding a new member to said communication group;
a remove member function for removing a member from said communication group; and
a change member function for changing an ip address associated with a member of said communication group.
2. The method of
receiving, at said overlay node, a third message indicating that a registry wants to quit from a composed registry associated with said overlay node.
3. The method of
receiving, at said overlay node, a fourth message indicating that a registry wants to rejoin said composed registry associated with said overlay node.
4. The method of
5. The method of
6. The method of
determining a number of overlay nodes to activate based upon a number of registries to be composed.
7. The method of
10. The communication node of
11. The communication node of
12. The communication node of
13. The communication node of
|
The present invention relates generally to automatic composition of networks and, more particularly, to methods, systems, devices and software for performing signaling associated with composing registries and other information associated with network composition.
In the near future, consumers are expected to carry multiple devices that communicate with one another to form small, personal area networks (PANs) that move with the user. In a given area, there may be many users, each with his/her own PAN. The PANs of different users are likely to comprise different devices, use different technologies, and have different resources and capabilities. It would benefit users to make the resources and capabilities of one PAN available to other PANs. For example, one PAN may have Internet access that can be shared with other PANs.
Network interworking allows the sharing of resources between networks so that users in one network can have access to resources in another network. BLUETOOTH and IEEE 802.15 both allow interworking between PANs. However, such interworking typically requires manual configuration and off-line negotiation.
The concept of network composition is gaining acceptance as a viable technique for the seamless and automatic creation of ad-hoc networks without user intervention. Automatic network composition enables interworking between networks “on the fly” in a manner that is transparent to the user. For example, the Ambient Networks Project is currently developing standards for networks called Ambient Networks. An Ambient Network (AN) can be defined as one or more network nodes and/or devices that share a common network control plane called the Ambient Control Space (ACS). The ACS contains all of the network control and management functions, which are organized into functional areas (FAs). Each FA represents a different management task (e.g., QoS, mobility, composition, security, congestion control, etc.). The ACS includes two interfaces: the Ambient Network Interface (ANI) and the Ambient Service Interface (ASI). The ANI enables communication between different Ambient Networks, and the ASI allows access to the services offered by the Ambient Network. The ACS enables automatic composition of networks in a transparent fashion, without manual configuration and off-line negotiation, while taking into account user needs, preferences, locations, and devices.
ANs can host several registries. A registry is any authoritative store of information or repository of data. Examples include Management Information Bases (MIB), relational databases and Context Information Bases (CIB). When ANs compose, the hosted registries need to compose. Registry composition is a sub-process of network composition and provides seamless, autonomous and uniform access to the updated content of all of the registries in the composed network. There are several reasons for performing registry composition. A first reason is that the registries' content may need to compose. Indeed, when ANs compose, the content of the hosted registries may be kept as it is; modified or even merged. Content merging can happen for instance when a new service is proposed by the composed network, by combining elementary services provided by the composing networks. A second reason for performing registry composition is that entities in the composed network may need access to a content hosted by a registry that was in a different network before composition. The interface of such a registry (e.g. SNMP, SQL) may be different from the one used by the interested entity. The granularity and the format of the registry content may also be different from those supported by the interested entity. A third reason for performing registry composition is that new registries may need to be created in order to store the composed content.
The registries to compose may be heterogeneous. They may be of different types (e.g. centralized, distributed), they may store heterogeneous types of information (e.g., raw data vs. aggregated data) that is presented using different formats (e.g., object oriented database, relational database), and they may rely on different interfaces to access the stored information. An interface is either a protocol (e.g. P2P information discovery protocols) or an Application Programming Interface (e.g. UDDI APIs). Registry composition is orchestrated by the Registry Composition Entity (RCE) and can be performed in two main steps, e.g., negotiation of the composition agreement and execution of the agreement.
Registry composition requires dynamic coordination between the control functional entities of the composing networks because these entities need to communicate in order to coordinate and regulate the composition. In order to perform registry composition, a signaling framework is needed.
Various signaling frameworks are available for other types of communication systems. For example, Resource ReSer-Vation Protocol (RSVP) is a resource reservation protocol, for simplex, multicast and unicast data flows. In RSVP, the signaling sessions are defined by the IP addresses of the source and the destination, which prevents RSVP from supporting session mobility. Furthermore, RSVP does not support symbolic names and the signaling is flow dependent. This signaling framework also presents a tight coupling between the signaling semantic (i.e., resources reservation) and the delivery of the signaling messages, which may be undesirable for registry composition.
Session Initiation Protocol (SIP) and H.323 are signaling frameworks associated with call control. SIP is an IETF standard and H.323 is a set of specifications from ITUT. However, SIP is a point-to-point protocol which does not separate the semantic of the signaling application from the message delivery. SIP is also not designed for negotiation and it does not support session mobility. Indeed, if the destination address changes during the same SIP session, there is no way to deal with this change and an error message ‘destination unreachable’ is sent to the entity trying to contact the entity whose address has been changed. H.323 also does not separate transport and signaling functionalities, and it supports neither session mobility nor symbolic names.
Other signaling frameworks include Cross Application Signaling Protocol (CASP), Next Step In Signaling (NSIS) and Generic Ambient Network Signaling (GANS). CASP is a general-purpose signaling protocol suite, which is employed to establish a control state about data flow along its path in the network. This signaling framework addresses the session mobility problem by introducing the concept of a location-independent session identifier. CASP reuses the existing transport and security protocols and decouples message transport from the next signaling hop discovery. NSIS re-uses many CASP concepts, e.g., it is modular, flexible and supports different applications. Furthermore, NSIS enables signaling across different network environments, can be used in different parts of the Internet (e.g., at the edge, in the core, etc.) and supports mobility by allowing efficient service re-establishment after handover. Examples of NSIS-based signaling protocols are the extended RSVP QoS signaling protocol and the middlebox configuration protocol.
GANS is a back-ward compatible generalization of NSIS with extensions including the support of symbolic, names and session mobility and flow independent signaling applications. Signaling applications can address destinations using symbolic names, which are translated by GANS' trans-port layer into corresponding IP addresses. A mechanism is provided to allow dynamic update of the IP-Symbolic name binding.
However, CASP and NSIS do not support both flow-dependent and flow-independent signaling applications, since they only define flow dependent signaling. Moreover, these signaling frameworks do not support symbolic names and, along with GANS, they support only one-to-one communication. Therefore, none of these signaling frameworks CASP, NSIS and GANS are independent of the negotiation model. Furthermore, none of these frameworks provide a signaling application that can be used for registry composition (i.e., none of the designed signaling applications deal with the registry composition specifics).
Accordingly, it would be desirable to provide new signaling frameworks, methods, systems, devices and software associated with network composition.
According to an exemplary embodiment, a method for executing a negotiated registry composition agreement includes the steps of receiving a first message at an overlay node to activate the overlay node, the first message including a list of at least one registry that supports an interface being used by the overlay node, and sending, from the overlay node, a second message toward a re-director module of each of the at least one registry in the list.
According to another exemplary embodiment, a method for negotiating registry composition includes the steps of sending, from a mediator node, an offer to compose registries to at least two participant nodes, and terminating, by the mediator node, participation in the negotiation prior to reaching registry composition agreement.
According to yet another exemplary embodiment, a communication node includes a processor for executing a negotiated registry composition agreement by receiving a first message to activate an overlay node, the first message including a list of at least one registry that supports an interface being used by the overlay node, and by sending a second message toward a re-director module of each of the at least one registry in the list.
According to still another exemplary embodiment, a communication node which operates as a mediator for negotiating registry composition includes a processor for sending an offer to compose registries to at least two participant nodes, and which subsequently decides to terminate its participation in the negotiation prior to reaching a registry composition agreement.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate one or more embodiments and, together with the description, explain these embodiments. In the drawings:
Network composition enables “on the fly” interworking between heterogeneous networks without manual configuration or prior offline negotiation. Network composition results in the creation of a new post composition network, referred to herein as the composed network, in which resources of the pre-composition networks may be shared. As mentioned above, when networks compose, the hosted registries have to follow suit and compose as well. This requires dynamic coordination between the control functional entities of the composing networks because these entities need to communicate in order to coordinate and regulate the composition. Thus, the provision of a signaling framework which facilitates such communications to an Ambient Network architecture would be desirable.
Prior to discussing signaling frameworks according to these exemplary embodiments, an exemplary composable network in which such signaling frameworks can be employed will be described to provide some context.
The network control space 14 comprises a set of control functions to enable interworking between networks 10. These control functions, also referred to as functional areas (FAs), each handle a specific management task, such as Quality of Service (QoS), mobility, security, context awareness, and network composition. The composition FA is responsible for composition related functions as will be hereinafter described. Depending on the type of composition, a new network control space 14 may be created for the composed network.
The network control space 14 includes three interfaces: the network interface 16, the service interface 18, and the resource interface 20. The network interface 16 provides a standard mechanism to enable cooperation between the network control spaces 14 of different networks 10 and hides the complexities of the underlying network technologies so that networks 10 using different technologies appear the same. The networks use a technology independent signaling protocol, such as the Generic Ambient Network Signaling Protocol (GANS), to exchange information over the network interface 16. Applications or clients residing on network nodes 22 use the service interface 18 to access the services provided by the network control space 12. When two networks 10 compose, a single service interface 18 is created for the composed network. The resource interface 20 provides a mechanism to manage the resources residing in the connectivity layer. Applications use the resource interface (indirectly) to access the resources residing on network nodes 22 in the connectivity layer 14.
Individual networks 10 can compose to form composed networks, which can also compose with other networks 10. Network composition enables dynamic and instantaneous interworking of heterogeneous networks 10 on demand and in a transparent fashion without manual configuration or offline negotiation. When two networks 10 compose, they communicate with one another over the network interface 16 to negotiate a network composition agreement (NCA). The NCA specifies the resources that will be shared, the services that will be provided, and the policies that will be implemented to coordinate interoperation of the network control spaces 14 of the pre-composition networks 10. The result of the composition may be a newly composed network that includes all of the logical and physical resources contributed by the pre-composition networks 10. Composition, however, does not necessarily result in a new composed network.
Network composition is a significant feature of ANs which overcomes the limitations of today's static network cooperation, by providing dynamic cooperation between heterogeneous networks, on-demand. Indeed, today's network cooperation relies on off-line agreements and manual configuration operations, and enables access to a very limited set of services (i.e. those identified in the agreement). Network composition allows on-line agreement creation, and seamless and instantaneous access to new services. The cooperation process via network composition is transparent to the end users, but takes user context and network context into account.
Three types of network composition can, for example, be performed: network interworking, control sharing, and network integration. In the first type, each network 10 controls and manages its own resources and no composed network is created. In the second type, some of the resources of the composing networks 10 are contributed to a new composed network. This composed network has its own logical network control space. The composing networks 10 exercise joint control over the shared resources and keep control over the remainder of their own resources. In the third type of network composition, all of the participating networks 10 merge into a new composed network. The composed network thus includes all of the logical and physical resources in the composing networks. A new logical network control space 14 is created during composition and manages the composed network.
The pre-composition networks 10 may include registries 24 that can be accessed by applications. A registry 24 is any authoritative store of information or repository of data, such as a database. The registries 24 hosted by the pre-composition networks 10 can be of different types (e.g., centralized, distributed), they can store different types of information using different formats (e.g., object oriented database, relational database), and they can rely on different interfaces to access the stored information (i.e., protocols such as P2P information discovery protocols or programming interfaces such as UDDI APIs). The registries 24 may also have redirectors associated therewith for redirecting certain requests for information as will be described in more detail below.
According to the present invention, the concept of composition is extended beyond simple network composition to include composition of registries 24 existing in the pre-composition networks 10. When two networks 10 compose, two or more individual registries 24 in the constituent networks 10 are merged into a single logical registry, referred to herein as a merged registry. As used herein, the term “merge” does not necessarily imply the physical merging of the registries 24, but also includes the logical linking of registries 24 so that the combined resources appear to an application in the composed network as a single registry 24. Clients are provided the ability to automatically and seamlessly access the content of the various post composition registries that comprise the merged registry 26. This objective can be achieved by providing an overlay architecture for information discovery and publication after network composition. More information regarding registry composition and overlay networks can be found in, for example, U.S. patent application Ser. No. 11/614,808, entitled “Architecture for an Automatic Composition of Registries When Networks Compose”, filed on Dec. 21, 2006, and published as U.S. Patent Publication No. 2008-0133727, the disclosure of which is incorporated here by reference.
Briefly, an exemplary negotiation protocol associated with registry composition can have three entity roles: i.e., the initiator, the responder and the mediator. The initiator is the entity that initiates the negotiation. The responder is the entity that receives an agreement proposal and decides on its acceptance. In some cases, e.g., point-to-multipoint, there may be multiple responder entities. Collectively, the initiator and responder entities are also referred to herein as “participants”. The mediator orchestrates the negotiation and creates the proposals. The negotiation protocol according to exemplary embodiments defines four types of requests (i.e., Initiate, Ack, Offer, and Bye) and one response type (i.e. Ok). Each response includes a response code that specifies the type of the response (i.e. Accept, Reject, Agreement, and Error).
To start a negotiation session, the initiator 30 sends an Initiate message to the mediator 32, along with the list of participants with which it wants to negotiate as shown in
After the negotiation is started, an entity may need to leave the negotiation (e.g., if the network to which it belongs moves away from the other networks). Accordingly, the negotiation protocol according to these exemplary embodiments enables entities (i.e., a participant 30, 34 or a mediator 32) to quit the negotiation. When a participant 30, 34 decides to quit, it sends a Bye message to the mediator 32. The mediator 32 will either continue the negotiation with the remaining participants or end the negotiation, depending on the negotiation policies (e.g., the negotiation is ended if only one participant 30, 34 remains in the negotiation). If the mediator 32 decides to quit, it sends a Bye message to all of the participants 30, 34, which results in the termination of the negotiation process.
According to exemplary embodiments, the negotiation protocol is further extended to enable the negotiation to continue even if the mediator 32 that orchestrates the negotiation quits. Two cases are considered herein: voluntary and forced departure. Voluntary departure occurs when the mediator 32 decides to leave the negotiation (e.g., if the network to which it belongs moved away from the other networks). Forced departure occurs when the mediator 32 is forced to disconnect from the network (e.g., node failure, connectivity problems, etc.). Starting first with voluntary departure, if an active mediator 32 (i.e., the mediator that is orchestrating an ongoing negotiation) decides to quit, it should insure that the negotiation process will continue among the remaining participants. Therefore, the mediator 32 which intends to voluntarily depart the negotiation should find another mediator 32 that can replace it. This can, for example, be accomplished as follows.
Each mediator 32 is responsible for keeping track of the other mediators 32 in the network. When a mediator 32 joins the network, it publishes itself to the network members. This can be done using any desired information publication protocol (e.g. PDP). When a mediator 32 receives a publication message from another mediator 32, the mediator 32 receiving the publication message then establishes a connection with the newly joined mediator 32. This results in the creation of an overlay network between all of the mediators in the network as shown in
When an active mediator 32 decides to quit a negotiation, it sends a Bye message to one of its neighboring mediators 32, along with the current status of the negotiation and its related information. If no other mediator 32 is part of the network, the mediator 32 sends a Bye message to all of the participants 30, 35, which will terminate the negotiation process. According to one exemplary embodiment, the mediator 32 cannot quit the negotiation if it is waiting for a message from one or more participants. Indeed, if this is allowed, the expected message will be lost, and the status transferred to the new mediator 32 will be corrupted. Therefore, the mediator 32 should quit only when it is in a stable state (i.e., no expected incoming message is missing). The participants 30, 34 will get the address of the new mediator 32 in the next message they receive.
To address forced departures of a mediator 32 according to an exemplary embodiment, each active mediator 32 can choose one of its neighboring mediators 32, e.g., randomly, as its backup. Assuming that the probability that both an active mediator 32 and its backup leave the network at the same time is very low, a single backup mediator 32 may be sufficient. Alternatively, multiple backups could be selected by each active mediator 32. According to this exemplary embodiment, each mediator 32 facilitates detection of the forced departure of the other mediators 32 which it is backing up by periodic heartbeat messages. More specifically, and according to one purely illustrative exemplary embodiment, the scheme proposed in Chunyan Fu, Roch Glitho, and Ferhat Khendek, A Novel Session Recovery Mechanism for Cluster-based Signaling Architecture for Conferencing in MANETs, In the Workshop on Wireless Ad hoc and Sensor Networks (WWASN 2007), June 25, Toronto, the disclosure of which is incorporated here by reference, can be used to detect heartbeats for insertion of backup mediators into a negotiation process.
Therein, a session recovery mechanism is proposed for cluster-based signaling architecture for conferencing in MANET. The conference participants are organized in different clusters, and each cluster has a super-member that is responsible for detecting the forced departure of the members of its cluster and the other super-members. To reach this goal, each super-member maintains a heartbeat session with each member of its cluster and with each of the other super-members. A session is defined as a signaling link between two nodes and heartbeat is defined as a periodic exchange of a request and a reply. According to the present exemplary embodiment, the super-member is the mediator 32, and the members are the participants 30, 35. The session is a link between a mediator 32 and a participant 30, 34 or between two mediators 32.
The backup mediator 32 periodically sends a heartbeat request to the active mediator 32 and starts a timer. If the timer fires and no reply is received, the backup mediator 32 re-sends the request and restarts the timer. If there is still no reply upon a predetermined number of requests, e.g., 1, 2, 3 or 4, the backup mediator 32 decides that the active mediator 32 has unintentionally departed and takes over the role of active mediator for that negotiation. If a backup mediator 32 is no longer reachable, the active mediator 32 to which it is assigned chooses a new backup. If the active mediator 32 disappears, its backup will detect its forced departure using the heartbeat scheme, and will continue its ongoing negotiation sessions.
According to exemplary embodiments, a signaling framework can be provided to facilitate the signaling illustrated in
Fourth, the signaling framework should allow ex-change of the negotiation agreements and proposals. Fifth, it should be modular and extensible. Sixth it should separate the semantic of the signaling application (i.e. registry composition) from the message delivery, so that it can be easily extensible. Seventh, it should enable the usage of existing and standard transport protocols (e.g., TCP, UDP), for transporting signaling messages. Eighth, it should support flow-dependent signaling applications, where the signaling messages follow the flow data path, and flow-independent signaling applications (e.g. network composition). However, those skilled in the art will appreciate that exemplary signaling frameworks according to these exemplary embodiments may exhibit all, or only a subset, of these eight characteristics.
To provide these capabilities, signaling frameworks according to these exemplary embodiments are architected as backward compatible, extended versions of the IETF NSIS (Next Step in Signaling), for which the unextended version is described in the article “Next Step in Signaling (NSIS): Framework, RFC 4080, June 2005, the disclosure of which is incorporated here by reference. More specifically, exemplary embodiments described below provide two types of extensions to the NSIS framework: a messaging layer extension and a Signaling Application for Registry Composition (SARC). Briefly, the messaging layer extension is provided to support flow independent applications, support symbolic names and provide a group management solution to allow point-to-multipoint message delivery. SARC supports signaling associated with different negotiation models for registry compositions. Each of these extensions will now be described in more detail as part of the discussion of an overall, exemplary signaling architecture illustrated as
The architectural design of these exemplary signaling frameworks is based on two layers shown in
The messaging layer 52 comprises two main building blocks: Negotiation-EGIST (N-EGIST) function 54 and Group Management (GM) function 56. N-EGIST function 54 is an extension of the GANS' EGIST function. The GANS' EGIST function provides for support of flow-independent applications and symbolic names. To extend this functionality, the N-EGIST function 54 according to this exemplary embodiment also includes: (1) support of point-to-multipoint signaling, (2) group management, e.g., group members can be identified by their IP addresses and/or symbolic names, (3) interaction between signaling applications 44, 46 and 48 and GM function 56, (4) storage and maintenance of the name binding state, without modifying the routing state information used by EGIST for routing messages towards the group members, and (5) extension of EGIST APIs to handle point-to-multipoint message delivery, which features are not found in EGIST functions described in the GANS framework.
Regarding this latter point, i.e., extension of EGIST APIs, several new parameters associated with EGIST primitives are provided in N-EGIST function 54 to support signaling associated with the aforedescribed negotiations. For example, the SendMessage primitive is used by signaling applications 44, 46 and 48 to send a message to one or more destinations. According to these exemplary embodiments, it has two new parameters: group_id and min_resp. The Group_id parameter identifies the group to which the message should be sent. The Min_resp parameter is the minimum number of different responses that N-EGIST 54 must receive before responding to the application. The Timeout parameter, already defined by GIST, is used as the length of time the N-EGIST layer can wait for min_resp responses.
As another example, the RecvMessage primitive is used by N-EGIST function 54 to transmit received messages to signaling applications 44, 46, and 48. In the case of a response, N-EGIST function 54 verifies whether that response this belongs to an application that requires a certain number (i.e., the value of the min_resp parameter) of responses. If this is not the case, the response is directly transmitted to the application. Otherwise, N-EGIST function 54 waits until it receives the minimum number of required responses, or until the waiting timeout expires. Then, N-ESIST function 54 creates a list containing the number of the responding parties along with their names and responses and passes it to the signaling application 44, 46, 48.
The group management module 56 according to this exemplary embodiment provides the signaling applications 44, 46, 48 with four APIs:
Create_group: creates a communication group, to enable communication with more than one destination (e.g. in case of one-to-many negotiation). This API takes as a parameter the list of symbolic names and/or IP addresses of the destination entities. At least one of the names and IP parameters is not null for each group member. Each group has a unique identifier.
Add_member(group_id, name, ip): Adds a new member-identified by its name or IP address- to a created group.
Remove_member(group_id, name, ip): removes the member identified by its name or IP address from a given group.
Change_member_ip(name, ip): If a group member changes its IP address and the application somehow becomes aware of the new address, it uses this API to make necessary changes to the stored routing state.
To aid in group-related messaging, N-EGIST function 54 obtains the IP addresses of the group members and sends the message to each of them. The addresses of the group members are stored in the routing state table when the group is created. Destination Endpoint Exploration Protocol (DEEP) function 58 is used to obtain the IP address corresponding to a given symbolic name. The E-GIST state maintenance function 57 stores routing information such as mappings between symbolic names and associated IP addresses. The N-EGIST routing state extension function 59 extends the EGIST state maintenance function 57 to allow the storage and maintenance of the routing information such as the list of members of each group along with their symbolic names and IP addresses.
Having now described various aspects of the common layer 42, the discussion will now move on to the signaling layer 40 and, more specifically, to exemplary embodiments of SARC 44. The primary function of SARC 44 is to transfer different messages related to registry composition—encapsulated in SARC messages—between communicating peers. According to this exemplary embodiment, the architecture of SARC 44 includes the definition of two entities: Requestor and Responder. The Requestor is the entity that sends a request and the Responder is the entity that responds to the request. Next, exemplary details associated with SARC APIs, message types, formats, and end-to-end behavior will be provided
Regarding APIs, SARC 44 provides the group management primitives described above, plus the following two interfaces. First, a SendMessage API is provided which can be used by negotiating entities to send a message to peer entities. The primary parameters associate with this API are the type and the payload of the message to send, min_resp, the ID of the destination group (for sending requests), the destination IP address and name (for sending responses), the decision model to use for the negotiation and the negotiation approach. Secondly, a RcvMessage API is provided which can be used by SARC 44 to pass the content of a received message to the local negotiating entity. SARC messages according to this exemplary embodiment include a common header, which indicates the message type, followed by a body made up of a variable number of Type-Length-Value (TLV) objects. This structure makes them flexible and easily expandable. SARC messages according to this exemplary embodiment are of two types: CANegotiation and CAExecution. CANegotiation messages are used for composition agreement (CA) negotiation, whereas CAExecution messages are used for CA execution.
Each of the two message types has sub-types. These sub-types are as follows:
CANegotiation sub-types: Initiate, Ok, Ack, Offer, and Bye.
CAExecution sub-types: ActivateNode, ConfigOv-Node, Join, and Quit.
Starting first with the CANegotiation sub-types, which are, for example illustrated in
The conditions object includes the initiator conditions (if any) concerning the negotiation (e.g., an agreement is reached only if it is accepted by all of the participants). The negotiation model object includes information about the negotiation model to use for a particular negotiation which is being initiated by the message, e.g., the negotiation approach and the decision model.
The Offer message can include, for example, two objects or fields: an offer Identifier object and an offer data object. The offer identifier object is a cryptographically random identifier chosen by the entity that created the offer. The offer data object includes the offer content, and it may be itself a set of TLV objects. Each Ok and Ack message carries a TLV INFO object, which contains a response code and the corresponding object. The response codes according to this exemplary embodiment are as follows:
0x1: Accept
0x2: Reject
0x3: Agreement
0x4: Error
Each of the Agreement and Error codes described above has a corresponding TLV object of the same name. The Agreement object includes three fields: an agreement identifier field, an agreement data field and an agreement validity time. The first two objects are similar to the offer identifier object and offer data object. The agreement validity time specifies the time after which the agreement is no longer valid. Similarly, the Error object has an error data field, which includes the error description. A message carrying a Reject code may transport a reason object, which describes the reason of the rejection. A message with an Accept code may carry a local information object (e.g., when the message is a response to an Initiate message, sent from a destination participant to the mediator to accept the negotiation).
Turning next to the CAExecution sub-types, whose function is described in more detail below with respect to
The registry composition process described above results in, for example, the creation of an overlay network (i.e., a Registry Overlay Network) that provides the interested entities in the composed net-work with uniform and seamless access to the content of all of the registries in that network. The Registry Overlay Network (RON) includes a single overlay node for each Information Publication and Discovery Interface (IPDI) used by a registry in the composed network, and this overlay node supports that IPDI.
According to exemplary embodiments, each overlay node 500 is, e.g., randomly, mapped to a registry 516 that supports the same IPDI using, for example, the CAExecution message sub-types described above. An exemplary signaling diagram is illustrated in
To test the afore-described signaling frameworks, various simulations were conducted. These involved measurements of, for example, two characteristics: network load and delay. Regarding network load, the number of messages which were transmitted associated with negotiating a network composition, for a participant and a mediator to quit the negotiation, for RON creation and for a registry to join and quit the RON were measured and/or calculated. Delays were calculated in seconds and included measurement of the following types of delays: total time delay for successful negotiation and for RON creation, average propagation time delay for successful negotiation, RON creation and for a virtual registry to quit the RON. Total time delay for successful negotiation is the total time delay required for the complete negotiation, i.e., the difference between the time when the initiator 30 creates the first Initiate message, and the time when the mediator receives the last Ack for the agreement. These measurements do not include the delays for internal processing related to the negotiation (e.g., agreement creation).
Similarly, the total time delay for RON creation is the total time delay required for the complete RON creation, i.e., a difference between the time when the RCE creates the first ActivateNode message and the time when the last registry receives a ConfigOvNode message. A different ActivateNode message, e.g., containing different information such as the multicast group members, is created for each virtual registry. Average propagation time delay is the average time delay for a single message to get from the source to the destination.
The composed network being simulated was composed of a number of networks 700, each containing a Registry Composition Entity (RCE) 702, the functional entity responsible for registry composition, as shown in
From
The number of messages exchanged to allow an entity to quit the negotiation according to this exemplary embodiment is two (i.e., a Bye message followed by an Ok message). The total time delay needed for a participant to quit the negotiation is the time needed to exchange those two messages (e.g., about 0.04 s in the case where 20 entities are negotiating). This time remains negligible compared to the total negotiation time delay and the quitting process does not disturb too much the negotiation process among the remaining parties. However, in case of a mediator quitting the negotiation, the quitting time delay depends on the amount of information to be exchanged between the new and the quitting mediators.
For a registry 1006 to quit a RON 1004, only one message may be used (i.e., a Quit message sent to the overlay node 1004). The quitting process is transparent to the other entities in the network (except the overlay node). When an overlay node decides to quit, more processing, messages and time are required. For example, when an overlay node 1004 quits, the RCE 1002 should replace it, which is equivalent to creating a RON with one overlay node and (nbrisame_regs-1) registries. Nbrisame_regs is the number of registries served by the quitting node, including itself.
The foregoing exemplary embodiments describe methods, systems, devices and software for negotiating and executing registry composition. An exemplary (hardware) node 1500 which may be involved in such activities is illustrated as
Thus, according to one exemplary embodiment, a method for executing a negotiated registry composition includes the steps shown in the flowchart of
According to another exemplary embodiment, a method for negotiating registry composition when a mediator leaves an ongoing negotiation includes the steps illustrated in the flowchart of
The present invention may, of course, be carried out in other specific ways than those herein set forth without departing from the scope and essential characteristics of the invention. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the appended claims are intended to be embraced therein.
Glitho, Roch, Dssouli, Rachida, Belqasmi, Fatna
Patent | Priority | Assignee | Title |
10089127, | Nov 15 2011 | NICIRA, INC | Control plane interface for logical middlebox services |
10191763, | Nov 15 2011 | Nicira, Inc. | Architecture of networks with middleboxes |
10235199, | Nov 15 2011 | Nicira, Inc. | Migrating middlebox state for distributed middleboxes |
10310886, | Nov 15 2011 | Nicira, Inc. | Network control system for configuring middleboxes |
10884780, | Nov 15 2011 | Nicira, Inc. | Architecture of networks with middleboxes |
10922124, | Nov 15 2011 | Nicira, Inc. | Network control system for configuring middleboxes |
10949248, | Nov 15 2011 | Nicira, Inc. | Load balancing and destination network address translation middleboxes |
10977067, | Nov 15 2011 | Nicira, Inc. | Control plane interface for logical middlebox services |
11372671, | Nov 15 2011 | Nicira, Inc. | Architecture of networks with middleboxes |
11593148, | Nov 15 2011 | Nicira, Inc. | Network control system for configuring middleboxes |
11740923, | Nov 15 2011 | Nicira, Inc. | Architecture of networks with middleboxes |
8913611, | Nov 15 2011 | NICIRA, INC | Connection identifier assignment and source network address translation |
9306909, | Nov 15 2011 | Nicira, Inc. | Connection identifier assignment and source network address translation |
9697030, | Nov 15 2011 | Nicira, Inc. | Connection identifier assignment and source network address translation |
Patent | Priority | Assignee | Title |
20030065774, | |||
20050157660, | |||
20050198351, | |||
20070025363, | |||
20070192326, | |||
20080133727, | |||
20080198822, | |||
20090207840, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 28 2008 | Telefonaktiebolaget L M Ericsson (publ) | (assignment on the face of the patent) | / | |||
Sep 10 2008 | BELQASMI, FATNA | TELEFONAKTIEBOLAGET L M ERICSSON PUBL | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021755 | /0415 | |
Sep 10 2008 | GLITHO, ROCH | TELEFONAKTIEBOLAGET L M ERICSSON PUBL | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021755 | /0415 | |
Oct 08 2008 | DSSOULI, RACHIDA | TELEFONAKTIEBOLAGET L M ERICSSON PUBL | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 021755 | /0415 |
Date | Maintenance Fee Events |
Feb 23 2015 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 15 2019 | REM: Maintenance Fee Reminder Mailed. |
Sep 30 2019 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Aug 23 2014 | 4 years fee payment window open |
Feb 23 2015 | 6 months grace period start (w surcharge) |
Aug 23 2015 | patent expiry (for year 4) |
Aug 23 2017 | 2 years to revive unintentionally abandoned end. (for year 4) |
Aug 23 2018 | 8 years fee payment window open |
Feb 23 2019 | 6 months grace period start (w surcharge) |
Aug 23 2019 | patent expiry (for year 8) |
Aug 23 2021 | 2 years to revive unintentionally abandoned end. (for year 8) |
Aug 23 2022 | 12 years fee payment window open |
Feb 23 2023 | 6 months grace period start (w surcharge) |
Aug 23 2023 | patent expiry (for year 12) |
Aug 23 2025 | 2 years to revive unintentionally abandoned end. (for year 12) |