Authoring Adaptive Multimedia Services

Similar documents
Mobile Multimedia Services Content Adaptation

CONTENT MODEL FOR MOBILE ADAPTATION OF MULTIMEDIA INFORMATION

MULTIMEDIA ADAPTATION FOR DYNAMIC ENVIRONMENTS

APPLYING INTERACTIVE WEB PAGES

Types and Methods of Content Adaptation. Anna-Kaisa Pietiläinen

Lesson 1 Key-Terms Meanings: Web Connectivity of Devices and Devices Network

M.SARAVANA KARTHIKEYAN

SAS Solutions for the Web: Static and Dynamic Alternatives Matthew Grover, S-Street Consulting, Inc.

White Paper: Delivering Enterprise Web Applications on the Curl Platform

Caliber 11.0 for Visual Studio Team Systems

MythoLogic: problems and their solutions in the evolution of a project

Developing Java TM 2 Platform, Enterprise Edition (J2EE TM ) Compatible Applications Roles-based Training for Rapid Implementation

Managing Learning Objects in Large Scale Courseware Authoring Studio 1

BEAWebLogic. Portal. Overview

Agent-Enabling Transformation of E-Commerce Portals with Web Services

Discovering Computers Chapter 13 Programming Languages and Program Development

Chapter 10 Web-based Information Systems

Authoring and Maintaining of Educational Applications on the Web

3. WWW and HTTP. Fig.3.1 Architecture of WWW

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Leveraging the Direct Manipulation Capabilities of OpenCms by Introducing a Page Definition Layer -

Appendix A - Glossary(of OO software term s)

Chapter 2 FEATURES AND FACILITIES. SYS-ED/ Computer Education Techniques, Inc.

On Accessing GSM-enabled Mobile Sensors

ESPRIT Project N Work Package H User Access. Survey

CONTEXT-SENSITIVE VISUAL RESOURCE BROWSER

Design Considerations When Developing Applications Using SAS. Vijay Rajandram Amadeus Software Ltd

Design concepts for data-intensive applications

The HyperContext Prototype

COLUMN. Choosing the right CMS authoring tools. Three key criteria will determine the most suitable authoring environment NOVEMBER 2003

A web application serving queries on renewable energy sources and energy management topics database, built on JSP technology

AQU Information Systems Fundamentals Spring 2012 Pg. 9.1

Pervasive Web Application Architecture. History Scalability Availability Development Application Architecture

ITM DEVELOPMENT (ITMD)

Content Based Messaging Model for Library Information System

Canalization and Personalization in Mobile Wireless Application

Mobile Application Ecosystems

A Context Based Storage System for Mobile Computing Applications

Architecture Proposal for an Internet Services Charging Platform

Contact: Systems Alliance, Inc. Executive Plaza III McCormick Road, Suite 1203 Hunt Valley, Maryland Phone: / 877.

Page Gentics Software GmbH Enterprise Portals and Content Management Systems

Global Servers. The new masters

Tools to Develop New Linux Applications

An Interactive Web based Expert System Degree Planner

09. Mobile Commerce. Contents. Mobile Computing and Commerce

Mobile Commerce. Electronic Commerce

National Training and Education Resource. Authoring Course. Participant Guide

Magnolia Community Edition vs. Enterprise Edition. Non-Functional Features. Magnolia EE. Magnolia CE. Topic. Good value for money.

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Over All Idea about MVC: How to use Model- View-Controller (MVC)

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

Enterprise Java Unit 1- Chapter 3 Prof. Sujata Rizal Introduction to Servlets

Developing portlets for the IBM WebSphere Portal Server with IBM Rational Rapid Developer

Managing System Administration Settings

Development of Content Management System with Animated Graph

Reporting and Printing Guide

Outline. CS5984 Mobile Computing HTTP. HTTP (especially 1.0) Problems 1/2. Dr. Ayman Abdel-Hamid, CS5984. Wireless Web.

The Skill Research of Interactive Web Site Based on.net: The Design and Development Yanwei XU 1, a, Honghui GONG 2, Ting ZHANG 3

5/19/2015. Objectives. JavaScript, Sixth Edition. Introduction to the World Wide Web (cont d.) Introduction to the World Wide Web

Sourcing - How to Create a Negotiation

