MICA: Pervasive Middleware for Learning, Sharing and Talking Mohammed Waleed Kadous School of Computer Science & Engineering University of New South Wales Email: [email protected] Abstract MICA (Multimodal Interagent Communication Architecture) is a middleware layer for pervasive computing that is especially well suited to sharing of information between users, learning user’s preferences and interacting with the user through many devices and modalities. It is based on the idea of a blackboard: a global shared memory which acts as both a communication and storage mechanism. It uses an extremely simple API that is easy to program, but still small enough to fit on PDAs and mobile phones. It has been used to implement several systems, including a context-aware application that learns the user’s email preferences.

1. Introduction

Claude Sammut School of Computer Science & Engineering University of New South Wales Email: [email protected] • Operate in heterogeneous environments, in particular, it should be able to run on low-power and mobile devices. This also means that it should support low-level programming languages such as C. • Allow users to use multiple input and output modalities and devices, such as speech, gesture, audio and video; at the same time allowing both multimodal input fusion and multimodal output generation. For example, the user should be able to begin answering an e-mail on her PDA using speech, then when she gets to her office continues working on the same e-mail on her desktop from where she left off. • Support learning of user’s preferences and patterns of usage. • Use a simple abstraction that developers could learn and use quickly. • Support both security and privacy measures.

Previous work by the Natural Adaptive User Interfaces group of the Smart Internet Technology CRC built InCA, a system that allowed a user to interact with a PDA using a natural speech input and output [1, 2]. InCA provides access to personal information (such as e-mail and appointments), as well as Web services (such as exchange rates, translations, weather). Experiments into multimodal interaction with speech and gesture for map navigation were also undertaken. However, this initial prototype lacked flexibility and became difficult to extend. InCA led to the development of an architecture called MICA that overcame some of the weaknesses of InCA. MICA was designed for simplicity in mind for both the API and the implementation. In designing MICA, the design goals were to: • Allow applications to be built in such a way that the interface to the application and the application are clearly separated, to support multimodal interaction.

• Act as an interpersonal communication mechanism, as well as allowing all of one person’s communication tools to communicate with each other. This article will first discuss the basic design of the MICA architecture, before discussing the implementation and applications built using MICA. It then compares the MICA architecture with other middleware platforms, before drawing some conclusions and future work.

2. MICA Core Architecture MICA’s is based on the blackboard architecture [3]: group of experts use the blackboard to share knowledge and communicate. When something is written to the blackboard, each expert examines it and sees if he can make a contribution to solving a problem. The experts are known as knowledge sources. A similar idea can be used for as a generic communication mechanism.

In MICA, we update the idea of a blackboard by supporting distributed execution and network communication, using an object-oriented data representation and adding security and privacy mechanisms.

Mob line-103 of type line has slots: creationTime: [2003-08-07 12:13..] creator: [sharedPad] startX: [69] startY: [151] endX: [68] endY: [151]

Figure 1. A typical mob, called line-103.

2.1. Entities There are three entities used in the MICA design: 2.1.1. The Blackboard The blackboard is the core of MICA. The blackboard is similar to a telephone switch with memory. All interactions between agents flow through the blackboard, in much the same way that all phone calls in a town go through a switch. Much of the power of the blackboard comes from its ability to allow many agents to share information. It is expected, that in use, there would be one blackboard for each person. All agents and services related to that user would execute through the blackboard. It is also expected that forum blackboards, for groups of individuals, could also be created. 2.1.2. Agents Agents are entities that wish to access and contribute to the information on the blackboard. They take many shapes and forms, but the two main types are interaction agents that convey information to and from the user such as GUIs, proxies for telephone connections and devices in the environment, and computational agents that provide services such as speech recognition, web access and e-mail. Once connected to a blackboard, agents can read, write and query objects on the blackboard. In addition, they can register for new objects written on the blackboard. When a new object of interest to the agent is written to the blackboard, the agent is informed of its arrival. 2.1.3. MICA Objects MICA Objects (or mobs for short) are the basic unit of information in MICA. Mobs are the things that agents actually read and write from the blackboard. Mobs are very similar to objects in an objectoriented framework, but also share some characteristics with frames. Each mob has a type defined by the user – similar to a class in an object-oriented language. In addition, mobs have slots, which are similar to fields in object-oriented programming – each slot has a name and one or more values. Currently, only string values are supported, but support for other types of values is planned. An example of a typical mob is shown in Fig. 1, output from the MICA implementation. Its name is line-103 and it has a type line.

