proceedings template - wordgokhale/papers/€¦  · web viewa browser-based architecture for...

13
A Browser-Based Architecture for Supporting Context-Aware Communications Applications Amogh Kavimandan Vanderbilt University Institute for Software Integrated Systems Nashville, TN 37203 [email protected] Dorée Seligmann Avaya Labs Research 666 5 th Ave. New York, NY 10103 [email protected] Reinhard Klemm Avaya Labs Research 233 Mount Airy Road Basking Ridge, NJ 07920 [email protected] Ajita John Avaya Labs Research 307 Middletown Lincroft Road Lincroft, NJ 07738 [email protected] Aniruddha Gokhale Vanderbilt University Institute for Software Integrated Systems Nashville, TN 37203 [email protected] ABSTRACT Context-aware communications applications rely on detailed knowledge of people’s contexts to facilitate specific types of communication. An important element of a person’s context is his or her current presence status. Since Web browsers are universally deployed across user computers and devices, and have turned into the client software of choice for many user activities, from information retrieval to downloading multimedia content, Web browsers can make excellent collection endpoints for user presence information. In this paper, we present our client-side browser-based architecture Argus that gathers detailed user presence information through a Web browser, communicates the data to context-aware communications applications, and allows such applications to act on the collected presence information by quickly conveying information to users through their browser software. We show how our client-side architecture, in conjunction with context- aware communications applications, can accelerate and improve decision-making in an enterprise while introducing a new level of convenience to users when establishing communications in responding to enterprise events. Keywords Context-Awareness, Presence, SMIL, Web Browser. 1. INTRODUCTION Suppose a group of managers in a large and geographically distributed enterprise is on a conference call that deals with the breakdown of a vital assembly line in one of the enterprise’s factories. The topic of the discussion is the possibility of shifting production from the failed assembly line to an alternate assembly line in a different factory. Since this is a technically complex topic, the managers recognize the need for expert advice about the production process in the failed assembly line before making a decision. Suppose also that the enterprise has deployed a middleware for executing context-aware communications applications and that one of these applications is an expert finder application. An example of such a middleware is Hermes[9], an enterprise communications middleware

Upload: vumien

Post on 21-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

A Browser-Based Architecture for Supporting Context-Aware Communications Applications

Amogh KavimandanVanderbilt University

Institute for Software Integrated Systems

Nashville, TN [email protected]

Dorée SeligmannAvaya Labs Research

666 5th Ave.New York, NY 10103

[email protected]

Reinhard KlemmAvaya Labs Research233 Mount Airy Road

Basking Ridge, NJ [email protected]

Ajita JohnAvaya Labs Research

307 Middletown Lincroft RoadLincroft, NJ 07738

[email protected]

Aniruddha GokhaleVanderbilt University

Institute for Software Integrated Systems

Nashville, TN [email protected]

ABSTRACTContext-aware communications applications rely on detailed knowledge of people’s contexts to facilitate specific types of communication. An important element of a person’s context is his or her current presence status. Since Web browsers are universally deployed across user computers and devices, and have turned into the client software of choice for many user activities, from information retrieval to downloading multimedia content, Web browsers can make excellent collection endpoints for user presence information. In this paper, we present our client-side browser-based architecture Argus that gathers detailed user presence information through a Web browser, communicates the data to context-aware communications applications, and allows such applications to act on the collected presence information by quickly conveying information to users through their browser software. We show how our client-side architecture, in conjunction with context-aware communications applications, can accelerate and improve decision-making in an enterprise while introducing a new level of convenience to users when establishing communications in responding to enterprise events.

KeywordsContext-Awareness, Presence, SMIL, Web Browser.

1. INTRODUCTIONSuppose a group of managers in a large and geographically distributed enterprise is on a conference call that deals with the breakdown of a vital assembly line in one of the enterprise’s factories. The topic of the discussion is the possibility of shifting production from the failed assembly line to an alternate assembly line in a different factory. Since this is a technically complex topic, the managers recognize the need for expert advice about the production process in the failed assembly line before making a decision. Suppose also that the enterprise has deployed a middleware for executing context-aware communications applications and that one of these applications is an expert finder application. An example of such a middleware is Hermes[9], an enterprise communications

