[1] Akamai. http://www.akamai.com/. [2] Y. Chen, W.Y. Ma, H.J. Zhang, Detecting Web. Page Structure for Adaptive Viewing on Small. Form Factor Devices, 12th ...
Enabling Multimedia Adaptation Services in Content Delivery Networks Wei-Ying Ma, Xing Xie, Chun Yuan, Yu Chen, Zheng Zhang, Hong-Jiang Zhang Microsoft Research Asia 5F, Sigma Center, No. 49 Zhichun Road, Beijing 100080, China
{wyma, xingx, t-cyuan, ychen, zzhang, hjzhang}@microsoft.com
ABSTRACT Content delivery networks (CDNs) provide a large number of caches and storage devices at the edge of network to push content closer to the user. To cope with the growing diversity and heterogeneity of the Internet, these edge nodes offer a natural place to extend the capability of network intermediaries for contentoriented processing such as content adaptation for small devices, personalization, and location-aware data insertion. In this paper, we present our investigation on developing a service overlay network on top of CDNs for delivering content-oriented web services. Our goal is to make the rich content services part of the Internet infrastructure services accessible to content providers and content consumers. A prototype system is reported in the paper, and the experimental results of deploying this system in our corporate network are also discussed.
Keywords Content delivery network, web services, adaptive content delivery, personalization
1. INTRODUCTION As the Internet is moving toward a service-centric model, more and more storages and computational resources are being put into the Internet infrastructure and provided as services to customers. In the content networking world, for instance, this trend can be seen on the development of content delivery networks (CDNs) [1] which make content distribution a network infrastructure service available to content providers and network access providers. On the other hand, the progress on standardization and development of web services has marked the beginning of a new era that every computational resource and service on the Internet can be connected to provide new user experiences on accessing, sharing, and using information anytime, anywhere, from any device. Our goal is to make content delivery networks capable of delivering content-oriented web services to content providers and content consumers. A service
subscription and delivery protocol is defined to allow the management servers to upload service instruction and rule modules to the service-enabled web caches to control their behaviors. While trying to achieve this goal, we ensure that the proposed model interacts with other existing network elements seamlessly so as not to undermine the success of end-to-end nature of Internet client/server interactions. The novel contributions of our work includes (1) the idea of enabling a large scale of content-oriented web services on the Internet as a subscription-based service and (2) A framework defining the required mechanisms and system interactions between various network entities to accomplish the task, along with several example services implemented.
2. Building Content Service Overlay Our system constitutes two layers of network infrastructures: content delivery overlay (i.e., CDNs) and service delivery overlay. The content delivery overlay constitutes a network of service-enabled web caches which extend the functionalities of traditional web caches for performing value-added processing. The service delivery overlay consists of a large number of application servers which act as remote call-out servers for service-enabled web caches. They are managed by so called services delivery and management (SDM) servers [3]. These two overlays work together to provide content-oriented web services to content.
2.1 Service-enabled web cache The service-enabled web cache is a key component to enable content delivery overlay to interact with the service delivery overlay. Its functions in the system will be introduced in the following sub-sections. The IETF OPES [4] is a related standard body to define some of these standards. This is an important step to facilitate the bridging of web services and content networking worlds.
2.2 Service registration and deployment Universal Description and Discovery Integration (UDDI) [5] is an open and global registry which allows
businesses to register information about their web services so that other businesses can find them. The service delivery overlay provides application servers and network resources to distribute and deploy content-oriented web services in a scalable and faulttolerant manner. Before a service becomes available, it needs to be registered in the UDDI registry first. The received components such as service specifications and binaries from service providers are stored the service database as shown in Figure 1(a). It then publishes the service information to the UDDI for public discovery and access. Along with service registration and publication, the corresponding application or executable module is provided to an SDM server, which then dynamically selects a set of edge servers (including application servers and service-enable web caches) to deploy the service based on estimated demand and required geographical coverage. As can be seen, there are two types of edge servers in the system. The light-weight services can be provided as executable modules in the service-enabled web caches. The heavy-weight services are installed in the application servers and invoked by the service-enabled web caches through the remote callout protocol. For each registered service, a service specification should be provided to describe invocation interface and execution environment of the service, such as parameter types and transport protocols that the service operates on, and the associated conditions (such as content type, user preference, device capability, location, and network bandwidth) to invoke the service. Binaries include applications running on the application servers and executable modules running on the service-enabled web caches. Figure 1(a)-(b) shows the system interaction between different components in the system for service registration of deployment.
2.3 Service subscription and binding
content (e.g. HTTP headers), or 2) attach an indicator (URI) to the content which refers to an external document for service instruction. However, both methods require a change on origin servers or user agents, a significant obstacle for service deployment.
(a) Service registration and deployment: (5) The service provider provides its content-oriented service (6) The corresponding service and the service specification are stored in the service database (7) The service is registered in UDDI registry for public discovery and access (8) The service is deployed and enabled in edge servers
(b) Service subscription and binding: (1) The subscriber finds the service from UDDI registry (2) The subscriber sends the subscription request to the SDM server (3) The subscription service stores the subscriber-service bindings in the service database (4) Service instructions representing subscriber-service bindings are transferred to service-enabled proxies
(c)
Figure 1. Interaction between various components.
One fundamental requirement to enable contentoriented web services in the content delivery path is determining whether current content should be serviced and how to invoke the service. Because service contracts are between service providers and communication ends such as origin servers and clients, there needs a way to make the service-enable web caches aware of the service contracts.
Another approach is to let the subscriber and the service provider determine on the service contract, and then let the system convert that contract into a service binding. A service binding describes the association between the subscribed services and the subscriber (e.g. the domain name of the subscriber if it is a content provider). Service bindings are maintained by the service delivery overlay which constantly updates the service-enabled web caches with the latest service instructions.
There are several possible solutions to the problem. A straightforward approach is to label the content (e.g. HTTP messages) to indicate that it needs special handling. A service-enable web cache that intercepts the labeled content will take appropriate actions according to the instruction. For content labeling, there are two choices: 1) embed service instructions directly into the
Content providers and content consumers find their interested services in the UDDI registry first, and then follow the access point to the service subscription interface as shown in Figure 1(a). The resulting service binding is stored in the database. This binding enables the future delivery of the subscribed services to the
content. Figure 1(c) illustrates the process of service subscription and binding.
2.4 Service enabling and execution After service subscription and binding, service instructions will be generated. The service instructions are transferred from the SDM servers to the serviceenabled web caches that the subscriber is associated with. The transfer may be eager (the SDM servers send the instructions to the service-enabled web caches immediately after the subscription) or lazy (the serviceenabled web caches fetch the instructions from the SDM servers for the subscriber on a periodical or persession basis).
$"
%"
!"
&"
#"
'"
(1) The client sends a request message. The service-enabled web cache checks the message and decides if it needs to provide a service; if not, go directly to step (4) (2) The service-enabled web cache invokes a local executable module or forwards the message to a remote application server (3) The application server returns the result back to the serviceenabled web cache (4) The service-enabled web cache forwards the request (sometimes modified) to the origin server (5) The origin server returns a response message (6) The service-enabled web cache sends the response to the client
Figure 2. Service executed on client requests.
'"
The service-enabled web cache determines if a message needs services according to the instructions. If the message satisfies the condition specified in an instruction, the service-enabled web cache will provide the service locally or execute a remote callout service to the application servers. A service may be executed on a client request or a server response. Request filtering and security adaptation belong to the former type, while some services could belong to the latter type, such as watermarking and location-aware data insertion. Figure 2 and 3 depict the service execution in these two cases.
3. The Prototype System We have built a prototype system called Media Companion to evaluate our ideas. This system is currently deployed in the corporate network of Microsoft Research Asia with five example services available for subscription. Each of the services is described in the following.
3.1 Adapting web-pages for small devices To enable an existing web site and its content easily viewable on mobile devices with a small screen, content adaptation technologies are often used to process the content either at the server, the proxy, or the client. We deployed a web-page adaptation service in our system. The algorithm utilizes the content, HTML tags and structure of a web page to partition it into a number of small blocks which best fit into a targeted screen size [2]. This adaptation enables easy browsing of a large web-page on a small device. This web-page adaptation is made a subscription-based service in our prototype system. The goal is to make this service available to content providers and end users on facilitating information delivery in the wireless Internet.
3.2 Adaptive video delivery
&"
#"
%"
!"
$"
(1) The client sends a request message (2) The service-enabled web cache forwards the request to the origin server (3) The origin server returns a response message. The serviceenabled web cache decides if it needs to process the response message; if not, go directly to the step (6) (4) The service-enabled web cache invokes a local executable module or make a call to a remote application server for heavy weight processing (5) The application server returns the result to the service-enabled web cache (6) The result is delivered to the client
Figure 3. Service executed on server responses.
There has been much research work on delivering a video to the wireless Internet. The technical challenges include dealing with the limitation of bandwidth, signal fading and packet loss in the communication channel, and power consumption. In our system, we deployed several video adaptation technologies as a subscription-based service to the mobile user. When accessing a video on a mobile device, the user could first receive a summary of the video (a sequence of keyframe images), which is created by our service-enabled web cache and application server. This video summary causes very little bandwidth to transmit and offers a table of content to index into individual video segment for nonlinear streaming. In our prototype system, the user can also set his preferred density of keyframes to achieve the best
user experience. Figure 4 (a) shows the result of this video adaptation service. The left window shows the original video, and the right window shows the adapted video as a result of our service.
the translation is completed, it is forwarded to the user. This whole procedure can be made transparent to the user.
For video conferencing on mobile devices, face is usually the most important object in the video. To save bandwidth and maximize information throughput, we deployed face detection and tracking algorithm at the application servers as a service to extract the most important regions and allow the service-enable web cache to deliver only those important regions to the client. In this case, we use HTTP protocol to stream a video, and the implementation is based on DirectShow. Figure 4 (b) shows the result of this adaptive video delivery service.
4. CONCLUSIONS
(a)
In this paper we presented our work on delivering content-oriented web services to Internet media. To demonstrate the idea and evaluate our system design principles, we developed a system called Media Companion in our corporate network. These services have shown to be very useful to our users. Our next step is to further expand the types of services by incorporating more multimedia technologies into the system. Our goal is to eventually make advanced multimedia processing, analysis, and interactive delivery technologies part of the Internet infrastructure services that can be easily accessed and used like a commodity by anyone from any device. Many research issues still remain uninvestigated. For example, we need to work on the problem of dynamic service distribution and management based on a set of metric (the estimated demand of services, the history of servers’ load, and demography). How to enable service composition, federation, and service-peering is another interesting and challenging research direction. Furthermore, the issue of data integrity also needs to be addressed as we allow content to be modified by a third-party service provider. There is a need to develop a proper security mechanism and trust model to ensure the content is modified in a desirable way. We will continue to work on these issues in the future.
5. REFERENCES (b)
Figure 4. (a) Automatic video summarization service. (b) Content-aware video delivery service.
3.3 Personalization A personalized content insertion is also enabled in our system. When subscribing to this service, the user can specify his interest on receiving what types of content (e.g., news, links, or images) inserted on the top of his requested web page. The service-enabled web cache will detect the need and insert appropriate content according to the instruction. More detail description of this work can be found in [6].
3.4 Language translation We integrated Altavista’s BabelFish translation service (http://world.altavista.com) into our system. Since it does not provide a standard interface for web service, we use its CGI interface to communicate with it. The user can specify his preferred language to translate a web page. The requested web page is sent to Altavista’s BabelFish for translation by our service-enabled web cache. After
[1] Akamai. http://www.akamai.com/ [2] Y. Chen, W.Y. Ma, H.J. Zhang, Detecting Web Page Structure for Adaptive Viewing on Small Form Factor Devices, 12th Intl. World Wide Web Conf., Budapest, Hungary, May 2003, 225-233. [3] W.Y. Ma, B. Shen and J. Brassil. Content Services Network: The Architecture and Protocols. Proc. of the 6th Intl. Workshop on Web Caching and Content Distribution, Boston, Jun. 2001, 83-101. [4] Open Pluggable Edge Services (OPES) Web Page. http://www.ietf-opes.org/ [5] Universal Description, Discovery, and Integration (UDDI). http://www.uddi.org/ [6] X. Xie, H.J. Zeng, W.Y. Ma. Enabling Personalization Services on the Edge. Proc. of ACM Multimedia 2002, Juan-les-Pins, France, Dec. 2002, 263-266.