Agent 2

Agent Transport

Agent Transport

Blackboard

Agent 1

Transport Medium

Blackboard Transport

Transport Medium

Figure 2. MICA communication model 2.1.4. Type system MICA supports multiple inheritance: a given type can have several superclasses. Unlike languages like Smalltalk where each object can have multiple types a single mob can only have one type. To simplify management, there is a universal supertype, called mob. Every type is assumed to inherit from mob. When an object is created on the blackboard, the blackboard also creates two slots, each with a single value: creationTime, the time at which the agent was created; and creator, the agent that created a particular mob. The registration system heeds inheritance; if an agent registers for a given type, the agent is informed if any subtype is also written to the blackboard. This is an extremely useful feature. For example, to write a debugger agent that displays everything on the blackboard it need only register for mobs and it will be informed of any mob written to the blackboard.

2.2. Communication model Fig. 2 shows how these entities connect. The arrows represent flows of requests; for example that a mob be written to the blackboard, or that an agent be informed when mobs of a given type are written to the blackboard. The diagram shows two agents connected to one blackboard. Agents and blackboards do not communicate directly, but through a transport layer. This allows implementations of MICA to use different transport layers. For example, some possible transport layers are: local function calls, XML over a TCP/IP connection, or ASCII messages over Bluetooth. For each

transport, a pair of classes – an agent transport and a blackboard transport – need to be developed. Agents typically talk to the Agent Transport layer through method calls or callbacks (rather than network connections), depending on the language; similarly for the blackboard. This gives flexibility in the domains MICA can be applied to; and allows developers to write agents that do not need to be aware of the underlying transport layer. In order to clarify how requests are passed, consider what happens when Agent 1 writes a mob to the blackboard, which is of type line. Also assume that Agent 2 has registered for any mobs whose type is line. Agent 1 would tell its transport to an object to the blackboard. Agent 2 would then be informed of the new object. Note that neither Agent 1 nor Agent 2 are explicitly aware of one another and that different agents can register for mobs of a given type. If six agents were registered for lines, then all six of them would be informed. Also note that the arrows are “two way” arrows. At times the blackboard will initiate communication with agents.

2.3. Security, privacy and authentication Security and privacy in MICA are based on nyms. A nym is an aspect of the user’s identity that the user wishes to reveal and represents a spectrum of access rights. For example, anonymity means that minimal details of the user are to be disclosed, whereas verynymity is certainty of the user’s identity. Typically, a user will have multiple nyms, depending on the type of information the user wishes to disclose. When an agent connects, it is associated with a nym. A nym is authenticateed using standard public-key encryption systems; by means of a challenge from the blackboard to the client. Several agents with the same nym can connect at once. For privacy, the nyms are used to control visibility of the information on the blackboard. The core of this idea is to realise is that not every agent need see the same information on the blackboard; and generally, each nym sees a different version of the blackboard. Agents are not informed when a mob they are not supposed to see is written to the blackboard, and similarly, should they do a query, only the mobs they are supposed to see are returned. The visibility of the information on the blackboard is governed by a security policy. The security policy consists of rules for each nym that specifies what types of

Agent Agent

Nym

Nym

Security policy

Security policy

Blackboard Security policy

Blackboard Security policy

Nym

SPA

Security policy

Security policy

Nym

Agent

Nym

Agent

Nym

IBA

IBA

IBA

IBA

Nym Security policy

SPA

Nym Security policy

Blackboard SEA

Figure 3. Interblackboard Agent architecture

mob are visible to what nyms. The security policy can also specify constraints on the values of slots. For example, consider the office of the future where on the front door is an LCD panel that says whether the owner of the nym is in or not. This LCD panel would connect to the user’s blackboard with say, a nym of anon. If the person in the office is in, but does not wish to be disturbed, the security policy may prevent the LCD panel from seeing mobs that indicate the owner is inside.

2.4. Interblackboard communication Our vision is that the blackboards are not only to be used as global servers in the way that similar systems have been used in pervasive computing, but rather that each individual has their own personal blackboard that tends to their multi-modal and multi-devices communications. MICA uses the concept of a forum blackboard. A forum represents a “shared space” for blackboards to connect, and represent either a physical or a virtual group of blackboards. A forum blackboard may also have services associated with it other than being a meeting point. For example a meeting room may have a blackboard associated with it. This forum blackboard would give access to any resources in the room, e.g. speakers, panels etc. However, a forum may also be a totally virtual space. It is envisaged that initially each user’s personal blackboard will be carried around with them, or run or on their home machines. Forum blackboards for physical spaces, such as meeting rooms, would be embedded in that environment. Forum blackboards for virtual spaces would operate within the Internet in much the same way as a web server runs today.

