# Patent

## Title
Method and system for integrating content and services among multiple networks

## Abstract

A method and system that enables aggregation and management of services and contents on multiple networks, is provided. In one implementation, such a method and system functionally bridges a first network and a second network such that services and contents, no matter where they come from, can be delivered to a user on one or more devices in the second network. The services and contents in the first network are converted by certain applications to behave as if they exist in the second network, so that they can be accessed by one or more devices in the second network. Such a method and system enables applications to be easily developed and distributed over the Internet using popular Web browsers as the platform for application runtime environments.

## Background
RELATED APPLICATION
This application claims priority from U.S. Provisional Patent Application Ser. No. 60/780,105, filed on Mar. 7, 2006, incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates to managing contents and services among multiple networks.
BACKGROUND OF THE INVENTION
The Internet has provided new methods of delivering services and contents to users. For example, video on demand using plugin technology on browsers enables users to view live video of news programs, watch movies, etc., on a specific device in a local area network such as a home network. These technologies, however, do not allow Internet services and contents to be delivered to another device in the home network.
In addition, due to the current same origin security model, Internet services that are delivered to a Web browser in the specific device in a home network, cannot utilize services and contents in a home network. For example, Internet content, such as video, that is delivered to a PC browser in the home network cannot be played on a TV in that home network. Such shortcomings greatly hinder a user's ability to effectively utilize intelligent, networked home devices.
At the same time, homes are becoming increasingly networked and home devices have the capabilities to deliver services and contents to other home devices. However, current home networking technologies, such as universal plug and play (UPnP), are designed for in-home use only and cannot take advantage of services and contents on the Internet. Therefore, there is a disjoint between the services/contents in a home and services/contents on the Internet, and contents and services on the Internet can only be delivered to a specific device and cannot be utilized by other devices in a home network.
There is, therefore, a need for a method and system for integrating contents and services over the Internet and in a local area network, such as a home network.
BRIEF SUMMARY OF THE INVENTION
The present invention provides a method and system that enable integration (aggregation) and management of services and contents among multiple networks. In one implementation, such a method and system functionally bridges a first network and a second network such that services and contents, no matter where they come from, can be delivered to a user on one or more devices in the second network. In one example, this allows applications to be easily developed and distributed over the Internet using popular Web browsers as the platform for application runtime environments.
Integrating content on a first network with content on a second network, involves aggregating content on the second network with content on the first network by functionally bridging the first network and the second network, such that content on either network can be delivered to a user on one or more devices in the first network.
Applications are downloaded from a first network to control services and play contents on a second network. In one implementation, an application is downloaded from the first network and executed on the second network. The downloaded application can access content on the first network by interacting with another application running on the first network. The downloaded application can also access content on the second network using a bridge. A user can utilize the downloaded application to access content in both the first and second networks.
These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a functional block diagram of an example home network implementing an embodiment of the present invention.
FIG. 2 shows example architecture of integrating contents and services over the Internet and in the home network, according to the present invention.
FIG. 3 shows a flowchart of the steps of a process for enabling aggregation of services and contents from the Internet with those services and contents in a home network.
FIG. 4 shows another example architecture of integrating contents and services over the Internet and in a home network, according to another embodiment of the present invention.
FIG. 5 shows a flowchart of the steps of another process for enabling aggregation of services and contents from the Internet with those services and contents in a home network, according to another embodiment of the present invention.



