Dynamic Information Dissemination to Mobile Users1 - CiteSeerX

3 downloads 230185 Views 109KB Size Report
development process for a class of mobile computing applications operating ... Most software applications built today follow a user-in-control model, where user ...
Dynamic Information Dissemination to Mobile Users1 Ana Paula Afonso, Mário J. Silva Departamento de Informática Faculdade de Ciências da Universidade de Lisboa {apa, mjs}@di.fc.ul.pt Abstract We propose an information push model for information dissemination to mobile users, called the dynamic channel model, which is a set of extensions to the conceptual models developed for information channels that capture mobility-specific requirements. Dynamic channels are used for filtering and setting update order priorities for the information that users intend to monitor, which depends on their location and changes as they roam. We also present the architecture of Ubitata, our framework for information dissemination to mobile systems. We then introduce our development process for a class of mobile computing applications operating under an information dissemination metaphor.

1. Introduction Most software applications built today follow a user-in-control model, where user commands trigger client-server exchanges of information. However, in mobile computing environments the mobility requirement brings, in many instances, the need for applications with limited user interaction and the capability to operate with intermittent connectivity. We believe that high usability for applications operating in these environments can be achieved by bringing information to users in a novel way. As interactivity and connectivity are poor, applications must be smart about the information needs of users as they roam, bringing the relevant information with minimum user intervention. The need for alternatives to the client-server model for information distribution has been identified for modern large-scale networked applications, and information dissemination models were proposed

1

This is an expanded version of the paper appeared in MDDS’99 - Mobility in Databases and Distributed Systems, DEXA’99 2nd International Workshop, Florence, Italy, September 1999.

1

to make efficient use of limited available bandwidth [5]. Applications built on these models anticipate users’ needs for information, pre-fetching it before the time of display. We believe that the information-push paradigm is especially useful for the development of mobile applications for the following reasons:



Users may view previously fetched information much faster than if it is downloaded on demand (a very important advantage in mobile environments).



Information dissemination matches naturally with the “hands-free” interfaces demanded by applications running from portable devices. These may be viewed as information tuners which, once properly set, present streams of information (channels) with no need for user intervention.



Asynchronous user notifications, common in mobile networked applications designed to provide real-time access to information sources, are more naturally modeled when we assume that support for communication based on information-push is available.



The channel metaphor is very intuitive to non-computer users, and can be useful in capturing requirements for mission-critical mobile computing applications.

Once we obtain a

characterization of the channel, we can almost automatically derive an object model for the system and generate an implementation based on customization of a software framework with support for mobility. In addition, it is easy to design systems that communicate at the application protocol level under the information-push model, even on today’s network infrastructure, oriented for supporting pull-based applications. In this paper, we introduce extensions to the conceptual models developed for information channels, capturing mobility-related attributes, such as receivers’ location for filtering the information they intend to monitor. These channels are dynamic, in the sense that information pushed and presented to

2

individual receivers depends on their location and changes as they roam. This provides as suggested by Satyanarayanan, a form of application adaptability needed in mobile computing environments, where mobile clients must dynamically react and adapt to new operating conditions [14]. Our work adds an adaptation capability to channels, where the update frequency and priority of information items changes dynamically. This model is supported by Ubidata, a software framework that has the capability to selectively replicate information organized as dynamic channels, using the location information of the subscribers. We also present our development methodology, which can be applied to a class of mobile computing applications operating under an information dissemination metaphor. The development process, comprising the major steps of analysis, design and implementation, is oriented towards the capture of channel-specific information. To provide automatic support for the analysis phase of the development process of applications based on Ubidata, we developed a tool for editing and generating dynamic channel specifications, called GIL. This paper is organized as follows: in Section 2, we discuss related works. In Section 3, we introduce the conceptual model for dynamic channels. Section 4 presents Ubidata architecture and Section 5 describes the methodology we use for the development of its applications, including a description of GIL. We report our experience developing an information system for firefighters using this methodology in Section 6 and conclude the paper in Section 7. 2. Related Work Our research involves the software engineering of information dissemination systems for mobile computing environments. To gain a common understanding of basic terms, we give a short overview about the work that is most related to the issues presented in this paper.