middleware developed at Avaya Labs Research. In the case of Hermes, the moderator on the manager conference call would invoke the expert finder application through a Hermes user portal where he or she supplies the desired criteria for finding an expert, such as the required expertise, language, preferred communication modality (e.g. voice or instant messaging), desired time window for bridging the expert into the ongoing discussion (e.g. “within 10 minutes”), and a brief description of the discussion topic. A naive expert finder application could simply invite all matching enterprise associates to join the discussion, request a confirmation from each one, and ultimately select the first associate who confirms that he or she can participate in the manager discussion. However, there are severe problems with this simple idea:

1. Invitation modality: if the expert finder application picks a statically defined way of communicating the invitation to an associate, there is a good chance that the invitation does not reach its recipient within the desired time window. For example, if the application, based on an associate’s communication preferences or through a hardwired decision in the application, conveys the invitation to the associate by office phone but the associate is actually at a different corporate location at that time, there is a good chance that the associate will not receive the invitation in time.

2. Confirmation modality: if an associate is forced to change communication modalities to provide the requested confirmation to the expert finder application, delays and inconvenience for the associate are introduced. For example, the invitation might be a voice message but the confirmation has to be given by logging into a user portal. In the worst case, the associate might not have access to the communication modality that is required to deliver the confirmation.

3. Communication volume: if associates are frequently identified as targets of the expert finder application or other communication applications, the associates have to consistently deal with a potentially large number of requests even though each associate might only rarely be

chosen as a communication participant. Having to deal with a large volume of communication requests from applications is a productivity-decreasing nuisance and may ultimately deter people from responding to communications applications altogether.

4. Scalabality: Disseminating a large number of invitations and digesting a large number of confirmations can result in scalability problems in the expert finder application or the underlying platform.

From this set of problems we can infer a list of desiderata for the expert finder application when sending out invitations and requesting confirmations:

Invite only associates who are currently present.

Send each invitation to a communication endpoint that the intended recipient is likely to have access to at this point in time.

Request confirmation through the same endpoint. To accelerate and facilitate the confirmation process and avoid user errors, it is desirable that a confirmation is some kind of executable dialog that the application can transmit to the endpoint, that the endpoint can render, that the recipient can respond to, and that the endpoint can finally send back to the application with the user answers to dialog questions included.

Our client-side system Argus attempts to address these issues specifically for Web browsers as endpoints. We focus on the challenges involved in browser-based presence collection, and the design of Argus, which resolves these challenges. The remainder of the paper is organized as follows. Section 2 illustrates using a case study the challenges incurred in collecting and disseminating timely presence information; Section 3 describes the Argus architecture, which is our solution to resolve these challenges; Section 8 describes related work comparing it with our approach; and finally Section9 provides concluding remarks

2. Presence Collection in Context-Aware Applications Efficient and seamless execution of context-aware applications where users may dynamically assume different modalities for communication requires precise and timely knowledge of presence. This section describes the challenges involved in collecting and disseminating the presence information. We describe these challenges in the context of a case study.

2.1 Context-Aware Application Case StudyConsider the expert finder scenario described earlier from the point of view of one specific user, Alice, as shown in Figure 1. Alice happens to be an expert on the production process on which the broken down assembly line relies. She is currently reading the corporate newsletter online through her browser. Assume that her browser has notified the corporate platform that runs the expert finder application that Alice is now present on her browser (step 1). The expert finder application has access to skill and expertise descriptions in an enterprise directory and identifies Alice as a present expert on the production process. The expert finder application sends a text-based dialog to Alice’s browser. While Alice is reading the corporate

newsletter, her browser pops up a window that renders the dialog. The dialog displays the input parameters for the expert finder application as supplied by the initiating manager, including the brief problem description. The second part of the dialog asks Alice to either decline or accept participation in the managers’ discussion within the next 10 minutes by either pushing a decline or accept button on the dialog form. Alice pushes the accept button indicating her availability for consulting with the managers and her browser sends her response back to the expert finder application. Since Alice is present on her browser and the location of the browser is in her office, the expert finder application can, for example, initiate a voice call to Alice’s desk phone and thus bridge her into the manager conference.