DETAILED DESCRIPTION OF THE INVENTION
The present invention provides a method and system for managing content among multiple networks by integration (i.e., aggregation) of services and contents among the networks. This involves bridging the networks such that services and contents, no matter where they come from, can be delivered to a user on one or more devices in a network. Such bridging includes converting the contents and services available on a first network to protocol dependent services and contents for the devices in a second network. As such, services and contents in one network are converted as if they exist in the other network, and can therefore be accessed on one or more devices (or any device) in either network.
In one example, services and contents on one network (e.g., the Internet) are integrated with the services and contents in another network, such as a local area network (e.g., a home network). This involves bridging the two networks by converting the contents and services available on the first network to protocol dependent services and contents for the devices in the second network. Applications are downloaded from the first network to control services and play contents on a second network. The downloaded applications can access content on the first network by interacting with another application (e.g., service) running on the first network. The downloaded applications can also access content on the second network. A user can utilize a downloaded application to access content in both the first and second networks.
Further, downloaded applications allow contents and services on the first network to be delivered to one or more devices (not just a specific device) in the second network to be utilized. For example, the user can stream a video/movie to a TV, as opposed to only a desktop PC, for better viewing.
As such, in one example, the present invention functionally bridges the Internet and a home network such that services and contents, no matter the source, can be delivered to a user on one or more devices in the home network. In addition, the present invention enables applications to be easily developed and distributed over the Internet using popular Web browsers as the platform for application runtime environments.
The Internet has become a popular delivery vehicle for services and contents to users. Advances in scripting and plugin technologies enable web servers to deliver dynamic, live audio/video content to desktops. Examples of such technologies include Asynchronous JavaScript and XML (AJAX), flash players, real players, etc. Coupling scripting and browser platform enables Internet applications to be distributed and run on many different devices and platforms without re-development and re-compilation of applications. Further, middleware technologies, such as UPnP, advocate the promise of networked home devices that can seamlessly work together to greatly simplify our daily lives.
FIG. 1 shows an example functional architecture of a network such as a home network 10 that implements integrating contents and services with another network, such as the Internet. The network 10 comprises devices 20 (providing content) and devices 30, a computer (PC) 21, an interface 40 that connects to the network 10 to another network 50 (e.g., an external network, the Internet, etc.). Though the logical devices 20 and 30 are shown separately, a single physical device can include one or more logical devices. The devices 20, 30 can comprise electronic devices including consumer electronic (CE) devices (e.g., TV, PVR, DVD player, CD player, DVR, PDA, etc.), appliances, etc. Services and contents from the Internet are transcoded into services and contents in the home network 10.
FIG. 2 shows a more detailed example of integrating contents and services of an Internet service provider (ISP) 100 in the Internet 50, with a home network 102 that is an example of the network 10 (FIG. 1). The Internet service provider (ISP) 100 provides both contents and services, wherein typical contents can be, e.g., video and audio clips, etc., and typical services can be, e.g., streaming services, purchase services, etc. The home network 102 includes a connected device 104 (e.g., PC 21), a media renderer device 106 (e.g., device 30 such as a TV), and a discovering device 108 (e.g., device 20) that is able to discover devices, services and contents in the network.
The devices 104, 106 and 108 are inter-connected via local network technologies, such as Ethernet, IEEE 802.11x, etc. The home network 102 connects to the Internet via e.g., WAN technologies, such as cable, DSL, etc.
The device 104 includes a Web browser 110 which includes a plugin 112 designed for home networking technologies (e.g., a UPnP plugin). A plugin comprises a program that is integrated into another application (e.g., a Web browser), and provides additional functionality that is not available in the application. For a Web browser, a plugin can comprise an add-on that allows the Web browser to properly process and present additional types of content. In one example, a plugin comprises a software program that merges with the Web browser software and allows the Web browser to properly process and present a wider range of content than originally intended. For example, the Flash plugin allows Web browsers to display Flash content.
The plugin 112 enables the services and contents from the ISP 100 to be transcoded into services and contents in the home network 102. The discovering device 108 discovers contents and services in the home network 102. The discovering device 108 further controls services on devices in the home network 102. For example, the discovering device 108 discovers the media renderer device 106 (e.g., TV, display monitor, PC, etc.) and controls the device 106 to render content using a URL of the content on the Internet (e.g., via ISP 100).
FIG. 3 shows a flowchart of the steps of a process 150 for enabling aggregation of services and contents from the ISP 100 with those services and contents in the home network 102 (FIG. 2), according to an embodiment of the present invention. The process 150 includes the steps of:

    
    
        Step 151: A user uses the Web browser 110 on a device 104 to browse the Internet 50, and navigates to a website of the ISP 100.
        Step 152: The Web browser 110 downloads a web page from the website on the ISP 100 to the device 104. The downloaded web page contains the ISP's scripting functions, such as Javascript functions. The scripting functions are part of the web page from the website, and provide an interface between the ISP 100 and the plugins 112 of the Web browser 110. Further, the scripting functions fetch content from the ISP 100, and call the plugins 112 to transcode that content such that the content can be discovered by a discovering device 108 (in this description, the term “call” refers to a data/function call, command and/or communication). In this example, the scripting function performs one or more of steps (a)-(f) below:
        
            a. instantiate a plugin 112 when the scripting function creates a plugin object;
            b. call back to the ISP 100 for available contents and services, by executing Javascript functions when the plugin 112 asks for content/services;
            c. call the plugin 112 to convert the contents and services available from the ISP 100 to protocol dependent services and contents for the devices in the home network 102;
            d. receive calls from the plugin 112 for control commands (e.g., searching the contents, streaming a video, etc.), from the discovering device 108 in the home network 102 (described in step 155 and 156 further below);
            e. periodically call back to the ISP 100 for contents and services states changes, (e.g., using scripting asynchronous call back functions, such as AJAX); and
            f. download contents, such as photos, audios and videos metadata from the ISP 100.
        
        
        Step 153: The discovering device 108 discovers a media renderer device 106, and discovers services and contents converted by the plugin 112. The discovery process depends on a particular home networking technology. For example, if the discovering device 108 and the media rendering device 106 are UPnP devices, and the plugin 112 is a UPnP plugin, the discovery process uses UPnP Simple Service Discovery Protocol (SSDP) to discover devices, services and contents.
        Step 154: Instead of playing the content discovered from the ISP 100 in step 152, on the browser 110 of device 104, the user wishes to play the content on the media renderer 106.
        Step 155: The discovering device 108 calls/commands the media renderer 106 to stream content from the plugin 112 to the media renderer 106 using the content address (e.g., URL) of the ISP.
        Step 156: The media renderer 106 starts to stream the content using the content URL and, for example, plays it on the media renderer's screen.
    
    