3

Information Dissemination Models Recent advances in information technology have motivated a growing interest for solutions based on the push concept, allowing content providers to deliver information directly onto users’ desktops. However, almost all of the existing so-called push applications are still based on the traditional clientserver model [12]. Clients are configured to regularly ask for updates to data of interest, without the need for human intervention. These applications are called smart pull. True push is the real broadcast of information, where the provider of the information “feeds” the receivers whenever information is produced. In this model, receivers have a passive role and providers can distribute/disseminate information to a restricted subset of the receivers. The concept of broadcast data delivery is not new, and a survey can be found in [11]. There is significant work on broadcasting in mobile environments. The introduction of indexing techniques to optimize bandwidth and power consumption at the mobile clients is proposed in [8]. Broadcast Disks is another project for data dissemination in asymmetric communications environments in general [1]. It proposes a general architecture for Dissemination-Based Information Systems (DBIS) that incorporates multiple modes of data delivery such as request/response, polling, publish/subscribe and periodic broadcast [6]. In the polling approach (periodic pull), a system may periodically send requests to other sides to obtain data. In a publisher/subscriber system (aperiodic push), users specify the types of information they wish to receive. According to this classification, our work follows a hybrid scheme of data delivery, combining periodic pull and aperiodic push. Another body of relevant work is view maintenance in mobile environments [17]. When consumers access a continuously changing database from a mobile computer, two costs will usually be incurred: an access cost and a communication cost. To reduce these costs, the mobile user can materialize a view, called a dynamic view, which can be divergent from the one at the database publisher. However,

4

our approach is different. Instead of seeing the information dissemination system as a set of materialized views replicated in mobile clients, we see information dissemination as a filtering process that conveys only that part of the data that is relevant to the mobile client. Markup Languages for Information Dissemination To disseminate information in heterogeneous environments, push systems need a common format to describe what information is sent to receivers. XML (Extensible Markup Language) is a reality in the latest generation of the WWW [18]. With XML we can define standardized conventions to represent any kind of information. XML was specially designed to provide support for meta-data on the WWW. There is an XML application proposal, named CDF (Channel Definition Format) [4], to structure information distribution through channels. Our work extends CDF to accommodate the new concepts we added to support mobile computing. 3. Dynamic Channel Model Our conceptual model is inspired on the notions introduced by D. Cheriton [5]. An information channel, shortly channel, is defined as an abstraction of communication and system resources necessary to distribute information to a set of users. Our application implements the publisher/subscriber model [6], in which a user receiving information is called the subscriber and a user sending information is called the publisher. Publishers use channels to disseminate/distribute information to a potentially large group of subscribers. A channel may have its set of subscribers changing dynamically over time. The contents carried by a channel are grouped into logical and atomic units called items. An item may be a source file or a database object, represented as a SQL statement, in the case of a database

5

source of information. When a subscriber adds a channel to his reception list, and before starting receiving data on that channel, he selects what items he is interested on. We assume that the network supports a hybrid scheme of data delivery that combines periodic pull and aperiodic push to optimize application requirements. This assumption is supported by current GSM networks, which support both connection oriented data and short message services. The subscriber uses polling (periodic pull approach) to obtain data from publishers, defining individual schedules for each of the items subscribed. This scheme is useful because network unavailability and disconnection of subscribers can occur frequently. In these environments, the key mechanisms for supporting these characteristics include information prefetch and replication. We use aperiodic push to broadcast information to reachable subscribers from the publisher. Publishers can associate notifications to the items. Push delivery is event-driven – a subscriber of an item with a notification receives an attention message triggered by an event such as a modification in the item contents. This approach is useful to provide real-time access to information sources, a frequent requirement of mobile applications. In some mobile environments, channels aware of the geographic position of the subscribers are especially useful. This enables adaptation of the items’ visualization behavior, based on geographic constraints, both of the user and the data being produced. We coined the term dynamic channel to designate a channel with the basic adaptation properties we have just introduced. This concept represents a new perspective on the notion of dynamic views introduced by Wolfson et al. [17]. They see the information dissemination system as a set of materialized views updated as mobile users move. In our model, information dissemination is a filtering process of those items selected by the subscribers that are meaningful to their current geographic