This design is shown in Fig. 3. To support interblackboard communication, Interblackboard Agents (IBA) are used. One complication of interblackboard communication is the handling of identity; and how this fits with the nym concept. A connection between two blackboards can be considered an exchange of nyms; when two IBAs initiate contact, they exchange their opposite nyms; to ensure proper access rights. Once the IBAs are connected, a mirroring policy is constructed, much like the security policy previously mentioned. If a mob is written to a blackboard and if it is covered by the mirroring policy, the IBA will also write it to the companion blackboard. The mirroring policy interacts closely with the security policy to ensure that users’ privacy is not violated.

3. MICA implementation The current implementation of MICA consists of an implementation of the blackboard and the agent library in Java. It is functional, and has been used for several small projects, but not all the functionality above has been fully implemented. Currently, object delivery is complete and the type system is functional. Two transport layers are also implemented: XML-over-TCP and a local method-call based protocol.

3.1. Performance Some simple evaluations have been done on the speed of MICA. With the current unoptimized Java implementation, the system can distribute approximately 200 messages a second with the XML-over-TCP transport layer. There is a latency of about 50 milliseconds from when an agent writes an object to the blackboard and first agent is informed. We have used a real-time whiteboard-style application that naively writes each drag by the user directly to the blackboard (without doing any kind of consolidation of lines, or reduction in data). We have tested with up to six clients connected to a single blackboard at once over Ethernet and it still “feels” responsive. The MICA jar file, including blackboard, agent libraries, demonstration programs, is just over 100K. Importantly, the API is extremely simple. To implement an agent, a developer needs to write two methods or callback functions: init() to start the agent, and handleMob() to handle any mobs the agent has registered for. The API for accessing the blackboard from the agent’s perspective consists of only 8 API function calls. The C API is similar and is approximately 20K in size.

3.2. Applications Two test applications have been written using the existing infrastructure. 3.2.1. SharedPad SharedPad is a simple “whiteboard” style application. Users can scribble on a SharedPad and the information is written to the blackboard. This then communicates the information to all the other attached SharedPad in real time. By making a MICAQL query on startup, a SharedPad can also retrieve the existing scribbles made before it connected. Thus, the user can doodle on their PDA (in our case, a H3870 running Familiar Linux and GPE), then connect to the blackboard from their desktop and continue doodling from where they last stopped doodling on their PDA. SharedPad is surprisingly simple. The Java implementation is approximately 135 lines, with approximately 35 lines relating to the blackboard. 3.2.2. WhizBang The WhizBang application demonstrates coordination between several agents to learns the user’s e-mail reading preferences in a variety of environments. The main agents involved in the application are: • A GUI that allows the user to set certain environmental aspects that are a substitute for future intelligent environments, such as the user’s location, who else is around, and the background noise level. It also allows users to type information into a terminal. • A Natural Language Understanding and Generation system developed by Sammut [4] called Probot. • A learning agent that uses Weka [5, 6], a learning library written in Java. In this particular case, it is used to decide whether to read out a user’s email using text to speech or display it as a list. WhizBang can learn rules such as “when the user is in the car, read out emails, but if the user is at home and there are more than 15 e-mails display it on a computer screen; otherwise read them out.” If the system learns an incorrect rule, the user can correct the system by saying that it did the wrong thing; and the correction is used to learn new rules. Perhaps the most interesting agent is the learning agent. Other agents tell the learning agent to learn given the current context; without the other agents being necessarily concerned with the context itself. This takes advantage of the visibility of the context through the blackboard. The context and correct action (or the

class in the machine learning nomenclature) are then used to construct a model of the user’s preferences. This demonstration illustrates how easy it is (i) to build systems with MICA with a variety of agents (ii) implement a system that learns user’s preferences through the “openness” of the blackboard.