In addition to the plugin 112, the browser 110 can include additional home network technology plugins. Each plugin selectively converts certain services and contents from the ISP 100 to protocol dependent services and contents suitable for one or more devices in the home network 102. For example, a UPnP plugin converts Internet services and contents into UPnP specific services and contents for UPnP-type devices in the home network 102. A Jini plugin converts the Internet services and contents into Jini specific services and contents for Jini-type devices in the home network 102. Multiple plugins allow a user to access Internet services and contents regardless of home networking technologies.
FIG. 4 shows another example architecture of integrating contents and services over the Internet and in the home network, according to the present invention. The architecture in FIG. 4 allows contents in a home network (or the Internet) to be presented (e.g., played) on a browser in the home network using Internet services. A home network 202 connects to the Internet via, e.g., WAN technologies, such as cable, DSL, etc. An ISP 200 on the Internet provides services including, e.g., streaming services, purchase services, etc. The home network 202 includes a device 204 (e.g., a desktop PC) implementing a Web browser 208 and a media server device 206. The home network can include other devices. The devices in the home network 202 are connected via local network technologies, such as Ethernet, IEEE 802.11x, etc.
The Web browser 208 which includes a plugin 210 configured to control devices in the home network 202 using a specific home networking technology (e.g., a UPnP control point plugin). The plugin 210 discovers devices, services and contents in the home network 202, and further, controls other devices in the home network 202. The Web browser 208 also includes a media rendering plugin 212, such as a UPnP media render, that can play media content.
FIG. 5 shows a flowchart of the steps of a process 300 for enabling integration/aggregation of services and contents from the ISP 200 with those services and contents in the home network 202 (FIG. 4). The process 300 includes the steps of:

    
    
        Step 301: A user uses the Web browser 208 to browse the Internet and navigates to the website of the ISP 200.
        Step 302: The Web browser 208 downloads a web page from the ISP 200. The downloaded web page includes the ISP's scripting functions, such as Javascript functions. The scripting functions are configured to interact with and orchestrate devices, services and content in a home network, for example, to play a movie, to play an audio track, to print a photo, etc. In this example, the scripting function performs one or more of steps (a)-(e) below:
        
            a. creating the plugin object 210 and the plugin object 212 by instantiating the plugins 210 and 212 in the Web browser 208;
            b. calling the plugin 210 to discover devices, services and contents in the home network 202 (e.g., as described in step 303 below);
            c. calling the plugin 212 to control playing of media content (e.g., as described in step 305 below);
            d. receiving function calls from the plugin 210 for devices and services status changes in the home network 202 as part of the discovery process described in step 303 below; and
            e. receiving function calls from the plugin 212 for media playing status (state) changes as part of the discovery process described in step 303 below.
        
        
        Step 303: The plugin 210 discovers the device 206 using a home networking technology function. For example, a UPnP plugin can discover: (1) UPnP devices in the home network using UPnP SSDP, (2) contents on the device 206 using content discovery such as “Search” and/or “Browse” in the UPnP Content Directory Service, etc.
        Step 304: The user wishes to play content from the device 206 in the Web browser 208 of the device 204.
        Step 305: The media renderer plugin 212 starts to stream the content from the device 206 using the location (e.g., the URL) of the content, and plays it on the Web browser 208. The ISP 200 provides scripting functions, similar to applications, to control and play content in the home network.
    
    


