connection infrastructure lies in its end-to-end architecture, where the end device does .... trial product (form) design. ...... $order = I would like a pizza with $tops;.
Technical Report TK-01/02, Technische Universität Darmstadt, 20. August 2002 URL: http://www.tk.informatik.tu-darmstadt.de/Forschung/publikationen
Towards Personalized Ubiquitous Computing Services Technical Report No. TK-01/02 Telecooperation Report No. 1, The Telecooperation Reports Series of the Telecooperation Research Division, Technische Universität Darmstadt
Max Mühlhäuser, Erwin Aitenbichler, Gerhard Austaller, Andreas Hartl, Andreas Heinemann, Christoph Trompler Telecooperation Group, Department of Computer Science, Darmstadt University of Technology Alexanderstr. 6, D-64283 Darmstadt, Germany {max,erwin,gerhard,andreas,aheine,trompler}@informatik.tu-darmstadt.de
-0-
Technical Report TK-01/02, Technische Universität Darmstadt, 20. August 2002 URL: http://www.tk.informatik.tu-darmstadt.de/Forschung/publikationen
Towards Personalized Ubiquitous Computing Services Technical Report No. TK-01/02
Max Mühlhäuser, Erwin Aitenbichler, Gerhard Austaller, Andreas Hartl, Andreas Heinemann, Christoph Trompler Telecooperation Group, Department of Computer Science, Darmstadt University of Technology Alexanderstr. 6, D-64283 Darmstadt, Germany {max,erwin,gerhard,andreas,aheine,trompler}@informatik.tu-darmstadt.de
Abstract: This technical report introduces goals and early findings of a multi-year multi-party project MUNDO. MUNDO is a pool of services and enablers for mobile and ubiquitous computing. It emphasizes easy global evolutionary deployment as a migration path for the Internet as a whole towards a nomadic computing economy. The nomadic users access the network via personal devices and associated public and private appliances. The network is liberated from common constraints such as central operators and fixed home bases of users. It hosts services which are by themselves migratable and highly adaptive with respect to region and context-awareness, quality variations, and terminal characteristics. Migration and adaptation may be realized by different implementations of the same service. An underlying general cost model helps to mediate user desires and service offerings. A number of scenarios and corresponding MUNDO application pools are described in order to motivate the features and scope of MUNDO. We describe a “radio on steroids” application pool called DACAR in more detail. We outline the architecture of MUNDO and elaborate its system services. -1-
1 Introduction 1.1 Basic Assumptions and Observations Currently nomadic computing gains a higher and higher momentum. Especially mobile Internet access promises to be “the next big thing” for users as well as for IT and telecommunication companies. However, whilst mobile appliances are booming, most of the underlying technologies and methodologies still have their roots in the wired infrastructure and do not cope well with the specialties of wireless environments. This leads to somewhat schizophrenic behavior of these appliances, e.g., using up a more than fair amount of time for synchronizing information between devices. It is acknowledged that such a behavior is tiresome and is likely not to be accepted by future user groups. The nomadic users of the future are going to demand more that just portable devices they can carry with but also a nomadic personal environment including their personal data and personalized services, which is instantly accessible by any of those portable devices. Such a nomadic personal environment exceeds the nature of a conventional home environment not only in being better (faster, more reliably, more economically) available, but mainly in adapting to the context of its owner (location, occupation, acquaintances …). Thereby, a constant ‘rivalry’ between regional / adapted and “global” behavior has to be traded. As even conventional home environments start to exhibit “push” functionality, a nomadic personal environment has to provide not only active access to information, but also information that gets delivered on occurrence / demand via push functionalities. The third generation cellular networks like UMTS started with the promise of providing such nomadic environments. Nevertheless, it will take its time for UMTS to reach the penetration GSM has today; in addition it still is a relatively narrowband technology. Having in mind these disadvantages, our credo is that 3G networks soon are going to face competition by a multiplicity of technologies operated by multiple network and service providers. In part, such overlay cells are going to be based upon proven technology like IEEE 802.11 and HiperLAN that operate in the royalty-free ISM bands. The access points to the wired infrastructure are likely being operated not by telecommunications companies but by retail stores, fast food restaurants, gasoline stations, and others alike as a means for increasing revenues and customer satisfaction. It may be best to forget about the U of UMTS and use it not as a universal mobile communication system but as one out of many access methods for mobile devices. Devices are likely to transmit only small, high-priority data transfer over a ever available cellular network whereas bulk data is synchronized upon entering the range of less costly network technology, all in conformance of a user-defined cost function. The question of whether an overlay cell infrastructure can be deployed on a large scale, with arbitrary parties acting as network providers, depends on a number of risks but also exhibits a number of interesting opportunities. One is the highly competitive scenario to be expected from a myriad as opposed to a handful of operators today. Another one stems from the increasing concerns about electro smog: the closer an access point, the lower the required power for wireless transmission; dispersed infrared will most likely operate only over very short distances for the foreseeable future – that means that overlay cells may boost in importance as the health concerns increase.
-2-
One of the well-known forecasts for the advances of the information technology is known as Moore’s Law, which states that the complexity of microchips doubles every 18 months. Recent observations have shown that the growth of bandwidth in wired networks – like the Internet – even out-performs this doubles-every-one-and-a-halfyear prediction. Alas, this is only the case for wired networks; bandwidth of wireless networks grows at rates below the predictions of Moore’s Law. Yet, the past years have shown that new kinds of applications soon use up even the rapidly growing bandwidth of the wired infrastructure, not to speak of the wireless one. This induces the thought that the various attempts of bringing wires to the curb are not going to succeed soon. Thus, wired networks still are going to play an important role in the life of nomadic users for synchronizing large amounts of data. The above two paragraphs picture a heterogeneous mobile world, where not everything may be available all the time. Consequently, the vision of a user having devices that are always-online may need refurbishment. Analogous to pay TV stations that discontinued video-on-demand in favor of the far cheaper video-near-demand, nomadic users are going to prefer inexpensive and broadband nearly-always-online applications rather the costly and limited always-online ones for many purposes. To satisfy the nomadic home environment’s demand for instantly accessible information, any synchronization necessary for of those nearly-always-online applications must be done automatically and transparent to the user when entering a cell giving access to the Internet. Many believe that the reason why the Internet became the dominant network interconnection infrastructure lies in its end-to-end architecture, where the end device does all the computations necessary whereas the network only provides data transport services. For the implementation of a robust architecture for mobile users, this is a twosided sword. On the one hand, this permits an architecture that gradually shifts towards supporting mobility, islands in the Internet that continuously grow larger. On the other hand, the end-to-end paradigm is not fully compatible with the needs of mobile devices, which may be offline at any time. Instead, some of the intelligence is going to move from the end of the network to its very edge, with proxy objects that pre-fetch, pre-filter and pre-process data for its mobile companions. Current examples for proxy objects are WAP gateways, caching proxies and firewalls. Whereas such proxies are state of the art at present, they are tiresome to install for both the network administrator as well as for end users. Future infrastructures for mobile users are going reduce the installation effort towards zero-installation or at least nearly-zeroinstallation.
1.2 Problems and Requirements MUNDO is a concept for ubiquitous computing, leveraging off the Internet as the by far dominating, un-abolishable global computing/communication/media convergence infrastructure. It is not intended as a new mobile computing platform, but as a gradually deployable set of services and protocols, device concepts, billing/ accounting features and business models. It takes particular care of business issues and easy deployment without the need to “buy into a new technology”. Nevertheless, MUNDO must be considered a radically new “view of the world” since it contrasts most of world views on which today’s mobile operators base their revenue forecasts, strategies, and architectures.
-3-
As to the problem that MUNDO tries to solve, its concept is based on the following observations about wireless infrastructures: -
MSOC: Multiple Standards, Overlay Cells: UMTS is not going to be a universal, dominating homogeneous infrastructure: the license costs in certain countries, rapid evolvement of technology, disagreement about both UMTS air interface standards and UMTS signaling/fixed-network standards, and further factors have led to a number of co-existing UMTS standards and to a clear acceptance of future co-existence of WLAN (e.g., 802.11 and HiperLAN), wireless-desktop (e.g., Bluetooth™), RF-ID, and other “transport” technologies with public mobile networks; further, GSM+ and satellite/Halo-based networks may (continue to) play an important role in the public arena. Depending on traffic load and subscriber density, different standards (with cells of different sizes) may overlay one another in highly populated areas, while rural areas and less developed countries may feature only one or fewer overlaid standards and cells.
-
WTTC – wire to the curb: Both the cost of public mobile networks and the diverging growth rates of fixed-net bandwidth (accelerated by, e.g., WDM) and wired-net bandwidth (always exposed to scarce resources) nourish the opinion that the predominant growth potential of wireless networking lies in the “last mile”, where public competition from subscriber owned or at least third-party owned access points to the fixed network is a viable alternative.
MUNDO takes particular care of supporting subscriber and third-party owned infrastructures. Such an infrastructure consists of a very large number of (potentially substructured) autonomous, revenue-oriented entities. A key problem in such infrastructures is the multi-party “trading” of storage, communication, and computing cost among participating entities; in addition, service offering and advertisement across multiple infrastructure-providing entities must be considered. Finally, MUNDO is conceived as a ubiquitous computing infrastructure, such that global agreements about policies, protocols, ontologies, and formats are necessary if a globally roaming user wants to access services, functions, and data through a potentially very local access provider. The authority based standardization power of an organism like the ITU is to be replaced by a revenue based power (comparable to that of Visa, MasterCard, American Express, etc.). The acronym MUNDO: the Hispanic word mundo means world. The MUNDO project exhibits its attempt to provide a globally scalable and easily deployable approach with this term. In particular, MUNDO tries to avoid the typical deadlock situation that middleware approaches tend to suffer from, where users wait for each other to “jump onto a bandwagon” – mobile computing platforms have in the past particularly suffered from this problem. MUNDO is also an acronym and stands for “mobile and ubiquitous networking via distributed overlay cells”.
-4-
2 The MUNDO Vertical Architecture In this section, we introduce the basic elements of an overlay cells infrastructure as perceived in the context of MUNDO. Rather than describing hardware/software layers (horizontal architecture), we concentrate on the distinct objects and elements to be considered (vertical architecture). The horizontal architecture is to be an outcome of the present paper and associated activities.
2.1 Minimal Entity (ME) A predominant issue in a ubiquitous computing world is that of future “personal” devices in the dawning “post-PC” era. In this context, we adopt an increasingly popular view of the myriad of hand-held and personal devices that emerge in the post-PC era: as to their user interface, there are only two large distinct classes, namely ears-andmouth devices and eyes-and-hands devices. The former draw their efficiency mainly from the semantic richness developed over millennia (speech, music, etc.) and from the orthogonal usability in many working contexts (“hands-free operation”), the latter draw their efficiency mainly from the input bandwidth (a picture is worth more than a thousand words, video even adds the time dimension) and output intuitivity (if manual controls resemble well-trained activities such as steering, drag-and-drop, pointing, etc.). Of course, this categorization is very raw since -
There is a large spectrum of members, both with respect to hardware (e.g., ranging from classical monitors to augmented-reality-HMDs) and with respect to data conveyed (e.g., from textual/symbolic to video),
-
augmentation via additional senses / body parts is possible (e.g., pedals)
-
the categories may overall (speech-controlled displays, etc.).
Nevertheless, the two raw classes help to determine the nature and features required from minimalist personal devices, see below. We center our notion of a personal device around the following questions and answers: 1. Q: Is there a need for individually owned devices in the future? A: Yes. Rationale: nomadic users will carry out more and more activities in a computer-assisted way. An increasing number of such activities will have (potential) juridical impact or involve privacy issues. In other words, anything beyond simple impersonal information retrieval (“what anyone would do on an information kiosk”) is a matter of privacy (secrecy, non-repudiation, authentication etc.). To date, such activities are unimaginable without at least one involved device that the users trust. While it may be imagined that personal IDs be replaced with biometric features in a digital world, any device supposed to translate biometric data into data representing the identity of the corresponding human is to be suspected. User acceptance and trust are directly linked to control and ownership, even in a digital wireless world. Therefore, a personal trusted device is considered crucial for ubiquitous computing. -5-
2. Q: Which are the minimal features of an individually owned device? A: trust establishment, interaction bootstrapping, communication, and locationawareness. Trust establishment refers to the features and data which (according to the evolving state of the art) must on one hand be carried out on a trustworthy device and which must on the other hand be banned from such a device in order to assure the “expected” operation of privacy functions like encryption and digital signature. Typically – as to the current state of the art – trust establishment means that such a device i) holds and does not render (hence, autonomously carries out functions on) private keys; and ii) severely restricts the potential effect of network-originated functions and data. Bootstrapping stems from the fact that a “minimal” device can of course be very restricted in its functionality; but while many functions can be deferred to other devices, these other devices can by definition not be assumed to be trusted by the user. Thus, establishing trust to these devices has to involve the minimal device discussed here. We denote the process of trust establishment for other devices and of personalizing such device as association. Hence the minimal entity has to support a minimal initial number of functions even if all “normal” operations were deferred to other devices. Communication is an obvious feature in the above context: both trust establishment for networked operations and bootstrapping for association of other devices require communication functionality. Location Awareness seems to be less obvious today, but as research on active badges has indicated more than a decade ago and as the current hype about context-aware computing underlines, location awareness is the single most important key to adaptation, personalization, and customization of human interaction (which in turn are keys to the success of mobile devices). Since location information is one of the most security critical information at all, privacy protection is of primary importance (cf. the low acceptance and even illegal status of conventional active badges). Such privacy protection can in turn only be devised if a user-controlled device (ideally, the ME) is indispensable for the interpretation of location data. 3. Q: Which is the preferred UI device category for ME? A: Ears-and-Mouth. A number of arguments support the preference of ears-and-mouth category ME devices. All these arguments do not exclude eyes-and-hands devices, however, so that the ears-and-mouth category is only defended as the predominant choice in the remainder. Firstly, eyes-and-hands devices – for the current state of the art – tend to be either voluminous (laptops etc.) or clumsy (PDA screen real estate) or expensive (prism based HMDs & gesture input), while the combination of earphones, microphone and (at least bootstrap-level) speech processing can be integrated in rather miniature devices without compromising cost and/or ease-of-use. For a “minimal” ubiquitously deployed device, ears-and-mouth seems therefore to
-6-
be the appropriate choice. For operating contexts which suggest quiet operation (e.g., meetings), associated eyes-and-hands devices may be used. Secondly, portable phones are very wide-spread and common. Their normal operation (phone calls) is of type ears-and-mouth, speech command processing are of increasing importance (limited by technology, not general acceptance), audio feedback (busy tone, better: voice feedback) is more natural than display output (as a simple example tells: users often get annoyed by visual feedback on displays which they currently hold to their ear). GSM SIM-cards represent a very wide spread (around .5 billion users) security infrastructure and portable phones have of course communication features. All in one, a GSM phone is already a first prototype of a ME. Obviously, speech processing is not appropriate for bootstrapping, in particular for the association of other devices, and communication involves a public operator, so that a GSM is a rather lousy ME, but the market share and popularity establish confidence in the appropriateness of the MUNDO ME design. Figure 1 shows a possible design of the ME, based on an advertisement of a wireless headset. Since the development of ME consumer hardware is not a primary goal of MUNDO, it is important to keep this vision in mind when prototype ME devices are going to appear as part of the MUNDO project, emphasizing functionality, not industrial product (form) design.
speech local/remote „my identity“ + positioning personalized info
Figure 1: A ME device and its primary characteristics.
Given the importance and “single point of failure” nature of a ME, it is of course essential that -
a ME operates only on behalf of its owner in physical presence of that user (to be guaranteed via biometric means at best) and that
-
a stolen, malfunctioning, or out-dated ME can be easily replaced by a new model or device. -7-
2.2 Ubiquitous Associable Object (US) As discussed in the section above, the concept of a minimal entity ME emphasizes small size because MEs are considered the digital representatives of their owners, which deceive trust by both the owner and the “network”. As such, it is the only part always involved in a user’s activities and thus the only device to be carried along basically everywhere. Other devices that are (maybe temporarily) used by a user are henceforth called ubiquitous associable object or “US” for short. For any US operated by a user, the following requirements are essential: -
it must be possible to “make trustworthy” and personalize an US in the presence of a ME (e.g., public devices such as displays in public spaces, or private devices such as another person’s digital camera)
-
an US must become impersonalized as soon as it gets out of the reach of the corresponding ME.
The concept of association, which is currently under development by the authors, draws from the idea of “resurrecting ducklings” as described in [ResDuck]. The following list cites a few examples of possible devices that can act as US: -
digital cameras and camcorders which carry out personalized functions (such as transmitting digital images or videos to their – “associated” – owner)
-
“memory boxes” i.e. self-contained storage for digital data (consisting, in essence, of a storage medium, communication, and the processing capabilities required to carry out the functions of an US)
-
eyes-and-hands devices such as PDAs
-
special-purpose devices such as pens for electronic ink and many more.
Common characteristics of all US devices include i) the association concept and ii) the personalization of functions (which discerns an US from a common appliance) as mentioned before. In addition, a common characteristic is iii) what MUNDO calls the best available function concept. This concept is explained below. Many functions or services desired by a user may be offered by several US devices and by the network infrastructure, maybe even by the ME. Quality of service, details of the service invocation and even of the service provision may differ a lot. Such “heterogeneously replicated” functions (which differ syntactically but are considered “the same function or service” by the user) must be chosen by the MUNDO infrastructure such that at any given time and for any particular context of function or service use, the “best” available service is chosen, where “best” is a function to be defined partly in general, partly specific to the function or service considered.
2.3 Smart Item (IT) In a ubiquitous computing world, Internet appliances and WebPlaces may be smart items in their own rights; in most cases, such items will not support associations that -8-
would turn them into an US. Any list of such smart items is uncountable, citing examples like vending machines, RFID equipped goods, or the URL of a landmark, must be accompanied by a general disclaimer: it is not intended to limit the imagination. Following a common understanding about an extended notion of “nodes” in the era of “everyday objects on the Internet”, we define an IT as a digital-only or mixed “real”/digital entity with the following mandatory and optional features: •
communication: mandatory (passive communication, as is common with RFIDs, is allowed though)
•
identity: mandatory (cf. concepts advocated by the AutoID group [autoid])
•
memory: optional
•
processing: optional
•
More thorough explanation of the role of IT entities in the MUNDO concert of cooperating entities is deferred.
2.4 Wireless Group Environment (WE) In a ubiquitous setting, support of ad hoc networking is crucial. We emphasize the notion of locality in this context based on the assumption that remote communication will have to involve a non-ad-hoc network infrastructure (cf. THEY below). Major functionality of a WE which encompasses two or more personal settings consisting of a ME and several US entities each) comprises, among others: •
means for passing an US from one user / temporary owner to the other
•
shared artifacts (such as, e.g., software-only or hardware/software electronic whiteboards), with associated functions and support for their distributed / replicated execution
•
means for proper security / sharing tradeoffs
2.5 Telecooperative Hierarchical Overlay Cells (THEY) THEY denotes the novel backbone infrastructure of MUNDO, which leverages off the Internet, connects ubiquitous users (i.e. their MEs) to the (non-local) world, and operates in a synergistic way to deliver services, user-owned and foreign (discrete and continuous) data and functions, in both push and pull delivery, to the user. Thereby, THEY supports: -
transparent operation to/from the net and to/from US entities (such that, e.g., a user does not have to worry about whether her data be stored on a memorybox-US or the network)
-
variable quality of services in an abstract sense (including, e.g., different levels of availability and accessibility, protection and backup security, etc., for data and functions),
-
horizontal and vertical cooperation between the hierarchy of “networks”, transparent to the user, for providing and offering services. -9-
-
an internal cost, privacy, negotiation, and accounting model capable of having all kinds of public and private, even subscriber-owned, networks cooperate.
-
Localization of services at the same time as ubiquitous availability of service classes.
Figure 42 depicts the interplay of basic elements of the MUNDO architecture as described above.
IT
US ME
IT
US US
THEY
US US
WE
US
ME
Figure 2: The various elements of the MUNDO environment.
- 10 -
3 Scenarios and the DACAR Sample Application Pool In this chapter, some scenarios demonstrate the strengths of MUNDO. The scenarios can be assigned to two groups. The first class include all scenarios where MUNDO only works for the benefit of the user himself without benefit to others. The second one includes the scenarios where MUNDO acts as middleman between several users.
3.1 (Context-Dependent) Reminders and Notifiers Reminders and notifiers are very important tools in every day’s life. But reminders that are implemented in today’s PDAs are normally time-triggered to remind the user of important deadlines. In MUNDO, reminders can be triggered by almost every change in context - not only the time - and most importantly, several contexts can be combined.
3.1.1 Context Aware Calendars Normally, calendars are only time-triggered. When there is an important meeting, the time is registered into the calendar, including the time-span that the user wants to be reminded before the date. However, this can be a problem for mobile users and even more if they don’t know exactly where they will be that day. If locally near the meeting that day, 10 minutes may be enough to be reminded before the meeting. But if they will be far away even one hour to be reminded before the meeting may not be for reaching the meeting in time. Therefore, calendars for mobile users should not only take time into account, but additional contexts, with location the most important. The further away the user is, the sooner he should be informed about the next date. More sophisticated calendars would in the next step also take the means of transport into account which are currently available to its user. If the user has to go by car, this also includes the traffic volume. If he travels by trains, the calendar can check the online timetable to determine if the train is late. The advantages for users are obvious: he will never be late because the reminders take her current situation into account.
3.1.2 Context-Aware Post-Its In earlier days, people used to make knots in their handkerchiefs to remind them not to forget about something important. But people often forgot what the knot should remind them of. Therefore, context-aware post-its could be quite useful to their users. The most important difference to calendars described in the previous section is that the user knows that he will get into the context he is interested in but not when or where. There are many situations like that. One is the “if – then”, e.g. “when next meet Andreas remind me to ask him about something”. Contrary to this is the “normally” situation. E.g. normally on Wednesday evenings, the user goes to cinema for viewing the recent movie previews. This information can be used by the system to order the ticket when he arrives at the cinema or to order his favorite beverage at the movie’s bar.
3.1.3 Context-Aware Notifiers Another class of tasks that can bring benefit to users are context-aware notifiers. Remember that changes in context are not only changes in time or location but in every - 11 -
change of the user’s situation. For example, if a friend goes online or a resource that is needed becomes available. Of course, these notifications have to be defined by the user. Sometimes it may be hard to decide whether to use a notifier or a reminder. More interesting are situations where information could be made available to the user she didn’t ask for, but would be appropriate for him to have. A small scenario demonstrates the idea. The user is on the way to the airport by car on the highway. Unfortunately, an accident happens (but she is not involved in it) she gets into the traffic jam and at last the highway must be closed for removing the damaged vehicle. In this situation, most people get nervous and impatient because normally when one is late the airplane isn’t. In this situation our system shall be able to recognize both the nervous of the user and the traffic jam. So it looks into the user’s calendar and observes where the user has to go and when he should arrive there. The calendar states that the user must catch the plane. Therefore the system looks at the airport’s timetable and finds that the user’s plane’s departure is also delayed. The system can report these facts to the user who thereupon does not have to worry about his flight.
3.2 Communication, Information Sharing & Interaction in Groups In the scenarios so far, the user interacts mostly with the system. But MUNDO also provides strong mechanisms for building group aware applications. The scenario describes the Darmstadt Campus Radio (DACAR) as a system that supports students in organizing their everyday life.
3.2.1 Darmstadt Campus Radio (DACAR) DACAR is an information system for students at the Darmstadt University of Technology. For its usage as a personal organizer, DACAR transmits an information stream containing both non-personalized information like general announcements from the university, music or advertisement and personalized information like reminders, adviser and status information over the wireless LAN infrastructure. The primary device for accessing this stream is a light-weight device that provides WLAN access and a headset with microphone for controlling the system. But DACAR also provides enhanced functions for getting into contact with other students and building groups of interest including shared resources. The first function not only includes notification about the appearance of friends at the network, but also possibilities to communicate with him depending on the device in DACAR mostly voice. The second function allows students to build groups and share resources. This allows students to have e.g. shared calendars, solve homework together, redo courses or exchange notifications to these courses for preparation to exams. The last functions are closely coupled to the Digital Lecture Hall project.
3.3 Business Cases 3.3.1 Tailored Customer Loyalty Programs As companies realize that acquisire new customers is by far more expensive than retaining regular customers, loyalty programs are becoming more and more important. The most common forms of such programs are bonus miles or extra points which can be exchanged into products or rebates once a customer has collected a certain amount.
- 12 -
The downside of such forms of loyalty programs are that i) they are feasible only for larger companies as the administration is costly ii) they are long-term programs as customers must collect bonus points for a while until they gain access to the products they want and iii) they do not incorporate the customer’s individual desires. A customer loyalty program for people with MEs may circumvent these shortcomings: -
Smaller companies may form ad-hoc co operations: A pharmacy could offer a rebate for all customers of the neighboring flower shop.
-
Short-term bonuses are possible: A bakery could offer 10 per cent off its bread rolls to frequent customers passing by only in case it had too much rolls in stock. Doing so it can both increase customer satisfaction and help selling bread before it gets hard.
-
The loyalty program may incorporate the customers’ needs: A book shop may advertise the new book of preferred authors to customers nearby and thus generated additional revenues.
-
Time constrained offers are possible: The above book shop could initiate impulse buys with an offer like “10% off this book if you buy it within the next 15 minutes”.
3.3.2 Personalized Corporate Radio The DACAR scenario presented in section 3.2.1 may be adopted for company needs easily. Similar to corporate TV available in most enterprise-sized companies, this corporate radio may present company-relevant information to its users. MUNDO’s interoperability even permits the company to syndicate commercial radio programs enriched with this information thus widening the variety of radio programs; in return a manifold collection of programs may encourage employees with different personal tastes to use the corporate radio. As employees’ roles within the company usually are well-defined, it is easily possible to transmit certain information only to their respective audience. This minimizes information overload of those people not affected; unlike when using e-mail it is also possible to reach people on the move. Today such restricted groups often are informed via paging devices which usually do not offer reliable communication; the use of MUNDO’s infrastructure makes it possible for the company to observe if a news element was transmitted successfully.
3.3.3 Localized Market Places Recall eBay for a second. eBay provides a market platform where people with a certain offer – i.e. people who want to sell a good – meet people with certain demands – i.e. people who are looking for a certain good. There often is a competition between several consumers looking for a good; there is also a competition between different parties offering the same good. Eventually a vendor meets her purchaser and they agree on a price and eBay charges a certain transaction fee for providing the market platform. Exploiting MUNDOs location awareness we can think about “Localized Market Places”. This is best explained in an every day scenario: - 13 -
What makes people reject taking a cab from the airport into town during traffic peak hours, where buses are crowded? The fairly high price of taking a cab. But why not share a cab with a person nearby? Because one doesn’t know the persons destination and you don't want to run around the airport asking everybody “Are you going the same way?” This is where MUNDO can help. Using the ME, a user announces her demand, e.g. “Looking for someone to share a cab into town within the next 15min.” MUNDO will help people to meet each other. An even more powerful use may arise, if also the cab company books in, e.g. “Special offer today: €50 one way into town for max. 3 people”. All parties will finally find each other (e.g. meet at cab No.5). Like eBay.com, the company providing the localized market place, will charge every party a certain amount of the fare for providing the infrastructure. You can even think of several cap companies and public services compete with each other within a localized market place.
- 14 -
4 Open Services and Context-Awareness 4.1 Introduction and Motivation As mentioned in chapter 2.5, new challenges arise with the use of overlay cells by mobile users. Depending on the user’s situation that e.g. includes her location, how the devices are connected to the network, whether communication is cheap or expensive, how reliable the communication is and so forth MUNDO should react appropriate to the user’s situation. Keeping in mind that the user should be able to use MUNDO only with the ME one primary problem has to be solved: how to find and use the services. This is so important because services provide all the functions the user needs: access to other more advanced devices than the ME, access to more advanced transport mechanisms including better routing and of course access to all the services provided by the environment that the user is directly or indirectly interested in. Services the user is directly interested in are those he was actively demanding. In this group, two kinds of services have to be distinguished: his personal “always with me” services and services dynamically searched depending on the situation. The first group consists of services the user always wants to “have with him” but have to be accessed over Net because of storage and computation limits of the ME. The second are services that the user demanded to look for through service discovery and that are appropriate to the user’s situation, e.g. location aware local timetables for public transport. But there are also services the user is indirectly interested in. These are for example all kind of sensors that allow other services to use them and therefore adapt and react in a more appropriate way to the user’s demands than they could without this information. In MUNDO these “sensors” for picking up the user’s situation are not only physical ones like in current research for context aware computing, but also, and maybe more importantly, software sensors pushing events when situation changes. See the “airport scenario” in chapter 3.1.3 for a detailed explanation how this could work for the benefit of the user. Of course using, services may not be always for free. The costs for accessing a service can be costs for communication when using e.g. cellular phone or costs for using the service itself. But sometimes it’s also important to take into account the consumption of local resources that also refer to as “costs”. Power is the most important one to mention but also remaining free memory on the portable hard drive. Therefore it must be possible to provide metrics that describe how much an action may cost. In MUNDO services of the same kind – i.e. service class – can be implemented in several ways and therefore can be of different quality. Quality in MUNDO doesn’t refer to the quality of the code, the speed or stability of the service but the attributes of the functions the service provides. Imagine a timetable for local transport: a very simple one needs the exact name of the stations for calculating a route; a more advanced one also handles addresses and calculates the direct route from source address to target address. Another example is the voice recognition system for operating the ME. The system on the ME only knows a few simple words. But if the user wants to write an email via voice, he obviously needs a more advanced recognition service. Depending on the user’s situation, it must be possible to switch between several services of the same kind but of different quality and cost. - 15 -
4.2 State of the Art in Service and Context-Aware Computing Much notable research has been done so far in context-aware computing. One of the first projects realizing that knowing users’ positions can be advantageous was the Active Badge Location System at Olivetti Research, England. It was designed for scenarios where the position of people who often change their position is important. E.g., hospitals need up-to-date information about the location of staff and patients, particularly when medical emergencies arise. William N. Schilit proposed a System Architecture for Context-Aware Mobile Computing in his PhD thesis [Schilit1995]. One problem he solved was the efficient spreading of context information. Normally, resources of mobile devices like computing power and battery amount are limited including the bandwidth of the wireless LAN. Therefore, not every change in context can be sent to every device. Furthermore, even sending only changes users are interested in is a problem when using inadequate techniques like unicast communication. He evolved a multicast design with dynamic building of multicast groups where every group contains users that are interested in the same context change. Anind K. Dey realized that a “context engineering concept” is missing [Dey2000]. This means that there is no common concept what the important steps are when designing context aware applications. This includes thinking about the context the application should be aware of, what sensors are needed to achieve the context, how context is delivered to interested parties and how actions are implemented that should be triggered on context changes. He also proposed a conceptual framework and an implementation based on the idea of widgets that represent context independent of sensors.
4.3 Open Service Layer For a service infrastructure to be able to handle situations as described in the introduction to this chapter, some fundamental problems have to be solved that can be divided in the following groups: •
Service Description including capabilities and quality: This includes not only the “raw” programming interface for using a service programmatically but also, and maybe even more importantly, a description concerning the quality of a service. • Service Orchestration and Mobility: In an environment with mobile users, the service environment has to adapt to the users situation. This concerns not only the services, but also the service discovery depends on context. As services can be interconnected and can move, service orchestration itself is a dynamic process. • Programming Support: In a mobile environment, disconnections are a common situation and may not be considered an error. Programmers to allow concentrate on the services tasks and not on the handling of communication errors, a new programming methodology is required. A new programming methodology is also required for using context and user preferences as natural as using mathematical operations. • Security, Privacy and Payment: To get the best result from services, users have to provide information about them. Obviously users want to have control over who gets what kind of information. Service providers, on the other - 16 -
hand want to be paid for their services. Therefore, a mechanism must be provided that ensures that clients get their service and providers their money.
4.3.1 Service Description The basic idea in MUNDO is that services are used to have tasks done. Services are not only used by humans but more likely by other services. Besides the “raw” interface information for calling a function, more information is needed to describe how the functions have to be called to have a task done. This could be e.g. that first the service has to be initialized, at next step a calculation can be done, and at last the service has to be cleaned up. For being able to do so, services have to reveal their capabilities in a machine-readable manner. This presentation also includes the quality of the service. This should go further than describing physical parameters of a printer that can offer a printing service. It must be possible to describe the quality of an speech recognition system, maybe through the amount of words the system understands or the quality of a location-based public transport timetable through the amount of different systems it recognizes (bus, tram, subway). MUNDO participants must be able to find these services – therefore, a lookup system is required. A centralized repository doesn’t make sense for a system with oftenchanging parameters. A temporal unavailability of a particular service doesn’t affect and interest any party at the other end of the world. Therefore, a federation of many separated repositories has to be preferred. As many service infrastructures have shown, this approach of a repository misleads the service providers to have their services offered with their individual interfaces even if they where of the same kind. Imagine providers of phonebook services everyone offering different protocols to access and use it. Client programmers can’t support everyone - this situation is unsatisfying for both the service provider and the client. This kind of problem could be overcome by specifying protocols. But there are several problems that prevent that idea to have it as a general solution. On the one hand, there is the problem of who will do that. For acceptance, many different companies, organizations and communities have to work on it, extending the time for finishing the standard. During this time, there is no standard. To prevent loosing money and to be able to provide a service proprietary protocols are used. On the other hand, under certain circumstances – even if the services are of same type – a common access protocol doesn’t make any sense. This could be for example, an information desk for addresses. Addresses in several states carry completely different information.
4.3.2 Service Orchestration and Mobility As mentioned above, services interoperate. Based on the service description, mechanisms have to be provided to glue the services together. E.g., the users’ electronic calendar itself needs other services like a positioning service for recognizing the users’ position, and a public transport information service for being able to calculate the time the user needs to his next appointment. While the description is static, the appliance is a highly dynamic process. Depending on the users’ movement, the calendar faces several different information systems and location positioning systems it has to operate with.
- 17 -
In MUNDO services are also mobile. Of course, on the one hand, physical devices like the WEs and USs provide their functions by services and are mobile. But on the other hand, services can move through MUNDO by moving from one node to another. E.g. the users’ calendar can move to nodes near the users’ current wireless access point for shorter delays.
4.3.3 Programming Support for Context and Mobility introduced challenges Services have to be context-aware to provide their full power. Although this idea is well-known and many context-aware systems have been created, there is no common state of the art in context aware-programming. Programmers of OO systems can independently of a concrete language talk about OO concepts like classes, methods, inheritance, polymorphism, and so on. Programmers of context aware-systems so far can not. Disconnections are a common situation in mobile environments. Although MUNDO expects the users and devices to be mostly online, disconnections and disconnected operations have to be supported, including support for programmers. This support enables programmers to concentrate on algorithms for solving the services’ tasks without always having to keep in mind where in the program disconnections could happen under what circumstances. Imagine all the problems that could happen and the strategies the service could use to handle it. The code becomes unreadable and barely maintainable if the service does all of this by itself. Instead, the programmer should be able to describe in a separate document strategies for the service what to do in such cases. An example shall illustrate the need for this approach. A service A needs another service B for being able to fulfill a task. If connection to other service is lost, it must be first checked who lost connection. If A lost connection it should try to reconnect other available transmission possibilities like WLAN, GPRS, UMTS. For this situation, it also must be possible to have some kind of cost function. This function not only includes costs in form of money (GSM is more expensive than WLAN) but also costs concerning battery capacity, processing power, and so forth. If B lost connection, A can try to find other partners that are able to fulfill the required task, maybe with lower but still acceptable quality.
4.3.4 Security, Privacy and Payment Users have to provide information on themselves for services to be able to bring best possible results for these users. Additionally, as already mentioned, users’ context must be accessible by the services. Of course, users must have control over this process and be able to determine to whom what kind of information is offered and also important users must trust this system. If users take commercial services, they also want a guarantee for getting the service for the money. On the other hand, service providers want to be paid for services they perform. So there is the typical hen egg problem. Have users first to pay and eventually getting the service or do providers first supply the service for afterwards getting paid for it? Trustees maybe can be a solution for this problem. First, users pay trustees, then the service is provided and last the provider gets the money. This sounds more complicated than necessary because in everyday life we are used to buy and sell something without trustees but trustees can help avoid many problems. They help save money and therefore strengthen the trust of the users into this kind of system of payment. - 18 -
5 Event Routing and Multi-Transport System A fundamental way in which nomadic computing differs from desktop computing is the great variability of network connectivity. Current applications treat changes in bandwidth or latency as exceptions or errors, but these conditions must be treated as the normal case in nomadic environments. Network access takes place from different locations with a number of different devices by means of different network providers. The MUNDO transport system is the glue that ties together distributed service components. It provides an event-based infrastructure for information and code push/pull and metadata enriched media streaming. In MUNDO, network access and transport is separated from the higher-level network services. Network access/transport services perform connection setup, encryption and authentication with access points of network providers. Networking services perform routing specifically for certain types of data. The network of MUNDO-aware nodes forms an overlay network over the existing internet infrastructure and private networks links.
5.1 Event based communication In the traditional Client/Server-model, typically only synchronous Point-to-Point communication takes place. The client sends a request to the server and waits until the response arrives. This requires client and server to have certain knowledge of each other. The client must know the network address of the server to send the request to. Large distributed systems, mobile devices that occasionally change their location in the network or temporarily become disconnected, and content delivery or multimedia applications raise the need for asynchronous, anonymous Point-to-Multipoint communication patterns which promise to loosen the tight coupling between servers and clients. An application that is built on event-based communication defines two roles for its components. The role of an event publisher is to produce event data (events). The role of an event consumer is to process event data. The event model’s infrastructure allows event producers to communicate events to one or a group of event consumers, ideally without knowledge of the number and location of the consumers. To receive events, the consumers have to subscribe to the events they are interested in. Event routing systems are application-independent infrastructures that enable and support eventbased communication. They can be distinguished by the subscription method [Carzaniga1998]: Channel-based subscription: This is the simplest subscription mechanism and commonly referred to as channel- or topic-based subscription. Interested parties can subscribe or listen to a channel. Applications explicitly post events to one or more channels. Every notification posted to a channel is then delivered by the event service to all interested parties listening to that channel. The event data is completely opaque to the event service and there is no interplay between different channels. This gives for instance a one-to-one mapping from channel names to IP multicast group addresses. Content-based subscription: In a content-based subscription system, the whole data of an event is structured and accessible to the event service. The main difference regarding channels is that here subscriptions can express interest in many subjects by specifying some form of pattern to be matched against the event data. This implies - 19 -
that a subscription can define a set of event notifications and that one event may match any number of subscriptions. Since content-based systems can access the whole structured content of a notification, they offer greater freedom for the subscribers defining filters. Especially in channel-based systems, the event producer makes assumptions about the subscribers’ interests by posting an event to a specific channel. In content-based systems, the producer just sends out structured events and subscribers define their interests alone and independently. These two concepts offer different levels of decoupling of Publisher and Subscriber in unidirectional communication. Traditional Request/Reply communication patterns that are usually used in service method invocation can be built on an extension of the event routing middleware. Anonymous Request/Reply: In Anonymous Request/Reply, the initiator does not know the concrete server instance that handles a request. Instead, the initiator is only aware of the interface it wants to use. Locating a concrete server instance is in the responsibility of Service Discovery and controlled by metrics that are defined independently of the initiator’s implementation. The event routing middleware must also support routing in reverse direction - along the return path of the request - to support Anonymous Request/Reply. The MUNDO environment provides a basic event service that handles the communication within the local entity, i.e. between local services and applications. The local entity usually comprises of one ME and its associated USes. To connect the local entity to another local entity, for example to form a WE or to access the fixed network infrastructure (THEY), the system relies on network access services. These services provide transport and add security by performing additional authentication and encryption in wireless environments. Communication between entities is handled by different routing services depending on the type of data transported.
5.2 Transport and Access Routers at the edge of the static, primarily wired infrastructure provide network access for wirelessly connected nomadic users. This is the place where the unmanaged collection of end-user devices meets the managed infrastructure. These access points integrate clients into the network, perform auto-configuration, authentication and encryption to add security to the wireless links. Network access services on the client form the counterpart. They communicate with access points and perform configuration of the client. The appropriate network access service is selected by a mediator based on the user’s preferences. A user might prefer to stay offline until a high bandwidth WLAN connection becomes available to send mass data into the network. This would be cheaper and save battery lifetime. The transport system supports migration of communication end-points to enable service and agent mobility. Code mobility is desirable to increase the flexibility and efficiency of a system. It can be used to implement load balancing and to reduce the network traffic by moving components close to the resources they need.
- 20 -
5.3 Network Services Logical connections and services or applications at the communication end-points are stateful, but intermediary routing services are stateless or soft-state. The basic network services include -
Event Routing Service: The Event Routing Service interconnects entities and provides a scalable content-based publish/subscribe system based on a router network.
-
Multimedia Streaming Service: The streaming service permits efficient distribution of audio and video streams. Routing services provide transcoding for adaptation to various end devices and efficient multicast (e.g. pyramid multicast) to save overall network bandwidth.
-
Distributed Storage: This service provides a self-managing storage service for XML-Documents and binary files. The storage space is distributed over an arbitrary number of network nodes. Behind the service interface, the system hides all of the mechanisms used to access, distribute and synchronize the contained data.
5.4 Related Work True Plug-and-Work, particularly for transient mobile users, presupposes some form of auto-configuration. This is typically provided by DHCP. However, its main drawback is that the DHCP server assumes a rather static environment and is not well suited for visitors or public spaces. IPv6 peer-to-peer based stateless autoconfiguration offers advantages compared to DHCP. The new 128 bit addressing scheme has two parts, the local link address and a device’s own unique ID. On connection, a host discovers the local link address from the neighborhood and concatenates its unique ID. After checking that no other local device is using the resulting address, the host can use it as its own IP address. Mobile IP provides a set of protocols that enable mobile systems to move from one subnet to another while maintaining open TCP connections. The router in the home subnet needs to be augmented with a “home agent” for its mobile systems. When a mobile moves away, there also needs to be a “foreign agent” on the subnet it moves to. Packets are then tunneled between home and foreign agents. This system introduces two potential single points of failure and is likely to be outdated by the ongoing IPv6 migration. In the field of event routing systems, currently about 30 commercial systems and research prototypes exist that have reached a greater public attention [Deng2002, Sun2002, OMG2002]. The ongoing development tends towards an increased decoupling of event producers and consumers. Distributed event models, as opposed to centralized event models, allow producers and consumers to reside in different address spaces. A well-known example is the Java Distributed Event Specification [Sun1998]. This framework allows distributed interaction but offers no real decoupling of producer and consumer, as they are bound together by remote object references and events are delivered directly by means of RMI calls. In message queuing systems like JMS [HapnerEtAl2001] or MSMQ [Microsoft2001], the communication takes place indirectly over a message queue. It breaks the tight connection between client and - 21 -
server, eliminating the need for the client to know the identity of the server. The producer sends an event explicitly to a specific queue and the subscriber reads events from this queue. Queues are identified by unique names and there are no timing dependencies between publishers and subscribers. Subscribers can even be offline temporarily. Publish/Subscribe systems offer even more decoupling of the involved parties and support point-to-multipoint communication. Many systems offer a limited form of content-based subscription, which is referred to as subject-based subscription. In this case, event notifications contain a header with well-known attributes which determine the address. The remaining information contained in the event data, although often structured, remains opaque for the event service. JEDI, JMS and the CORBA Event Service [OMG2000] adopt a subject-based subscription mechanism. In JEDI, the subject is a list of strings usable for specifying filters based on a limited form of regular expressions. In JMS, a limited form of SQL is used to filter events. Content-based subscription systems are conceptually very similar to subject-based ones. However, since they can access the whole structured content, they offer greater freedom for the subscribers defining filters. Especially in channel-based systems, the event producer makes assumptions about the subscribers’ interests by posting an event to a specific channel. In content-based systems, the producer just sends out structured events and subscribers define their interests alone and independently. Examples of systems that provide this kind of subscription language are SIENA [Carzaniga1998] and Elvin [SegallEtAl1999]. SIENA also introduces a new mechanism, called advertisement. In subscription-based systems, subscriptions must be propagated to every router in the network. Advertisements optimize the routing of subscriptions by sending subscriptions only to routers that are potentially going to produce events that match the subscriptions. This requires every router to store all advertisements, but this mechanism offers more efficiency in case that subscriptions change more frequently than advertisements, which is likely. Simple event services like MSMQ are based on IP multicast and do not require additional components in the network, while more advanced solutions rely on a logically centralized component for event routing. Filtering of events is usually done within a network of event routers. The concept of covering [Carzaniga1998] and merging [MühlFiege2001] promises to reduce overall network traffic. Methods for efficient filtering are currently explored [CarzanigaEtAl2001]. The functionality of an event service is characterized by two conflicting requirements: scalability and expressiveness. Scalability means that the service must be available over a wide-area network populated by numerous components each producing and consuming many events. Expressiveness demands a rich subscription language that gives applications a flexible and fine-grained selection mechanism to describe precisely those events or combinations of events in which they are interested.
- 22 -
6 Multimodal Human Interaction The nomadic home environment of a MUNDO user is going to consist of a variety of devices. Due to its size, the primary interaction method of the minimal entity is voice based. Moreover, each ME can dynamically allocate other devices available for its user when appropriate. As input and output devices are gathered dynamically, the software needs to adapt to the interaction paradigms of the devices. The MUNDO environment provides a toolkit easing this task to the programmers.
6.1 Voice Based Interaction Its user interacts with the ME by voice commands. The ME itself has a limited understanding of voice commands. However, users may issue more complex commands as the ME transmits them to a more sophisticated speech-recognition network service once local recognition fails. This is both a way to increase recognition accuracy as well as a good example for distributed services with different qualities (…).
local speech recognition and synthesis
patterns not locally recognized
server-based speech recognition
Figure 3: Interaction of local and server-based speech recognition
The command recognition itself uses a novel approach combining statistical analysis using nGrams [Fürnkranz1998, VoutilainenPadró1997] with the concept of widgets, extended towards audio usage.
6.1.1 nGrams The concept of nGrams comes from computational linguistics where they are used for statistical textual analysis. nGrams are sequences of n consecutive elements in a data stream. It thus creates a sliding window on the stream capturing the context of what is parsed. Which elements are used depends, what for these nGrams are used; in case of voice recognition nGrams are build of n words. Once nGrams are build over the text to analyze, statistical methods can capture their meaning. This is done by calculating the correlation to other documents that build the knowledge base to work with. By adjusting the correlation required to match, nGrams provide a good way for increasing the fault tolerance for noisy channels like the text created by typical speech recognition programs. The downside of this flexibility and robustness is that even short inputs resolve into rather large sequences of nGrams which may overload both the memory and the processing capabilities of the ME. - 23 -
6.1.2 Grammar Based Semantic Recognition Most voice command recognition systems today rely on regular grammars. These grammars are similar to the regular expressions used in the various computer languages. The most commonly known example for such a command recognition technique is VoiceXML [W3C2001] While rules in such regular languages are simple to create and to edit, this approach severely restricts its users as inputs not conforming to the grammar are discarded (c.f. Figure 4).
$order = I would like a pizza with $tops; $top = anchovies | pepperoni | mushroom {"mushrooms"} | mushrooms; $tops = $top (and $top) ; // construct list of toppings
This rule accepts the following utterance: "I would like a pizza with pepperoni and anchovies and mushrooms."
But not this one, as the toppings are corelated by “and”: "I would like a pizza with pepperoni, anchovies and mushrooms."
Figure 4: Example for a VoiceXML based speech recognition grammar. (from: [ToberMarchand2002])
6.1.3 Speechets: Combining the Best of Both Worlds nGram based solutions for semantic analysis are flexible and have built-in error tolerance but are hard to create and require large knowledge bases for longer inputs. Authoring grammars for solutions that rely on them is relatively simple compared to selecting the correct elements for the knowledge base [VoutilainenPadró1997]; additionally changes may be implemented independent to already existing rules. However, the ease-of-implementation leads to a lesser ease-of-use. MUNDO presents the idea of Speechets – an abbreviation of speech widgets. Each speechet has only a small context it analyzes using nGrams or a recognition technology that is likely powerful. For example there could be a date/time input speechet recognizing very different inputs such as “at twelve”, “tomorrow”, “March the 20th”, etc. Due to their restricted area of input, the knowledge base of a speechet remains relatively small. To increase their power, authors may combine speechets into dialogs of a voice based application, just as they do with widgets and GUI application dialogs. Improvements in one speechet’s knowledge base may lead to increased recognition performance for all applications relying on that element without changing the knowledge bases of other speechets or the applications themselves.
- 24 -
References [Schilit1995] William N. Schilit: A System Architecture for Context-Aware Mobile Computing. PhD Thesis, Graduate School of Arts and Sciences, Columbia University, New York, 1995. [Dey2000] Anind K. Dey: Providing Architectural Support for Building ContextAware Applications. PhD Thesis, Georgia Institute of Technology, Atlanta, November 2000. [Carzaniga1998] A. Carzaniga: Architectures for an Event Notification Service Scalable to Wide-area Networks. PhD Thesis, Politecnico di Milano, December 1998. [Deng2002] Jing Deng: References for Publish/Subscribe Systems , accessed March 22, 2002. [Sun2002] Sun Microsystems: JavaTM Message Service API Licensees , accessed March 22, 2002. [OMG2002] Object Management Group: CORBA Vendor Commitments , accessed March 22, 2002. [Sun1998] Sun Microsystems: Distributed Event Specification , accessed March 22, 2002. [HapnerEtAl2001] Mark Hapner, Rich Burridge, Rahul Sharma, Joseph Fialli: Java Message System. Sun Microsystems, 2001. [Microsoft2001] Microsoft: Message Queuing in Windows XP: New Features. Microsoft Corporation, 2001. [OMG2000] Object Management Group: CORBA Event Service Specification 1.0. , June 2000, accessed March 22, 2002. [SegallEtAl1999] Bill Segall, David Arnold, Julian Boot, Michael Henderson, Ted Phelps: Content Based Routing with Elvin4. CRC for Enterprise Distributed Systems Technology (DSTC), University of Queensland, 1999. [MühlFiege2001] Gero Mühl, Ludger Fiege: Supporting Covering and Merging in Content-Based Publish/Subscribe Systems: Beyond Name/Value Pairs. Department of Computer Science, Darmstadt University of Technology, 2001. [CarzanigaEtAl2001] Antonio Carzaniga, Jing Deng, Alexander L. Wolf: Fast Forwarding for Content-Based Networking, Politecnico di Milano, 2001. [VoutilainenPadró1997] A. Voutilainen, L. Padró: Developing a Hybrid NP Parser. Proceedings of the 5th ACL Conference on Applied Natural Language Processing, 1997.
- 25 -
[Fürnkranz1998] Johannes Fürnkranz: A study using n-gram features for text categorization. Technical Report, 1998. [W3C2001] Word Wide Web Consortium: Voice Extensible Markup Language (VoiceXML) Version 2.0. , W3C Working Draft, October 23, 2001. [ToberMarchand2002] Eric D. Tober, Robert Marchand: VoiceXML Forum's VoiceXML Tutorials. , March 22, 2002.
- 26 -