6

position. This is similar to the concept of a view changing continuously in time, but is applicable to more general domains, as we support filtering of any type of information. Tunner

Transmitter name

0..* 0..*

Channel name description

Channel Subscription 1

*

filter

1..* 0..*

Item Region name

*

0..*

name description location default shedule

Item_Activation 1

*

actual schedule

1 1..* 1

Shape

View

DBView Point

Circle

Polygon

FileView

server user password query resultset_

1

radius 1

1

1..* File

1

vertex center 3..n

1

1

URL entrypoint priority

1 0..*

Order number

1

DBNotification

0..1

Geopoint

kind table condition

FileNotification 1

1

latitude

longitude 0..* 1

1

Coordinate

Notification

degrees minutes seconds

name description expiration date

Notification_Activation 1

*

Figure 1. Dynamic channel class diagram

Figure 1 shows the UML class diagram for the dynamic channel. The main classes are transmitter and tuner. The former represents the channels and items to be disseminated, and the conditions to inform the subscribers about new data available for delivery — notifications. The later represents the subscribed channels, including attributes modeling what items and notifications are active for each

7

subscriber. In the remainder of this section, we present in detail each of the main concepts of the dynamic channel model: • A transmitter has zero or more channels, which are used to disseminate one or more information items. Each channel may have zero or more subscriptions from tuners. • An item has a location (specified as a Unified Resource Locator — URL) and a view. A view models the source of information published through the item. This may be either a reference to a set of files, or an SQL statement in the case of information stored in a database. Optionally, an item may also have: - A region to model the geographical area that covers the location of those who will find the information item relevant. This is represented as a composite shape made up of the three basic shapes: point, circle (center point, radius) and polygon (point(1), point(2),…, point(n-1), point(n)); Navas and Imielinsky use this same representation in their geographic routing protocol proposal [10]. - A schedule to capture the recommended times for tuners to reconnect and check for new information contents on an item. A schedule is represented as a 3-tuple of date-time elements, . The interval element stands for the frequency in which a given action should take place, and the other two elements, start-date and end-date, define the valid period to take the action. Each date-time element is a 5-tuple of positive numbers, , where at least one of the values must be defined. •

A view also has a notification, which expresses a condition for notification of subscribers associated to the item. If the information source is a set of files, a condition on a file is the name of that file. If it is a database source, the condition is a logic expression based on table fields. In this

8

case, the notification mechanism operates as triggers in databases. After an insertion, removal, or update, the notification action will be fired, if the trigger condition is satisfied. • A tuner is the main object on the subscribers’ side. It has channel subscriptions, or simply subscriptions, of corresponding channels (on the transmitter side). • A subscription consists of item activations, or simply activations. These capture the interest of individual subscribers in receiving updates to the items. An activation defines the behavior of a filter that is invoked when its tuner contacts the corresponding transmitter. This is modeled by the actual schedule attribute. The representation of actual schedules is identical to that of schedules, presented above. • An item activation may have in turn a notification activation, to enable subscribers to control the notifications (defined on the transmitter side) that they want to be alerted of. This acts as another filter that enables subscribers to disable transmitter notifications if required. 4. Ubidata In this section, we list the design objectives of our framework and present a high level architectural overview of Ubidata. We intended to build a flexible and general framework for mobile computing information dissemination systems. Ubidata can serve as the basis for the development of information systems that have in common some characteristics, such as the distribution of information sources to a potentially large set of users. The environment implements the main entities of the dynamic channel model presented above (publisher, network and subscriber), and has the following main functions: •