As discussed above, there can be multiple plugins in the Web browser 208, such that devices, services and contents can be utilized by the Web browser 208, regardless of their underlying networking technologies. As such, in one example, the present invention enables integration/aggregation of services and contents of a local network (e.g., a home network) with services and contents in an external network (e.g., Internet or other content/service source). Therefore, services and contents no matter where they reside (e.g., on the Internet, in another source, in the home network, etc.), are delivered to a user on one or more devices in the home network. This enables applications to be easily developed and distributed over the Internet using popular Web browsers as the platform for application runtime environments.
As is known to those skilled in the art, the aforementioned example architectures described above, according to the present invention, can be implemented in many ways, such as program instructions for execution by a processor, as logic circuits, as an application specific integrated circuit, as firmware, etc.
The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.

## Claims

1. A method comprising:
downloading a web page from a website of a service provider outside of a home network, wherein the service provider provides content and services for user access, and wherein the web page comprises scripting functions that provide an interface between the service provider and a web browser inside the home network; and
running the web page using the web browser, wherein the scripting functions of the web page are configured to:
instantiate a first plug-in object;
call the service provider for available content and services;
in response to a request from a discovering device inside the home network for content and services, report the available content and services to the discovering device via a networking protocol;
in response to a request from the discovering device to play a piece of content, stream the piece of content to a media renderer device inside the home network from the service provider through the first plug-in object via a networking protocol; and
determine one or more status changes associated with the available content and services;
wherein the scripting functions periodically call the service provider for one or more status changes associated with the available content and services;
wherein the first plug-in object converts the available content and services to protocol dependent content and services, thereby enabling one or more devices inside the home network to discover and access the available content and services; and
wherein the available content and services comprise an aggregation of content and services in the Internet and content and services in the home network.

2. The method of claim 1, wherein:
the scripting functions are further configured to convert the available content and services to a format compatible with one or more devices of the home network;
the available content and services are updated based on the one or more status changes determined;
the content and services in the Internet comprise at least one of a video, an audio clip, a streaming, and a purchase service; and
the content and services in the Internet are provided by one or more Internet service providers (ISP).

3. The method of claim 1, wherein Universal Plug and Play Simple Service Discovery Protocol is utilized for reporting the available content and services to the discovering device.

4. The method of claim 1, wherein:
the piece of content is not played on either the web browser or the discovering device; and
the discovering device commands the media renderer device to stream the piece of content from the first plug-in object.

5. The method of claim 1, wherein the scripting functions are further configured to instantiate a second plug-in object, wherein the second plug-in object is different from the first plug-in object, and wherein the second plug-in object is configured to convert the available content and services to a different format than the first plug-in object.

6. The method of claim 1, further comprising:
navigating to the service provider using the web browser; and
streaming content maintained on a device inside the home network to the web browser via the first plug-in object.

7. The method of claim 1, wherein:
the scripting functions include one or more call back functions for communicating with the service provider, wherein the one or more call back functions are used for at least one of the following: call the service provider for available content and services, and periodically call the service provider for one or more status changes associated with the available content and services; and
each status change associated with the available content and services represents one of the following: a content state change for a particular piece of content of the available content and services, and a service state change for a particular service of the available content and services.

8. A system comprising:
a service provider; and
a home network comprising a web browser, a discovering device and a media rendering device interconnected via a networking protocol;
wherein the web browser is configured to:
download a web page from the service provider, wherein the web page comprises scripting functions that provide an interface between the service provider and the web browser; and
run the web page, wherein the scripting functions of the web page are configured to:
instantiate a first plug-in object;
call the service provider for available content and services;
in response to a request from a discovering device for content and services, report the available content and services to the discovering device;
in response to a request from the discovering device to play a piece of content, stream the piece of content from the service provider to the media rendering device through the first plug-in object; and
determine one or more status changes associated with the available content and services;


wherein the discovering device is configured to:
discover, using standard home networking discovery protocols, the available content and services by discovering the web browser;
discover, using standard home networking discovery protocols, the media rendering device; and
cause the media rendering device to stream the piece of content via the first plug-in object;
wherein the scripting functions periodically call the service provider for one or more status changes associated with the available content and services;

wherein the first plug-in object converts the available content and services to protocol dependent content and services, thereby enabling one or more devices inside the home network to discover and access the available content and services; and
wherein the available content and services comprise an aggregation of content and services in the Internet and content and services in the home network.

9. The system of claim 8, wherein:
the home network comprises a Universal Plug and Play network;
the available content and services are updated based on the one or more status changes determined;
the content and services in the Internet comprise at least one of a video, an audio clip, a streaming, and a purchase service;
the content and services in the Internet are provided by one or more Internet service providers (ISP);
the scripting functions include one or more call back functions for communicating with the service provider, wherein the one or more call back functions are used for at least one of the following: call the service provider for available content and services, and determine one or more status changes associated with the available content and services; and
each status change associated with the available content and services represents one of the following: a content state change for a particular piece of content of the available content and services, and a service state change for a particular service of the available content and services.