2.2 Challenges in Presence CollectionAs depicted in the scenario of Figure 1, it is important for context-aware applications, such as the expert finder to be aware of the presence of experts like Alice. Presence collection for context-aware applications is an important activity that, however, incurs a number of challenges. This section outlines these challenges and provides our approach to resolve these challenges. Subsequently Section 3 describes our detailed solution to resolve these challenges.

2.2.1 Challenge 1: Collecting and Disseminating Details of Communication Endpoint PresenceContext: In the example of the expert finder case study, the notion of communication endpoint presence is crucial for the effectiveness of the application. This includes detection and collection of presence, and forwarding it to the context-aware application. Such a service ascertains whether a specific user is

Figure 1: Context-Awareness Scenario

Aniruddha Gokhale, 11/04/05,
I added Reinhard’s figure but we need to redo the step numbering in the figure and/or modify the text here

present on an end point, and if he or she may be contacted over that specific communication endpoint at a given point in time.

Problems: A number of questions arise in this context. For example, do we collect macro-presence (per session) or micro-presence (per user) data? Where does presence aggregation and evaluation take place? How often should presence collection take place? Which data transmission model should be used (push or pull)? These issues affect the timeliness of response and scalability of the system. If the expert finder application ascertains that a user is present on a specific communication endpoint, it not only knows the user is present but also how to convey an important piece of communication to the user in a timely and convenient fashion provided this endpoint can receive and render such communication at this point in time.

2.2.2 Challenge 2: Communication Endpoint Dialogs Context: In the above motivating scenario, in addition to presence service, the ability of endpoints to receive, render, and send back dialogs is also equally important. This enables the application to know how to convey an important piece of communication to the user in a timely and convenient fashion. In addition, the recipient does not have to change modalities to provide feedback to the application, and feedback can be quickly and conveniently provided as answers to a scripted dialog, e.g. in the form of clicking buttons in a text-based dialog or speaking simple answers to questions rendered as speech. As a consequence, the time between launching the expert finder application and identifying the expert who will assist the managers can be minimized and much tedious, manual work can be avoided for all involved parties.

2.2.3 Challenge 3: Disparate Modality ChallengesContext: If an associate is forced to change the modality of communication to provide the requested confirmation or to continue communicating with the application, the ongoing session would have to be dropped causing inconvenience to the associate and causing increased delays. The end user should be able to communicate seamlessly with the application, even if he or she changed endpoint. Very often the user changes the end point due to limited endpoint capabilities, for example, an associate with a handheld device would rather use a desktop which has better keyboard support.

Problem: The challenges in this context are (1) periodic and timely collection and evaluation of endpoint characteristics, such that the application can infer which modality is to be used for a certain user and (2) session switching, wherein the current endpoint may not be able to continue to be used. In this paper we limit the scope of our solution to addressing only the first problem, which involves the periodic and timely collection and evaluation of the endpoints.

2.2.4 Solution Approach: Web Browsers as Communication EndpointsThe more communication endpoints a context-aware communication application can use to retrieve user presence information and to render dialogs on, the more it can refine, optimize, and accelerate its communications decisions. In our Argus project we focus on Web browsers as endpoints for collecting presence information and rendering dialogs. We argue that Web browsers make excellent candidates for gathering user context, specifically presence information, and for rendering

multimedia dialogs. Web browsers are universally deployed across user computers and devices, and have turned into the client software of choice for many user activities, from information retrieval to downloading multimedia content. Thus, many users spend a lot of time interacting with Web browsers and thus presence collection through Web browsers becomes meaningful. Web browsers already support the retrieval of multimedia content and uploading of information to servers, thus providing the infrastructure for transmitting presence data to context-aware applications, retrieving dialogs, allowing user interaction with such dialogs, and returning filled dialogs to context-aware applications. In addition, the interaction dialogs have to be simple, structured, and general such that they can be easily rendered on the recipient endpoint.