POSTER SESSION. Wireless Cardiology Decision Support System. Proceedings Paper. Slide Presentation. Dr. Saji Salam SSI Technologies Chennai, India

File: SiteExecutive 2013 Content Intelligence Modules User Guide.docx Printed January 20, Page i

Changing Settings for ViewMail for Outlook (Version 8.0 Only)

Web Data Extraction and Generating Mashup

An Approach to VoiceXML Application Modeling

Java Framework for Database-Centric Web Site Engineering

12/05/2017. Geneva ServiceNow Security Management

Sitecore E-Commerce Cookbook

How Much Middle-Tier Do You Need? *

GlobeNewswire. GlobeNewswire, User s Guide USER S GUIDE. Version: 1.16 Issued: By: Global Corporate Services 12/06/

Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005

TABLE OF CONTENTS 1. INTRODUCTION DEFINITIONS Error! Bookmark not defined REASON FOR ISSUE 2 3. RELATED DOCUMENTS 2 4.

WEB APPLICATION DEVELOPMENT. How the Web Works

DBMS (FYCS) Unit - 1. A database management system stores data in such a way that it becomes easier to retrieve, manipulate, and produce information.

EEC-682/782 Computer Networks I

Product Documentation. ER/Studio Portal. User Guide. Version Published February 21, 2012

Caliber Visual Studio.NET Integration Visual Studio Integration

Web 2.0 Proxy: A New Framework for Web 2.0 Website Development

[ Getting Started with Analyzer, Interactive Reports, and Dashboards ] ]

Performance Evaluation of XHTML encoding and compression

Crystal Enterprise. Overview. Contents. Web Server Overview - Internet Information System (IIS)

A Content Transformation Framework for Personalization Service

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Active Server Pages Architecture

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications

Research on 3G Terminal-Based Agricultural Information Service

Emerging Technologies in Knowledge Management By Ramana Rao, CTO of Inxight Software, Inc.

This tutorial is designed for those who would like to understand the basics of i-mode in simple and easy steps.

13. Databases on the Web

Understanding the Web Design Environment. Principles of Web Design, Third Edition

Managed Reporting Environment

Chapter 3. Technology Adopted. 3.1 Introduction

ER/Studio Enterprise Portal User Guide

The Webmail Interface

Building reports using the Web Intelligence HTML Report Panel

Computational Web Portals. Tomasz Haupt Mississippi State University

White Paper Subcategory. Overview of XML Communication Technologies

New Features Summary PowerDesigner 15.2

For many years, the creation and dissemination

Transcription:

Authoring Adaptive Multimedia Services Tuomas T. T. Polvi, Antti Koivisto, Jaakko Sauvola Team Oulu, Infotech Oulu University of Oulu, P.O. Box 4500 FIN-90014 UNIVERSITY OF OULU, FINLAND ABSTRACT In this paper, we describe new content authoring issues related to mobility and cross-platform multimedia systems. We present the novel architecture for Content Provider Interface (CPI), which provides the necessary tools for creation and delivery of mobile multimedia services across heterogeneous environments. CPI is a fully implemented system and set of tools for creating and updating new multimedia services delivered via a mobile adaptive multimedia service platform called Princess. CPI is based on an object-oriented database for editing and storing media objects, which are interpreted to service catalogs and presentations. Additionally, CPI is capable of creating rich notifications to the system to dynamically report content updates and allows users to create and use templates to establish new media objects, combine databases and preview presentations outside the service platform. The proposed approach addresses the requirements and difficulties of the cross-platform multimedia systems by integrating data management, service logic and modular service/presentation design together in a unique way with dynamic content updates and notification features, as well as user group management. Keywords: mobile, multimedia, authoring, interface, content creation 1. INTRODUCTION The introduction of powerful, connected portable computers has given rise to development of mobile versions of the traditional WWW services, which are originally based on standard content description languages and networking protocols. The existing infrastructure and oceans of content found from the WWW is not suitable in the limited environment as e.g. size of display, input means and bandwidth may differ greatly within time and between users 6. Consequently, content providers may decide to tailor several, parallel versions of the same content to satisfy the different needs and constraints of desktop and mobile users 1, 9. Multimedia access in limited capability environments has gained wide attention from the academia and the industry. Unfortunately, many of these efforts have resulted in proprietary mobile systems, 9 such as WAP that take little or no advantage of the existing Internet infrastructure. Our approach utilises cross-platform media representation and application interfaces to author and deliver multimedia content over a heterogeneous set of clients and networks, based on single content source and format. The performance and capacity of portable computers have increased rapidly during the last decade. 10 This has allowed development of many new applications for them that have previously required personal workstations or have not been reasonable to use without mobility. The need for information does not disappear when a person leaves his/her desk. There is a demand for mobile multimedia applications that have become available because of technical improvements and decreasing prices. 8 When mobile applications are being developed, one has to consider that mobile devices have different requirements and usage environment compared to desktop computers. There are also differences between different kinds of mobile computers, and operating systems. Processing power, size of display, and input means may differ greatly, as well as the bandwidth of the connection. Especially display size and small bandwidth limit the usage of multimedia elements in mobile applications.