10. The system of claim 8, wherein the media rendering device comprises a television.

11. A first device in a home network, comprising:
a web browser configured to:
download a web page from a service provider, wherein the web page comprises scripting functions; and
execute the scripting functions to instantiate a first browser plug-in;

wherein the first browser plug-in, when instantiated, is configured to:
receive a discovery request from a second device in the home network for content and services available from the service provider;
return the available content and services to the second device via a networking protocol;
convert the available content and services to protocol dependent content and services, thereby enabling one or more devices inside the home network to discover and access the available content and services; and
convert a piece of content from the service provider into a format compatible with a third device in the home network;

wherein the scripting functions are configured to determine one or more status changes associated with the available content and services;
wherein the scripting functions periodically call the service provider for one or more status changes associated with the available content and services;
wherein the web browser is run by a computer processor; and
wherein the available content and services comprise an aggregation of content and services in the Internet and content and services in the home network.

12. The first device of claim 11, wherein:
the first device comprises a gateway;
the available content and services are updated based on the one or more status changes determined;
the content and services in the Internet comprise at least one of a video, an audio clip, a streaming, and a purchase service;
the content and services in the Internet are provided by one or more Internet service providers (ISP);
the scripting functions include one or more call back functions for communicating with the service provider, wherein the one or more call back functions are used for at least one of the following: call the service provider for available content and services, and determine one or more status changes associated with the available content and services; and
each status change associated with the available content and services represents one of the following: a content state change for a particular piece of content of the available content and services, and a service state change for a particular service of the available content and services.

13. The first device of claim 11, wherein the third device comprises a television.

14. The first device of claim 11, wherein the second device comprises a mobile phone.

15. The first device of claim 11, wherein the web browser is further configured to instantiate a second browser plug-in upon execution of the scripting functions, wherein the second browser plug-in is configured to convert a piece of content from the service provider into different format than the first plug-in object.

16. A non-transitory program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform a method comprising:
downloading a web page from a website of a service provider outside of a home network, wherein the service provider provides content and services for user access, and wherein the web page comprises scripting functions that provide an interface between the service provider and a web browser inside the home network;
running the web page using the web browser, wherein the scripting functions of the web page are configured to:
instantiate a first plug-in object;
call the service provider for available content and services;
in response to a request from a discovering device inside the home network for content and services, report the available content and services to the discovering device via a networking protocol;
in response to a request from the discovering device to play a piece of content, stream the piece of content to a media renderer device inside the home network from the service provider through the first plug-in object via a networking protocol; and
determine one or more status changes associated with the available content and services;
wherein the scripting functions periodically call the service provider for one or more status changes associated with the available content and services;
wherein the first plug-in object converts the available content and services to protocol dependent content and services, thereby enabling one or more devices inside the home network to discover and access the available content and services; and
wherein the available content and services comprise an aggregation of content and services in the Internet and content and services in the home network.

17. The non-transitory program storage device of claim 16, wherein:
the scripting functions are further configured to convert the available content and services to a format compatible with one or more devices of the home network;
the available content and services are updated based on the one or more status changes determined;
the content and services in the Internet comprise at least one of a video, an audio clip, a streaming, and a purchase service; and
the content and services in the Internet are provided by one or more Internet service providers (ISP).

18. The non-transitory program storage device of claim 16, wherein Universal Plug and Play Simple Service Discovery Protocol is utilized for reporting the available content and services to the discovering device.

19. The non-transitory program storage device of claim 16, wherein:
the piece of content is not played on either the web browser or the discovering device; and
the discovering device commands the media renderer device to stream the piece of content from the first plug-in object.

20. The non-transitory program storage device of claim 16, wherein the scripting functions are further configured to instantiate a second plug-in object, wherein the second plug-in object is different from the first plug-in object, and wherein the second plug-in object is configured to convert the available content and services to a different format than the first plug-in object.

21. The non-transitory program storage device of claim 16, further comprising:
navigating to the service provider using the web browser; and
streaming content maintained on a device inside the home network to the web browser via the first plug-in object.

22. The non-transitory program storage device of claim 16, wherein:
the scripting functions include one or more call back functions for communicating with the service provider, wherein the one or more call back functions are used for at least one of the following: call the service provider for available content and services, and periodically call the service provider for one or more status changes associated with the available content and services; and
each status change associated with the available content and services represents one of the following: a content state change for a particular piece of content of the available content and services, and a service state change for a particular service of the available content and services.