system that is able to intercept, filter, convert and direct ..... different image formats (e.g., gif, bmp, etc.) while a ... youngster prefers to store it in a file and play the.
Personalized Redirection of Communication Yuping Yang and M. Howard Williams Department of Computing and Electrical Engineering, Heriot-Watt University, Riccarton, EH14 4AS, UK {ceeyy1, howard}@cee.hw.ac.uk Tel: +44 (0) 131 4513430 Fax: +44 (0) 131 4513327
Abstract Universal access to information and data is an important goal of current research. Previously different forms of information and data, captured by different devices or held on different systems, were isolated. However, the development of different networks has created the “glue” by which the overall goal of universal access can be achieved. Another important goal is the development of personalized information and communication systems in which the user has increasing control over access to and presentation of information and data. The current challenge is to bring these two ideas together into integrated systems. This paper investigates a personalized communication system that is able to intercept, filter, convert and direct communications and data, thereby giving the user control over the delivery and presentation of information. Such a system must provide flexible and intuitive mechanisms whereby users can specify their preferences and control access to and presentation of information and data. It must cater for user mobility and handle routing and data conversion. The need for these components is motivated by using an example scenario to derive the design requirements for the architecture. The implementation technology of components of the architecture is described briefly.
1: Introduction Today’s computing environments are characterized by increasing heterogeneity, distribution, and cooperation. These characteristics increase the complexity of advanced applications that require integration and interoperation of heterogeneous and distributed hardware and software systems. With the rapid development of the Internet and heterogeneous networks, such as mobile phones and pager networks, people can interact with a growing number of devices at different locations. The proliferation of networks and devices is improving the prospects for universal access by providing increasing coverage for access to information and data. At the same time it is
complicating the task by requiring different formats. Such intense communication environments require users to access content ubiquitously through a variety of networks and stationary or mobile devices. They should be able to access the data satisfying their information needs no matter what format the data is in or where it is located. And it is also important for the information to be presented to users in a personalized way on their own devices or on peripheral devices located in the environment, such as public or private video screens and headphones. A generic software infrastructure is being developed to support greater flexibility in the traffic of data and communications. This involves more flexible routing of both data and communications – including the delivery of messages to a recipient, independent of his/her location, and the redirection of data streams to appropriate devices to suit the user. This paper applies the architecture to a specific application. It is motivated by the following scenario: A youngster is interested in the latest song released by his/her favorite artist. Using a mobile device (e.g., PDA), the youngster may download the music directly from the database of a music company and play it back on the device wherever he/she is. However, on returning home, the youngster may wish to redirect the sound to a hi-fi system or a video clip to the TV set. The data stream may even be split so that the video part is redirected to the TV set while the audio component is sent to the hi-fi system. From this scenario, a set of key features that the system must involve can be derived as follows: 1) An intuitive and convenient way is required by the youngster to specify his/her preferences. 2) To let the youngster have more control over communication, data should be displayed according to his/her preferences (e.g., preferred format) or format suitable for his/her preferred device. 3) Certain conversion routines should be found by the system to achieve appropriate conversions. 4) The system needs to determine which formats are appropriate for devices under current circumstances.
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE
5) When choosing different routines or conversion paths, criteria are needed by the system for deciding between different options. The rest of this paper is organised as follows. In Section 2 some of the important requirements closely related to the above scenario are identified and the system architecture is given. Section 3 demonstrates the service implementation in detail. In Section 4, the related work is discussed while finally Section 5 presents conclusions.
0HVVDJHV(PDLO6069RLFH"
0HWDGDWDIRU0HVVDJHV 3URWRFRO3DUVHU 'LUHFWRU\ 6HUYHU .% ,QWHOOLJHQW'DWD&RQYHUVLRQ 8VHU
2: Architecture design
&RQYHUVLRQ
&RQWH[W
3ODQ
7UDFNHU
&RQYHUWHU 6HOHFWRU
*HQHUDWRU
2.1: Requirements analysis
0HWDGDWDIRU
8VHU
&RQYHUWHUV
3UHIHUHQFH
To achieve the integration of heterogeneous devices and services, several important requirements, including data conversion, user mobility, data and communication redirection, device name mapping, personalized communication, and privacy preservation, need to be catered for. This paper focuses on some of them: 1) Data and Communication Redirection: In the light of user preferences and the characteristics of data and communication, incoming communication should be redirected to the preferred end-points of the user. Hence the youngster can play the music on the mobile phone or on the hi-fi system according to his/her preferences and current circumstances. 2) Data Conversion: Different devices deal with different data types and a single device can support multiple data formats. The flexible communication among diverse devices requires data type conversion between any two of them when necessary. The provision of complete device independence is a very significant effort which is beyond the scope of this work. 3) Personalized Communication: Contents of communications should be filtered according to the recipient’s preferences, sent to his/her preferred device, and presented in his/her preferred format. For example, if the youngster does not want any classical music, the system should be able to automatically filter all classical music pushed to him. 4) User Mobility: Communications should be routed to the recipient regardless of where he/she is and whether the sender has direct access to the same kind of network, device, or application as the recipient. Thus when a music company sends the youngster a song, no matter what device and network the company uses, the system should be able to redirect it to the youngster.
2.2: System architecture Figure 1 illustrates the various components of the system architecture and their relationship.
'HYLFH0DQDJHU
5HJLVWU\
&RQYHUWHUV
0HWDGDWDIRU'HYLFHV
3UHIHUHQFH 6FULSW 'HYLFHV0RELOHSKRQH3'$ 79VHW&RPSXWHU"
Figure 1 : System architecture
To implement the ability to have access to various services in a device independent manner, this architecture uses the Internet as the glue by which to tie the diverse devices and various data sources together. Redirection of data and communication can be categorized into pullbased redirection and push-based redirection [1]. Our emphasis here is on push-based redirection. Thus the architecture described in Figure 1 only gives the components necessary for it. Integration and redirection of various data sources have also been considered in the generic architecture. Several important components making up the architecture include Preference Registry, User Context Tracker and Intelligent Data Conversion. The Preference Registry is responsible for managing all the uploaded preference profiles and authenticating users to update them. In addition, it will process queries to access the user’s current preferences, such as the current preferred format in which to play a song on the youngster’s desktop. As the context of a user (e.g., user’s location and his/her current activity) changes with time and the user’s requirements may depend on the current context, the User Context Tracker tracks a user’s context, and cooperates with the Preference Registry to provide his/her current accessibility information. The heart of the system is the Intelligent Data Conversion which transforms incoming communication from the sender into a form understandable by the recipient’s current applications or devices. To handle the data flow and conversion between any two end-points, it plans and invokes a sequence of converters that implement specific
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE
transformations on the incoming communication. A sequence of converters can be defined to achieve the goal of any-to-any data conversion and transport within limits. The Conversion Plan Generator is the core process for composing a plan automatically by choosing the right subset of converters to connect any two end-points. The Directory Server is used to locate a user’s service agents and map user’s device-specific-ids to his/her person-id. The Protocol Parser and the Device Manager are responsible separately for receiving incoming communication from or sending out the resulting communication to an application-specific end-point. Java was chosen as the development environment for this system and XML [2] is used to store the metadata and knowledge. An agent-based approach is used to implement components of the system.
generated. From: Southern Music Company Subject: the best classical song in the world The features generated are as follows: Southern Music Company
3: Service implementation
3.2: User context tracking
3.1: User preference registration
In order to be location and situation aware, and to achieve dynamic interaction, the system needs an additional component – User Context Tracking. A mobile person’s dynamic information is tracked by the User Context Tracker (UCT) which monitors his/her connectivity state. Obvious examples of context are the user’s location and his/her current activity. Context can also include the state of a device to which the user has access – for example, is his/her mobile phone switched off, busy or idle? Thus the profile of the user needs to reflect the user’s context or state of devices. Instead of updating the user preference profile each time the terminal changes its state, the UCT tracks a user’s context, and cooperates with the Preference Registry to provide his/her current accessibility information. There is a close relationship between the UCT and the preference registry. The UCT collects a user-specific set of personal states and combines them with user preferences to deduce the user’s current preferred endpoint and data format. The UCT could use different techniques for collecting the dynamic information. For instance, the user’s location can be tracked via a smart gadget that can automatically notify this dynamic information [4], or via third generation mobile phones.
The Preference Registry is directly associated with the goal of providing customizability. It stores and processes user preference profiles that indicate which device to use under which circumstances (e.g., data format, location, etc.). An application or device may register in a variety of ways. The registration can be manual, automatic, polled, or based on some user-specified profile [3]. User-specified profiles allow users to specify a priori which applications or devices they are likely to use. This option has been adopted in the system. How to represent, store and process user preferences and how to build a reasonable user-interface to specify personal preference profiles are two design issues with user-preference specification. A user enters his/her preferences through the user-interface which allows users to customize their communications by setting up individual profiles that indicate when, by whom and how they want to be reached. A rule-based or procedural scripting language can model a wide range of user preferences in a straight-forward manner. A typical rule has the following form: IF (Data_Type AND Condition) THEN action1 ELSE action2 It specifies that if an incoming message or data is of type Data_Type and the condition is true, perform action1, otherwise perform action2. In order to apply rules to the data, one needs to select features from it. Here mail messages are used as instances to show how features are selected. Consider the message header which contains two fields: From and Subject. The From field is preserved as a single string, and the Subject field is parsed into words. Words found in the common stoplist are removed, and the remaining words used. The following is an example of a message and the features
best classical song world And one of the rules for this example may have the following form: IF (Message-Component.type = email) AND (from IS ‘Southern Music Company’) AND (subject CONTAINS ‘Classical’) THEN DELETE_COMMUNICATION
3.3: Intelligent data conversion A system for data conversion can be used to convert data from one format to another. The pairwise technique and intermediate-form technique [5] are two existing techniques for data conversion. In our system, a conversion should take into account different format options (e.g., music in AVI format could be converted to WAV or to MP2), possible formats supported by the device, and current user context, as well as personal preferences (e.g., movie displayed in youngster’s
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE
favourite format). Thus, intelligent conversion is an important goal of the system. A different approach is introduced in our system. To provide information about different data types, an intelligent component, referred to as the Converter Selector, is used. It has information about different types and formats, as well as conversions available on various servers. The Converter Selector itself does not have to know how to perform particular conversions; it simply needs to know where it can find other servers that can perform them. In particular, the Converter Selector can combine multiple conversion steps to produce a new composite conversion. In addition, a Converter Selector can handle appropriate data conversions according to user context and personal preferences. It requests information from the User Context Tracker component and the Preference Registry component, with which different decisions will be made under different status and conditions. With intelligent Converter Selectors, the following benefits can be obtained: 1) Simplify the user’s task in dealing with different data types and formats. 2) Allow clients to use many more types (and operations) than those they were explicitly coded for. 3) Avoid the requirement in many distributed systems that there be a single common form for all types, without requiring explicit conversions from every type to every other. The Conversion Plan Generator (CPG) is a key component responsible for planning a conversion strategy and invoking necessary conversions. When the CPG component receives information from the Protocol Parser or Information Finder, it automatically determines an appropriate conversion path and invokes a sequence of converters. Conversions can map between formats of different types, or between formats of the same type. Examples of the processes required include converting from one data format to another, filtering information selectively, or splitting a data stream into two or more parts. It is possible that the CPG component may return a list of appropriate plans. In order to select the optimal plan, each converter can be provided with various cost metrics as well as other criteria (e.g., loss of quality). Thus, depending on the applications and different goals, an appropriate plan can be selected based on the user’s input parameters for optimization.
3.4: Converter
different image formats (e.g., gif, bmp, etc.) while a more complex example is the conversion from audio format into text. Ideally, one might have a single converter to convert between any pair of formats but in practice this is not feasible. Hence, different converters for different conversion requirements are needed. A conversion agent built using a client-server model can distribute the workload, so that most of the work is done by a server on a different machine. Each converter may be responsible for a specific type of conversion (e.g., avi to wav) or may handle more general functions such as: • Filter. Actions such as “Remove all songs that contain ‘Classical’ titles” have to be made by filters that enable users to redirect incoming communications based on their preference. The main aim of a filter is to assist the user in filtering out unwanted information. It should attempt to filter out as little information as possible that would validly fit the user preferences, whilst removing as much information as it can that is not of interest to the user. • Splitter. When visiting a music shop, a youngster is offered a movie clip of an artist’s latest release over the network using his mobile phone. Although ideal for portability, the mobile phone is not the ideal device for displaying a movie due to its small size. So, instead of viewing the clip on the mobile phone, it could be split onto a video screen and a headphone. For this a splitter is used to extract audio tracks and pictures from the video clip. Each part can then be redirected to the corresponding device. Figure 2 is an example of a Splitter which shows an AVI movie split into two parts: an audio part (WAV) and a video part (AVI). In addition there are different modes of operation for conversions. Examples include: • Stream-to-File Mode. To access streaming real audio from a web video, the youngster uses an audio capture card to capture the live stream. Because the youngster prefers to store it in a file and play the music on his/her computer, the live stream is encoded into an appropriate file format. This must be performed in real time. This mode of conversion is called stream-to-file. • File-to-File Mode. The youngster wants to redirect a favorite song to a video player at home. The song, fetched from the song database of a music company, is in WAV format that cannot play on the video player. In this case, a file-to-file mode may be used to convert the song from one format to another, such as MPEG format, which is suitable for the video player.
A converter is software that converts from one format to another. A simple example is the conversion between
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE
fetch
MOVIE FILE File name: film.avi File Format: AVI, Windows Audio Video Interleaved File Size: 17,881,852 bytes Uncompressed size: 285,244,300 bytes Compression ratio: 6.3% (16.0 : 1) Reported data rate: 600 kB/s Estimated data rate: 234 kB/s MOVIE INPUT
Splitter
VIDEO OUTPUT
VIDEO FILE File name: video.avi Format: (cvid) Cinepak Codec by Radius Resolution: 352 x 240 Color depth: 24-bit Frames: 1,119 Frame rate: 15.00 fps Duration: 01:14.600
AUDIO OUTPUT
AUDIO FILE File name: audio.wav Format: 11,025 Hz, stereo, 8-bit Channels: 2 Duration: 01:14.600 Samples: 822,470 Duration: 01:14.600
Send
Send
Figure 2: An example of a splitter
4: Related work In recent years, several ideas and proposals have addressed integration of communication services, some of which are relevant to the issues we consider in this paper. Services provided by many commercial communities, such as email/SMS message integration [6], email/voice integration [7] and text/SMS integration [8], have paid little attention to issues, such as ubiquitous access, communication redirection, and personalized communication. Several research projects are related to personal mobility. Customized Internet Radio [9] is an application that schedules content retrieval from multiple Web radio stations based on a user specified schedule. However, it only focuses on radio customization and delivery, and lacks ubiquitous access to communication. Telephony
Over Packet networkS (TOPS) [10] is an architecture used for redirecting incoming communication by a TerminalTracking-Server. TOPS emphasizes user preference management and name translation. It lacks functions for data conversion which is very important in personalized interaction, and the components of the architecture are tightly coupled, so that they are not reusable. The Mobile People Architecture (MPA) [3,11] considers people as end-points. Its core component, Personal Proxy, is responsible for personal-level routing. In MPA it is not easy to integrate new services with new data formats. The Iceberg [12,13] project has similar goals to those of the system described here. However, its functionality depends heavily on a pre-existing network infrastructure which involves a large number of nodes called Iceberg Access Points (IAPs). It requires that IAPs be installed in each type of network supported. It may be difficult to deploy
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE
Iceberg widely and issues of privacy are not adequately addressed. Universal Box [14] is designed to support a variety of devices and services. It is similar to the system designed here although it focuses on extensibility for the architecture, rather than on personalized communication. The MultiSpace [15] proposes to bind users, devices, and services together although service discovery and naming have not yet been dealt with by the architecture. Some goals of the system are shared by the projects described above. However, in our model, more attention and work has been focused on user preferences and data conversion, including format transformation, information filtering, and data splitting.
5: Conclusions A system is currently being developed for communication redirection and personalized communication. This paper presents some aspects of the architecture of the system in the context of a specific scenario. This architecture can adapt its functionality to both wired and wireless networking. The novel feature of the system is that it allows users to access information flexibly under any circumstance according to their preferences. A detailed description of the key components of our prototype implementation is provided and some examples are given. We are working towards the completion of the whole system, in particular investigating the generation of optimal conversion plans. The system will then be evaluated with a number of scenarios. Our overall goal is to create a general architecture/system in which any type of communication and data can be accessed from anywhere in whatever form the user wants it.
Acknowledgement Yuping Yang would like to thank ORS and HeriotWatt University for supporting this research. The authors would also like to thank the EU for support of the Youngster project under the fifth framework and the EPSRC for support of the DIP project.
References [1] Michael Franklin and Stanley Zdonik. Data in your face: Push technology in perspective. In Proceedings of the ACM SIGMOD Conference on Management of Data, 1998.
[2] W3C. http:// http://www.w3.org/TR/REC-xml. Extensible Markup Language (XML) 1.0 (Second Edition). October 2000. [3] Guido Appenzeller, Kevin Lai, Petros Maniatis, Mema Roussopoulos, Edward Swierk, Xinhua Zhao, and Mary Baker. The Mobile People Architecture. Technical Report: CSL-TR-00000, Stanford University. January 1999. [4] Todd Hodes, Randy Katz, E. Servan-Schreiber, and Larry Rowe. Composable Ad-hoc Mobile Services for Universal Interaction. Proceedings of the 3rd ACM International Conference on Mobile Computing and Networking, pages 1--12, 1997. [5] S.A.Mamrak, M.J.Kaelbling, C.K.Nicholas, and M.Share. Chameleon: A system for solving the data translation problem. IEEE Transactions on Software Engineering, 15(9): 1090-1108, September 1989. [6] http://www.ozzieproductions.co.uk/. SMSMate: E-mail to SMS Messages. [7] http://www.sonicmail.com/. SonicMail: E-mail and Voice Messages. [8] http:// rasel.hypermart.net/. SMS Messenger: text to SMS Messages. [9] V. Krishnan and S. G. Chang. Customized Internet Radio. In 9th Int. World Wide Web Conference. ACM New York, May 2000. www.www9.org. [10] N. Anerousis and et.al. The TOPS Architecture for Signaling, Directory Services and Transport for Packet Telephony. In the 8th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSS-DAV), 1998. [11] M. Roussopoulos, P. Maniatis, E. Swierk, K. Lai, G. Appenzeller, and M. Baker. Person-Level Routing in the Mobile People Architecture. In Proceedings of the USENIX Symposium on Internet Technologies and Systems, October 1999. [12] H .J. Wang, B. Raman, C. Chuah, R. Biswas, R. Gummadi, B. Hohlt, X. Hong, E. Kiciman, Z. Mao, J. S. Shih, L. Subramanian, B. Y. Zhao, A. D. Joseph and R. H. Katz. ICEBERG: An Internet-core Network Architecture for Integrated Communications. IEEE Personal Communications Magazine, 2000. [13] Bhaskaran Raman and Randy H. Katz and Anthony D. Joseph. Personal Mobility in the ICEBERG Integrated Communication Network. Technical Report: CSD-99-1048, University of California Berkeley. July 1999. [14] Bhaskaran Raman, Randy H.Katz, Anthony D.Joseph. Universal Inbox: Providing Extensible Personal Mobility and Service Mobility in an Integrated Communication Network. In Proceedings of the Workshop on Mobile Computing Systems and Applications (WMSCA’00), December 2000. [15] S. D. Gribble, M. Welsh, E. A. Brewer, and D. Culler. The MultiSpace: an Evolutionary Platform for Infrastructure Services. In Proceedings of the Usenix Annual Technical Conference, June 1999.
Proceedings of the 26 th Annual International Computer Software and Applications Conference (COMPSAC’02) 0730-3157/02 $17.00 © 2002 IEEE