For this reason many multimedia services are customized only for a single terminal type. The downside is that if a service is used with different terminals, developers need to create and maintain several separate versions of it. Another cause for problems is that one user may retrieve the service with different terminal types and require the same data to be available. Adaptive multimedia services are one way to resolve these problems 9. 1.1 Service architectures and content authoring When service architectures are considered, the need for programming should be minimised due to high cost of programming and likelihood for errors. To reduce programming, the adaptive service can be separated into three segments: content, structure and behavior, Figure 1. Content comprises texts, images, and other media elements that selected service event presents to the end user. The structure includes the content grouping, and semantic/physical storing of the actual media, e.g. how the content elements link to each other. Behavior signifies how the service uses the content and structure definitions to fulfil service request(s). Usually a content provider who has very limited programming skills can define content and structure, but behavior is usually set when the architecture is implemented and cannot be changed without programming. This division can be illustrated by using HTML as an example. Content consists of texts, images and formatting tags. Structure comprises locations where HTML files, images, and other media files are stored, and links that are included in texts. Behavior is defined by HTML standards implemented by browser developers. The behavior of services are limited by the architecture and resources of the server and client systems. It may be fixed, like HTML service without dynamic extensions, or it can allow the content provider to extend it. Usage of CGI is an example of extending behavior of an HTML server. Usually extensions require programming skills and can be quite hard to implement. Content authoring mostly deals with defining content and structure. Service Content Structure Behavior 1.2 Web content creation Figure 1. Principle for the preparation and refining the media elements into adaptive service. The content authoring for multimedia and hypertext applications has been an important research and development area for some time. Software vendors have had their own authoring environments as long as there have been multimedia applications, and when the Internet was developed, many freely or commercially available programs arrived. The most basic examples of content authoring tools are HTML editors. They allow the content provider to easily produce static web content, if there are not too many pages. When the pages grew larger or there are several authors, the management becomes a problem. To streamline development, people have developed Web Content Management (WCM) tools to aid management. These tools make site design, content authoring, publishing, and site management easier. There are several standards and techniques for the development of dynamic web pages. They have been developed because static web content is not often sufficient. The Common gateway Interface (CGI) has been around for years. It is a technology that allows Web services to interact with users 7. Other solutions include application servers, Java applets 3, and Servlets 11. Application servers are special types of servers that have emerged recently. They handle dynamic web applications instead of only static documents. They include a server that runs and manages applications and application development environment. There are several kinds of application servers for different applications. Usually these servers use some kind of database to store the content of service applications.

