Abstract:
Techniques for auto provisioning and publication of applications are described. The auto provisioning process enables automatic installation of applications having their respective file packages pre-stored in the server. Subsequently, publication of these applications is conducted automatically. By employing such an automatic process, the latency involved in provisioning and publication of remote applications is reduced, thereby making the process more efficient.

Description:
RELATED APPLICATIONS 
       [0001]    This is a continuation of and claims priority to U.S. patent application Ser. No. 10/742,551 filed on Dec. 19, 2003 entitled “Internet Video Conferencing on a Home Television” by first named inventor Salim S. Abiezzi. 
     
    
     TECHNICAL FIELD 
       [0002]    This invention relates generally to computer networking in a home setting, and more particularly to a system and method of using televisions in a home for Internet conferencing. 
       BACKGROUND 
       [0003]    The Internet has become an indispensable part of our daily lives. Every day, millions of people use the Internet to read news, shop on-line, search for information, and chat with others, etc. Recently, with the increased availability of high-speed connections to the Internet, the Internet is also becoming a major means of communications, supplementing and perhaps someday surpassing the capacities of conventional public telephone systems and satellite transmissions. Computer software and hardware are now well developed and readily available for users to hold video conferences over the Internet. For instance, a video camera with a Universal Serial Bus (USB) connection can be had for only tens of dollars, and some current operating systems, such as the Windows operating systems of Microsoft Corporation, provide a rich set of functions for supporting Internet video conferencing. 
         [0004]    In the meantime, the number of home networks has been growing rapidly. The prices of personal computers and networking devices have fallen tremendously, and it is very easy for a user with multiple computers at home to set up a home network. As a result, computer networking is no longer limited to business/work places and has entered many homes. The availability of home networking has opened many possibilities of home automation. Such possibilities, however, are mostly unrealized at this time. Many users implement home networks mainly for the purpose of being able to access the Internet from different computers in the home and to share data and programs among the home computers, and the aspect of information/data access is largely independent of and unrelated to other aspects of home activities and functions. For instance, watching television is a major form of home entertainment. If a user watching television in the living room wants to conduct an Internet video conference, she has to go to her study room where her personal computer is located, sit down in front of the video camera mounted on her personal computer, and use the computer to do the video conferencing. 
       SUMMARY 
       [0005]    In view of the foregoing, the present invention provides a home network system that enables a user to use her television to conduct an Internet video conference from the comfort of her living room. The home network includes a personal computer that is connected to the Internet and has video conferencing software running thereon. The television is connected to the home network via a TV client module. A video camera located together with the television is also connected to the TV client. The TV client is connected to the personal computer via the home network and receives screen images from the personal computers and displays the images on the television. To initiate an Internet video conference, the user selects an Internet conferencing option displayed by the TV client on the television. In response, the TV client forwards the request to the personal computer. The personal computer then sends interactive user interface screens to the TV client for display on the television and receives user inputs through the TV client for the user to invoke the video conferencing application and control its settings. During the video conference, video/audio data captured by the video camera are transmitted by the TV client via the home network to the personal computer for forwarding on to the conferencing parties on the Internet, and conferencing user interface data representing video images and audio data received from conferencing parties on the Internet are transmitted by the personal computer to the TV client for display on the television. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0006]      FIG. 1  is a block diagram generally illustrating an exemplary computer system on which components of an embodiment of a home network in accordance with the invention may be implemented; 
           [0007]      FIG. 2  is a schematic diagram showing an embodiment of home network that is integrated with a television and a video camera to enable a user to have an Internet video conference using the television as a display; 
           [0008]      FIG. 3  is a schematic diagram illustrating exemplary user interface pages displayed on the television for a user to select the Internet video conference function and to set parameters for the video conference; 
           [0009]      FIG. 4  is a schematic diagram showing the transmission of video image and audio data captured by a USB camera from a TV client component of the television to a computing device over the home network using USB-to-IP tunneling; and 
           [0010]      FIG. 5  is a flow diagram summarizing the operation of Internet video conferencing from a television connected to a home network in an embodiment of the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0011]    Turning to the drawings, wherein like reference numerals refer to like elements, the invention is illustrated as being implemented in a suitable computing environment. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. 
         [0012]    The following description begins with a description of a general-purpose computing device that may implement components of a home network configured in accordance with the invention for integrating data access and home entertainment. The home network architecture of the invention that enables the use of a home television set for Internet video conferencing will be described in greater detail with reference to  FIGS. 2-5 . Turning now to  FIG. 1 , a general-purpose computing device is shown in the form of a conventional personal computer  20 , including a processing unit  21 , a system memory  22 , and a system bus  23 , that couples various system components including the system memory to the processing unit  21 . The system bus  23  may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory includes read only memory (ROM)  24  and random access memory (RAM)  25 . A basic input/output system (BIOS)  26 , containing the basic routines that help to transfer information between elements within the personal computer  20 , such as during start-up, is stored in ROM  24 . The personal computer  20  further includes a hard disk drive  27  for reading from and writing to a hard disk  60 , a magnetic disk drive  28  for reading from or writing to a removable magnetic disk  29 , and an optical disk drive  30  for reading from or writing to a removable optical disk  31  such as a CD ROM or other optical media. 
         [0013]    The hard disk drive  27 , magnetic disk drive  28 , and optical disk drive  30  are connected to the system bus  23  by a hard disk drive interface  32 , a magnetic disk drive interface  33 , and an optical disk drive interface  34 , respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the personal computer  20 . Although the exemplary environment described herein employs a hard disk  60 , a removable magnetic disk  29 , and a removable optical disk  31 , it will be appreciated by those skilled in the art that other types of computer readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories, read only memories, storage area networks, and the like may also be used in the exemplary operating environment. 
         [0014]    A number of program modules may be stored on the hard disk  60 , magnetic disk  29 , optical disk  31 , ROM  24  or RAM  25 , including an operating system  35 , one or more applications programs  36 , other program modules  37 , and program data  38 . A user may enter commands and information into the personal computer  20  through input devices sue as a keyboard  40  and a pointing device  42 . Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit  21  through a serial port interface  46  that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB) or a network interface card. A monitor  47  or other type of display device is also connected to the system bus  23  via an interface, such as a video adapter  48 . In addition to the monitor, personal computers typically include other peripheral output devices, not shown, such as speakers and printers. 
         [0015]    The personal computer  20  may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer  49 . The remote computer  49  may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer  20 , although only a memory storage device  50  has been illustrated in  FIG. 1 . The logical connections depicted in  FIG. 1  include a local area network (LAN)  51  and a wide area network (WAN)  52 . Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet. 
         [0016]    When used in a LAN networking environment, the personal computer  20  is connected to the local network  51  through a network interface or adapter  53 . When used in a WAN networking environment, the personal computer  20  typically includes a modem  54  or other means for establishing communications over the WAN  52 . The modem  54 , which may be internal or external, is connected to the system bus  23  via the serial port interface  46 . In a networked environment, program modules depicted relative to the personal computer  20 , or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used. 
         [0017]    In the description that follows, the invention will be described with reference to acts and symbolic representations of operations that are performed by one or more computers, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processing unit of the computer of electrical signals representing data in a structured form. This manipulation transforms the data or maintains it at locations in the memory system of the computer, which reconfigures or otherwise alters the operation of the computer in a manner well understood by those skilled in the art. The data structures where data is maintained are physical locations of the memory that have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various ones of the acts and operations described hereinafter may also be implemented in hardware. 
         [0018]    Referring now to  FIG. 2 , the present invention is directed to an expanded home network system  70  that integrates a television into the home network so that a user can conduct an Internet video conference using the television as the display. In the embodiment shown in  FIG. 2 , the home network  70  connects devices for work and entertainment functions. For instance, a productivity station  72 , which may be located in the study room in the house, includes a desktop personal computer  74  that may be connected to the home network via wired or wireless connections. The personal computer may include peripheral devices, such as a printer, a scanner, and a video camera, etc. The home network  70  is also connected to a television  82 , which may be part of a home entertainment center located in the living room. As described in greater detail below, the television  82  has a TV client component  86  that is connected to the home network  70 . Another television  84 , which may be located in the bedroom, is also connected to the home network  70  by its media client component  88 . The home network  70  may also have wireless devices connected thereto. To that end, the home network  70  includes one (or more) wireless access point (WAP)  96  that functions as the base station for a wireless local area network (LAN) and is typically plugged into an Ethernet hub or server of the home network The wireless communications allows a user to move about in the house with her mobile device without losing connection to the home network The wireless devices include, for example, a notebook computer  90 , a tablet PC  92 , a PDA  94 , etc. In a preferred embodiment, the home network is an IP-based Ethernet network. 
         [0019]    In accordance with an aspect of the invention, the personal computer  74  includes software and hardware for supporting Internet video conferencing and is capable of accessing the Internet  110  for sending and receiving data packets, including data packets for video conferencing, through the Internet. In the illustrated embodiment, the personal computer  74  is connected to an Internet gateway device (IGD)  98 , which may be connected to the Internet via different types of connections such as a cable, a DSL line, an optical line, or a phone line (i.e., publicly switched telephone network (PSTN)). During an Internet video conferencing session, the monitor  76  of the personal computer may be used to display the video conference images  104  received from the Internet, and a video camera  106  is used to capture images of the user conducting the video conference. The data of the video images and sounds captured by the video camera  106  are sent to the personal computer  74  via a link connecting the personal computer and the camera. The link may be, for example a Universal Serial Bus (USB) connection. 
         [0020]    In accordance with a feature of the invention, the home network  70  is configured to enable a user to conduct an Internet video conference on any television  82  or  84  in the house that is connected to the home network  74 . Thus, the user is not confined to her seat in front of her computer  74 , and can initiate and/or participate in an Internet video conference from the comfort of her living room. In accordance with the invention, each television is connected to the home network by a TV client. As illustrated in  FIG. 2 , the televisions  82 ,  84  have TV clients  86 ,  88 , respectively, that connect the televisions to the home network  70 . The TV client module for a television is preferably built into the television set, as in the case of the television  82 . Alternatively, the TV client for a television may be an outboard device, similar to a set-top box that drives the television with analog or digital video/audio signals, as in the case of the television  84 . Each media client  86  or  88  is a microprocessor-based circuit with appropriate hardware and software. 
         [0021]    To capture the images of a user for video conferencing, each television  82 ,  84  is equipped with a video camera  120 ,  122 . The video camera  120 ,  122  is connected to the TV client  86 ,  88  of the television, and transmits the captured video images to the TV client. In one embodiment, the video camera  120  is a USB device, and is connected to the TV client  86  by a USB cable  118 . The video camera  120  preferably has a built-in microphone  124  to capture the voice of the user, and transmits the audio data together with the video data to the TV client  86 . 
         [0022]    When the TV client  86  of a television  82  is loaded onto the home network  70 , it automatically discovers the personal computer  74  connected to the home network, and forms a communication link over the home network with the personal computer. The discovery may be performed, for example, using the Universal Plug-and-Play (UPnP) process. When it discovers the existence of the personal computer  74  capable of Internet video conferencing, it puts in a local menu the “Internet video conference” option that can be selected by the user by, for example, pressing buttons on a remote control  108 . Once the TV client  86  forms a link with the personal computer  74 , it can receive user interface data including screen video image data and audio data from the personal computer. In a preferred embodiment, the television and the TV client are used by the personal computer as a remote monitor for displaying images and sound. This “remoting” capability may be provided by the operating system of the personal computer by implementing, for example, the Windows Remote Desktop Protocol (RDP). During an Internet video conference, the video conferencing application  154  receives incoming streaming video and audio data from the conferencing parties on the Internet and generates conferencing user interface data that represent the received streaming video and audio. The conferencing user interface data include screen images of the conferencing parties and the sound of the conferencing dialog. If the user is sitting in front of her computer, the conferencing user interface data may be displayed on the monitor  76  of the personal computer  74 . With the television  82  being used for video conferencing, the television and the TV client are used as a remote terminal. The conference service  114  of the personal computer  74  packages the conferencing user interface data generated by the video conferencing application  154  using the RDP protocol and transmits the RDP packaged data over the home network to the TV client  86 . The television then displays the received screen images on the screen  112  of the television  82  and plays the sound through the TV speakers  116  or other speakers connected to it. 
         [0023]    To enable the user to invoke the Internet video conferencing functionality, the TV client  86  is programmed to provide a user interface to allow the user to select the function of video conferencing. On any television in the house that has a TV client device connected to the home network  70 , a user can use a remote control  108  to send command signals to the TV client to interactively select networking options presented by the TV client on the television. Turning now to  FIG. 3 , in one exemplary implementation, the local menu of the TV client  86  has a starting page  126  that presents a menu option  128  of “Internet Video Conference.” When the user selects the “Internet Video Conference” option, the TV client  86  transmits a request to the personal computer  74  to initiate an Internet video conference. In response, the conference server  114  of the personal computer runs the Internet conference application set up an Internet video conference. To that end, an interactive user interface is “remoted” (i.e., delivered to a remote device for presentation thereon) to the TV client  86  for display on the television  82 , and the user inputs (e.g., entered using a remote control  108  or a wireless keyboard  132 ) are transmitted by the TV client to the personal computer. In this way, the television and the TV client together function as a remote terminal for the personal computer, and the user will be presented with the same user interface for invoking the Internet video conferencing application  154  and controlling its settings as if the user is sitting in front of the computer  74 . As illustrated in  FIG. 3 , the remoted user interface  130  allows the user to set the parameters for the video conference. For instance, the user interface may allow the user to select a conferencing party from a list of pre-set “buddies” to have a conference with, or to specify (by using a wireless keyboard  132 ) a new conferencing party not on the existing list. After the user enters the parameters for the video conference, the Internet video conferencing application  154  is launched to call up the specified conferencing parties  134  over the Internet  110 , and establish the video/audio transmissions for the video conference. Once the video conference starts, the video conferencing application  154  on the personal computer  74  receives video/audio streams  144  over the Internet from the remote conferencing parties  134 , and generates from the received streaming data conferencing user interface data that include screen images and audio for display on the monitor  76  or a remote terminal. The conference service  114  then packages the conferencing user interface data using the RDP protocol and transmits the packaged RDP packets  156  ( FIG. 4 ) to the TV client over the home network. The TV client interprets and renders the received RDP packets and displays the images and plays the sound on the television Thus, the conference service  114  of the personal computer  74  handles aspects of the wide-area network (WAN) communication over the Internet and higher level video conferencing obligations and services to offload those tasks from the TV client, which may be a thin client and does not have all the computational power and resources needed to handle the video conferencing by itself. This capability of receiving and processing the RDP packets  156  is generic and is applicable to all computer applications via the general remote desktop capability in the operating system of the personal computer  74 . In the meantime, the TV client  86  relays the video and audio data captured by the video camera  120  over the home network  70  to the video conferencing application  154  of the personal computer  74 , which forwards the data to the Internet  110  as an audio/video stream  140  or transmission to the conferencing parties. 
         [0024]    The feature of Internet video conferencing can also be initiated from the television side in response to an incoming conference call. The user can check the user interface screens for video conferencing presented remotely on the television to see whether a conference call has arrived if she is expecting that call. Also, when the conference server  114  of the personal computer  74  receives a conference call from the Internet  110 , it sends an alert  146  to the TV client  86  notifying it of the incoming conference call. In response, the TV client  86  may display a user interface on the television  82  to inform the user of the incoming conference call, and provide options such as whether to take the conference call and/or whether to use the television to conduct the video conference. 
         [0025]    As mentioned above, in a preferred embodiment, the video camera  120  communicates with the TV client  86  via a USB cable  118 . In accordance with a feature of the embodiment, USB-over-IP tunneling is used by the TV client  86  to transfer the video/audio data to the personal computer  74 . Although in the context of video conferencing on the television, the USB-over-IP tunneling is used for transferring data generated by the USB camera, it should be noted that this mechanism is generic to all USB devices and not specific to cameras. Specifically, as illustrated in  FIG. 4 , the TV client  86  wraps the audio/video data  150  it received from the USB camera  120  in IP packets  138  and sends the IP packets to the personal computer  74 . A USB proxy  136  on the personal computer  74  then unwraps the USB data, i.e., taking the USB data from the IP packets. The USB proxy  136  and the TV client  86  also handle the wrapping and unwrapping in the reverse direction. By means of the USB-over-IP tunneling, the USB proxy  136  bridges (two ways) between the personal computer  74  and the remote USB camera  120  over the IP connection through the home network with the TV client  86 . Due to this bridging, the USB camera  120  exhibits all the behavior of a camera locally connected to the personal computer  74 . As a result, every application  152  on the personal computer, such as a conferencing program, that uses a USB camera  120  can function properly without any modification, thinking that the camera is locally connected, even though the camera is remote on the home IP network. 
         [0026]    In the embodiment described above, a personal computer  74  provides the Internet video conference capabilities that are leveraged by the TV client  86  to enable video conferencing on a television  82 . A full-fledged computer, however, is not required for implementing the invention. In an alternative embodiment, a media server  100  (also shown in  FIG. 2 ) is used to provide the Internet video conference functionality. The media server  100  is a computing device that may have its hardware housed in an enclosure similar to a set-top box. It is connected to the home network  70  and runs all the software needed to support Internet video conferencing, but does not have to have its own monitor screen, keyboard, video camera, etc. attached thereto. When the TV client  86  is attached to the home network, it discovers the media server  100  and interacts with the media server to use the Internet video conferencing functionality provided by the media server to carry out video conferencing from the television  82 . 
         [0027]    The operations of the TV client  86  and the personal computer  74  in the embodiment of  FIG. 2  for allowing the user to do Internet video conferencing from her television is summarized in  FIG. 5 . Upon loading of the TV client (step  160 ), the TV client  86  discovers any computing device on the home network that can provide the Internet video conferencing functionality. In this example, the personal computer  74  is discovered (step  166 ). The TV client  86  then includes an option of “Internet Video Conference” in a local menu as part of its user interface (step  168 ). When the user invokes the Internet video conferencing functionality by selecting that option in the local menu presented on the television  82  by the TV client  86  (step  170 ), the TV client sends the request to the personal computer  74  (step  172 ). In response, the personal computer  74  runs the Internet conferencing software and sets up the video conference (step  176 ). During the video conference, the TV client  86  sends the video/audio data captured by the USB camera  120  to personal computer using the USB-to-IP tunneling as described above (step  178 ). The USB proxy  136  on the personal computer retrieves the USB data from the IP packets received from the TV client, and the Internet video conferencing program forwards the video/audio information to the conferencing parties over the Internet (step  180 ). In the reverse direction, the personal computer  74  receives streams of video/audio data from the conferencing parties on the Internet, performs appropriate processing on the received video/audio data, and forwards the processed video/audio data in RDP packets  156  over the IP home network  70  to the TV client  86  (step  182 ). The TV client  86  then plays the video/audio on the television  82  (step  186 ). 
         [0028]    In view of the many possible embodiments to which the principles of this invention may be applied, it should be recognized that the embodiments describe herein with respect to the drawing figures are meant to be illustrative only and should not be taken as limiting the scope of the invention. Therefore, the invention as described herein contemplates all such embodiments as may come within the scope of the following claims and equivalents thereof.