An example telecommunication system 100 for distributing and presenting media content is illustrated in
The example telecommunication system 100 of
In operation, the content provider 102 receives and/or creates media content and transmits the media content to a distributor (e.g., distributor 106). The media content may be video and/or audio media content. For example, the content provider 102 may be a television studio, a movie studio, a television network (e.g., ABC, CBS, HBO, etc.), a television station, a radio station, etc. In the illustrated example, the content provider 102 submits the media content to trigger inserter 104 before the media content is transmitted to the distributor headend 106. Alternatively, the content provider 102 may transmit media content directly to the distributor headend 106 if the content provider 102 will not be responsible for inserting triggers (e.g., when the distributor headend 106 will insert the triggers.).
The trigger inserter 104 receives media content from the content provider 102, inserts one or more triggers in the media content, and transmits the media content to the distributor headend 106. In one example, the trigger inserter 104 inserts a trigger by embedding a link to the trigger result in the header of the media content. For example, the trigger inserter 104 may insert a link that points to an application on the applications server 108 and/or an application stored on the receiver 114. Additionally or alternatively, the trigger inserter 104 may embed executable instructions in the media content. These executable instructions can be executed by the receiver 114 to cause a desired result upon detection of the trigger. For example, the executable instructions may implement a game that the user can play, may cause the receiver 114 to select different media content for presentation, may cause the receiver 114 to store the presented media content for later presentation, etc. In one example, the media content may be packetized digital signals that are compressed and encoded. The media content packets may include motion pictures experts group (MPEG) compressed information, such as I-frames, P-frames, and/or B-frames. I-frames include an initial image or frame of video, P-frames include the differences between an I-frame and the next frame of the video, and B-frames are bi-directionally encoded frames that may be determined by analyzing either prior or subsequent frames. Each I-frame and P-frame packet includes header information that describes the packet, indicates the order of the packets, etc. In one example, the trigger link is inserted in the header of the I-frames, P-frames, and/or B-frames.
In addition or as an alternative to embedding triggers in media content, the trigger inserter 104 may generate a separate stream of trigger data. In such instances, the receiver 114 will receive or subscribe to both a media content stream and a trigger data stream. The stream of trigger data may include information that indicates at what time each trigger in the trigger data should be presented. Alternatively, the stream of trigger data may be synchronized with a media content stream so that triggers are presented as they are received. The stream of trigger data is transmitted to the distributor headend 106 for distribution to consumer locations.
If the media content received from the content provider 102 includes access restrictions (e.g., copy protection, digital rights managements (DRM), etc.), the trigger inserter 104 of the illustrated example will remove the access restrictions (e.g., strip off DRM protections) before inserting the trigger(s). Then, after the trigger(s) have been inserted, the trigger inserter 104 will replace the access restrictions or provide new access restrictions to prevent unauthorized access and/or use of the media content. Alternately, if the media content received from the content provider 102 does not include access restrictions, the trigger inserter 104 will insert trigger(s). Then, after the trigger(s) have been inserted, the trigger inserter 104 may inserter access restrictions or may transmit the media content without access restrictions. In another alternative, if the media content received from the content provider 102 includes access restrictions, the trigger inserter 104 will remove the access restrictions and insert trigger(s). Then, after the trigger(s) have been inserted, the trigger(s) inserter 104 may transmit the media content without replacing the access restrictions.
While the example trigger inserter 104 is illustrated as a discrete component, the trigger inserter 104 may be coupled/integrated with another component of the telecommunications network 100. For example, the trigger inserter 104 may be integrated with the content provider 102, the distributor headend 106, the receiver 114, or any other device. In particular, the trigger inserter may be implemented using hardware and/or hardware executing software and/or firmware.
The distributor headend 106 receives media content and/or trigger data streams from one or more sources (e.g., the content provider 102 and/or trigger inserter 104) and processes the media content for distribution to consumer locations. For example, the distributor headend 106 may receive media content, decode the media content, re-encode the media content in a format that consumer receivers can utilize, encrypt the media content, and transmit the media content to consumer locations. For example, the distributor headend 106 may re-encode the media content in Microsoft® VC1 format. The media content may be distributed as a digital data stream or using any other type of transmission.
In the illustrated example, the distributor headend 106 is an IPTV distributor and transmits media content to consumer locations via the routing device 110. The example distributor headend 106 may also be referred to as a video hub office. Additionally or alternatively, the distributor headend 106 may transmit another stream of triggered data to consumer locations via the routing device 110. Alternatively, the distributor headend 106 may be any type of media content distributor such as, for example, a cable media content distributor, a satellite media content distributor, a broadcast media content distributor, etc.
The application server 108 stores and executes software applications and transmits the results (e.g., a user interface and/or output from the software applications) to consumer locations via the routing device 110. For example, the application server may execute an application that generates a voting user interface or an advertising display. In another example, the application server may execute an application that implements a game or user productivity software (e.g., a word processing application). In another example, the application server 108 may execute an application that instructs the residential gateway 112 to initiate a telecommunication session (e.g., a voice enabled telecommunication session such as a VoIP telephone call). Using two-way communication, the application server 108 can provide an interactive interface for the display device 116 via the receiver 114.
In the illustrated example, the application server 108 is a discrete component; however, alternatively, the application server 108 may be integrated with another component of the telecommunication system 100. For example, the application server 108 may be integrated with and/or located within the distributor headend 106, the residential gateway 112, or the receiver 114. The application server 108 may be implemented as hardware and/or hardware executing software and/or firmware.
The routing device 110 communicatively couples the distributor headend 106 and the application server 108 with the residential gateway 112 via the network 111. In one example, the routing device 110 is a digital subscriber line access module (DSLAM). Alternatively, the routing device 110 may be implemented by any other communication device such as, for example, a communication device for a cable distribution system, a communication device for a satellite broadcasting system, a communication device for a radio frequency (RF) broadcasting system, etc. In the illustrated example, the routing device 110 is a discrete component; however, alternatively, the routing device 110 may be integrated with another component of the telecommunication system 100. For example, the routing device 110 may be integrated with the distributor headend 106 and/or the application server 108. The routing device 110 may be implemented as hardware and/or hardware executing software and/or firmware.
The network 111 may be any type of network capable of communicatively coupling the residential gateway 112 with the routing device 110. For example, the network 111 may be the Internet, a communication distributor network (e.g., a network for a cable communications provider, a network for a telephone communications provider, a network for a fiber optic communications provider, etc.), any private network, any public network, etc.
The residential gateway 112 communicatively couples a consumer location with the routing device 110 via the network 111. The residential gateway 112 receives media content and data streams from the routing device 110 and directs the communications to the receiver 114 and the telecommunications device 118. In the illustrated example, the residential gateway is a digital subscriber line (DSL) network interface such as, for example, an asynchronous DSL (ADSL) transmission unit—remote (ATU-R). The residential gateway 112 may alternatively be a cable modem, a satellite communications interface, a broadcast communications interface, etc. In the illustrated example, the residential gateway 112 is a discrete component; however, alternatively, the residential gateway 112 may be integrated with another component of the telecommunication system 100. For example, the residential gateway 112 may be integrated with the telecommunications device 118 and/or the receiver 114.
The receiver 114, which is shown in further detail in
The display device 116 presents media content received from the receiver 114 to consumers at a consumer location. In the illustrated example, the display device 116 is a television such as, for example, a standard definition television, an enhanced definition television, a high-definition television, a cathode ray tube (CRT) television, a liquid crystal display (LCD) television, a plasma television, a projection television, an organic light emitting diode (OLED) television, a surface-conduction electron-emitter display (SED) television, etc. Alternatively, the display device 116 may be any other device that is capable of receiving and presenting media content such as, for example, any type of radio receiver/player, a projector, a monitor, a computer, a portable media player (e.g., an iPod®), a desktop computer, a laptop computer, etc.
The example telecommunication device 118 enables audio communication between a consumer location and a telecommunication device at another location. For example, the telecommunication device 118 may be a voice over internet protocol (VoIP) telephone or a public switched telephone network (PSTN) telephone. The example residential gateway 112 is capable of initiating a call for the telecommunication device 118. For example, if the telecommunication device 118 is a VoIP telephone, the residential gateway 112 may be capable of contacting another telephone (e.g., via a VoIP connection or a PSTN connection) and causing the telecommunication device 118 to ring. In this way, the residential gateway 118 and the telecommunication device 118 can initiate a call without requiring a consumer to manually initiate a call. The telecommunication device 118 may be any type of communication device including a text messaging device, a cellular telephone that is associated with the residential gateway 112 (e.g., linked to the residential gateway 112 via the routing device 110), a computer including a text messaging interface, etc.
The network interface 202 enables the receiver 114 to communicate with other devices on a network. For example, the receiver 114 may communicate with the residential gateway 112 or the routing device 110 using the network interface 202. In particular, in the illustrated example, the receiver 114 receives media content and/or data streams including triggers from the distributor headend 106 via the residential gateway 112 and the routing device 110 using the network interface 202. The receiver 114 of the illustrated example also communicates with the application server 108 using the network interface 202. Media content and/or data streams received by the network interface 202 are transmitted to the trigger detector 204, the application handler 208, and the audio/video decoder 210.
The trigger detector 204 of the illustrated example receives media content and/or data streams from the network interface 202 and monitors the media content and/or data streams for the presence of triggers. If the media content and/or data streams include encryption and/or access restrictions, the trigger detector 204 will decrypt the media content and/or data streams and/or remove the access restrictions. The example trigger detector 204 monitors the headers of packets received for the media content and/or data streams to determine if the header includes a trigger indicator (e.g., a flag). Alternatively, the trigger detector 204 may monitor a stream of packets to determine if the stream includes trigger packets (e.g., packets including content in addition to the media content that may be presented in response to a user selecting an on-screen trigger indicator). When the trigger detector 204 of the illustrated example detects the presence of a trigger, the trigger detector 204 transmits a message to the overlay generator 206 indicating that the overlay generator 206 should output a trigger indicator overlaid on the media content for display on the display device 116.
The overlay generator 206 of the illustrated example receives trigger presence messages from the trigger detector 204 and generates a trigger indicator overlay for display on the display device 116. For example, the example overlay generator 206 may load a graphic of the letter “I” stored in a memory (not shown) and transmit the graphic to the on-screen display generator 212. Alternatively, the message indicating the presence of a trigger received from the trigger detector 204 may include a graphic or text (e.g., a graphic or text that was included with the trigger indicator in received media content or data streams) that is to be used as the trigger indicator.
The application handler 208 of the illustrated example, interacts with the application server 108 via the network interface 202. For example, when a consumer selects a trigger indicator (e.g., highlights the trigger indicator on the screen and select enter using a remote control) the application handler receives the input and, using a location specified by the trigger, transmits a request for an application execution to the application server 108. When the application server 108 returns an interface for the application, the application handler 208 transmits the interface of the application to the on-screen display generator 212 for display. The application handler 208 may receive user input from a remote control, a voice activation module, an attached or wireless keyboard, user input controls on the receiver 114, or any other type of user input.
The audio/video decoder 210 receives media content from the network interface 202 and prepares the media content for display. For example, the audio/video decoder 210 may decode, demodulate, decrypt, remove access restrictions, etc. The audio/video decoder 210 may be coupled with a conditional access module (not shown) to enable the audio/video decoder 210 to access restricted media content that the receiver 114 is authorized to present. The audio/video decoder 210 may be any type of media content decoder including an IPTV media content decoder, a cable television media content decoder, a satellite television media content decoder, a broadcast television media content decoder, etc. Media content that is prepared by the audio/video decoder 210 is transmitted to the on-screen display generator 212 for display on the display device 116.
The on-screen display generator 212 of the illustrated example receives media content and user interface objects from one or more of the overlay generator 206, the application handler 208, and the audio/video decoder 210. The on-screen display generator 212 combines the media content to provide a display for output to the display device 116. For example, the overlay generator 206 may provide a graphical icon with a transparent background that the on-screen display generator 212 may place over media content received from the audio/video decoder 210. Additionally, the application handler 208 may provide a user interface object having a transparent background that the on-screen display generator 212 may place over media content received from the audio/video decoder 210. The example on-screen display generator 212 also generates and presents other user interface components such as control menus and electronic program guide information. The display generator by the on-screen display generator 212 transmitted to the display device 116 via the audio/video interface 214.
The audio/video interface 214 communicatively couples the receiver 114 with the display device 116. Audio/video display interface generated by the on-screen display generator 212 is transmitted to the display device 116 via the audio/video interface 214. In addition, if the display device 116 is capable of transmitting information to the receiver 114, the audio/video interface 214 receives such information. The audio/video interface 214 may utilize any type of connection to the display device 116 such as, for example, a high-definition multimedia interface (HDMI), a universal serial bus (USB) connection, a IEEE 1394 (FireWire) connection, a composite video connection, a component video connection, a optical connection, a digital visual interface (DVI) connection, a network connection (e.g., a network that supports Universal Plug and Play (UPnP)), an S-Video connection, a radio-frequency (RF) connection, any type of digital connection, any type of analog connection, etc.
Having described the architecture of one example system that may be used to provide dynamic messaging services, various processes are described. Although the following discloses example processes, it should be noted that these processes may be implemented in any suitable manner. For example, the processes may be implemented using, among other components, software, or firmware executed on hardware. However, this is merely one example and it is contemplated that any form of logic may be used to implement the systems or subsystems disclosed herein. Logic may include, for example, implementations that are made exclusively in dedicated hardware (e.g., circuits, transistors, logic gates, hard-coded processors, programmable array logic (PAL), application-specific integrated circuits (ASICs), etc.) exclusively in software, exclusively in firmware, or some combination of hardware, firmware, and/or software. For example, instructions representing some or all of the blocks shown in the flow diagrams may be stored in one or more memories or other machine readable media, such as hard drives or the like. Additionally, some portions of the process may be carried out manually. Furthermore, while each of the processes described herein is shown in a particular order, those having ordinary skill in the art will readily recognize that such an ordering is merely one example and numerous other orders exist. Accordingly, while the following describes example processes, persons of ordinary skill in the art will readily appreciate that the examples are not the only way to implement such processes.
The example receiver 302 receives media content and/or trigger information from the content provider 102 and transmits the media content to the access restriction remover 304 and/or the trigger information to the trigger inserter 306. The example receiver 302 may be implemented using any type of receiver capable of communicatively coupling the trigger inserter 104 and the content provider 102. For example, the receiver 302 may be a network receiver, a network transceiver, a universal serial bus (USB) receiver and/or transceiver, a serial receiver and/or transceiver, an IEEE 1394 Firewire receiver and/or transceiver, etc.
The example access restriction remover 304 receives media content and, if the media content includes access restrictions, removes the access restrictions from the media content. For example, the access restriction remover 304 may remove DRM access restrictions from the media content. In addition, the access restriction remover 304 may decrypt of decode to media content if such decoding or decryption will enable the trigger inserter 308 to insert triggers in the media content. After the access restrictions have been removed from the media content, the access restriction remover 304 transmits the media content to the trigger inserter 306.
The example trigger inserter 306 receives media content from the access restriction remover 304 and inserts triggers in the media content as described in conjunction with the description of
The example access restriction inserter 308 receives media content including triggers from the trigger inserter 306 and inserts access restrictions in the media content including triggers. For example, the access restriction inserter 308 may insert DRM access restrictions. Additionally or alternatively, the access restriction inserter 308 may encode and/or encrypt the media content. The access restriction inserter 308 may not be used if access restrictions, encoding, and/or encryption are not desired. After processing the media content including triggers, the access restriction inserter 308 transmits the media content including triggers to the transmitter 310.
The example transmitter 310 receives media content including triggers from the access restriction inserter 308 (or the trigger inserter 306 if access restrictions are not added to the media content) and transmits the media content to the distributor headend 106. The example transmitter 310 may be implemented using any type of receiver capable of communicatively coupling the trigger inserter 104 and the distributor headend 106. For example, the transmitter 310 may be a network transmitter and/or transceiver, a universal serial bus (USB) transmitter and/or transceiver, a serial transmitter and/or transceiver, an IEEE 1394 Firewire transmitter and/or transceiver, etc. Alternatively, the transmitter 310 may transmit the media content including triggers to the content provider 102 (e.g., when the content provider 102 will transmit the media content to the distributor headend 106) or to any other network component.
If a trigger is detected by the trigger detector 204, the audio video decoder 210 prepares the media content for display and transmits the media content to the on-screen display generator 212 (block 408). Next or simultaneously, the overlay generator 206 generates or prepare the trigger indicator (block 410). For example, the overlay generator 206 may retrieve a stored trigger indicator, may generate a trigger indicator using information in the trigger, may retrieve a trigger indicator provided in conjunction with the trigger, etc.
Once the on-screen display generator 212 receives the trigger indicator from the overlay generator 206 and the media content from the audio/video decoder 210, the on-screen display generator 212 combines the media content and the trigger indicator and transmits the combination to the display device 116 via the audio/video interface 214 (block 412). Control then proceeds to block 402 to continue monitoring and presenting media content.
The application handler 208 then receives the user interface generated by the application executing at the application server 108 (block 506). In other words, execution of the flowchart of
If the user input does not indicate that the consumer would like to close the user interface (block 512), the user input from the consumer is transmitted to the application server 108 by the application handler 208 (block 514). For example, if the executed application is a game, the user input may indicate that the user would like to move a displayed graphical character. The application server 108 will apply the user input to the application and transmit the updated user interface to the application handler 208. Control proceeds to block 506 to continue receiving an updated user interface and user input from the consumer.
The receiver 114 then receives media content and/or data streams from the distributor headend 106 (block 604). Alternatively, block 604 may be executed simultaneously with block 602 and/or prior to block 602. The trigger detector 204 then recognizes a trigger in the media content and/or the data stream (block 606). While not illustrated in the flowchart of
After recognizing the trigger, the trigger detector 204, the overlay generator 206, and the on-screen display generator 212 operate as previously described to present a trigger indicator on the display device 114 via the audio/video interface 214 (block 608). Then, the application handler 208 receives trigger activation from the consumer (block 610). While not illustrated in the flowchart of
After receiving trigger activation, the application handler 208 extracts the trigger's action (e.g., information specifying the purpose or objective of the trigger) from the trigger (block 612). The application handler 208 then determines what type of action is designated by the trigger (blocks 614, 618, 622). First, the application handler 208 determines if the trigger action designates a receiver application (e.g., the receiver application downloaded in block 602) (block 614). If the trigger action designates a receiver application, the application handler 208 executes the application and presents the application interface (block 616). For example, the application might be a game that a consumer can interact with.
If the trigger action does not designate a receiver application, the application handler 208 determines if the trigger action designates and/or includes control instructions for the receiver (block 618). If the trigger action designates and/or includes control instructions of for the receiver, the application handler 208 causes the control instructions to be executed (block 620). For example, the control instructions might instruct the receiver 114 to select a different media content stream, to select media content stored at the receiver 114 (e.g., media content stored via a video recorder module, etc.).
If the trigger action does not designate and/or include control instructions for the receiver, the application handler 208 determines if the trigger action designates an application located at an application server (e.g., application server 108) (block 622). If the trigger action designates an application located at an application server, the application handler 208 transmits a request to the application server requesting that the application be executed and that the user interface be transmitted to the application handler 208 (block 624). For example, the application may be a voting application that allows a consumer to vote, an application that allows a consumer to complete a survey, a game with which a consumer may interact, etc.
If the trigger action does not designate an application located at an application server, the application handler 114 performs the action designated by the trigger action and/or presents an error if the trigger action cannot be handled (block 626).
While
In general, the telecommunication system 700 receives media content from media content creators/distributors via the acquisition system 708. The media content is transmitted to the client facing tier 706. In the client facing tier, the media content is either transmitted to the video on demand system 710 for storage or transmitted to the household 702. The application and storage tier 714 verifies that consumers connecting to the telecommunication system 700 are authorized to access media content and other services provided by the telecommunication system 700 (e.g., internet access, pay per view access, etc.) The application and storage tier additionally transmits usage information (e.g., purchase of a pay per view movie) to the operations and management system 712. The operations and management system provides an interface for the telecommunication system 700 for use by technicians. In addition, the operations and management system 712 tracks billing information associated with media content creators/distributors.
The household 702 is similar to the household 102 of
The client facing tier 706 is similar to the client interface 118 of
The acquisition system 708 comprises a live acquisition server 708a and a video on demand (VOD) importer 708b. The live acquisition server 708a acquires media content including triggers and/or data streams (e.g., trigger data streams) from media content creators/distributors, encodes media content, encrypts media content, and encapsulates media content for delivery to the household 702 remote transmission protocols. The VOD importer 708b receives VOD content from media content creators/distributors and stores the media content on the VOD server 710a.
The operations and management system 712 comprises an operational support system/business support system (OSS/BSS) 712a, a simple network management protocol (SNMP) monitor 712b, and a TV2 management system 712c. The OSS/BSS 712a stores billing information associated with media content creators/distributors. The SNMP monitor 712b provides a user interface for technicians to access system errors and messages. The TV2 management system 712c provides management tools for technicians to configure the telecommunication system 700.
The application and storage tier 714 comprises an application server 714a, an OSS/BSS gateway 714b, a domain controller 714c, and a subscriber and system store 714d. The application server 714a provides user interface applications for the CPE 702b. For example, the application server 714a provides a user interface for access to video on demand media content. The OSS/BSS gateway 714b provides an interface between the operations and management system 712 and the application and storage tier 714. The domain controller 714c provides network services such as user authentication, current time announcement, etc. The subscriber and system store 714d stores information associated with consumer media content subscriptions and electronic program guide data.
The system 800 of the instant example includes a processor 812 such as a general purpose programmable processor. The processor 812 includes a local memory 814, and executes coded instructions 816 present in the local memory 814 and/or in another memory device. The processor 812 may execute, among other things, the machine readable instructions illustrated in
The processor 812 is in communication with a main memory including a volatile memory 818 and a non-volatile memory 820 via a bus 822. The volatile memory 818 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The non-volatile memory 820 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 818, 820 is typically controlled by a memory controller (not shown) in a conventional manner.
The computer 800 also includes a conventional interface circuit 824. The interface circuit 824 may be implemented by any type of well known interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a third generation input/output (3GIO) interface.
One or more input devices 826 are connected to the interface circuit 824. The input device(s) 826 permit a user to enter data and commands into the processor 812. The input device(s) can be implemented by, for example, a keyboard, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
One or more output devices 828 are also connected to the interface circuit 824. The output devices 828 can be implemented, for example, by display devices (e.g., a liquid crystal display, a cathode ray tube display (CRT), a printer and/or speakers). The interface circuit 824, thus, typically includes a graphics driver card.
The interface circuit 824 also includes a communication device such as a modem or network interface card to facilitate exchange of data with external computers via a network (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, etc.).
The computer 800 also includes one or more mass storage devices 830 for storing software and data. Examples of such mass storage devices 830 include floppy disk drives, hard drive disks, compact disk drives and digital versatile disk (DVD) drives.
At least some of the above described example methods and/or apparatus are implemented by one or more software and/or firmware programs running on a computer processor. However, dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement some or all of the example methods and/or apparatus described herein, either in whole or in part. Furthermore, alternative software implementations including, but not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the example methods and/or apparatus described herein.
It should also be noted that the example software and/or firmware implementations described herein are optionally stored on a tangible storage medium, such as: a magnetic medium (e.g., a magnetic disk or tape); a magneto-optical or optical medium such as an optical 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; or a signal containing computer instructions. A digital file attached to e-mail or other information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the example software and/or firmware described herein can be stored on a tangible storage medium or distribution medium such as those described above or successor storage media.
Although this patent discloses example systems including software or firmware executed on hardware, it should be noted that such systems are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware or in some combination of hardware, firmware and/or software. Accordingly, while the above specification described example systems, methods and articles of manufacture, persons of ordinary skill in the art will readily appreciate that the examples are not the only way to implement such systems, methods and articles of manufacture. Therefore, although certain example methods, apparatus and articles of manufacture have been described herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the appended claims either literally or under the doctrine of equivalents.