A Java applet is a Java program that can be viewed in browser included in HTML page. When a user views a page that contains an applet in a Java-enabled browser, the applet's code is loaded to the user s computer and executed by the browser 3. Java Servlet technology allows web developers to extend the functionality of web servers and access existing business systems. A servlet resembles an applet that runs on the server side and does not have a GUI component. This technology has made several web applications possible. Java Servlet technology has made creating Web applications an easier task. Java language is platform-independent, which makes it easier for a developer to build dynamic Web pages than with traditional CGI programs. 11, 4 Java server pages (JSP) technology is an extension of Servlet technology and it is also developed by Sun. It simplifies creating dynamic HTML and XML web pages and supports the distributed development model, which is common in larger enterprises. JSP technology allows page authors quite easily to author pages while offering benefits of the Java platform. JSP technology has a different approach than servlets. The Java code is located somewhere inside a page, while in servlets the page elements are split in Java code. This makes JSP pages easier to handle. A JSP page is finally compiled into a servlet. 5 1.3 Adaptive service architectures and their Content authoring There are four paradigms that can be utilised to create services for a variety of client platforms: (1) manually authoring client-specific versions, (2) client-side adaptation, (3) server-side adaptation and (4) intermediary (proxy) adaptation. 6 The content authoring differs for each paradigm. In manual authoring, the content provider creates a separate version of the service application and does not need to think how they are adapted, because they are not. In server-side adaptation, the content is defined in a format that is platform-independent and contains necessary information for adaptation. The system has a component for each device type that is responsible of converting content for that device. The client-side adaptation means that the server sends the same content regardless of client device. The client device adapts the content appropriately. In this paradigm, the content authored by the content provider has to be in a format, which the client device understands. HTML is a good example of client-side adaptation. The content is in a universal format and the client device shows it as well as possible. The fourth paradigm may have several services and it may use separate servers. It contains an adapting proxy that gets content from servers and adapts it to a format that the client device can use. There are adaptive service architectures that only adapt existing content from outside servers. 6 Our Princess platform has a server component with content provider tools. 1.4 Content authoring in Princess In our research, we have developed an adaptive service platform called Princess 9. It uses an XML-based single source content model and is based on cross-platform media representation and application interfaces. The platform stores content to object database and utilizes existing Internet technologies, GSM and WAP for transferring data. Our content model has been presented in earlier paper 1. Technology Content Structure Behavior Princess CPI object object Presentation creator HTML HTML-code Links in HTML code and file Browser structure CGI Embedded inside script or Depends on design. May use CGI-script separate file accessed by script underlying file-structure or be hardwired in code. Java Applet Embedded in Applet code Depends on design. Applet code Servlet Embedded in Java code or Java code Java code separate file accessed by code. JSP HTML or XML code File structure Java code Application server Usually database Varied Varied Table 1. Technology comparison.

Princess platform contains set of tools called Content Provider Interface (CPI) for content authoring. The most important use of CPI is that it allows the content provider to easily modify the contents of the object database that defines how service applications work. The use of the database allows separation of content and structure from behavior, which makes creating and modifying services easier. It also makes it easier to make queries and reuse some elements of presentations. The CPI has a versatile GUI that makes manipulating the object database quite easy. We also developed a presentation model for storing content that is platform-independent and can be adapted to different terminals. We chose to use the object database to store content as media objects. The use of the database is covered with more detail in chapter 2.3. The presentation model is XML-based. It includes XHTML code that is extended with tags that are Princess specific. The Princess platform uses distributed processing so that the media server can be distributed to different computers and the content can be manipulated from another computer. The distribution mechanism that we used was JavaRMI. Table 1 depicts the technical comparison between proposed solution and other technologies. The Princess uses the fourth of the previously mentioned paradigms, i.e. proxy adaptation. The system has several new features including user profiles, which allow the user to select user groups that he/she wants to belong to. The services can contain parts that are showed differently according to user group. The system also has a subscription feature, which means that the user may get notification of updates. The system uses push technology as notifications may be sent via SMS-messages or e-mails. One advantage of Princess is that the adaptation can be done according to content, user profiles, or data transfer method that may be HTML, SMS, VIDEO or WAP. 1. 5 Organization of this paper Chapter 2 shortly describes the principles of Princess and more detailed functionality of the Princess CPI. Chapter 3 describes an example case of using the CPI. Chapter 4 concludes results of the research and considers future possibilities. 2. CONTENT PROVIDER INTERFACE The Content Provider Interface was an important part of the Princess platform, as it allowed the content provider to create and edit service content and structure that was stored in a media database, Figure 2. Figure 2. CPI: graphical user interface.