2.2.5 DiscussionIn general, we can conceive of many scenarios where context-aware applications greatly benefit from collecting detailed communication endpoint presence information as part of users’ contexts and from being able to act upon this information by sending dialogs to present users through their endpoints. Collecting endpoint properties will ensure seamless communication, even when endpoints are changed dynamically. The types of dialogs that we envision range from dialogs that purely display information coming from an application all the way to genuinely interactive dialogs that can gather user feedback, which the application can consider in subsequent decisions. Notice that, in general, ascertaining a user’s context is not sufficient to make specific communications decisions in a context-aware communications application. In our expert finder example, just knowing that an associate is present on a communication endpoint does not imply he or she can or wants to participate in the manager conference. What the presence status does indicate is simply that the endpoint provides the most expedient means to deliver a dialog that the user can provide feedback to. This feedback will ultimately help the expert finder application make the decision on which associate to select as the expert for the manager conference.

The closed loop from presence gathering at a communication endpoint and gathering its properties to rendering dialogs initiated by a context-aware communication application in response to user context evaluation can thus accelerate and facilitate decision-making in enterprises. This is especially true for large, globally distributed enterprises where associates have varied and specialized skills and expertise, and where collaboration is essential to fully utilize the available human assets. In such environments we usually find diverse communication modalities with a wide range of communication endpoints to be in use, from video conferencing to instant messaging to various types of voice communication technology (POTS, VoIP, wireless, etc.). The web browser approach fits in these scenarios.

3. Design and Implementation Considerations for Web Browser-based Communication Endpoints This section describes our web browser-based communication endpoint solution called Argus to address the challenges of presence collection and dissemination discussed in Section 2. There are several challenges in architecting Argus. Section 3.1

Aniruddha Gokhale, 11/04/05,
Amogh, add citations to this claim
Aniruddha Gokhale, 11/04/05,
We will need citations here to other work in ubiquitous computing where web browsers have been utilized for various things
Aniruddha Gokhale, 11/04/05,
Amogh, since this is a collective resolution of all the challenges, I am putting it in its own subsubsection
Aniruddha Gokhale, 11/04/05,
Amogh, please indicate what problems/challenges you will face here. Please see 2.2.1 to see how I broke the paragraph into context & problem.
Aniruddha Gokhale, 11/04/05,
Amogh, I added why these question are important. Make sure this is right and/or enhance it

discusses these design and implementation challenges. Section 3.2 describes the detail architecture of Argus.

3.1 Design Challenges for ArgusThe conceptual and architectural challenges that we need to address in Argus are:

1. Web Browser Presence. There are media and protocols, such as Instant Messaging (IM) or Session Initiation Protocol [11], that support the notion of presence. The web browser and HTTP, however, lack this capability. For example, although a browser instance may be executing on a machine, it does not necessarily mean that the user is ‘present in a web session’. IM status markers thus do not directly map to Web browser markers. Our goal was therefore to define web presence in such a way that it allows an accurate assessment of the user’s activities or lack thereof on the browser.

2. Presence Collection. Based on our notion of Web browser presence, a browser should be able to collect and monitor user activity in a way that is transparent to the user. Note that the goal is not to build a special-purpose Web browser with the ability to track user presence but rather provide a ‘plug-in’ in the form of presence monitoring extensions to an off-the-shelf browser. Furthermore, the browser user must be allowed to turn presence gathering and propagation feature on/off if user’s privacy is a concern.

3. Presence Propagation. The gathered presence information from a Web browser must be propagated to the middleware that executes context-aware communications applications. The propagation solution should be highly scalable since presence data from a large number of users would have to be sent to the middleware. Again, the user should be unaware of this mechanism.

4. Dialog Technology. In order to support a variety of dialogs, our focus was on a dialog technology that is flexible enough to handle the requirements of a wide range of context-aware communications applications. Interaction dialogs should convey and present information and step users through a feedback collection process. Although rendering dialogs through a Web browser suggests textual forms, we wanted to be able to include multimedia elements, for example video and audio clips. Moreover, we were looking for a standards-based technology for the ease of dialog designing and seamless interoperability.

5. Dialog Injection and Rendering. Context-aware communications applications have to be able to inject dialogs into Web browsers at any time. Arrival of new dialog(s) should be obvious to a user in an active web session. Furthermore, if a number of dialogs are sent to a user simultaneously they should be rendered in an orderly fashion. The appropriate dissemination of dialog information suggests categorization of dialogs based on priority or importance, where a higher-priority dialog gets precedence and is rendered before a lower-priority one.

