CROSS-REFERENCE TO RELATED APPLICATIONSThis application is a continuation of prior co-pending U.S. patent application Ser. No. 09/962,861, filed 26 Sep. 2001. The entirety of said prior co-pending U.S. Patent Application is hereby incorporated herein by reference.
BACKGROUND1. Field
An embodiment of this invention relates to control modules in a network. More specifically, an embodiment of this invention relates to a system and a method for a centralized intelligence network.
2. General Background and Related Art
The Internet has become an indispensable vehicle of the information age. Its open architecture, which enables point-to-point communication between network nodes, supports connectivity of any network-compatible device anywhere in the world. The bandwidth capacities of the Internet continue to increase at a remarkably fast rate. However, use of the Internet remains in its infancy, and existing technologies have not fully exploited its potential.
In this time of incremental and revolutionary technical innovation, devices of all kinds—for example, consumer devices, office devices, and industrial devices—constantly become obsolete. Because of such obsolescence, devices are often upgraded, discarded, or replaced at significant cost. For instance, video cassette recorders (VCRs) historically have included a core set of functions, including play, stop, record, and rewind. However, new functions and features are constantly being developed and integrated into new product lines. In order to benefit from such technological advancement, a consumer typically must purchase an entirely new VCR that embodies the new functions and features.
Therefore, what is needed is a system and a method for a centralized intelligence network that assists user devices in providing functions for a user.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a high-level diagram of a system according to an embodiment of the present invention.
FIG. 2 is a high-level diagram of a control gateway according to an embodiment of the present invention.
FIG. 3 is a high-level flow diagram of a method according to an embodiment of the present invention.
FIG. 4 is a high-level diagram of a system according to an embodiment of the present invention.
FIGS. 5A and 5B illustrate a method according to an embodiment of the present invention.
DETAILED DESCRIPTIONThe following detailed description refers to the accompanying drawings that illustrate exemplary embodiments of the present inventions. Other embodiments are possible and modifications may be made to the embodiments without departing from the spirit and scope of the invention. Therefore, the following detailed description is not meant to limit the invention. Rather, the scope of the invention is defined by the appended claims.
It will be apparent to one of ordinary skill in the art that the embodiments shown in the drawings and/or described in the specification may be implemented in many different embodiments of software, firmware, and hardware. The inventions are not limited to any specific actual software code or specialized control hardware used to implement the present invention. Thus, the operation and behavior of the embodiments will be described without specific reference to the actual software code or specialized hardware components. The absence of such specific references is feasible because it is clearly understood that artisans of ordinary skill would be able to design software and control hardware to implement the embodiments of the present invention based on the description herein with only a reasonable effort and without undue experimentation.
Moreover, the processes associated with the presented embodiments may be defined as computer-operable code that is stored in any computer-readable storage device, such as, for example, a computer system (non-volatile) memory, an optical disk, magnetic tape, or magnetic disk. Furthermore, the processes may be programmed when the computer system is manufactured or may be carried out by reading a computer-readable medium at a later date. Such a medium may include any of the forms listed above with respect to storage devices and may further include, for example, a carrier wave modulated, or otherwise manipulated, to convey instructions that can be read, demodulated/decoded and executed by a computer.
A system and method for a centralized intelligence network, as presented herein, involve a user device, a control gateway, and a control module. The user device connects to a control gateway that is configured to access at least one control module. The control module is configured to perform at least one operation associated with the user device. The control module performs the operation. The control gateway sends, to the user device, information based at least in part on the performed operation. Accordingly, control modules may assist user devices in providing functions for a user.
FIG. 1 illustrates asystem100 according to an embodiment of the present invention.FIG. 1 includescontrol gateways101,102 andvarious user devices135, such asphone130, personal computer (PC)140, VCR150, PC160, and TV170.
Networks120 provide connections amonguser devices135 andcontrol gateways101,102. Eachnetwork120 may include a LAN (local area network) or WAN (wide area network) cabled or wireless connection. PSTNs (public switched telephone networks) and cable television networks may also be utilized. Eachnetwork120 may comprise, for example, the Internet or an intranet. Emerging protocols, such as Internet Protocol version 6 (iPv6), RFC 2133, also may be utilized bynetworks120. As depicted inFIG. 1,control gateways101,102 anduser devices135 form a hierarchical mesh network.
In an exemplary Internet implementation, error correction of signals and information transmitted insystem100 may be managed by the IP layer ofnetworks120. In addition, IP address resolution and routing may be managed by the Internet. Encryption insystem100 also may be applied using known methods.
Control gateways101,102 respectively include one ormore control modules110,111 that perform operations associated withuser devices135. In the embodiment shown inFIG. 1,control gateway101 includes a phone module, a PC module, and a VCR module.Control gateway102 includes a PC module and a TV module.Control modules110,111 interface withuser devices135 connected tocontrol gateways101,102.
Auser device135 may comprise any kind of network-compatible device, such as, for example, a computer, a communications device, an application(s)-specific device, and an entertainment device. Further, auser device135 may comprise a multifunctional device, such as a VCR/television/videophone device. Auser device135 may comprise a device of limited intelligence and/or capabilities, such as, for example, a device that includes a user interface with substantially no other onboard capabilities. Such a user device may be produced at relatively low cost, reducing the cost of the device to consumers.
In other embodiments, auser device135, such asPCs140,160, may perform multiple functions itself. Auser device135 connects to a network, such asnetwork120, and may register with a control gateway, such ascontrol gateways101,102. The connection may be constant or intermittent, wherein the connection is initiated when a user seeks to invoke a function ofuser device135. In particular,VCR150 may connect, vianetwork120, to controlgateway101, and may register itself therewith. Eachuser device135 may be uniquely identified as a node on the network.
In various embodiments, a user of auser device135 may invoke a function that can be performed with the assistance of one or more control modules that are accessible to a control gateway.User device135 may select such a control module upon registering with the control gateway. A control module may perform one or more operations to assistuser device135 in completing the invoked function. In alternative embodiments, a control gateway or a selection agent on a server (not shown) may select one or more appropriate control modules on behalf ofuser device135 consistent with the needs ofuser device135.
FIG. 2 illustratescontrol gateway200 according to an embodiment of the present invention.Control gateway200 includes aconnection mechanism210, anaccessibility mechanism220, one ormore control modules230, and atransmission mechanism240.
Connection mechanism210 enablescontrol gateway200 to interface and communicate with one or more user devices, such asuser devices135 inFIG. 1.Connection mechanism210 also may enable communication bycontrol gateway200 with various other control gateways in a network that is accessible to controlgateway200. As such, a hierarchical mesh network may be formed.
Accessibility mechanism220 accesses control modules that perform operations or functions associated with user devices. Such modules may or may not be resident incontrol gateway200. For instance, control modules may be included incontrol gateway200, on a remote server, or on another control gateway (not shown).
Control modules230 perform one or more operations associated with a user device. In various implementations, a control module can interface with multiple user devices. Acontrol module230 may perform, for example, (a) all or substantially all operations associated with a function of the user device, or (b) some operations associated with the function, wherein the user device and/or other control modules perform the remaining operations. For instance, acontrol module230 associated with a DVD recorder may include a timer feature. The DVD recorder may include a user interface to enable a user to set up a timer program viacontrol module230. When the time to record the program arrives,control module230 may send control information to cause the DVD recorder to begin recording.
Transmission mechanism240 sends, viaconnection mechanism210, information touser device135 based on the performed operation. The sent information may include any kind of information, such as, for example, control information to controluser device135 or information content, whichuser device135 may in turn process and/or present to a user ofuser device135.
Control modules230 may be upgraded consistent with technological development or innovation. Such upgrading may include replacing a control module entirely, modifying the control module (e.g., applying a hardware or software fix or module), or by adding a new control module that is accessible to controlgateway200. In an exemplary implementation,control modules230 may be upgraded from a central location, such as a server. User devices associated withcontrol modules230 need not be replaced whencontrol modules230 are upgraded. Thus, user devices have a longer useful life, and obsolescence is delayed.
FIG. 3 is a high-level flow diagram of amethod300 according to an embodiment of the present invention. Intask301, a user device connects to a control gateway. Intask310, the user device registers with the control gateway. A function of the user device is invoked intask320. However, a function need not be invoked to precipitate action by a control module or a control gateway. In various embodiments, a control module may spontaneously perform operations associated with a function of a user device, and a control gateway may send resulting information, such as control information, to the user device.
A control module is then selected to perform an operation associated with the invoked function, as shown intask330. Intask340, the operation is performed. Intask350, information is sent to the user device based on the performed operation.
FIG. 4 is a high-level diagram of asystem400 according to an embodiment of the present invention.System400 includes acontrol gateway401, acontrol gateway402, acable service provider425, aVCR450, and atelephone430. The various components insystem400 communicate vianetworks420.VCR450 andtelephone430 are shown inFIG. 4 as havingrespective control gateways401,402. Such a configuration may allow for connectional speed and reliability. However, in other embodiments, user devices such asVCR450 andtelephone430 may connect to other control gateways (not shown). Control gateways also may be dynamically allocated to user devices by an allocation mechanism, such as an agent on a server or central control gateway.
Control gateway401 may include control modules, such asVCR control module405 and cableservice control module407.VCR control module405 may control a VCR, such asVCR450. For instance,VCR control module405 may issue record, play, and stop commands toVCR450. Further,VCR control module405 may include a date and time input object and a channel input object, which respectively receive date and time information and channel information inputted by a user from a network node.VCR control module405 may also send to VCR450 a programming feed, which may include digital audio and/or video content.
Control modules such asVCR control module450 may comprise “industry standard” control modules, wherein a control module conforms to a compatibility standard agreed upon by various entities. Such a standard may include an API (application programmatic interface) to govern bidirectional communications between the control module, the user device, other control modules, and control gateways. In other embodiments, compatibility between control modules and user devices may be limited, and a user device may only interface with certain control modules.
Cable service provider425 provides a cable TV programming feed to various nodes innetworks420. However,cable service provider425 may provide any other content that may be transmitted across a network. It is to be understood thatcable service provider425 may be replaced by any kind of information provider, such as an Internet radio provider.
Cableservice control module407 issues commands tocable service provider425. For instance, cableservice control module407 may commandcable service provider425 to start a program feed, stop a program feed, and change the channel of the program feed to a selected channel.
VCR450 may include anetwork connection mechanism452 and aVCR function mechanism454.Network connection mechanism452 enablesVCR450 to connect vianetwork420 to controlgateway401 and to register withcontrol gateway401.Network connection mechanism454 may maintain programmable IP addresses forVCR450 and various control gateways, such ascontrol gateway401. As such,VCR450 may have a network identity and may connect via a network to a control gateway, such ascontrol gateway401, having an identified EP address. In some embodiments,network connection mechanism452 enablesVCR450 to select an appropriate control module accessible to controlgateway401.
VCR function mechanism454 provides functions associated withVCR450. For instance,VCR function mechanism454 may (1) provide a user interface having input and output mechanisms; (2) perform functions entirely unaided by a control module; and (3) perform functions with the assistance of, or under the control of, a control module.
VCR450, viaVCR function mechanism454, may perform various functions, such as record, play, stop, rewind, fast forward, and pause, and may include a keypad for entering date, time, and channel information associated with a program to be recorded.VCR450 may also include buttons for local operation, wherein a user may operateVCR450 without the assistance of a control module to perform a given function, such as, for example, to play a videotape mounted inVCR450. In some embodiments, local functions ofVCR function mechanism454 may be upgraded over the network. Alternatively, a hardware or software upgrade toVCR function mechanism454 may be installed toVCR450 by a local install.
VCR450 may support an industry standard, whereinVCR450 may interface with any VCR control module that conforms to the standard.VCR450 need not include a complex programming timer or an RF tuner; such functions may be provided by control modules, control gateways, and cable service providers.
Control gateway402 includes atelephone control module409, which may conform to an industry standard.Telephone control module409 may include various functions to control a phone, such as hook state detection and ringer control.Telephone control module409 may also include, for example, (a) a digit input object, which receives inputs of a user totelephone430; (b) a voice input object, which receives voice signals of the user; and (c) a voice/tone output object, which outputs information as voice signals or tones to communicate status information to the user.
Telephone430 may include anetwork connection mechanism432 and atelephone function mechanism434.Network connection mechanism432 provides analogous functions to the above-described functions provided bynetwork connection mechanism452 ofVCR450.Telephone430 is compatible withtelephone control module409. Thus, bidirectional communication may occur therebetween.
Telephone function mechanism434 is analogous toVCR function mechanism454 inVCR450.Telephone function mechanism434 may include, for example, a ringer, a keypad for digit input, a speaker, a microphone, and an on-hook/off-hook button.
FIGS. 5A and 5B illustrate a method according to an embodiment of the present invention.Portion500A of the method is depicted inFIG. 5A, and a remaining portion of the method,portion500B, is depicted inFIG. 5B. In this exemplary method, a user oftelephone430 inFIG. 4 employssystem400 in order to remotely program a VCR, such asVCR450, to record a broadcast on cable television.
Transactions that are possible betweentelephone430,control gateway402, andcontrol gateway401 are shown inFIG. 5A. Transactions betweenVCR450,control gateway401, andcable service provider425 are shown inFIG. 5B.
Intask501,telephone430 sends a register request to controlgateway402 using the IP address ofcontrol gateway402 stored bynetwork connection mechanism452 inVCR450. The register request may specify thatVCR control module405 ofcontrol gateway401 be used to perform operations on behalf ofVCR450. In this embodiment, it is contemplated thattelephone430 is constantly connected and registered withcontrol gateway402. Thus, a user oftelephone430 need not experience a delay when a user placestelephone430 off-hook.
Control gateway402, intask505, sends a register request acknowledge message back totelephone430. Intask510,telephone430 goes off-hook; a user has decided to place a call in order to programVCR450.Control gateway402 sends a dial tone to telephone430 intask515. Intask520, the user dials the IP address ofVCR450 with a keypad or other input mechanism that may be incorporated intelephone430.Control gateway402 may send a ringback tone to telephone430 intask525.
Intask530,control gateway402 sends, using the LP address ofcontrol gateway401, a service request to controlgateway401. The IP address ofVCR450 may be encapsulated within the service request. Intask535,control gateway401 determines that the IP address is associated with a VCR, activatesVCR control module405, and sends to control gateway402 a request for the start and stop dates and times of the broadcast to be recorded.
Intask540,control gateway402 prompts the user oftelephone430 for the dates and times. Intask545, the user enters the dates and times using the keypad or another input mechanism, such as a voice recognition mechanism, oftelephone430.Control gateway402, intask550, sends the dates and times to controlgateway401.Control gateway401, intask555, sends a request for the broadcast channel to controlgateway402, which intask560 prompts the user to enter a channel. After the user enters the channel using the keypad or other input mechanism intask565,control gateway402 receives the channel and sends the channel to controlgateway401 intask570. It is to be appreciated that, in other embodiments, the user may enter the start and stop dates and times and broadcast channel in one task.
Intask575,control gateway401 sends to control gateway402 a transaction acknowledge/complete message.Control gateway402 sends a dial tone to telephone430 intask580. Intask585,telephone430 goes on-hook; the user has inputted sufficient information to specify a broadcast to be recorded.
Portion500B of the method is shown inFIG. 5B. Intask590, at a start date and time corresponding to those inputted by the user intask545 inFIG. 5A,control gateway401 sends a “start program feed” request tocable service provider425, which then starts a program feed intask595, transmitting the program feed to controlgateway401.Control gateway401 sends a channel request tocable service provider425 intask600, wherein the channel corresponds to the channel inputted by the user intask565 inFIG. 5A. Intask605,cable service provider425 changes the program feed being transmitted to controlgateway401 to an appropriate channel.
Intask610,control gateway401 sends a record request toVCR450.VCR450 responds to controlgateway401, intask615, with a request acknowledge message.Control gateway401 then sends toVCR450 the program feed transmitted bycable service provider425. Intask625, after the stop date and time arrive atcontrol gateway401, the program feed is stopped. Intask630,control gateway401 sends a stop request toVCR450, which causesVCR450 to stop recording. Intask635,control gateway401 sends a “stop program feed” request tocable service provider425.VCR450 sends a request acknowledge message intask640, and the program feed is stopped bycable service provider425 intask645.
The foregoing description of the preferred embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments are possible, and the generic principles presented herein may be applied to other embodiments as well. For instance, a single service provider may employ control gateways and control modules to provide telecommunications, information, and device control services for its customers. Additionally, a VCR need not include a record function. Recording of a user-specified program may occur via control modules, and the recorded program may be stored on a remote server. When the user wishes to view the program, a control gateway may transmit the program to the user's VCR.
Moreover, the invention may be implemented in part or in whole as a hard-wired circuit, as a circuit configuration fabricated into an application-specific integrated circuit, or as a firmware program loaded into non-volatile storage or a software program loaded from or into a data storage medium as machine-readable code, such code being instructions executable by an array of logic elements such as a microprocessor or other digital signal processing unit.
As such, the present invention is not intended to be limited to the embodiments shown above but rather is to be accorded the widest scope consistent with the principles and novel features disclosed in any fashion herein.