2.1 Overview of Princess The services produce single source presentation that is adapted to different terminals, Figure 3. The original presentation is based on XHTML that is extended with some platform-specific tags. The adapted presentations are converted to SMS, WML, or HTML format, according to terminal, and transferred using appropriate channels. The elements included in presentations may also be downscaled. This means e.g. that images may be changed so that they do not need so much bandwidth or that they may be converted to a format that the terminal supports. Another example is that MPEG videos may be replaced with series of images. The authoring of presentations that the services produce is done with CPI. The adaptation server consists of two parts: digital media server (DMS) and service broker (SB). The service broker receives user requests, reforms them, and sends them to the DMS. It is also responsible for user management, billing, and user profiling. The DMS handles main responsibility for the service. The platform supports user profiling and billing. The adaptation mechanism can adapt HTML code, MPEG1 video, and image content on demand. 2 The service has a component called presentation creator that has main responsibility for the behavior of the service. It gets requests and parses presentations that a client receives according to requests. In a later part of the project, we created a universal presentation creator that can be used by several applications. This component understands definitions made with the CPI and handles services. The component also adds services from the database to a service list called service catalog. SMS WML Downscaled HTML HTML Adapting server Notifies Request/ Presentation Presentaition creator Uses content CPI Manipulates content and structure database Figure 3. Overview of Princess architecture. 2.2 CPI architecture Figure 4 presents the role of the CPI in Princess; when the media server is started, it creates the Service catalog according to data that it reads from the object database. When the end user connects to the media server, he/she may choose a service from the service catalog. The media server creates presentations that the end user sees according to service requests. The presentations are created using contents of an object database which the content provider has defined using CPI. When the end user requests a presentation, he/she sees the modifications that the content provider has done to it. There is also a more direct way to inform the user about changes or additions. The content provider may send notification to the media server, and if the end user has enabled it, he/she will receive notification through SMS or e-mail. The CPI also has support to define user profiling and billing.

Content provider CPI Notifies media server server End user sends requests and receives presentations End User Uses Modifies content Database Service catalog is created when media server is started Service Catalog When connected user may select service from catalog 2.3 Using CPI to create services Figure 4. Overview of CPI functionality and process flow. The object database contains media objects that define how services work. objects contain presentations and information that the media server uses to create the service catalog and handling requests. The database is structured as a tree that has two levels of branches and media objects as leaves. The first branches are called roots and each service has its own root. There are also two additional roots. The first one contains data that is used when the service catalog is created. The other is used to store templates for media objects that can be copied when a new media object is added to the database. Content providers may also add roots if they want to store media objects outside of the service s own root. Each root may contain several folders that contain the media objects. Folders are used to group media objects and the content provider may create them and place media objects inside them quite freely. Each root and folder has a name that is used to identify them and the media objects that they contain. Each media object contains key-value pairs that can be used to store information. Values can be integers, text strings, truth-values, or vectors of text strings. Key-value pair name is obligatory, as it is used to identify media objects. Usually output is used to store presentations and their parts. Keys summary, parameters and significance are used to control database queries. By using dbget tags with appropriate parameters, the content provider can include a media object to a presentation or make queries where matching media objects are searched from the database and included to the presentation. The Figure 5 shows an example presentation and the XML code that defines it. The arrows show which part of the code relate to a part of the visual presentation. This is the main page of the example service and the XML code is stored with the key output at the media object that has the name main_page, and is stored at the root test and the folder pages. As figure n. shows, the code contains many tags that are part of normal HTML. Additionally, it contains a dbget -tag that tells the media server to include a header and a logo that are stored to another media object. The media server adds the links control panel and logout at the end of the presentation. They are common to every presentation in every service application.

Figure 5. Comparison of database content and visual presentation CPI has a graphical user interface that was shown in Figure 2. with many features that make authoring easier for the content provider. The GUI has a selection tree that reflects the structure of the database and allows easy selection of roots, folders, and media objects, for manipulating them. The operations that are done to selected items are activated from the menu. The user interface allows the content provider to open several media objects for editing simultaneously and they are showed in separate media object editor frames. When a media object is selected from the selection tree, the key-value pairs are shown below it. The CPI allows the user to perform several operations with selected media objects, roots or folders. Each of these item types can be added, and items can be renamed or removed. The user may also send notification about a new media object or preview a media object. Manipulating media objects is done with the media object editor frame, later called editor frame, figure 6. It allows the user to save modifications to the database or reload a media object from it. The editor frame also allows the content provider to add, remove, and rename key-value pairs, and it also has a text editor component for editing key-value pairs that are later also called fields of media objects. Figure 6. object editor frame.