6. Dialog Feedback. Just as communications application injects a dialog in an ongoing Web session, a user should be able to respond using the interactive dialogs. The system then needs to return the response back to the application.

3.2 Argus ArchitectureThe Argus system architecture is shown in Figure 2. The communication agent consists of browser extensions and the Asynchronous Java and XML (AJAX) components [4]. More than one communication agent may be active, depending on how many browser instances are currently executing on an endpoint. Machine Agent consists of Proxy Server, the Device Agent and web services interface for communication with context-aware application. In the following subsections, we refer to middleware and context-aware communications application to mean the same entity. In the following subsections, we will show how the various Argus components act in concert with a

Web browser and the middleware for executing context-aware communications applications.

3.2.1 Web Browser PresenceInstant Messaging clients can report login and logout as well as user-initiated events (“away”, ”busy”, ”do not disturb”, etc.) to an IM server. Our presence model for a Web browser follows the IM model closely but with two major differences. First, we invert the IM wherein an IM client reports its inactivity. Instead we consider activities on a browser, for example, starting up of the browser and clicking hyperlinks or browser buttons, as

Figure 2: Argus System

Architecture

Figure 2: Argus System Architecture

Figure 2: Argus System Architecture

Figure 2: Argus System

Architecture

Figure 2:

Argus Syste

m Architecture

Figure 2: Argus System Architecture

Figure 2:

Argus System Archite

cture

Figure 2: Argus System

Architecture

Figure 2: Argus System Architecture

Figure 2: Argus System

Architecture

Figure 2: Argus System ArchitectureFigure 2: Argus System Architecture

Aniruddha Gokhale, 11/04/05,
We need a better way of putting this
Aniruddha Gokhale, 11/04/05,
Amogh, the concept of a machine agent is abruptly showing up

presence-related events. The context-aware application, based on such detailed presence information propagated to it, can then determine the interruptability of a user and thus the availability of the user for any communication, such as for interaction dialogs. A Web browser session starts when an instance of the browser is started and finishes when that instance terminates. Within a session, each user interface activity (browser button click, hyperlink click, changing browser window size, etc.) that can be gleaned from the browser counts as a user presence indication. The second difference between IM presence and our notion of Web browser presence is that we do not offer a way for the user to explicitly indicate presence changes. This is because other presence sources including IM clients already provide these features and can thus report such explicit changes to the context-aware application.

3.2.2 Presence CollectionWe reiterate that the main design goals for presence collection mechanism were (1) Avoid ‘reinventing the wheel’, i.e. use an already available Web browser application and modify it for our purposes; (2) User transperancy, i.e. the user should be unaware of presence monitoring and collection when he or she is using the browser interface; (3) Browser user should be able to turn off the feature, if he or she chooses to. We have used the extension mechanism to extend the Mozilla Firefox Web browser [1]. Extensions are an easy, modular and platform-independent way to add a new functionality to a browser, and have been used to implement user interfaces for the Mozilla browser. The design of the extension is event driven, where the user interface is specified using the XML User Interface Language (XUL) [2], while the event handlers that define the browser behavior are implemented using JavaScript. The UI (User Interface) elements in Figure 2 provide the knobs for the user to turn the feature off. Beginning at the start of each session, user interface activity triggers an event and corresponding handler is called, which logs such event. Periodically, the Web browser collects such events into presence information and sends it to the context-aware application.

3.2.3 Presence PropagationFor a single endpoint, we delegate the presence propagation functionality to the Machine Agent, specifically the Proxy Server which acts as a broker for all sessions on that endpoint and the context-aware application. The advantages of using such a broker are: (1) Separation of concerns. The system design is modular since collection and propagation functions are kept separate. This also makes the extension simple in design (2) State Management. Broker provides state management for all active sessions on a single endpoint. (3) Scalability. Since the broker provides state management functionality, which would otherwise have had to be implemented on middleware side, the Argus approach scales well as the number of endpoints increase. Propagating presence information involves the following steps:

1. Converting JavaScript function calls into HTTP requests and sending them to proxy server,

2. Proxy server retrieving the session ID for this session, and

3. Invoking appropriate Web Services (WS) method, using the WS Client interface.

AJAX is used for interaction between Web browser and the broker as shown in Error: Reference source not found.. The

