Abstract:
A centralized multicast session management system is provided for managing resources in a multicast environment. The session management system includes: at least one multicast application that is able to initiate a request for a multicast session; a session manager adapted to receive the session request from the multicast application and operable to assign a multicast address for the requested multicast session; and a routing and network manager for managing network resources, where the session manager interacts with the routing and network manager to allocate network resources for the requested multicast session before the multicast address is communicated to the multicast application.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS  
       [0001]     This application is a continuation-in-part of U.S. patent application Ser. No. 10/445,380 filed on May 23, 2003. The disclosure of the above application is incorporated herein by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to multicasting and, more particularly, to a centralized architecture for managing multicast resources to meet the application requirements.  
       BACKGROUND OF THE INVENTION  
       [0003]     IP multicast is widely used for data/media distribution purposes because it allows efficient use of network resources to deliver data from one or more sources to multiple receivers. Many application systems are adopting this technology to distribute bandwidth-intensive data to save the network resources and therefore lowering the network cost for such application. However, the performance for multicast applications are often out of the control of application itself. Without proper management, multicasting can be harmful to network performance.  
         [0004]     Therefore, it is desirable to provide a management framework for multicast intensive systems to manage the multicast sessions, address allocation, routing path computation, multicast security, and network resource utilizations.  
       SUMMARY OF THE INVENTION  
       [0005]     A centralized multicast session management system is provided for managing resources in a multicast environment. The session management system includes: at least one multicast application that is able to initiate a request for a multicast session; a session manager adapted to receive the session request from the multicast application and operable to assign at least one multicast address for the requested multicast session; and a routing and network manager for managing network resources, where the session manager interacts with the routing and network manager to allocate network resources for the requested multicast session before the multicast address is communicated to the multicast application.  
         [0006]     Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0007]      FIG. 1  depicts a multicast session management system according to the principles of the present invention;  
         [0008]      FIG. 2  depicts an exemplary session manager in accordance with the present invention;  
         [0009]      FIGS. 3 and 4  are diagrams illustrating how a path for a session may be dynamically changed by the multicast session management system of the present invention;  
         [0010]      FIGS. 5A-5C  are flowcharts depicting an exemplary session registration procedure as may be implemented by the session management service of the present invention; and  
         [0011]      FIGS. 6A and 6B  are flowcharts depicting an exemplary implementation for the session monitor of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0012]     A multicast session is a communication flow between one or more multicast source application instances and one or more multicast receiver application instances. These instances share one or more of the same multicast communication channels. A multicast session shall be identified with a uniform resource identifier. It is further defined by the following properties: name, description information, list of channels, authentication specification, timing specification and membership information, including a source list and a destination list.  
         [0013]     A multicast channel is one thread of a multicast communication. A channel is determined by a multicast address and a transport layer port number (e.g., UDP port). Besides, the channel has the following properties: channel description, injection type (e.g., one-source or multiple-source), flow type (e.g., variable or constant bit rate), reliability requirement (e.g., reliable, real-time, or best-effort), bandwidth specification (i.e., minimum required bandwidth, peak bandwidth, average bandwidth, etc.), flow specification (i.e., minimum packet size, maximum packet size, average packet size, etc.) and security specifications.  
         [0014]      FIG. 1  depicts a multicast session management system according to the principles of the present invention. The multicast session management system  10  is comprised generally of a session manager  12 , a routing and network manager  14 , a security manager  16 , multicast applications  18  and networking devices  19  (e.g., routers and switches). It is readily understood that the network environment may include other types of network components.  
         [0015]     A multicast application  18  is a class of multicast application instances  17 , which can be further categorized as multicast source application instances and multicast receiver application instances. For example, in a multicast-based video surveillance system (i.e. video surveillance application), a multicast-capable network camera is an exemplary multicast source application instance and a surveillance monitor capable of receiving multicasted surveillance video is an exemplary multicast receiver application instance.  
         [0016]     Optionally, a multicast application may contain an application configuration manager  22  (also referred to as a device manager). If a device manager is present for a certain application, the device manager is responsible to initiate/close the application sessions, as well as interact with multicast application instances to further distribute the multicast session resources to the multicast application instances.  
         [0017]     Referring to  FIG. 2 , the session manager  12  is designed to manage all multicast sessions in the network. Session management functions are primarily implemented by a session management service  20  residing on the session manager  12 . The session management service  20  also interfaces with other services, external interfaces, and data stores. Each of these components are further described below.  
         [0018]     Multicast applications must register with the session manager  12  to obtain access to the network for multicasting traffic. A session manager application program interface (API)  24  provides the interface to register with the session manager  12 . In addition to application registration, the session manager API may also provide interfaces to: initialize a connection with the session manager, register a session request, make a change to a registered session, cancel a session, unregister an application instance with the session manager, provide performance feedback to a session monitor, and request information regarding a registered session. It is readily understood that each of these requested functions are implemented by a session management service  20 .  
         [0019]     An multicast session initiator  26  is a software component that initiates the session registration procedure. The session initiator  26  can be part of an application instance or can be a dedicated entity implemented in conjunction with another type of network component, such as the device manager.  
         [0020]     Upon receiving a session registration request, the session management service  20  may assign at least one multicast address for the requested session as will be further described below. To do so, the session management service  20  maintains a pool  32  of available multicast addresses. A multicast address can then be allocated from the address pool  32 . Alternatively, the session management service  20  may interface with an external server to obtain an available multicast address. In an exemplary embodiment, the session management service  20  reserves a block of address for the address pool  32  through the use of the Multicast Address Dynamic Client Allocation protocol and, if necessary, may reserve additional addresses as needed.  
         [0021]     Each channel is identified by a unique combination of a multicast address and a port number. To the extent that a session employs more than one channel, the session management service  20  must also assign a transport layer port number for each channel in the requested session. The port number can likewise be allocated from a pool  38  of available port numbers.  
         [0022]     In addition, a network management interface  42  enables the session management service  20  to interface with a routing and network manager  14  in order to allocate network resources for a requested multicast session. More specifically, the routing and network manager  14  is operable to compute a preferred network path for a requested session as well as reserve network bandwidth for the session. When a channel is removed from a session, the routing and network manager  14  is notified to release these resources. Similarly, if changes occur is channel properties which requires a change in allocated network resources, the routing and network manager  14  is notified so that network resources may be reallocated accordingly. An exemplary routing and network manager  14  is further described in U.S. patent application Ser. No. 10/445,380 which is assigned to present assignee and incorporated by reference herein.  
         [0023]     Upon successfully registering a session, the session management service  20  spawns an instance of a session monitor  28  to monitor the session. The session monitor is adapted to receive performance feedback for the session from the multicast applications associated with the session. In response to poor session performance, the session monitor  28  shall determine whether the current path allocation needs to be changed and, if so, interface with the routing and network manager to allocation a new path for the session. An exemplary implementation of the session monitor is shown in  FIG. 6 .  
         [0024]     Information regarding registered sessions is also maintained by the session management service  20  in a session registry  30 . Session information includes a uniform resource identifier, name, description information, list of channels, authentication specification, timing specification and membership information, including a source list and a destination list. As will be further described below, the session registry  30  also maintains an assigned multicast address and an assigned transport layer port number for each channel in a given session.  
         [0025]     The session management service  20  may also employ the use of digital certificates. To do so, the session management service  20  interfaces via a security management interface  44  with a security manager  16 . The security manager  16  issues an encrypted digital certificate containing a public key and other identification information. To authenticate each other, components in the network (multicast instances as well as the session manager) may obtain and validate digital certificates from the security manager  16 . If the session content needs to be transmitted via encryption, the source may generate its keys and publish its public key via its registration procedure with the session manager, so that authenticated and authorized receivers may obtain the public key to decrypt the transmitted data.  
         [0026]     In operation, the session initiator requests creation of a multicast session. The request is received by the session management service which in turn initiates the registration process. To register a session, the session management service first extracts the pertinent information from the request, such as multicast sources, multicast destinations, and QoS requirements. This session information is then inserted into the session registry  30 . The session management service  20  may optionally interface with the security manager  16  to authenticate and authorize the session request from the requester.  
         [0027]     Next, the session management service  20  invokes the routing and network manager to determine possible paths for the requested session. If an existing path can be used for the session, then the multicast address associated with this path is returned to the session manager. The session management service  20  updates the session registry  30  with the assigned multicast address, thereby binding the multicast session with the multicast address.  
         [0028]     If a new path is needed for the session, then the routing and network manager  14  computes one or more paths for the session. The need for a new path is communicated to the session management service  20  which in turn assigns a multicast address for each requested channel in the session. When different channels use the same path, these channels are assigned the same multicast address, but are assigned different UDP port numbers to distinguish from each other. It is also contemplated that different channels in the same session many require different paths and thus are assigned different multicast addresses. The session management service  30  again updates the session registry  30  with the assigned multicast address and port number for each channel, thereby binding the multicast session. In addition, the session management service  20  communicates the assigned multicast address back to the routing and network manager  14 .  
         [0029]     The routing and network manager  14  will use the assigned multicast address to provision network routing devices  19  in a manner well known in the art. However, unlike conventional approaches, the network routing devices may only forward packets associated with registered sessions. Any other multicast traffic which enters the system will be discarded.  
         [0030]     Once the requested session has been successful bound with at least one multicast address, the session management service  20  communicates the assigned multicast address to the requesting multicast application  18 , thereby enabling initiation of the session. If no multicast address is available, a path is unable to be assigned, or some other failure occurs in the registration process, then the session request is not granted. In this way, the session manager wholly manages any multicasting which occurs in the network environment. A more detailed illustration of the registration procedure as may be implemented by the session management service is found in  FIGS. 5A-5C .  
         [0031]     In conventional approaches, each multicast session uses a different multicast address and is bound to the address for the lifetime of the session. Even if two multicast applications are aggregated under one address, it is difficult to regroup one of the sessions with another group or otherwise detach the two sessions. The multicast session management system of the present invention enables sessions to be dynamically assigned to different addresses without terminating the session.  
         [0032]     To illustrate this point, an exemplary multicasting configuration is further described in relation to  FIGS. 3 and 4 . In  FIG. 3 , two multicast source applications  54 ,  56  are located in a first subnet  52 ; whereas, a multicast destination application for each of these two source applications are located in two other subnets  58 ,  59 . In this example, it is possible for the multicast session management system  10  to allocate the same path designated as  60  for both of the applications. To do so, the same multicast address is shared by both applications, but each application employs a different transport layer port number in order to distinguish the sessions.  
         [0033]     Suppose that the session requirements for the first application  54  change (e.g., require more bandwidth) so that the allocated path can no longer meet the requirements. The multicast session management system  10  may opt to recompute a path which can support the new requirements. If such a path is available, the network and routing manager provisions the network accordingly.  
         [0034]     Alternatively, it may be necessary to segment the sessions to meet the new requirements as shown in  FIG. 4 . In this instance, the multicast session management system  10  determines a new path for the application as indicated at  62 . It is envisioned that the new path may be selected from a currently allocated path. If applicable, the new path is assigned an available multicast address. The newly assigned address is then recorded in the session registry as well as communicated to the applications associated with the session. In this example, applicable applications are designated as  56 ,  64  and  66  By using the newly assigned address, the multicast session has been switched to a new path.  
         [0035]     In many instances, a change in the multicast address is sufficient to switch a session to a new path. However, in other instances, it may be necessary to reassign the port number in order to distinguish the session from a session currently using the newly assigned multicast address. The multicast session management system of the present invention provides the flexibility to change either the multicast address, port number, or both.  
         [0036]     The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.