Figure 7 shows the process of creating services. Before the content provider can edit a database the CPI must connect to the database through DMS. The connection is done over Java RMI. In Figure 7, we assume that the media server was already running when the content provider started working. The next step is to create a new service. To do this the content provider has to define the properties of the service that are used when the service catalog is created. When these properties are defined the CPI adds a media object containing them to the database as well as a new root and a default folder for the service. The CPI also reads data from the media database after each database operation and also when the content provider browses the database tree. This reading is omitted from the picture for clarity. At first the service does not contain other media objects, and the content provider has to create them and define their content. The content of media objects forms presentations and controls service behavior, which is explained with more details in chapter 2.4. When a media object is created or modified, the CPI modifies the database accordingly. The content provider can also connect to the media server with a web-browser and check the results when needed. In that case, the media server parses the presentation according to the defined content and sends it to the client s browser. The last step in Figure 7 shows the case when the content provider decides to send a notification about updates to the client. The updated media object is then selected from the CPI and the notification of the update is sent to the media server that informs the clients who have made a subscription to it. CPI Content Provider s Computer Browser Server Server database Client s mobile phone Client Client Client logs to the service Server DMS is started database CPI is started Service catalog sent Service request Presentation #1 created Process Connects to DMS Service request objects New Service is Created Presentation #2 created Repeat until done New media object is created Content of media object is defined Result is checked with browser Service request Presentation #3 created and user group changed object object <princess:property name= "USERGROUP"delete="all"/> object Notify about update object Figure 7. Creating content with CPI Figure 8. Utilisation of content 2.4 Utilising defined content in services This chapter explains how the media server utilizes the defined content in services. When the media server is started it connects to the database and reads data that defines services. This data is used to create the service catalog. The first step for the client is to log to the service with a browser or other mean. When the client is successfully connected he/she receives a service catalog from the media server. The service catalog contains links to the services that the media server contains. When the client chooses one of these, the browser sends the first service request to the media server that creates a presentation and sends it to the client. During the connection the browser sends a new service request for each

link selection and back/forward button use. For each service request, the client will receive a new presentation. If the client uses a GSM or WAP phone, the service request and presentations take the form of WML or SMS messages. The figure 8 shows three ways to use media objects content. Each service request refers to a particular media object that may or may not contain database queries. If no queries are defined, the presentation is read straight from the media object. That is a simplification of the first case in figure 8 where the presentation is parsed from several media objects so that the content of defined media objects are included in one media object. For example titles and logos could be added this way. In that case, the media server reads the first media object from the database. It then checks the requested field of the media object, and when it finds a dbget tag it reads the appropriate media objects from the database and includes their defined fields to the presentation. This is repeated until all dbget tags are replaced with appropriate data. The second case shows a situation where the requested media object field contains a database query that does not refer to any particular media object. Instead it defines search terms that the media server uses to search the database. The search results are included in the presentation. In that case, the searched media objects contain a summary field that is included in the presentation. This field contains a short summary of longer text that the media object contains and also a link to that text. This way it is possible to make a summary page that shows news headlines or lists available articles. In the third case the requested media object field contains a Princess-specific tag princess:property that is used to change user groups. In this particular case it removes the client from every user group. Usually the user group selection is implemented so that there is a selection page with links. Each link has a text that explains how the user group will change, and selecting it opens a presentation with a tag that changes the user group. When the media server finds such a tag in presentation, the user group data is changed. The billing is also handled with Princess-specific tags. One principle of the architecture was that the content source should not need much adaptation-specific data. However, to make services more easily adaptable, there are two things that should be remembered. Images and embedded videos should have alternative texts defined, as recommended in normal HTML. The images should have an additional parameter type that tells the media server how the image should be treated when adapted. 3. CREATING EXAMPLE SERVICE WITH CPI In this chapter, we show some basic steps of creating a simple example service. The first step is to define the properties of the service that are used when the service catalog is created. Figure 9 shows the dialog that is used to specify these properties. When they are saved and the Princess is started the next time, the new service is shown in the service catalog. (Figure 10.) Selecting the link Test service starts the test service. This opens the main page of the service in the browser window. Figure 9. Feature specification GUI. Figure 10. Service testing application