4. Alternatives and previous work Recently, several types of middleware have been developed specifically for use in pervasive computing. MICA is similar to some of these. In spirit, MICA is very similar to T Spaces [9, 10]. There are some key distinctions compared to T Spaces: The data model is object-oriented, rather than being built on tuple spaces; MICA is not locked in to either the Java language nor to TCP/IP as the transport layer. MICA already has two transport layers (local method calls and XML over TCP) as well as several implementations of the agent library (C and Java); The API is significantly simpler; without complex operations like the rhonda operation, or blocking wait commands. It is also similar in many ways to the Event Heap being developed as part of the iROS [11]. In addition to the services provided by T Spaces, the Event Heap provides some platform and language independence. The main distinction with existing work is how blackboards are used in MICA: it is envisaged that every user has their own personal blackboard, and that these personal blackboards can connect to one another using forum blackboards. Further, our work is distinguished by its security and privacy model.

5. Future work Our immediate plans are to complete the implementation of MICA. We then plan to reimplement an extended version of InCA, the prototype discussed at the beginning of the article, on top of MICA.

6. Conclusion MICA is a simple abstraction for pervasive computing that is small and elegant. It functions as both a medium of communication as well as storage that is well-suited to supporting multimodal and multi-device interaction. It also supports privacy and communication between different users and environments, as well as a demonstrated ability to employ learning to learn user’s preferences. It has been tested on two small demonstration domains, where it has shown promise. Further explo-

rations of its usefulness for more complex domains are in progress.

Acknowledgment The authors would like to thank Dr John Zic for his assistance with the development of the security model. They would also like to acknowledge the support of the Smart Internet Technology CRC.

References [1] M. W. Kadous and C. A. Sammut, “Mobile conversational characters,” in Virtual Conversational Characters, HF 2002, 2002. [Online]. Available: http://www. vhml.org/cgi-bin/HF2002/create paper page?kadous [2] M. W. Kadous. (2002) InCA home page. [Online]. Available: http://www.cse.unsw.edu.au/∼ inca/ [3] L. D. Erman, F. Hayes-Roth, V. R. Lesser, and D. R. Reddy, “The Hearsay-II speech-understanding system: Integrating knowledge to resolve uncertainty,” ACM Computing Surveys (CSUR), vol. 12, no. 2, pp. 213–253, 1980. [4] C. Sammut, “Managing context in a conversation agent,” Electronic Transactions on Artificial Intelligence, vol. 6, no. 27, 2001, http://www.ep.liu.se/ea/cis/2001/027/. [5] E. F. Ian H. Witten, Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Morgan Kaufmann, 1999. [6] U. of Waikato Machine Learning LAb. (2003) Weka home page. [Online]. Available: http: //www.cs.waikato.ac.nz/ml/weka/ [7] B. Segall, D. Arnold, J. Boot, M. Henderson, and T. Phelps, “Content based routing with elvin4,” in Proceedings AUUG200, Canberra, Australia, 2000. [Online]. Available: http: //elvin.dstc.com/doc/papers/index.html [8] D. S. T. Centre. (2003) elvin home page. [Online]. Available: http://elvin.dstc.com/index.html [9] IBM. (2003) T spaces. [Online]. Available: http://www. almaden.ibm.com/cs/TSpaces/ [10] P. Wyckoff, “T spaces,” IBM Systems Journal, 1998. [Online]. Available: http://www.research.ibm. com/journal/sj/373/wyckoff.html [11] B. Johanson and A. Fox, “The event heap: A coordination infrastructure for interactive workspaces,” in Fourth IEEE workshop on Mobile Computing Systems and Applications (WMCSA 02), Callicoon NY, June 2002.

MICA: Pervasive Middleware for Learning, Sharing and ...

Support both security and privacy measures. .... on the front door is an LCD panel that says whether the .... in the car, read out emails, but if the user is at home.

163KB Sizes 4 Downloads 231 Views

Recommend Documents

A Middleware Service for Pervasive Social Networking
Social Networks, Pervasive Computing, Middleware. 1. INTRODUCTION. Pervasive Social Networking (PSN) [1] (also called Mo- bile Social Networking) is a ...

Pervasive Computing and Communications for Sustainability - Elsevier
lighting, heating, cooling, displays, etc. by considering context and usage. ➢ Role of social networking and smart interaction for energy conservation, emissions ...

Pervasive Computing and Communications for Sustainability - Elsevier
lighting, heating, cooling, displays, etc. by considering context and usage. ➢ Role of social networking and smart interaction for energy conservation, emissions ...

Modelware for Middleware
CRC for Enterprise Distributed Systems (DSTC)∗. April 16, 2003. Abstract ... ering the design of an enterprise application creating a. Platform Independent ... concepts, allowing the annotation of the PIM to indicate which application artifacts ...