information dissemination to reachable subscribers;



notification of changes to subscribed data;



definition of individual schedules for each of the subscribed items.

9

The architecture of Ubidata follows a layered scheme, as common in contemporary information systems, with the following levels: •

the Presentation Layer, which includes the graphical interface, enables the user to view data sent by the publisher;



the Application Logic Layer encloses the objects representing domain concepts that fulfil application requirements (called domain objects) and the supporting services (implemented as service objects);



the Storage Layer encloses databases or files that contain the information to be disseminated by the publisher and received by subscribers. Subscriber Side

Publisher Side

Channel Viewer Presentation Domain Objects

Domain Objects Transmitter Item Application Logic

Channel

Tuner

Notification

ItemActivation

Positioning System Manager

Replication Manager

Web Server

Event Manager

Storage Information

NotificationActivation

Service Objects

Service Objects Web Server

Subscription

Internet over wireless network

Replication Manager Event Listener

Information

Figure 2. Ubidata architecture Figure 2 represents this general architecture, including the main objects of each layer. The Transmitter is responsible for keeping the definitions of the channels to be disseminated and storing

10

information about the associations between tuners and channel items, necessary for sending notifications to Tuners through the Event Manager. Transmitters also map the information items to their data sources (file systems or databases) and make them available to the Tuners through the Web Server. The Tuner is responsible for the channel items replication, according to the settings of the associated subscriptions. It receives the notifications sent by the Transmitters through the Event Listener. The Positioning Service provides the geographic position of the information subscriber (the user) to the system. The Replication Manager uses the positioning data to discriminate between items covering the current position and establish an update priority for the remaining. We identified management of update priorities management as a special requirement because, as connectivity may be poor, the most relevant/important items are more likely to be updated using this technique in the mobile environment. In addition, the replication manager may decide not to update low priority items. We also found this concept in the CODA file system [9]. The Replication Manager is the object in our reference architecture responsible for synchronizing replicas of items. It has two parts, a subscriber-side and a publisher-side. The publisher-side creates a new file containing the data representation of an item whenever it changes on its data source. At the time established by the schedule, subscribers contact the server and perform the updates. When replicating a database source, the data is retrieved and then reloaded into the local database. When synchronizing files, these are simply downloaded to a corresponding directory on the subscriber-side. 5. Methodology This section outlines the essential stages and steps of the dynamic channel development methodology. Our goal is to enable systematic analysis and design of dissemination information

11

systems. The specification of dynamic channels as supported by Ubidata is introduced using GIL, a software tool that we created to automate the development process for information disseminationbased applications. In our perspective, the development of information dissemination applications consists in personalizing our dynamic channel model and customizing the software components of Ubidata. Our aim is to identify the essential steps of the development process and propose the necessary methodological issues for each of them. Models are represented in UML [3]. The development process of Ubidata’s applications is illustrated in Figure 3. Analysis

Design

D-CDF File

Application Conceptual Model Requirements specification

GIL Editing Tool

Implementation

GIL D-CDF Generator

Ubidata

Application

Dynamic Channel Model

Figure 3. Ubidata application development process We proceed as follows: we start with the identification and characterization of the information to disseminate. Then, the information is partitioned into items. The process of information partitioning into channels and items is driven by the requirements of each application. As our model provides multiple, there are in general multiple strategies that can be followed. In some cases, we associate the same contents to multiple items with different notification conditions, database query parameters, and/or coverage areas, so that subscribers may switch dynamically between various alternative options for receiving the source information.

12

Each new application of Ubidata parameterizes the transmitter related classes (channel, channel item, schedule and notification) and their relationships. The tuner related classes remain unchanged, and are customized during run-time execution. From the description of the values specified for each class attribute, we create a channel configuration file. Configuration files, called dynamic channel description files (or D-CDF files in our terminology) have a format that extends Microsoft´s CDF [4]. Our extensions capture mobility-related information, such as location, notifications and a more complex scheme for describing replicated information, including support for passing database views. To represent these extensions, we also introduced new XML elements reflecting the semantics of dynamic channels (see Figure 4). In Ubidata, both the publisher and subscriber sides take the D-CDF as input. Publishers load the DCDF files to know what information to disseminate, how to make it available, and when to notify subscribers about changes to the information. Subscribers load the D-CDF to get information about the channel items available, their relevance to the current position, and customize the notification and publisher polling schedules.