The second step is to create media objects that contain presentations. We start with the main page, which is the first page that is viewed when the service is started. We select the root of the service and the folder pages which is a place where the presentation creator looks for a media object if the folder is not specified in the request. Then we select media object and add from the menu to open the dialog that is used to create a new media object, Figure 11. Figure 11. Dialog window for creating a new media object. The selections that are shown in the dialog create a media object that does not contain any fields except the name. The content provider uses the media object editor to add and edit an output field to it. This field is used when the main page of the service is viewed. The Figure 5 in chapter 2.3 presented the media object editor with this field viewed. As can be seen in the listing, there is one Princess-specific tag, i.e. dbget. It is used in this media object to add a header and a logo at the beginning of the page. The content provider stores the code that shows them in another media object and can add them identically at the start of every page by including the tag. The other presentations that the service contains are added in a similar way. Next we create another media object which contains a database query. Table 2 shows the code that includes articles to the presentation if the user belongs to the right user group, and Figure 12 depicts a browser window where two articles are found from the database. A short definition of the articles is shown with links to the full articles. Figure 13 shows the page that is used to change the user group as was explained in chapter 2.4. <?xml version="1.0"?> <html> <head> </head> <body text="#bfdcfb" bgcolor="#395a8c" link="#ffffff" vlink="#bfdcfb" alink="#ffffff"> <dbget root="test" folder="include" name="start" /> <hr width="100%" /> <p> <dbget root="test" folder="articles" output="summary" param="archers" /> </p> </body> </html> Table 2. Code that performs a query

Figure 12. Presentation with two articles included Figure 13. Changing between user groups. 4. THE CONCLUSION AND FUTURE DIRECTIONS The Princess CPI was developed for flexible content authoring of heterogeneous mobile multimedia services. It was tested with multiple services, e.g. an ice-hockey service and some small test services. The CPI is focused to ease content creation for varying mobile environments. The basic approach is to semantically and physically separate the content from behavior, and store them to a database for availability for different mobile portals and for service distribution. The Princess system is an end-to-end mobile service system aimed to provide the same services for different environments. It includes content authoring, service logic and adaptation, as well as billing and subscription features. This paper described the CPI architecture and the needed technologies with implementation details and a couple of examples to show its functionality. The CPI and the Princess platform are fully implemented systems with multiple in-use services. They are a part of ongoing research and investigation of mobile multimedia communications and fully adaptive environments. ACKNOWLEDGEMENTS We gratefully acknowledge the support of the Academy of Finland, the National Technology Agency (TEKES) and the Princess project consortium. The assistance from Maija Metso and the Princess project members is also acknowledged.

REFERENCES 1. M. Metso, A. Koivisto, and J. Sauvola, Content model for mobile adaptation of multimedia information, Journal of VLSI Signal Processing 29, pp115-128, 2001. 2. M. Metso, M. Löytynoja, J. Korva, P. Määttä, and J. Sauvola, Mobile Multimedia Services Content Adaptation, To Appear in 3 rd international conference on information, communications signal processing (ICIS 2001) 15.-18. Oct. 2001. 3. Java Developer s Reference, p. 124. Sams.net publishing, 1996. 4. http://java.sun.com/products/servlet/ 5. http://java.sun.com/products/jsp/ 6. A. Fox, S. D. Gribble, Y. Chawathe, and.e. A. Brewer, Adapting to Network and Client Variation Using Infrastructural Proxies: Lessons and Perspectives, IEEE Personal Communications, Vol. 5, No 4, 1998. 7. G. D. Dutt, CGI and the World Wide Web, Dr. Dobbs Journal, Vol 1996, Feb, 1996. 8. J. R. Smith, R. Mohan, and Chung-Sheng Li., Scalable Multimedia Delivery for Pervasive Computing, Proceedings of the seventh ACM international conference on Multimedia, Orlando, FL USA, 1999. 9. J. Korva, J. Plomp, P. Määttä, and M. Metso, On-line service adaptation for mobile and fixed terminal devices, Second International Conference on Mobile Data Management, Vol 1987, pp. 252-259, 2001. 10. J. Hjelm, Designing Wireless Information Services, pp. xiii., John Wiley & Sons, Inc, 2000. 11. G. Vanderburg, et al., Maximum Java 1.1, pp. 378, Sams.net publishing, 1997.