Adhesion Forces for Mica and Silicon Oxide Surfaces ...
forces, where the latter has been referred to as atomic force spectroscopy (AFS) [6]. Measurements of surface-surface interactions at the nanoscale are important ...

Middleware Technologies for Ubiquitous Computing ...
Fax : (+33|0)4 72 43 62 27 ... challenges raised by ubiquitous computing – effective use of smart spaces, invisibility, and localized scalability .... computer and network resources, enforcing policies, auditing network/user usage, etc. Another ...

Mica feeder Implementation and Maintenance ... -
6. Feeder mechanical BOM. Item. Part number. Description. Quantity. Actual picture. 1. 01. Feeder main. 1. 2. 02. Micro DC reducer motor. (1:20). 2. 3. 04. Micro DC reducer motor bracket. 2. 4. 05. Micro switch. 2. 5. 09. Worm gear. 1. 6. 10. Big gea

Knowledge Sharing and Collaborative Learning in ...
Nov 17, 2008 - substantially, also in situations that go beyond visualizing data or reviewing spatial models in applications like architecture and design.

A Middleware-Independent Model and Language for Component ...
A component implements a component type τ, same as a class implements an interface. A component (τ, D, C) is characterized by its type τ, by the distribution D of Boolean type which indicates whether the implementation is distributed, and by its c

Towards Middleware Components for Distributed ...
May 31, 2006 - bases, web services, and messaging systems may also be included as .... 1 Underlying actuators may be realized as hardware or software- based entities. ... constraints while also accounting for variation due to network ...

MONITORING MIDDLEWARE FOR SERVICE LEVEL AGREEMENTS ...
1. INTRODUCTION. Service Level Agreements (SLAs) specify the Quality of Service .... As demonstrated by [7] (QoS monitoring associated with network traffic.

Middleware Configuration and Monitoring for Master Data Transfer ...
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC .... Configuration and Monitoring for Master Data Transfer from SRM to ECC.pdf.

Pervasive Authentication and Authorization ...
trusted servers are available and traditional techniques are applicable for validation of user credentials ..... about the Beijing 2008 Olympic Games. 4. Bob asks ...

MICA MARCH ENGLISH.pdf
Judiciary in India 76-77. Que Tm - General Awareness 78-87. UP PSC Forest Conservator - Solved Paper 2017 89-113. CRYPTOCURRENCY : Digitalising Economy. 75th Golden Globe Awards Judiciary in India. Liberalisation in. FDI Policy. Page 3 of 116. MICA M

mica 1.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. mica 1.pdf.

mica 3.pdf
Loading… Whoops! There was a problem loading more pages. Whoops! There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. Main menu. There was a problem previewing

mica 2.pdf
against the question number in the answer booklet. Part 'A' Part 'B'. Psychoanalysis. Shell. Bertelsmann. Wall Street. Louis Vuitton. Emma. Measure for Measure. Sudan. Bicycle Thieves. Haiti. Living Media India Ltd. Trikal. Gerson da Cunha. a) Shakes

Mica feeder Implementation and Maintenance ... -
Automation Department. Version:1. Date:2017.7 ... 4. Maintenance. 5. Electrical Control System ... Peeling system by worm gear. • High accuracy and reliability.

Secure and Distributed Knowledge Management in Pervasive ...
2 Department of Information and Communication Systems Engineering University of the. Aegean ... solutions observed in the past few years and the high rates of ..... of the Education and Initial Vocational Training. Program – Archimedes. 7.

Operating Systems and Middleware: Supporting ...
sleep(3000);. System.out.println("Child is done sleeping 3 seconds.");. } }); childThread.start(); sleep(5000);. System.out.println("Parent is done sleeping 5 seconds.");. } private static void sleep(int milliseconds){ try{. Thread.sleep(milliseconds

A contract-oriented middleware - UniCa
A contract-oriented middleware. Massimo Bartoletti. University of Cagliari (Italy) — BETTY COST Action. London, Apr 17th, 2015 ...

Oracle® Fusion Middleware -
Sep 1, 2008 - 1 Introduction to Building Fusion Web Applications with Oracle ADF. 1.1. Introduction to Oracle ...... How to Set Database and Java Data Types for an Entity Object Attribute .............. 4-29. 4.10.2 ...... How to Access an Applicatio