The present invention generally relates to system monitoring and control and, more particularly, to a method, apparatus and system for controlling networked systems across a bandwidth constrained network at a group level.
The control of networked devices across of an Internet Protocol (IP) network such as a Local Area Network (LAN) typically takes the form of sending specific commands to specific, intended devices. Aggregating such devices into groups typically is accomplished using application software. Such solutions create software complexity and may be unsuitable for a desired system behavior due to the sequential nature of such solutions.
In addition to LANs, systems comprising multiple servers may be distributed over large wide area networks (WAN), for example, via an IP-over-satellite network, which typically have an extremely limited two-way bandwidth.
For example, video server systems deployed for out of home/retail advertising use are usually loosely connected back to central headquarters. The network connection is sometimes over VSAT (Very Small Aperture Terminal) in which case it is a single, shared two-way connection across all the sites, often sized at less than 1 Mb/sec. If VSAT is not used, the connection is limited to either a low speed DSL line or is connected through the retailer's network across a VPN (Virtual Private Network). The VPN is also a shared resource at usually under 1 Mb/sec. This highly constrained network connection presents serious challenges to monitoring and control of a complex server network.
Exemplary kinds of operations that are often required for system monitoring and control include (but are not limited to):
checking how much disk space is used and/or available
checking if all the required processes are running
checking if a specific media file is available and/or playing
checking if all the right media files have played
checking on the general health of the server and video system components
instructing the server to not play certain media files, or to delete certain files
instructing the server to play a broadcast stream instead of local playback
Today's systems provide these instructions by connecting to each server in sequence and making the transaction, or, by running a software agent on the server that connects back to a central host. Either approach is highly inefficient across a shared low throughput network link. That results in simple operations taking long periods of time and effectively limits the amount of operations that can be performed.
Embodiments of the present invention address the deficiencies of the prior art by providing a method, apparatus and system for monitoring and controlling server systems across a bandwidth constrained network by, in various embodiments, implementing grouping and multicasting processes.
In one embodiment of the present invention, a method for communicating with at least one system across a network includes defining at least one group of systems, determining a unique identifier for each of the at least one group of systems, and including with a communication to systems connected to the network, the determined unique identifier for at least one group of systems for which the communication is intended. In the described method of the present invention, the communication is only accepted by a system confirming that the included unique identifier included with the communication identifies a group in which the system is a member.
In an alternate embodiment of the present invention, an apparatus for communicating with at least one system across a network includes a network manager configured for performing the steps of defining at least one group of systems, determining a unique identifier for each of the at least one group of systems, and including with a communication to systems connected to the network, the determined unique identifier for at least one group of systems for which the communication is intended. In the described apparatus of the present invention, the communication is only accepted by a system confirming that the included unique identifier included with the communication identifies a group in which the system is a member.
In an alternate embodiment of the present invention, a system for communicating with at least one server across a network includes at least one server connected to the network for receiving and forwarding communications, at least one group identifier unit for determining if a communication is intended for a respective server by determining if a unique identifier included with a communication received by the server identifies a group in which the server is a member and a network manager configured for performing the steps of, defining at least one group of servers, determining a unique identifier for the at least one group of servers and including with a communication to the at least one server connected to the network, the determined unique identifier for at least one group of servers for which the communication is intended.
The teachings of the present invention can be readily understood by considering the following detailed description in conjunction with the accompanying drawings, in which:
It should be understood that the drawings are for purposes of illustrating the concepts of the invention and are not necessarily the only possible configuration for illustrating the invention. To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures.
Embodiments of a method, apparatus and system for monitoring and controlling server systems across a bandwidth constrained network are provided. Although the present principles will be described primarily within the context of communications across a retail advertising network, the specific embodiments of the present principles should not be treated as limiting the scope of the invention. It will be appreciated by those skilled in the art and informed by the teachings of the various embodiments of the present invention that the concepts of the present principles can be advantageously applied in other environments in which server system control across wide area networks is desired such as in two-way satellite systems and Virtual Private Network links.
The functions of the various elements shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions can be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which can be shared. Moreover, explicit use of the term “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and can implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage. Moreover, all statements herein reciting principles, aspects, and embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein represent conceptual views of illustrative system components and/or circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
In one embodiment, the content distribution system 100 of
In one embodiment, software for controlling the various elements of the in-store advertising network 200 and the content distribution/server system 100 can include a 32-bit operating system using a windowing environment (e.g., MS-Windows™ or X-Windows™ operating system) and high-performance computing hardware. The advertising network 200 can utilize a distributed architecture and provides centralized content management and distribution control via, in one embodiment, satellite (or other method, e.g., a wide-area network (WAN), the Internet, a series of microwave links, or a similar mechanism) and in-store s.
As depicted in
A recording company 204 can be a record label, music publisher, licensing/publishing entity (e.g., BMI or ASCAP), individual artist, or other such source of music-related content. The recording company 204 provides audiovisual content such as music clips (short segments of recorded music), music video clips, and the like. The movie studio 206 can be a movie studio, a film production company, a publicist, or other source related to the film industry. The movie studio 106 can provide movie clips, pre-recorded interviews with actors and actresses, movie reviews, “behind-the-scenes” presentations, and similar content.
The other content provider 208 can be any other provider of video, audio or audiovisual content that can be distributed and displayed via, for example, the content distribution system 100 of
In one embodiment, content is procured via the network management center 210 (NMC) using, for example, traditional recorded media (tapes, CD's, videos, and the like). Content provided to the NMC 210 is compiled into a form suitable for distribution to, for example, the local distribution system 100, which distributes and displays the content at a local site (e.g., within a particular store).
The NMC 210 can digitize the received content and provide it to a Network Operations Center (NOC) 220 in the form of digitized data files 222. It will be noted that data files 222, although referred to in terms of digitized content, can also be streaming audio, streaming video, or other such information. The content compiled and received by the NMC 210 can include commercials, bumpers, graphics, audio and the like. All files are preferably named so that they are uniquely identifiable. More specifically, the NMC 210 creates distribution packs that are targeted to specific sites, such as store locations, and delivered to one or more stores on a scheduled or on-demand basis. The distribution packs, if used, contain content that is intended to either replace or enhance existing content already present on-site (unless the site's system is being initialized for the first time, in which case the packages delivered will form the basis of the site's initial content). Alternatively, the files can be compressed and transferred separately, or a streaming compression program of some type employed.
In the illustrated embodiment of
That is, in accordance with the Device Group Control Protocol, each server can be configured to belong to at least one group—itself—and can also belong to many other groups. As such, commands or requests can be targeted by group—which can contain one or a plurality of servers. Each server of a group will, as such, transmit and receive using the same broadcast or multicast channel. In various embodiments of the above described invention, servers can support being members of as many groups as desired. In addition, servers can be configured to be members of or not members of groups either by using the protocol or by external means, such as configuration files or other transactions such as (Simple Network Management Protocol) SNMP or web configuration pages. In various embodiments of the present invention, servers can be grouped according to a commonality such as all stores within a certain zip code, all stores within a time zone, all stores within a particular state, all stores within a particular region, a demographic characteristic and the like. Groups of systems can be assigned a unique identifier and then communicated with, monitored and controlled as a unit.
In the embodiment of
Referring back to
In accordance with various embodiment of the present invention, the communications network 225 can be implemented in any one of several technologies. For example, in one embodiment of the present invention, the communications network 225 can comprise a satellite link (satellite IP network) to distribute digitized data files 222 to each applicable server system 100 of, for example, commercial sales outlets 230. Such a configuration advantageously enables content to be distributed by multicasting the content to various locations simultaneously. Alternatively, the Internet can be used to both distribute audiovisual content to and allow feedback from commercial sales outlets 230. Other techniques and configurations for implementing the communications network 225, such as using leased lines, a microwave network, or other such mechanisms can also be used in accordance with alternate embodiments of the present invention.
Although in the embodiment described above, the RNM 224 is described as a controller for implementing the protocol and inventive aspects of the present principles, in alternate embodiments of the present invention, a separate controller can be provided for implementing the protocol and inventive aspects of the present principles.
At the local level (e.g., in-store), the server 110 of the content distribution system 100 is capable of receiving content (e.g., distribution packs) and, accordingly, distribute them in-store to the various receivers such as the set-top boxes 120 and displays 130 and the speaker systems 135. That is, at the content distribution system 100, content is received and configured for streaming. The streaming can be performed by one or more servers configured to act together or in concert. The streaming content can include content configured for various different locations or products throughout the sales outlet 230 (e.g., a store). For example, respective set-top boxes 120 and displays 130 and various speaker systems 135 can be located at specific locations throughout the sales outlet 230 and respectively configured to display content and broadcast audio pertaining to products located within a predetermined distance from the location of each respective set-top box and display.
The server 110 of the content distribution system 100 receives content and creates various different streams (e.g., content channels) of text, audio, video and/or audio/video to be communicated to the various receivers throughout the store. The streams can be individual channels of modulated audio, video and/or audio/video onto a radio frequency distribution or transmitted as data flows within a unicast or multicast internet protocol (IP) network. These streams can originate from one or more servers under the same logical set of control software.
At the local area network level (within each store), one or more of the receivers can be configured to receive a specific one of the created streams and as such forming groups of receivers. In accordance with the present principles, the server 110 implements a control protocol designed for use in, for example, the broadcast (e.g., local area network using layer 2 broadcast) or multicast environment of, for example, the content distribution system 100 of
In one embodiment of the present invention, every server automatically belongs to a group of one—its own group based on its identifier. That is, a “group” of systems is defined herein as comprising at least one server, though it can also comprise a plurality of servers. For example, a server's unicast IP address can be used as its unique ID. In accordance with an embodiment of the present principles, one requirement for a server's ID is that the server address be unique among that broadcast or multicast address. Servers can support being members of as many groups as desired. In addition, servers can be configured to be members of or not members of groups either by using the protocol or by external means, such as configuration files or other transactions such as (Simple Network Management Protocol) SNMP or web configuration pages. For example, in various embodiments of the present principles, it is possible that a given domain of the present principles can share an IP network with other domains. In addition, it is highly likely that a given domain can wish to enforce message authentication and/or message integrity through the use of an MAC message digest scheme. These two requirements feed the need for the two configurable parameters for a system group control protocol of the present principles such as a MAC shared secret and a Multicast IP address. However, some applications of the present principles can find it highly desirable to also pre-configure group membership. The protocol supports dynamic membership but in some embodiments can add a level of complexity to the control software that limits some of the purpose of the protocol of the present principles. Configuring servers to be a part of a group allows the control software to be drastically less complex.
As such, in one embodiment of the present principles, servers 100 are configured to know to which group or groups they belong. When a control/configuration message having a group identification information is received, the server software examines the message to determine which group(s) of servers the message is intended for. If the server is a member of the group that the message is addressed to then the server will process the payload of that message.
Embodiments of the present principles support profiles that can be customized for different applications. For example, in one embodiment of the present principles, a profile can include a ‘retail advertising profile’ that defines a set of commands appropriate for a network implemented for advertising in retail stores. In addition, other profiles can support the particular needs of institutions like hospitals, airports, or movie theatres. A profile design of the present principles can include a common header and a variable profile payload. For example,
In the header of
0x01 Request (Command);
0x02 Response;
0x03 Alarm;
All other values are reserved.
In the message ID and correlation ID section, unless the ‘do not reply’ flag is set, a device that gets a Request message must reply to that message. The reply shall set the correlation id field to equal the message id field of the message being replied to. Request messages shall have the correlation id field set to zero (0). Message IDs shall be initially set to a random value and then incremented by one for each sequential message sent by that device. Prevention of collisions in Message ID numbering is done by the use of the correlation timestamp (described below). In the profile type section, profiles are enumerated. That is, profile types can enumerated for different applications including but not limited to a retail advertising network, a hospital network, airport networks, movie theatres, etc. For example, in the example profile header of
The addressing section of the header of
In the timestamp section of the header of
In the illustrated embodiment of
0x01 subscribe to group (in ‘controlled parameter’ field);
0x02 unsubscribe to group (in ‘controlled parameter’ field); and
0x03 unsubscribe to all groups (except self group).
In addition for a retail advertising application, the controlled parameter section can include the following defined values:
0x01 power state;
0x02 channel;
0x03 volume; and
0x04 mute.
The power state values can include a respective “on” (e.g., binary ‘1’) and “off” (e.g., binary ‘0’) value; the channel value can include an indication of whether the channel comprises an IPTV channel (e.g., binary ‘0’) or an RF channel (e.g., binary ‘1’); the volume value can include a number representative of a value between 0 and 100 percent; and the mute value can include a respective “on” (e.g., binary ‘1’) and “off” (e.g., binary ‘0’) value.
0x00 Notification
0x01 Request (Command);
0x02 Response;
0x03 Alarm;
All other values are reserved.
The HMAC section, defines the Hashed Message Authentication Code (HMAC) used with the message. The following values are illustratively defined:
0x00 None
0x01 CRC32 (for message integrity only)
0x02 HMAC-MD5 (RFC 2202)—80 bit length
0x03 HMAC-SHA1 (RFC 2202)—80 bit length.
The offset to HMAC section defines an offset from the start of the group protocol frame of the present principles to the first byte of the HMAC. If no HMAC is used this value is ignored.
In the message ID and correlation ID section, unless the ‘do not reply’ flag is set, a device that receives a Request message must reply to that message. The reply shall set the correlation id field to equal the message id field of the message being replied to. Request messages shall have the correlation id field set to zero (0). Message IDs shall be initially set to a random value and then incremented by one for each sequential message sent by that device. Prevention of collisions in Message ID numbering is done by the use of the correlation timestamp (described below).
In the embodiment of
In the timestamp section of the header of
Another benefit of the reply timestamp is that it can be used as a crude measure of timing for the performance of a given function. Assuming the devices and controller are somewhat time synchronized (using Network Time Protocol for example) then the reply message contains the timestamp from the original request and the reply. The difference between the two is the time required for the closed loop function to be performed (in seconds). This can be useful as a means to easily observe system performance.
Referring back to
0x00 Core protocol payload (described with respect to
0x01 Set Top Box Control Payload
0xFF000001 Retail Network Server Monitoring and Control
For example,
0x00 group clear—unsubscribe to all groups (except self group)
0x01 subscribe to group;
0x02 unsubscribe to group;
0x03 enumerate group membership; and
0x04 heartbeat.
The group clear command is used to command a device(s) to specifically forget all group memberships it currently has (except self group. The Subscribe command is used to specifically subscribe a device (or group of devices) to a group. The Unsubscribe command is used to specifically unsubscribe a device (or group of devices) from a group. The Enumerate Group Membership command is used to query a device about to which groups it belongs. In one embodiment of the present invention, each contacted device will reply with a success or failure code and will then send a group membership notification message for each group of which it is a member. It should be noted that if this command is sent to a group rather than an individual device the number of replies could be very large since each device in the group would thus enumerate its group membership. The Heartbeat command is used to send a heartbeat message to a device or device group. Each device in the group must reply. This is a very useful tool to both ensure network connectivity as well as to enumerate group membership.
Referring back to
With regards to the base protocol profile of
0x00 unable to determine own group id (not configured or other similar error).
Even further and with regards to the base protocol profile of
0x00 DGCP software stack shutdown;
0x01 DGCP software stack startup; and
0x02 DGCP Group Membership Announcement.
In the embodiment of
An example of one target group can comprise all servers within Region A (707). Region A (707) can include any number of servers (e.g., servers 702, 704 embodied in Store 1 and Store 2) organized in accordance with any desired criteria, e.g., a particular location, zip code, time zone, etc. All servers within Region A can be given a unique identifier to identify them as belonging to the “Region A target group.” In accordance with various embodiments of the present invention, servers 702 and 704 can have any number of receivers (STB1 . . . STBn) at their local area network sites.
In another example, DGCP controller 701 communicates with Store 3 and Store 4 (servers 706, 708) grouped together in accordance with the DGCP protocol as described above. For example, Store 3 and 4 can be grouped by store type or chain, stores which have a certain special feature, or any other grouping of stores which is desired to be monitored and/or controlled as a unit for any other reason. In the example above, stores 3 and 4 can belong to a particular “Store Chain” 709.
As previously described, each designated target group is given a unique ID number. For example, the controller 701 can form the following groups to which the respective servers can subscribe:
For example, the controller 701 can communicate a subscribe message to the servers of the respective groups such that the servers can become members of the respective groups of which they should belong determined by, e.g., at least their location and the content and information intended for respective servers. Every message (e.g., DGCP message) is multicast to all servers (e.g., in the example of
In such a case, all the servers 702, 704, 706, 708, 710, 712 would receive the applicable commands but only servers assigned to group 0x00000001 (e.g., the servers 702, 704 shown in Region A) would execute the commands for that group. Each server can also execute a reply to the controller in response to an inquiry request. Examples of “inquiry requests” which can be sent from a controller 701 to a group of servers can include:
Each server in an applicable group can then reply to an inquiry request with, in one embodiment, one packet to answer the inquiry.
Advantageously, a system and method according to the various described embodiment of the present invention essentially take bandwidth intensive Application program interface (API) calls and make them into DGCP defined messages that are far more bandwidth efficient. Unlike previous methods in which connection to each individual server in succession would be required to make an inquiry or send a message to servers across a wide area network, a system and method according to the present principles advantageously provides sending only one packet addressed to all servers (i.e., multicast) with each server in the addressed group being able to reply with one packet each. A system and method according to the present principles allows the creation of arbitrary groups and/or pre-defined groups—e.g., “all stores that are super centers” or “all stores in New York” or “all stores in the Central Time Zone”—and then enables efficient operation on that group.
Some examples of “control operations” include:
At step 803, a unique identifier is determined for each of the groups of server systems. Again, as described above, in one embodiment of the present invention, such unique identifiers are determined by the Retail Network Manager 224. The method proceeds to step 805.
At step 805, the respective determined unique identifier for at least one group of servers for which a communication is intended is included with the communication being communicated to all of the server/server systems connected to the network. As described above, in one embodiment of the present invention each communication can include a command or message which includes, for example, a payload (essential data within each packet to be delivered). The method proceeds to step 807
At step 807, each of the server/server systems examine the communication to determine if the unique identifier included with the communication identifies a group in which the server/server system is a member and as such, for which the communication was intended. If so, the server/server system will process the payload of the message (i.e., execute an included command). For example, each server compares the unique group identifier in the received communication with any assigned unique group identifier for a group in which the server is included, and if a match exists, that server is designated as being part of the target group for which the communication was intended. As described above, in one embodiment of the present invention, a respective group identifier unit is included in each server/server system for determining if a communication is intended for the server/server system by determining if a unique identifier included with the communication identifies a group in which the server/server system is a member.
Having described various embodiments for a method, apparatus and system for monitoring and controlling server systems across a bandwidth constrained network, (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the invention disclosed which are within the scope and spirit of the invention as outlined by the appended claims. While the forgoing is directed to various embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof.
This application is related to U.S. Patent Provisional Application No. 60/921,714, filed on Apr. 4, 2007 in the USPTO and International Patent Application serial no. PCT/US07/013,949, filed on Jun. 13, 2007 in the PCT and claiming priority to the U.S. Patent Provisional Application No. 60/921,714, both entitled “Device Group Control”, which are herein incorporated by reference in their entireties.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US08/13951 | 12/22/2008 | WO | 00 | 6/21/2011 |