Patent Publication Number: US-7590703-B2

Title: Set top box for convergence and automation system

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
   This application claims priority to and the benefit of Provisional Patent Application No. 60/786,119 filed on Mar. 27, 2006, entitled HOME AUTOMATION PROGRAM CODE FOR SET TOP BOX OR SIMILAR CIRCUIT, to Steve CASHMAN, which is hereby expressly incorporated by reference for all purposes as if fully set forth herein. Further, this application is related to the following U.S. patent applications: U.S. patent application Ser. No. 11/686,826, entitled NETWORK BASED DIGITAL ACCESS POINT DEVICE, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,836, entitled INTERNET PROTOCOL BASED MEDIA STREAMING SOLUTION, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,896, entitled AUTOMATION CONTROL SYSTEM HAVING A CONFIGURATION TOOL AND TWO-WAY ETHERNET COMMUNICATION FOR WEB SERVICE MESSAGING, DISCOVERY, DESCRIPTION, AND EVENTING THAT IS CONTROLLABLE WITH A TOUCH-SCREEN DISPLAY, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,884, entitled AUTOMATION CONTROL SYSTEM HAVING DIGITAL LOGGING, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,893, entitled USER CONTROL INTERFACE FOR CONVERGENCE AND AUTOMATION SYSTEM, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,846, entitled DEVICE AUTOMATION USING NETWORKED DEVICE CONTROL HAVING A WEB SERVICES FOR DEVICES STACK, filed Mar. 15, 2007, to Seale Moorer, et al.; U.S. patent application Ser. No. 11/686,875, entitled AUTOMATION CONTROL SYSTEM HAVING A CONFIGURATION TOOL, filed Mar. 15, 2007, to Seale Moorer, et al.; and U.S. patent application Ser. No. 11/686,889, entitled AUTOMATION CONTROL SYSTEM HAVING DEVICE SCRIPTING, filed Mar. 15, 2007, to Seale Moorer, et al.; which are all hereby expressly incorporated by reference for all purposes as if fully set forth herein. 

   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   The invention is directed to multiple device control and convergence that includes cable-enabled devices, and more particularly to multiple device addressing, discovery, description, control, eventing, and convergence in a Web Service environment, and control through an input device such as a set-top box and other cable-enabled devices. 
   2. Related Art 
   Household, academic and/or business spaces now more commonly have more than one audio or video device such as CD/DVD player, portable MP3 player, tuner, preamp, power amp, speakers, VCR, DVR, computers running media players or connected to some other source of audio or video (e.g., Internet radio, satellite radio and the like), set top boxes (STB), etc. Typically, a CD/DVD player from one company comes with its own remote control and an amplifier by an entirely different company comes with its own remote control. The same space may have a PC with its keyboard and mouse, and yet another company&#39;s portable MP3 player with its own control switches. The same space may include cable-enabled devices such as set top boxes providing television signals and the like. While each audio/video device is doing precisely what it was designed to do, each operates completely independent from the others with the possible exception of the portable MP3 player that may be connected to a PC for synchronization. As a result, a user ends up going from one keypad to another or juggling a series of remote controls in order to control the devices. 
   Since these audio/video and similar devices are not designed to communicate with each other or their communication is very limited, access to these audio/video devices is limited by their physical locations. For example, it is difficult to play an MP3 file saved in a PC hard disk drive in one room or area (a child&#39;s bedroom) on speakers located in another room or area (an entertainment room). Thus, in order for a user to enjoy music of his or her choice whenever and wherever he or she wants, each room needs to be equipped with all the necessary audio/video equipment and digital audio/video content. 
   Also, the audio/video devices are not designed to communicate with other devices (e.g., TV, lighting, security system, etc.). Thus, it is difficult, if not impossible, to converge the devices for common control for certain occasions. For example, in order to watch a movie, the user must turn on a TV, a STB and an audio amplifier by using three different remote controls. Then the user must set the TV to receive a video signal from the STB, set the audio amplifier to receive an audio signal from the STB and use another control unit to adjust the lighting of the room. Even when a user utilizes a universal remote, as is known in the art, the result is a plurality of devices that are separately operated and are operated separately from a single universal remote. These devices do not converge as described above because the devices lack any ability to easily connect and effectively communicate with each other, and be controlled by a single input device. 
   Accordingly, there is a need for a solution for the aforementioned accessibility, connectability and convergence issues to allow devices to connect, communicate and be controlled. 
   SUMMARY OF THE INVENTION 
   The invention meets the foregoing needs using an automation specific IP based automation protocol, which results in a significant increase in discovery and communications between devices along with an IP based input device and other advantages apparent from the discussion herein. 
   Accordingly, in one aspect of the invention, a process of operating an automation system in a Web Service environment includes providing at least one client and at least one device, the at least one client and the at least one device configured with a web services for devices stack protocol, connecting a network comprising at least one server with the web services for devices to the at least one client and the at least one device, transmitting automation-based control and communication between the at least one client and at least one device, and connecting a set top box coupled between the network and at least one of the clients and providing the client coupled thereto with a user interface for controlling the devices, wherein the at least one device includes an audio system, a video system, an intercom system, a lighting system, a security system, a link, and a HVAC system. 
   The at least one client may include one of a TV, a personal computer, a personal digital assistant, and a game controller. The web services for devices stack protocol may include a services tier that provides communication via at least one of HTTP and UDP wherein the communication via HTTP and UDP may include information contained in SOAP packets, and a logical interface with the at least one client, and the web services for devices stack protocol may include a web service for each at least one device. The web services for devices stack protocol may include a service provider configured as a generic host for web services. The web services for devices stack protocol further may include one of a component configured to host multiple services, and a controller configured to communicate with the at least one device and wherein the web services for devices stack protocol further may include a device bridge configured to translate commands for the devices. The set top box may include one of a set-top box and a cablecard implemented with an OCAP. The web services for devices stack protocol may be configured to communicate with the at least one device in a native format and the native format may include at least one of HTTP, TCP, UDP, and serial protocols. The web services for devices protocol may be configured to discover the at least one client and the discovery may include one of multicast announcements, multicast query requests, and unicast responses. The web services for devices protocol may be configured for description and the description may include at least one of WS-Metadata exchange, web services description language, and simple object access protocol/XML protocol. The web services for devices protocol may be configured for eventing and wherein the eventing may include at least one of web services description language for detailed events, a configuration for client subscription to events, and a configuration for the at least one device to push events to the at least one client. 
   Accordingly, in another aspect of the invention a machine-readable medium comprising instructions stored therewith, which, when executed by a processor cause the processor to establish an automation system in a Web Service environment, the machine-reachable medium includes instructions for providing automation-based control and communication between at least one client and at least one device, the at least one client and the at least one device configured with a web services for devices stack protocol configured to the at least one client and at least one device, instructions for configuring a network comprising at least one server to be connected to the at least one client and the at least one device with the web services for devices, and instructions for coupling a set top box between the network and at least one of the clients and configured to provide the client coupled thereto with a user interface for controlling the devices, wherein the at least one device may include an audio system, a video system, an intercom system, a lighting system, a security system, a link, and a HVAC system. 
   The at least one client further may include one of a TV, a personal computer, a personal digital assistant, and a game controller. The web services for devices stack protocol may include a services tier that provides communication via at least one of HTTP and UDP wherein the communication via HTTP and UDP may include information contained in SOAP packets, and a logical interface with the at least one client, and the web services for devices stack protocol may include a web service for each at least one device. The web services for devices stack protocol further may include a device bridge configured to translate commands for the devices, and a service provider configured as a generic host for web services. The web services for devices stack protocol further may include a component configured to host multiple services, and a controller configured to communicate with the at least one device. The controller may be configured to send feedback from the at least one device to the at least one client. The web services for devices stack protocol may be configured to communicate with the at least one device in a native format and the native format may include at least one of HTTP, TCP, UDP, and serial protocols. The web services for devices protocol may be configured to discover the at least one client and the discovery may include one of multicast announcements, multicast query requests, and unicast responses. The web services for devices protocol may be configured for description and the description may include at least one of WS-Metadata exchange, web services description language, and simple object access protocol/XML protocol. 
   Accordingly, in another aspect of the invention an automation system operating in a Web Service for Devices environment, includes at least one client and at least one device, the at least one client and the at least one device configured with a web services for devices stack protocol configured to provide automation-based control and communication between the at least one client and at least one device, a network comprising at least one server configured to be connected to the at least one client and the at least one device with the web services for devices, and a set top box coupled between the network and at least one of the clients and configured to provide the client coupled thereto with a user interface for controlling the devices, wherein the at least one client further includes one of a TV, a personal computer, a personal digital assistant, and a game controller and the at least one device includes an audio system, a video system, an intercom system, a lighting system, a security system, a link, and a HVAC system. 
   Additional features of the invention may be set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary of the invention and the following detailed description are exemplary and intended to provide further explanation without limiting the scope of the invention as claimed. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings, which are included to provide a further understanding of the invention, are incorporated in and constitute a part of this specification, illustrate embodiments of the invention and together with the detailed description serve to explain the principles of the invention. No attempt is made to show structural details of the invention in more detail than may be necessary for a fundamental understanding of the invention and the various ways in which it may be practiced. In the drawings: 
       FIG. 1  shows an schematic overview of a convergence solution constructed according to the principles of the invention; 
       FIG. 2  schematically shows the web services for devices stack for use in the convergence solution of  FIG. 1 , constructed according to principles of the invention; 
       FIG. 3  shows a device life cycle operating according to the principles of the invention; and 
       FIG. 4  shows a schematic overview of the convergence solution of  FIG. 1  implemented with a set top box. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   The embodiments of the invention and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments and examples that are described and/or illustrated in the accompanying drawings and detailed in the following description. It should be noted that the features illustrated in the drawings are not necessarily drawn to scale, and features of one embodiment may be employed with other embodiments as the skilled artisan would recognize, even if not explicitly stated herein. Descriptions of well-known components and processing techniques may be omitted so as to not unnecessarily obscure the embodiments of the invention. The examples used herein are intended merely to facilitate an understanding of ways in which the invention may be practiced and to further enable those of skill in the art to practice the embodiments of the invention. Accordingly, the examples and embodiments herein should not be construed as limiting the scope of the invention, which is defined solely by the appended claims and applicable law. Moreover, it is noted that like reference numerals represent similar parts throughout the several views of the drawings. 
     FIG. 1  schematically shows an overview of a convergence solution according to an embodiment of the invention. The convergence solution may be a combination of hardware and software. The hardware may include a server  10  connected to a network  12  (e.g. IP based wired or wireless network such as an Ethernet network) and may possibly be connected to the internet  14 , devices  102  (e.g. audio  20 , video  22  (e.g., STB), intercom  24 , lighting  26 , security system  28 , HVAC  38 , and the like) and clients  104  (e.g. TV  30 , personal computer (PC)  32 , personal digital assistance (PDA)  34 , controller  36  such as a control panel, game controller (i.e. X-Box™, not shown) and the like). Moreover, the clients  104  may include a remote control  39  or a remote control may be configured to be a client  104 . The server  10  may be any type of computer, such as a PC connected to the network  12 . The clients  104  such as clients  30 ,  32 ,  34 ,  36  may provide a user with control over the devices  102  such as devices  20 ,  22 ,  24 ,  26 ,  28 ,  38 . 
     FIG. 1  further schematically shows interaction of the convergence a solution interacting with non-internet protocol devices such as non-internet protocol devices  52 ,  56 . Non-internet protocol device  52  (non-IP) device is considered non-internet protocol in that it does not include a communications interface that is IP based. The non-IP device  52  may include other types of (serial, COM port, and the like) communication protocols. Accordingly, the server  10  may be configured to include various inputs and outputs to provide communication and control to various devices such as non-IP device  52 . Non-IP device  52  may be implemented as any number of different devices including, for example only, window shade automation devices, audio devices, video devices and so on. 
     FIG. 1  further shows implementation of the convergence solution that may communicate with a non-IP device such as the non-IP device  56  that not arranged proximate to server  10 . In order to accomplish communication between the non-IP device  56  and the network  12 , a link or conversion module  54  may be arranged in communication with the network  12 . The conversion module  54  connects to the network with an Ethernet type connection that provides internet protocol communications with the network  12 . The conversion module  54  further provides a second type of communication connection as shown by  58  that may be any type of communication protocol as noted above with respect to communication protocol  60 . Accordingly the non-IP device  56  may then communicate via network  12  and operate as a web service device accordingly. 
   The software (i.e., application) enables the hardware such as the server  10 , devices  102 , and clients  104  to communicate with each other despite their different proprietary languages and communication protocols, and may provide the user with control over most or all the hardware from a single client. The application may utilize at least one portion of the hardware to send commands to the devices  102  and receive feedback from them. The application may integrate centralized device control into a PC based media environment (e.g., Microsoft Media Center™ environment) that may store, organize and play digital media content. The user may use the same remote control  39  to listen to music, watch and record television, enjoy family photographs and home movies, as well as adjust the lighting, secure the home, adjust the temperature, distribute music throughout the house, check surveillance cameras and the like. 
   The application may be implemented with Web Services. The Web Services use standard Internet protocol (IP) and are based on standard XML-related technologies such as SOAP (Simple Object Access Protocol) for communications and WSDL (Web Services Device Language) to describe interfaces. The devices implemented with Web Service for Device (WSD) become black boxes on the network, providing services to any application, on any platform, written in any language. 
   Alternatively or additionally, if the server  10  or the PC  32  is running a SideShow™ enabled operating system such as Microsoft Windows Vista™, the devices may be configured as a SideShow™ device or “gadget.” A SideShow™ device or gadget may communicate with any client or device implemented with WSD in the network via protocols according to SideShow™ XML communication specifications. Moreover, the server  10  or the PC  32  using Microsoft Windows Vista™ may be running a SideShow™ gadget application running on the Microsoft Windows Vista™ computer providing a user interface rendering for the device that communicates with automation control devices via WSD technology. 
   Alternatively or additionally, the WSD technology may be implemented using Device Profile for Web Services (DPWS). The DPWS may be used to define how various devices may be able to use Web Services in conjunction with the convergence solution noted above. The DPWS further may allow and/or ensure interoperability between the various devices  102  and the clients  104  and the like. Moreover, the DPWS may allow for support of resource constrained devices within the convergence solution shown in  FIG. 1 . One benefit of DPWS is its ability to enable device and service discovery within the convergence solution of  FIG. 1 . The DPWS may allow for and support rich eventing, an end point, and may be built on standards and WS specifications. More specifically, the end point may provide device/host metadata. Additionally, the DPWS specifications may include HTTP, WSDL, SOAP, WS-Discovery, WS-Addressing, WS-Eventing, WS-metadata, transfer, and the like. 
     FIG. 2  schematically shows the Web Services for Devices (WSD) Stack for use in the convergence solution of  FIG. 1 , constructed according to the principles in the invention. The WSD stack as referenced herein refers to the protocol architecture. In particular,  FIG. 2  shows the WSD Stack  200 . The WSD stack  200  of the invention is a particular automation software implementation of a Web Services computer networking protocol suite. The individual protocols are designed with a single purpose in mind. Because each protocol module may only communicate with two others, the modules are commonly imagined as layers in a stack of protocols. The lowest protocol always deals with “low-level,” physical interaction of the hardware. Every higher layer adds more features. As described in greater detail below, the WSD Stack  200  allows and enables the discovery of devices in a network, such as the convergence solution of  FIG. 1  and the devices on the network in a light weight, simple fashion. Using the WSD Stack  200 , a device  102  in the network is able to send a message to determine what services are available enabling discovery of the device  102 . 
   The WSD Stack  200  is the software that may be used to process protocols. The WSD Stack  200  is required to use a specific set of protocols. In particular, the WSD Stack  200  leverages Web Services for Devices to create a powerful, extensible system that may communicate with a wide variety of devices  102  described in greater detail above. As shown in  FIG. 2 , the WSD Stack is shown schematically at a high level. The WSD Stack  200  in  FIG. 2  shows the communication to and from clients  104  at the top of the diagram via a logical interface and the various hardware devices  102  arranged at the very bottom of  FIG. 2 . 
   The logical interface initially communicates with and through the WSD Stack  200  via a Hyper Text Transfer Protocol (HTTP) or a User Datagram Protocol (UDP) as indicated by reference numeral  201 . The HTTP enables data transfer and display of web pages and the like as is well known in the art. The UDP enables a direct way to send and receive datagrams on an IP network as is well known in the art. Accordingly, the clients  104  interface via the logical interface through one or both of the HTTP and UDP layers  201  to a service provider  202 . For example, communication from the client  104  to the service provider  202  may be via the HTTP or UDP information and the communication may be contained in SOAP packets. 
   The service provider  202  may be configured as a large, generic host for web services. The service provider  202  may host one or more components  205  therein. A component  205  may have the ability to host multiple services. However, the component  205  may limit the relationship between a service and a device to a one-to-one relationship. 
   A further part of the component  205  is the web service  203 . The web service  203  exists for each device  204 . The web service  203  may be configured as a generic web service based on the device category. For example, a thermostat has a corresponding web service based on the HVAC category for example only. 
   Each web service  203  may be configured with a device bridge  204 . The device bridge  204  may be configured to essentially translate commands by the physical devices  102 . Accordingly, each device bridge  204  may be specific to the specific make of the physical device  102 . 
   The service provider  203  may further include a controller  206 . The controller  206  may be arranged to communicate with the devices  102 . The controller  206  may be configured to have a ratio of one controller per component  205 . The controller  206  may include the ability to send feedback from the devices  102  to the component  204 . The component  204  may then route the feedback to the appropriate web service  203 . Accordingly, this arrangement provides the ability for feedback from the devices  102  to various clients  104 . 
   The service provider  202  next may communicate to the various physical devices  102  via one or more of a plurality of different communications protocol  207 . In particular, the communications protocol with the devices  102  may include any type of native or proprietary format. Such native or proprietary formats may be sent via Hyper Text Transfer Protocol (HTTP), transmission control protocol (TCP), user datagram protocol (UDP), or serial protocols. The TCP enables two hosts to connect. The serial protocol provides one or two way serial communication as is well known in the art. 
   Accordingly, the WSD Stack  200  creates a powerful and extensible system based on web services for devices. Moreover, the WSD Stack  200  may communicate with a wide variety of devices  102  as discussed in detail with respect to  FIG. 1  above. Using the WSD Stack  200  allows network components to become “black box” components. This allows the various clients  104  and devices  102  to communicate in a clearly defined way without needing to know how they are accomplishing their various tasks. Using the WSD Stack  200  allows components to be implemented on any application running on any platform and written in any language. In essence, when the WSD Stack  200  is implemented, the network location and communications are handled by the platform, allowing application developers to focus solely on application problems. It should be noted that various modifications to the WSD Stack  200  are contemplated by the invention. 
     FIG. 3  shows a device life cycle operating according to the principles of the invention. In particular,  FIG. 3  shows the various portions of the life cycle of a device networking using the WSD Stack  200  described above and shown in  FIG. 2  in a device  102  as shown in  FIG. 1  above. Initially, as shown in  FIG. 3 , the first step in a device  102  in its life cycle on the network is discovery  302 . Discovery  302  as used in conjunction with the WSD Stack  200  may use the WS-Discovery specification. The WS-Discovery specification may include multicast announcements, multicast query requests such as probe and probe match, and unicast responses. In this regard, a device  102  may probe a client  104  using the discovery networking life cycle  302  to receive a probe match from the client  104 . In this regard, discovery of the device  102  by one or more clients  104  is straight forward and essentially automatic. More specifically, a device  102  may announce its presence as it is connected to the network  12 . This announcement may be through a sending out of a hello or bye message by device  102  on to the network  12 . Additionally, the device  102  may respond to a client  104  request including various probe and resolve type requests. A probe request may include the ability to identify a device or service within the client  104  or device  102 . The resolve request may include the ability to locate a device  102  or service end point. The result is the ability to get or obtain information via metadata exchange during the discovery  302  process. 
   The next step in the networking life cycle of the WSD Stack  200  process includes the step of description  304 . The step of description  304  may include a metadata exchange. This metadata exchange may be a response to a “get request.” The description step  304  may thus include the WS-Metadata exchange protocol and may moreover include the WSDL or SOAP/XML information exchange. The WSDL (Web Services Description Language) may be used in combination with the SOAP and XML schema to provide web services. A device connecting to the network  12  may read the WSDL to determine what functions are available on the network  12 , clients  104  and the like. The SOAP (Simple Object Access Protocol) is a protocol that may be used for exchanging XML based messages over the network  12 . 
   The next step in the networking life cycle shown in  FIG. 3  is the step of control  306 . In the step of control  306 , control over a device  102  may be exercised by sending messages to the device  102  and/or services hosted by the device  102 . The control  306  may be defined by the WSDL and XML schema. This definition of control  306  may ensure a common base line for interoperability. 
   Finally, the last step in the networking life cycle shown in  FIG. 3  is the step of eventing  308 . The eventing step  308  may include the WSD Stack  200  web service-eventing and may again use the SOAP/XML schema. In particular, the eventing  308  may allow for a rich eventing model. This model may allow for detailed events through WSDL. The eventing  308  may allow a client to subscribe to various events. Moreover, the eventing  308  may allow for the device  102  to push events to the clients  104 . 
   Shown in  FIG. 4 , the convergence solution may further include a set top box  40  (video client  22 ) configured to interact with the network  12  in order to provide the clients  104  (e.g., TV  30 , PC  32 , control panel  36  and the like) connected thereto with the capability to control the convergence solution. For example, the set top box  40  may provide a graphical user interface (GUI) to the clients  104  connected thereto (e.g., television  30 , PC  32 , control panel  34  or remote control device  39 ). The set top box  40  may be a device provided by content and delivery providers (e.g., cable, satellite, telephone, internet service provider companies and the like), which may also be configured to perform two-way on-site and remote-site control of the devices  102  via standard internet protocols without the need for any extra hardware. 
   The set top box  40  may be implemented on a platform designed to leverage the current and proposed delivery and networking architecture for the content and delivery providers. The set top box  40  may be connected to the existing network environment, for example, CableHome™, DOCSIS, or Triple-Play™ architectures. In exemplary embodiments, Multimedia over Coax (MoCA), HomePNa (HPNa), TVnet™, or other technology that enables two-way communication over existing coaxial or telephone wiring may be used. Exemplary embodiments also implement interfaces and equipment that the consumer is already familiar with (e.g., TV, remote control, STBs, personal digital assistant (PDA), phone, PC, web tablets and the like) instead of complex and expensive custom solutions. OpenCable™, CableHome™, Triple-Play™, IPTV™, and other industry-standard protocols may be implemented to implement the set top box  40  in the convergence solution. 
   In an exemplary embodiment, the network  12  may communicate via Internet Protocol via a wired and/or wireless Ethernet network. The devices  102  and clients  104  may communicate via a variety of native protocols such as RS-232, RS-485, USB, WSD, wireless mesh network (e.g. Z-Wave, ZigBee), IP, or UPnP, but not necessarily limited to those protocols. Exemplary control devices which may be implemented to monitor and/or control the automation devices/functions may include a TV GUI, infrared or radio frequency remote control, personal computer (PC), web-enabled tablet, PDA, mobile phone or other device, to name only a few examples. 
   In an exemplary embodiment, the STB  40  may communicate outside of network  12  via an OpenCable Application Platform (OCAP) protocol. In particular, the OCAP is a platform designed in particular for STBs that may be connectable to cable-enabled devices such as televisions, DVRs and the like. The OCAP operating system may include various interactive services such as eCommerce, on-line banking, interactive program guides, and digital video recording, and may further include, in accordance with the invention, herewith additional functionality as noted above. Accordingly, the STB  40  implemented with the OCAP operating system may allow for two way communications by third party devices on various networks. The OCAP system may be a Java-based software and/or middleware. The OCAP may be a portion of the open cable initiative. Moreover, the OCAP application may be based on a globally executable MHP (gem)-standard. Although reference is made to set-top boxes or STBs as noted above, the invention is equally applicable to cablecard using for example, the CableCard 2.0 specification. 
   In accordance with various embodiments of the invention, the methods described herein are intended for operation with dedicated hardware implementations including, but not limited to, semiconductors, application specific integrated circuits, programmable logic arrays, and other hardware devices constructed to implement the methods and modules described herein. Moreover, various embodiments of the invention described herein are intended for operation with as software programs running on a computer processor. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, virtual machine processing, any future enhancements, or any future protocol can also be used to implement the methods described herein. 
   It should also be noted that the software implementations of the invention as described herein are optionally stored on a tangible storage medium, such as: a magnetic medium such as a disk or tape; a magneto-optical or optical medium such as a disk; or a solid state medium such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories. A digital file attachment to email or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the invention is considered to include a tangible storage medium or distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored. 
   While the invention has been described in terms of exemplary embodiments, those skilled in the art will recognize that the invention can be practiced with modifications in the spirit and scope of the appended claims. These examples given above are merely illustrative and are not meant to be an exhaustive list of all possible designs, embodiments, applications or modifications of the invention.