GIL To provide automatic support for the analysis phase of the methodology, we have developed GIL, a prototype of a new tool for editing the specification of channels [2]. A limitation of existing mobile computing environments is that every organization interested in disseminating information should have experts who would have to learn the complexities of information replication. Ideally, those who define what information is to be disseminated should not be aware of the complexities of the infrastructure used to disseminate. In our environment, the creators and maintainers of channels are experts in their application domain, and not necessarily computer experts.

13

GIL is a tool that guides its users through the development of information dissemination applications, allowing them to create and characterize channel representations that automatically configure a software framework to disseminate third party contents. To present GIL, we consider a scenario where a publisher is interested in disseminating temperature information to a group of mobile users. The publisher might be a civil protection unit and the mobile users firefighters assigned to a mission. The sequence for specifying the application for temperature information dissemination is shown in Figure 4.

(b) DBview creation

(a) Item edition

Figure 4. Channel definition in GIL. The figure shows two of its windows. Screen a) is used to indicate the location of a preview of its data, geographic coverage and update schedule. Screen b) shows how the database view of the item is configured. The publisher has temperature data already available from a web site with a page presenting temperatures for each region. To create and configure the dissemination infrastructure to deliver this data, the publisher invokes GIL to create a "Temperatures" channel, and, within it, the items that indicate the current temperature in each of the covered areas and the corresponding web pages with original information. The published would then create an item for each area of the country, specifying

14

the items location, the geographic regions where they will be visible, and, finally, set an update period and polling intervals for this item. A publisher can configure any item in several views. If the data is in a database, a database view could be defined to fetch the information. Alternatively, if data consists of files, the URL of the files would be entered. Finally, when the channel specification is complete, the user commits the changes and requests GIL to generate a D-CDF file with the characterization of the information to disseminate. GIL is composed of two main modules: the editing module, to create channels and edit channel properties, and the D-CDF generator. This module converts the internal channel model representation and generates a D-CDF file, which will be used to configure the Ubidata framework, both in the transmitter and receiver ends. We have completed a first prototype of GIL. We used an XML library of Java classes to process the conversion between the XML-based D-CDF file format and the internal data structures of GIL [7]. GIL stores its data in a relational database with a schema generated from the Dynamic Channel Model presented above. GIL´s data structures are maintained in a relational database system from which it is possible to automatically generate the channel description files. Having GIL´s data structures managed by a DBMS enables the tool to be used in a cooperative environment if necessary. GIL runs as an applet, which enables the tool to be run from any Java-capable browser across the Internet. 6. Application We have applied the concepts presented above to the development of a prototype mobile information system for firefighters of the Portuguese Civil Protection Service. This organization collects information from all civil protection units in the country, and is responsible for dispatching

15

groups of fire brigades to extinct the reported fires. These brigades need to be informed on the field about the available resources and existing conditions as the fires evolve. Firefighters are not expert computer users, and have limited time to spend in interactive sessions. For this reason, once the system is installed and customized, it works with no human interaction, i.e. the screen is updated continuously with information about the fire at the current location. Nevertheless, it is still possible to make changes in the system configuration at any time. Firefighters need to receive real-time information about the nearest fires. When in presence of a fire, they need to access a variety of information, available to help them with their task. This includes the number of brigades involved in the firefights, the resources available or allocated, the fire progress history, weather measures/forecasts, water access points and data about vegetation. In the development of this application, the first analysis step was the identification of information sources. We had a database table named “fires” with active fires information (we designate as active fires those which have not been declared extinct), and another table, “air_resources,” with the data describing aerial resources, such as airplanes, helicopters and airports. Weather conditions could be retrieved in the form of files, downloaded periodically from the weather forecast service. The country is divided in administrative regions. In the next step, we mapped information sources into channel items. We identified “active fires,” “resources” and “weather conditions” as the main items. Each fire is assigned to the region where it started. For distributing the information about the active fires, we created one item for each region. This way, each brigade can be informed about any combination of regions. The item for the south region, for instance, has a location attribute,