asynchrony ensures transparency such that a user cannot perceive the difference even with this mechanism in place. The above interaction is two way, i.e. the JavaScript calls are converted into asynchronous HTTP requests which send presence information. in addition XML data is sent by server in return.

A timeout event triggers the propagation mechanism, indicated by the JavaScript (JS) call in Error: Reference source not found. The AJAX routines convert the JS native call into an HTTP request, to be sent to the broker. Once the server request is created the control is returned back to the extension event loop to handle further events.

The broker is seen as an ordinary HTTP server by the Web browser instances as they send presence information to it. With the start of every new session, the broker establishes a new connection with the middleware and associates a reference with

this connection. The reference is used to forward the presence information to middleware. In addition, this reference is also used for dialog retrieval which we discuss in the later sections.

3.2.4 Dialog TechnologyWe have used the Synchronized Multimedia Integration Language (SMIL) [3] a W3C proposed recommendation for describing and exchanging our interaction dialogs. Since the language is XML based: (a) it is flexible in that it can be easily used for a wide number of context-aware applications, and (b) it can be used as a general way of defining structured dialog irrespective of the endpoint modality of communication. Furthermore, writing multimedia presentations is supported such

Browser Extension

AJAX engine

JS call HTML

Proxy Server

Presence server/Context-aware Communication Platform

HTTP request

XML

Communication Agent

Figure 3: Using AJAX for Proxy Server Communication

.

Aniruddha Gokhale, 11/04/05,
Need a citation or two for this

that dialogs can be extended to contain audio or video files, in addition to textual data.

3.2.5 Dialog Injection and RenderingThis functionality has three parts: (a) detecting presence of dialogs for an active session (broker side), (b) piecemeal delivery of dialogs to communication agent and (c) rendering the dialog.

Recall from Section 3.2.3,that a reference is associated with every connection. After sending the presence data to the middleware, the reference for this connection is used to check for availability of interaction dialog(s) for this session. If it is available it is prepared for forwarding to the browser.

If more than one dialog is present, the most important dialog is chosen based on its priority. In some applications, a single interaction consists of a number of dialogs where the next dialog that serves itself depends on the user response to an earlier dialog. The interaction can be seen as a graph. In such cases, the state of a particular interaction graph is maintained at the broker, the state being last dialog sent. The interaction completes when no dialogs remain in the interaction graph. The broker sends the XML dialog to the respective session, which is rendered as an HTML form on the endpoint. Thus user sees a pop-up window with interaction information sent from middleware in the form of a dialog.

3.2.6 Dialog FeedbackSince the dialog is rendered as an HTML form element, user response is collected and sent back as an HTML request. The broker further may use this data to determine which dialog in the current interaction to send next, or forward it to the middleware for further processing.

3.2.7 Device AgentUsing a broker to manage all the sessions on an endpoint has an interesting implication: we can use broker to inform the middleware of the endpoint capabilities. If a user is using a hand-held device as his or her endpoint, properties such as keyboard support, battery strength etc. may be quite useful for middleware in determining the modality to be used for communication. For example, for a relatively large interaction dialog, with the additional endpoint information the middleware may decide to communicate with the user through a cell phone he or she recently used, rather than a hand held with limited capabilities. The device agent is a simple, OS specific module that periodically gathers the dynamic endpoint information and sends it to the middleware. Although currently it is implemented for Windows XP, it can be easily extended for other operating systems. This includes type of machine (laptop, or a desktop etc.), processor information, network interfaces, type of keyboard and mouse if any, battery remaining etc. Since it is implemented at the broker, it can work independently, sending endpoint information directly to the middleware.

4. A Scenario Supported By ArgusFigure 3 shows a scenario supported by Argus client-side architecture. User Alice, is an expert on web services and is currently in a web-session, on a hand-held device. The communication agent on the hand-held device periodically reports the user activity and checks for interactions for the

current session. In addition, the device agent reports the hardware information, like for example, the keyboard information, battery status, etc. to the middleware. User Bob, who is in the same enterprise as Alice, wants to find an expert on web services. Middleware determines that user Alice is active and is currently in web session. However, based on the endpoint information, it infers that the endpoint, i.e. the handheld device, may not be able to support text-based conferencing due to limited keyboard support and low battery. It then tries to establish communication through an alternate modality for this user as shown. The Argus thus enables more informed decision making, by providing dynamic endpoint capabilities to the communication middleware.

