The present invention relates to the field of data communication, in particular to distributing and streaming of data, for accessing digital information, including audio, video and business type information, at remotely stored locations and for communicating that information to a users premise.
From U.S. Pat. No. 5,734,719 a system for accessing digital information over a computer network is known. The system contains a master server which is situated geographically so as to be accessible to network subscribers. It's geographic and network location is dependent upon communication network systems and subsystem cost and availability in order to best serve a customers premise, whether it's a retail store or similar point-of-sale or other end-user-location. Security mechanisms that require centralized database authorization prior to the transmission of content and/or the manufacture of any of the products is provided in addition.
New media data extends traditional computer data formats into more natural data formats for the interaction of humans and computers by incorporating images, motion pictures, voice, audio and video. One of the key problems with new media data is transferring the usually huge amounts of content through a network.
A stream server requires all data to be streamed to reside locally on the stream server. The connection bandwidth to the rendering client (media player) has to fulfill at least the requirements corresponding to the nature of the data to be transmitted. For this reason stream servers are placed on so called edge servers (the edge of the network in the connection path to the client; also referred to as the “last mile”).
In order to initiate a streaming operation streaming meta data needs to be provided to the renderer client (media player) requesting the stream. The meta data or meta file usually contains at least an identification (key) of the media data to be streamed and the identification of the stream server e.g. the TCP/IP host name of the stream server machine and the port the stream server software listens to.
When a user wants to have media streamed to his client he normally “clicks” on a hyperlink identifying the media on the web page presented to him through his web browser. The web browser generates a http request containing the media identification information. As a response to that the application server sends the media meta data to the client's web browser. Based on that information the web browser typically invokes the corresponding media player which resides on a client and is responsible to receive the meta data from the network, negotiate connection to the stream server, receive and to render the data in parallel.
The way streaming technology is realized today, media players are only able to render streams from a corresponding stream server usually built by the same company. Examples of such proprietary stream formats are the IBM Video charger/Video charger player, Apple-quick time, Microsoft MediaServer/MediaPLayer and Real Networks G2 server/player.
A common problem of the prior art data transfer protocols, in particular streaming protocols over a computer network, such as the Internet, is the bandwidth required to perform a streaming operation.
It is thus an object of the present invention to provide an improved method and computer system for distributing content data to edge servers and in particular, to select an edge server or acceptable alternative edge server which is located topologically nearest to the client which requests the streaming service.
The object of the invention is achieved by the features stated in the enclosed independent claims to which reference should now be made. Further advantageous arrangements and embodiments of the invention are set forth in the respective sub claims.
The invention allows to determine an edge server location to which the client is connected while sending the request for streaming to the application server. This determination is done by adding information to the client's http request containing the media identifier on the way to it's Web application server which is contacted by the client to select a file for downloading and/or streaming.
Typically the Web application server is contacted by the client by inputting the corresponding uniform resource locator into the client's Web browser program. The connection between the client and the Web application server is provided by establishing a communication path including a plurality of server computer nodes. The first server computer node in the path from the client to the Web application server is the server topologically closest to the client which can thus be expected to be an efficient edge server to provide the streaming services with the best performance and shortest latency time for the client.
In one embodiment of the invention this server—being the first node in the path from the client to the Web application server—is selected by the Web application server or an associated media request broker to be the server from which the download of the desired file is to be performed. The corresponding Meta data provided from the media request broker to the Web application server to the client contains data identifying the selected server.
In a further preferred embodiment the media request broker contains a file comprising a set of alternative servers being located in the same geographical or topological region as the first server node in the path between the client and the Web application server. In this case the server from which the download is to be performed is selected from the group comprising the set of servers in the same geographical/topological region as the node itself.
The selection of a particular server out of this group of servers is done based on a determination of a relative quality weight index of the server in the group. The relative quality weight can be determined based on one or more of the following criteria: availability of the desired media on the server, number of transactions in process, usage of processing resources and available bandwidth in the communication path to the client.
In a further preferred embodiment the other server computers in the path from the client to the Web application server are also taken into consideration for the selection of the particular server. In addition each of these additional servers can also have associated regional servers which can also be taken into consideration for determining an appropriate server to perform the download and/or streaming operation.
In a further preferred embodiment a server computer can contain stream servers of different data formats. If a media is available on that server computer in a format which is different to the format required by the requesting client this server computer can still be selected to be the server computer of choice. In this case the data format available on the server computer is transcoded “on the fly” to the desired format and then streamed to the client.
A particular field of application of the present invention is mobile communication, in particular with respect to digital telephony such as UMTS. In this case the client can be any mobile device, such as a mobile phone having an integrated MP3 player, a personal digital assistant or a portable computer, such as a Laptop or Palm top computer, having a wireless interface.
A particular advantage of the present invention is that by selecting a server based on it's quality weight the computer network can be balanced as far as the distribution of computing and/or bandwidth resources is concerned. The overall system throughput can thereby be optimized.
The present invention is illustrated by way of example and is not limited by the figures of the accompanying drawings in which:
The computer system of
The client 1 can connect with the help of his web browser to Web application server 3 via a computer network, such as the Internet comprising the edge servers ES1, ES2, ES3, ES4 and other edge servers not shown in
The stream server can be an IBM Video charger to interface with the corresponding media player 2 of client 1. The streaming operation is performed out of the cache 6. The media cache controller 4 controls and analyses the status and operation of stream server 5 and it's cache 6.
In particular media cache controller 4 evaluates a present system status to provide a quality weight indicating the loading of the system. The quality weight can include one or more of the following criteria: availability of the selected file in the cache 6, available bandwidth for connecting to the client 1, percentage of processing resources of the edge server ES1 and/or other criteria.
Further the edge server ES1 has a memory 7 for storage of the identifier ID1 of the edge server ES1. Hook 8 is coupled to the memory 7.
Each of the edge servers passes the http requests and responses of the client and the web application server back and forth. For every http request coming from the client the edge server calls the hook 8 and passes this http request to it.
The hook examines this http request for a unique signature which identifies the request as a media request. If the hook identifies this signature it appends it's identifier ID1 to the http request and passes the request back to the edge server. The edge server sends it to the next edge server ES2 . . . ESn—if there is one—or to the application server.
The further edge servers ES2, ES3 and ES4 in the communication path between the client 1 and the Web application server 3 are of the same or a similar constitution than edge server ES1.
The computer system of
Web application server 3 is coupled to media request broker 11. The media request broker 11 selects one of the edge servers ES1 to ES4 or another edge server to perform the streaming operation of the desired data to client 1. Based on this selection of a server by media request broker 11 the Web application server generates the Meta data for the client 1.
The Web application server has a memory 12 for at least temporarily storing the http request of the client augmented by data indicative of one or more of the edge servers comprised in the communication path between the client 1 and the Web application server 3.
The Web application server further contains servlet 14 which is invoked through this http request when client 1 clicks on the Hyperlink to a media 10.
In operation client 1 clicks on a hyperlink within a Web page 13 in it's Web browser program in order to request the desired media from the Web application server 3 via the Internet. As already explained in detail above the web browser generates the corresponding http request which is routed through the edge servers ES1 to ES4 such that a communication path including those edge servers results.
As the communication path is build up the hook 8 of edge server ES1 adds information to the http request to add it's identifier ID1 to the request. Likewise the further edge servers ES2 to ES4 also append corresponding data to the http request.
Thus the resulting http request is composed of the original URL plus data indicative of the identifiers ID1 to ID4.
Subsequently servlet 14 is invoked with all the information contained within the client's http request and it transfers at least the extension to the media request broker 11.
The media request broker has a variety of options to select an appropriate edge server as a server for streaming of the desired file 10 to client 1. One option is to select the edge server ES1 as the edge server which is closest to the client 1 in the communication path which has been established through the Internet to the Web application server 3.
It is assumed that the closest edge server ES1 also provides highest bandwidth. The identity of the edge server ES1 is determined by the media request broker by analyzing the appended extension provided by the hook running on each edge server ES1 to ESn.
Based on this information the media request broker 11 generates the Meta data which is required by client 1 to access a stream server. The Meta data includes the complete Network address of stream server 5 (e.g. IP-address and port) and a key for access to the desired media 10 is provided to client 1 by Web application server 3.
In response to receipt of the Meta data the client 1 connects to the edge server ES1, in particular to stream server 5, to invoke the streaming operation. In case the desired media 10 is already available in the cache 6 the streaming can start immediately.
If this is not the case first a download operation of the file 10 from the media server 9 to the cache 6 of the edge server ES1 needs to be initiated.
Alternatively the Media request broker can also take into consideration the further edge servers ES2 to ES4 as identified by the extension provided by Servlet 14. In either case Media request broker 11 evaluates the quality weights provided by the Media cache controllers 4 of the corresponding edge servers ES1 to ES4 to select the most suitable edge server.
For example the edge server ES2 may already contain the media 10 in it's cache 6 while the media 10 is not available in the cache 6 of the edge server ES1. In this case the quality weight of the edge server ES2 is greater than the quality weight of the edge server ES1 even though the edge server ES1 is closer to client 1 due to the fact that the edge server ES2 already has the required data.
Likewise edge server ES2 or another edge server can be selected by the Media request broker for other reasons, for example the edge server ES1 being overloaded, the stream server 5 of the edge server ES1 being down or not having the required data format.
As in the previous embodiment hook 8 serves to provide an extension to the http request provided by the client 1 to append information indicative of the identifier ID1 of the edge server ES1.
On a second level of hierarchy the edge server ES1 has a media edge controller 18 which communicates with the media cache controllers 4 and 15 of the individual stream servers 5 and 16.
Further the computer system comprises the edge servers ES1a, ES1b, ES1c and ES1d which are located in the same geographical/topological region or area 19 of the edge server ES1. Likewise the other edge servers ES2 to ES4 can be associated to corresponding additional edge servers in their respective regions or areas.
This situation is reflected by the database 20 stored by the media request broker 11. The database 20 groups edge servers of each of the regions or areas; for example in case of the region 19 it assigns the edge server ES1 to the additional edge servers ES1a to ES1d. The database 20 can contain similar entries for the further edge servers ES2 to ES4.
When the media request broker 11 obtains the extension from servlet 14 it identifies the first edge server in the path between client 1 and Web application server 3—which is the edge server ES1. In the next step media request broker 11 identifies the additional edge servers ES1a to ES1d being located in the same geographical/topological region 19 of the edge server ES1 by querying database 20.
Further the media request broker 11 obtains the relative quality weights from the media cache controllers and/or media edge controllers of the respective group of edge servers of the region 19. The media request broker 11 selects the stream server providing the highest quality weight from this group of edge servers.
If the highest quality weight of a stream server of this group of edge servers is not sufficient, for example because it is below a predefined threshold value, the media request broker 11 performs an equivalent operation for the next edge server ES2 and the associated regional group of additional edge servers not shown in
As a result of this process the media request broker 11 returns a stream server address to the Web application server 3 based on which the meta data for client 1 is generated.
In the embodiment of the
The transcoding is initiated by media request broker with a corresponding message to the media edge controller. In the example the requested media taken from the cache of Stream Server 16 is transcoded and the resulting media is stored in the cache of Stream Server 5. Subsequently a meta file is generated pointing to stream server 5 and the media would be streamed from stream server 5 to the media player.
With respect to
In step 3 a Web Browser generates a http request containing the unique signature of the media request.
Step 4 is a for-next-loop containing the following steps 5, 6 and 7:
For all edge servers 1 to n:
Pass Http request to edge server ESm.
Invoke hook at edge server ESm.
Check hook if media request signature is present.
In step 6 it is decided if a media request signature is present. If this is the case an ID of the edge server ESm is appended to the http request in step 7 and the control goes back to step 5 with an incremented m. Otherwise m is incremented directly and the control goes back to step 5 as long as m remains lesser or equal to n.
In step 8 the Http request arrives at the Web Application Server. Next in step 9 the Web Application Server invokes a servlet and passes a URL and the extension(s) of the Edge Servers to the Servlet.
The extension of the URL is accessed in step 10 by the servlet to provide the extension to the media request broker in step 11.
Based on the extension the media request broker determines quality weights of potential edge servers in step 12. A potential edge server is the first edge server in the communication path between the client and the Web page—which is edge server ES1—or an edge server from a regional group of the edge server ES1 and/or one of the edge servers ES2 to ES4 and/or corresponding regional groups of the edge servers ES2 to ES4.
In step 13 the media request broker selects an appropriate edge server based on the quality weight as determined in step 12.
Based on the selected edge server corresponding media data is generated in step 14 which is send to the client in step 15.
The client connects to the edge server indicated in the meta data and provides the key to the edge server to initiate the streaming in step 160. The streaming actually starts in step 17.
Number | Date | Country | Kind |
---|---|---|---|
EP01109563.5 | Apr 2001 | EP | regional |
Number | Date | Country | |
---|---|---|---|
Parent | 10474972 | Mar 2004 | US |
Child | 12171744 | US |