"http://transmitter.domain/fires/south.asp;” a view,

"SELECT size, start_time FROM fires WHERE region=1;” a region shape defining the south region polygon in geographic coordinates; and a proposed schedule with an update interval of 10 minutes.

16

This item is a good example of the need for notifications, because new fire occurrences need to be immediately reported. Therefore, we defined a notification to be fired whenever a new entry is inserted. The resources considered were the aerial support resources, with no territorial division. The only item defined has a location, "http://transmitter.domain/resources/air_resources.asp," a view, "SELECT place, length, airplanes, helicopters FROM air_resources," and a proposed schedule with an update interval of 10 minutes. The weather file is updated twice a day from the National Weather Forecast Service, and follows a simple XML representation to structure the values for temperature, humidity and wind speed. This information maps into an item with location "http://transmitter.domain/weather/weather.html," a view containing the file in "http://transmitter.domain/weather/values.xml," and a proposed schedule with an update interval of 12 hours starting at 10 AM. The items identified above were introduced using GIL, generating the corresponding D-CDF definition. We then supplied the D-CDF file to the mobile framework, which inputs the D-CDF description into its data structures. Figure 5 shows the implementation architecture of the prototype built. In the subscriber’s side, we have a laptop running Microsoft Windows95. The laptop is attached to a GSM cellular phone enabling HTTP-based access to the transmitter from tuners. Notifications are sent as SMS (GSM Short Message Service) messages. The Transmitter is a Java application responsible for interacting with the tuners and for obtaining the information to disseminate from the file system or databases. The Tuner, also a Java application, is responsible for the channel items replication and notification management.

17

Subscriber side

Pusblisher side

ie4 HTTP GPS

GSM

Location proxy tuner

transmitter WWW server

Personal Web Server coherent

WWW pages

Files (subset)

ACCESS DB

WWW pages

(subset)

Files

MS SQLServer

Figure 5. Implemented architecture of the prototype fire information dissemination system We chose Microsoft Internet Explorer version 4.0 (or IE4.0) as the user interface for subscribers. This browser embeds Microsoft’s active channel technology, which parses CDF files. However, we only use the browser for displaying information contents. We considered the option of using active channels as offered by IE4.0, but this would not allow us to incorporate the mobility requirements of our information dissemination application. We use Microsoft Access and Microsoft Personal Web Server as the local DBMS and WWW server. The Replication Manager makes the data loading of the local databases and replicates files. This mechanism is also used to transmit updates to the programs that run locally, as files can be Java applets or Microsoft ASP files. A GPS (Global Positioning System) device is responsible for supplying the geographic position of the laptop unit to the Tuner. The positioning information is passed to our replication software through a location proxy (see Figure 6). When accessed from the local web browser, the proxy can redirect

18

URLs originally pointing to the remote transmitter server into local URLs. In addition, it also appends the current geographic position of the subscriber to submitted URLs, enabling the filtering of query results by web servers based on the received positioning information. GPS Location

Mobile Client

HTML pages

HTML pages Web browser

Location proxy

Network

Publisher Web Server

URL + Location

URL Local Web Server

Figure 6. Location proxy architecture 7. Conclusion and Future Work We have shown that the channel metaphor can be the basis for user interfaces of applications for location-based information dissemination to mobile users, provided that channels are extended to capture mobility requirements. In addition, we outlined our automated software development process for capturing these requirements and generating push-based mobile applications. We described Ubidata, a software framework that we developed to support the construction of information dissemination applications based on our extensions to channels. The current version of Ubidata runs on laptops with Microsoft database and Web software. Ubidata includes GIL, a software tool for specification of the channels’ definitions. The goal of our project was to demonstrate that applications for information dissemination to mobile users could be easily specified and automatically generated, provided that an underlying software and communications infrastructure has the capability to support the mobility requirements associated with these applications. Our approach consisted in extending an information-publishing