Figure 3: A Scenario Supported by Argus

5. TYPESET TEXT5.1 Normal or Body TextPlease use a 9-point Times Roman font, or other Roman font with serifs, as close as possible in appearance to Times Roman in which these guidelines have been set. The goal is to have a 9-point text, as you see here. Please use sans-serif or non-proportional fonts only for special purposes, such as distinguishing source code text. If Times Roman is not available, try the font named Computer Modern Roman. On a Macintosh, use the font named Times. Right margins should be justified, not ragged.

5.2 Title and AuthorsThe title (Helvetica 18-point bold), authors' names (Helvetica 12-point) and affiliations (Helvetica 10-point) run across the full width of the page – one column wide. We also recommend phone number (Helvetica 10-point) and e-mail address (Helvetica 12-point). See the top of this page for three addresses. If only one address is needed, center all address text. For two addresses, use two centered tabs, and so on. For more than three authors, you may have to improvise.1

1 If necessary, you may place some address information in a footnote, or in a named section at the end of your paper.

Figure 1. Insert caption to place caption below figure.

5.3 First Page Copyright NoticePlease leave 3.81 cm (1.5") of blank text box at the bottom of the left column of the first page for the copyright notice.

5.4 Subsequent PagesFor pages other than the first page, start at the top of the page, and continue in double-column format. The two columns on the last page should be as close to equal length as possible.

Table 1. Table captions should be placed above the table

Graphics Top In-between Bottom

Tables End Last First

Figures Good Similar Very well

5.5 References and CitationsFootnotes should be Times New Roman 9-point, and justified to the full width of the column.

Use the standard Communications of the ACM format for references – that is, a numbered list at the end of the article, ordered alphabetically by first author, and referenced by numbers in brackets [1]. See the examples of citations at the end of this document. Within this template file, use the style named references for the text of your citation.

The references are also in 9 pt., but that section (see Section 7) is ragged right. References should be published materials accessible to the public. Internal technical reports may be cited only if they are easily accessible (i.e. you can give the address to obtain the report within your citation) and may be obtained by any reader. Proprietary information may not be cited. Private communications should be acknowledged, not referenced (e.g., “[Robertson, personal communication]”).

5.6 Page Numbering, Headers and FootersDo not include headers, footers or page numbers in your submission. These will be added when the publications are assembled.

6. FIGURES/CAPTIONSPlace Tables/Figures/Images in text as close to the reference as possible (see Figure 1). It may extend across both columns to a maximum width of 17.78 cm (7”).

Captions should be Times New Roman 9-point bold. They should be numbered (e.g., “Table 1” or “Figure 2”), please note that the word for Table and Figure are spelled out. Figure’s captions should be centered beneath the image or picture, and Table captions should be centered above the table body.

7. SECTIONSThe heading of a section should be in Times New Roman 12-point bold in all-capitals flush left with an additional 6-points of white space above the section head. Sections and subsequent sub- sections should be numbered and flush left. For a section head and a subsection head together (such as Section 3 and subsection 3.1), use no additional space above the subsection head.

7.1 SubsectionsThe heading of subsections should be in Times New Roman 12-point bold with only the initial letters capitalized. (Note: For subsections and subsubsections, a word like the or a is not capitalized unless it is the first word of the header.)

7.1.1 SubsubsectionsThe heading for subsubsections should be in Times New Roman 11-point italic with initial letters capitalized and 6-points of white space above the subsubsection head.

7.1.1.1 SubsubsectionsThe heading for subsubsections should be in Times New Roman 11-point italic with initial letters capitalized.

8. RELATED WORKDocumentation on the Firefox project can be found in [1]. References [2] and [3] contain the XUL and SMIL specifications, respectively. Much research has been devoted to context-aware computation and context-aware communications applications. Reference [5] describes the notion of context-aware communication. In [6] we find a discussion of the notion of context-aware computation and a description of a middleware for context gathering and dissemination. In the parlance of this reference, Argus is a context source that feeds context information gathered from Web browsers into a middleware for context-aware communications applications. Another article that contains an in-depth discussion of a middleware for context-aware applications is [7]. In Argus, we assume that such a middleware is given and we focus on a client-side system that supports the collection of user context and dialogs. A variant of our expert finder example can be found in [8]. The Hermes middleware for context-aware communications applications developed at Avaya Labs Research is presented in [9]. The relationship between user presence on a communication client and user availability is investigated in [10]. In Argus, dialogs can be used to explicitly ascertain a user’s availability for a specific task while the technology in [10] uses indirect ways of ascertaining a user’s general availability such as speech detection, computer activity, calendar entries, and more. Notice that explicit and indirect availability sensing technologies can complement each other. We can find a completely different approach to determining a user’s general presence and availability based on extrapolation of historical data in [11].

9. SUMMARYIn this article, we introduce the notion of Web browser presence of a user. We present a client-side system Argus that gathers user presence through a Mozilla Web browser and periodically transmits the presence data to middleware that executes context-aware communications applications. Argus relies on a machine agent outside the browser to identify the user and mediate between an Argus XUL extension to Mozilla on the one hand and the middleware on the other hand. If a context-aware communication application has determined that a user is likely to be present on a Web browser and needs to communicate information to that user it may send a SMIL dialog through Argus to the user’s browser. If it is an interactive dialog the user has the opportunity to provide answers to questions posed in the dialog. Argus can send the filled dialog back to the middleware for evaluation by the initiating context-aware application. We

demonstrate that the combination of user presence gathering through an endpoint such as a Web browser and the rendering of interactive dialogs can aid context-aware communication applications in accelerating and facilitating decision-making in enterprises.

10. ACKNOWLEDGMENTSOur thanks to ACM SIGCHI for allowing us to modify templates they had developed.

11. REFERENCES[1] The Firefox Project.

http://www.mozilla.org/projects/firefox/, as of 10/31/2005.

[2] The XML User Interface Language (XUL) 1.0. http://www.mozilla.org/projects/xul/xul.html, as of 10/31/2005.

[3] Synchronized Multimedia Integration Language (SMIL 2.1). World Wide Web Consortium (W3C), http://www.w3.org/TR/SMIL2/, as of 10/31/2005.

[4] Garrett, J.J, Ajax: A New Approach to Web Applications. Adaptive Path Essays, www.adaptivepath.com/publications/essays/archives/000385.php, February 2005.

[5] Ranganathan, A. and Lei. H. Context-Aware Communication. IEEE Computer 4, 36 (April 2003), 90-92

[6] Lei, H., Sow, D., Davis, J., Banavar, G. and Ebling, M. The Design and Applications of a Context Service.

ACM SIGMOBILE Mobile Computing and Communications Review 4, 6 (October 2002), 45-55.

[7] Ranganathan, A. and Campbell, R. A Middleware for Context-Aware Agents in Ubiquitous Computing Environments. Lecture Notes in Computer Science 2672, Springer Verlag Heidelberg, August 2003, 143-161.

[8] Smailagic, A., Siewiorek, D., Anhalt, J., Gemperle, F., Salber., D. and Weber, S. Towards Context Aware Computing: Experiences and Lessons Learned. IEEE Journal of Intelligent Systems 3, 16 (June 2001), 38-46.

[9] John, A., Klemm, R., and Seligmann, D. Hermes: A System for Orchestration of Shared Communication Spaces. Technical Report ALR-2004-019, April 2004.

[10] Fogarty, J., Lai, J., and Christensen, J. Presence Versus Availability: The Design and Evaluation of a Context-Aware Communication Client. International Journal of Human-Computer Studies 61, 3 (September 2004), 299-317.

[11] Horvitz, E., Koch, P., Kadie, C.M., and Jacobs, A. Coordinate: Probabilistic Forecasting of Presence and Availability. Proceedings of the Eighteenth Conference on Uncertainty and Artificial Intelligence, Edmonton, Alberta, July 2002, 224-233.

[12] Day, M., Rosenberg, J., Sugano, H., A Model for Presence and Instant Messaging - RFC 2778, February 2000.

Columns on last page should be made as close as possible to equal length, please remove these lines in your submission.