19

model with attributes that capture location and other dynamic attributes of mobile users. Information publishers create instances of this model, which may then be used as input to a middleware layer that can fulfill the typical adaptability requirements of mobile users. This model has been applied to the design of prototype system for information dissemination to firefighters. As future work, we intend to make our architecture for the software infrastructure scale-up to a much larger number information subscribers, enabling large-scale distribution of "information appliances" that can adapt to changes in information sources and use much smaller and more usable devices, capable of connection-less communication [15]. With the new announced devices and technologies, information sources could be discovered dynamically, using RDF (W3C´s Resource Description Framework) [13] and communication could be based on WAP (Wireless Application Protocol) services [16]. Acknowledgements We thank Francisco Regateiro for his contribution in the development of the conceptual model for the dynamic channels. João Campos developed the initial prototype of GIL. Luís Figueiredo and Luís Falardo developed the initial prototype of the framework and application for disseminating fire information. This project was funded in part by the Portuguese National Institute for Geographic Information (CNIG). References [1]

S. Acharya, R. Alonso, M. Franklin, and S. Zdonik, Broadcast Disks: Data Management for Asymmetric Communication Environments, Proceedings of the ACM SIGMOD International Conference on Management of Data, June 1995.

20

[2]

J.P. Campos, A.P. Afonso, and M.J. Silva, GIL: a Software Tool for the Construction of Information Dissemination Systems, Technical Report DI/FCUL TR-99-4, Department of Informatics, University of Lisbon, June 1999.

[3]

G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, Addison Wesley, 1998.

[4]

CDF documentation, http://www.w3.org/TR/NOTE-CDFsubmit.html.

[5]

D. Cheriton, Dissemination-Oriented Communication Systems, Technical Report, Stanford University, 1992.

[6]

M. Franklin and S. Zdonik, A Framework to Scalable Dissemination-Based Systems, ACM OOPSLA Conference (Invited Paper), October 1997.

[7]

IBM XML Parser for Java, http://www.alphaWorks.ibm.com/tech/.

[8]

T. Imielinsky, S. Viswanathan, and B. R. Bradinath, Data on Air: Organization and Access, IEEE Transactions on Knowledge and Data Engineering, 9(3): 353-371, May/June 1997.

[9]

J.J. Kistler and M. Satyanarayanan, Disconnected Operation in Coda File System, ACM Transactions on Computer Systems, 10(1): 3-25, February 1992.

[10] J.C. Navas and T. Imielinsky, GeoCast - Geographic Addressing and Routing, Third ACM/IEEE International Conference on Mobile Computing and Networking, pp. 66-76, September 1997. [11] E. Pitoura and G. Samaras, Data Management for Mobile Computing, Kluwer Academic Publishers, 1998. [12] Push Publishing Technologies, http://www.strom.com/imc/t4a.html. [13] RDF documentation, http://www.w3.org/RDF. [14] M. Satyanarayanan, Fundamental Challenges in Mobile Computing, 15th ACM Symposia on Principles of Distributed Computing, 1996. [15] M.J. Silva and A.P. Afonso, Designing Information Appliances using a Resource Replication Model, International Symposium on Handheld and Ubiquitous Computing, HUC’99, September 1999.

21

[16] WAP Forum, Wireless Application Protocol White Papers, http://www.wapforum.org/what/whitepapers.htm [17] O. Wolfson, P. Sistla, S. Dao, K. Narayanan, and R. Ray, View Maintenance in Mobile Computing, ACM Special Interest Group on Management of Data, 24(4), December 1995. [18] XML W3C Homepage, http://www.w3.org/XML.

22

Suggest Documents