Enterprise-enabled Ubiquitous
Workspace Infrastructure
Terence Blackburn 1
Honours Thesis 2002
Supervisors:
Assoc Prof Rudi Vernik 1, 2
Dr Damien Bright 1
1 School of Computer and Information Science
University of South Australia
Mawson Lakes Blvd
Mawson Lakes South Australia 5095
2 Defence Science and Technology
P O Box 1500
Edinburgh South Australia 5111
November 2002
Terence Blackburn 1 Enterprise-enabled Ubiquitous WorkSpaces
Abstract
Current research in the area of ubiquitous computing environments is shifting the focus of
human computer interaction away from traditional interfaces such as keyboards and mice and
towards more natural modes of interaction such as speech and gestures. An important
environment that can benefit from this trend is the enterprise-enabled workspace but this
domain has not been investigated in any great detail in current literature. Enterprise work
environments require support across a range of activities that include meetings, strategic
planning, remote coordination (command and control) and collaborative work activities such
as software development. This project investigates the use of architectural frameworks as the
infrastructure for next generation, enterprise-enabled, ubiquitous workspaces.
“LiveSpaces”, in the UNISA e-World laboratory, is an example of a research initiative to build
an experimental, adaptive, context aware environment and is used as a basis to explore
some of the issues involved in building future, collaborative work spaces. A meeting room
scenario is employed to identify some of the attributes involved in underpinning these future
workspaces. An experimental, hybrid software framework is built which involves integrating
MIT’s MetaGlue, a multi-agent, ubiquitous computing infrastructure, with DSTC’s Open
Distributed Services Infrastructure (ODSI), an enterprise enabled architecture that has a
messaging based enterprise bus and a workflow focus.
In addition to building the experimental infrastructure, the other major component in this thesis
devotes itself to exploring the characteristics of enterprise-enabled workspaces and
highlighting how MetaGlue and ODSI have supported these characteristics. Time was taken
to examine the areas where the infrastructure components complement each other, in terms
of workspace attributes, and the areas where neither of the architectures adequately
addresses the needs of future workspaces. The discussion section evaluates these strengths
and weaknesses and both infrastructures are considered against a set of desirable
workspace attributes identified in Section 2.6. These attributes include context awareness,
adaptability, process orchestration and collaboration but the most important characteristics
that underpinned all of these attributes were security and state management. Neither
framework had incorporated any level of security and this is an area that needs to be
addressed prior to any attempts at commercialisation. State management involves capturing,
persisting and recreating state on demand and this supports all higher order workspace
characteristics.
The environment built for the experiment provides a basis for further work to examine how
such software frameworks can be extended to address many higher order workspace
requirements such as rapid instrumentation, workspace replication, collaboration across
multiple workspaces and interleaving different levels of security simultaneously.
Terence Blackburn 2 Enterprise-enabled Ubiquitous WorkSpaces
Declaration of Originality
All of the material in this thesis is my original work and I believe that this thesis does not
contain any material previously written or published by another person except where I have
acknowledged the authors in the body of the document or in the acknowledgements section
on the next page.
Terence Blackburn
24th November 2002
Terence Blackburn 3 Enterprise-enabled Ubiquitous WorkSpaces
Acknowledgements
The quality and quantity of academic work during an Honours project moves up to a new
realm compared to the mass production years of an undergraduate degree. It is far more
demanding on students who take this path. There is no time for party powders, adult
beverages or basking on the beach. There is no time for anything except work.
My supervisors made it sound easy. “Just change that. Just add this. You can cut and paste
from your paper and most of it is done.” This is not the case! Don’t let anyone have you
believe that learning how to undertake research, writing the odd paper or two, creating a
practical thesis component and cramming in regular course work is easy because it is not.
In addition to lots of other things, Rudi and Damien, thank you for encouraging and
challenging me. I’ve stretched myself in new directions this year, ones related to the cerebrum
rather than the tum and bum and it’s where I want to head. You’ve provided excellent tag
team support through the last twelve months and I appreciate your agreeing to run with me
through my PhD years.
I appreciate the time that Robyn Whibley and Mathew Phillips from DSTO spent with me
sharing their perspective on some of the components in LiveSpaces and Brett Wilkinson from
Flinders University for his thoughts and perception regarding some of the concepts in the
project.
Most of the acknowledgements relating to material in the document are contained in the
references section but some explicit recognition is warranted. DSTC have allowed me to use
some of their material in this thesis and this included the Wfclient java code for the connection
from MetaGlue to ODSI. Thank you Andy Bond and Michael Lawley for your support and
advice. The e-World lab supplied the Python code for the workflow stub and DSTO provided
assistance creating the MetaGlue agents.
My thanks go to the researchers at Stanford, MIT and DSTC for (unwittingly) providing the
inspiration for this work and second last (but not second least), I would like to express my
gratitude to DSTO for underpinning my project. Without their generous and ongoing support,
the e-World laboratory and the exciting research we are undertaking would probably not exist.
When eating dessert, we always save the best till last. Thanks to my partner, Jan, who
tolerated for a year a person who was not very tolerable at times and who still gives me a
loving smile when I least expect it.
Terence Blackburn 4 Enterprise-enabled Ubiquitous WorkSpaces
Acknowledgements (Cont)
Figure 3.1 Copyright DSTC
Figure 3.2 Copyright DSTO
Figure 3.3 Copyright DSTO
Figure 3.4 Copyright GMD-IPSI
Figure 3.5 Copyright GMD-IPSI
Figure 3.6 Copyright GMD-IPSI
Figure 3.7 Copyright University of Aarhus
Figure 4.2 Copyright University of South Australia
Figure 4.4 Copyright DSTC
Figure 4.5 Copyright DSTC
Figure 4.6 Copyright Stryon
Terence Blackburn 5 Enterprise-enabled Ubiquitous WorkSpaces
Contents
Abstract .................................................................................................................................. 1
Declaration of Originality ........................................................................................................ 3
Acknowledgements ................................................................................................................ 4
Contents ................................................................................................................................. 6
Glossary ................................................................................................................................. 8
1. Introduction......................................................................................................................... 9
2. Future WorkSpace Environments .................................................................................... 12
2.1 Overview..................................................................................................................... 12
2.2 Research Initiatives .................................................................................................... 12
2.3 Architectural Focus ..................................................................................................... 12
2.4 WorkSpace Activities .................................................................................................. 13
2.5 Infrastructure Characteristics...................................................................................... 13
2.6 Characteristic Descriptions......................................................................................... 13
2.7 LiveSpaces ................................................................................................................. 15
3. Architectures, Infrastructures and Components............................................................... 20
3.1 MetaGlue .................................................................................................................... 21
3.2 ODSI ........................................................................................................................... 24
3.3 iROS ........................................................................................................................... 28
3.4 Roomware................................................................................................................... 32
3.5 TOPOS ....................................................................................................................... 36
3.5 Topos (Cont.) .............................................................................................................. 40
4. Case Study ....................................................................................................................... 41
4.1 LiveSpaces Configuration........................................................................................... 41
4.2 Scenario...................................................................................................................... 44
4.3 Case Study Analysis................................................................................................... 45
4.4 Process Execution ...................................................................................................... 52
4.5 Results of Experiment................................................................................................. 60
5. Discussion ........................................................................................................................ 63
5.1 Implementation issues ................................................................................................ 64
5.2 Service Provision ........................................................................................................ 65
5.3 Architectural Design.................................................................................................... 69
5.4 Inter-infrastructure ...................................................................................................... 71
5.5 Security ....................................................................................................................... 72
5.6 Scalability.................................................................................................................... 76
Terence Blackburn 6 Enterprise-enabled Ubiquitous WorkSpaces
5.7 Orchestration and Synchronisation ............................................................................ 77
5.8 Adaptability ................................................................................................................. 77
5.9 Persistence and State Management .......................................................................... 78
5.10 Context Awareness................................................................................................... 79
5.11 Collaboration............................................................................................................. 80
5.12 Distribution................................................................................................................ 80
5.13 Summary................................................................................................................... 81
5.14 Future Work .............................................................................................................. 84
6. Conclusions ...................................................................................................................... 88
References............................................................................................................................... 91
Appendix A............................................................................................................................... 96
MetaGlue Agent Source Code................................................................................................. 96
Speech agent ....................................................................................................................... 96
SendAgent............................................................................................................................ 96
ReceiveAgent ....................................................................................................................... 97
ExplorerTestAgent................................................................................................................ 97
ExplorerAgentWrapper......................................................................................................... 98
Processx10Agent ................................................................................................................. 99
x10Devices ........................................................................................................................... 99
StartWfClient ...................................................................................................................... 100
WfClient .............................................................................................................................. 100
ODSI Source Code ................................................................................................................ 102
test_client ........................................................................................................................... 102
running_test........................................................................................................................ 103
Terence Blackburn 7 Enterprise-enabled Ubiquitous WorkSpaces
Glossary
AR (WorkSPACE) Augmented Reality, where virtual and physical
environments intersect
BEACH (AMBIENTE) Basic Environment for Active Collaboration with
Hypermedia, a software environment.
Catalog (Intelligent Room) This MetaGlue agent keeps track of the agents
that are active.
DataHeap (Interactive Room) This mechanism allows movement of large
chunks of data across applications in a workspace
Event Heap (Interactive Room) This shared memory model facilitates device
communications and is based on a tuplespace, which is a shared
blackboard for posting and receiving events.
iCrafter (Interactive Room) This facilitates writing "services", applications
that provide utilities and functions for other applications. It is useful
for writing various types of device controllers.
iROS (Interactive Room) This is a middleware layer/meta-operating
system for technology-rich "interactive rooms". It is written in Java
and uses a client server paradigm.
Lore (Interactive Room) Lore is a semi-structured database that stores
XML structures containing context information, groups of related
objects eg personal data, and active objects in the workspace. It
acts like a catalog for keeping track of resources rather than storing
all objects.
Notifier (Intelligent Room) a publish-subscribe communications mechanism
for MetaGlue agents.
Topos (WorkSPACE) a software client that presents a 3D spatial
hypermedia interface to document and material organisation
Transient state API (Interactive Room) this allows applications to "discover" which other
applications are running in the workspace and query their state
Terence Blackburn 8 Enterprise-enabled Ubiquitous WorkSpaces
1. Introduction
This thesis examines ubiquitous computing infrastructure from the perspective of enterprise-
enabled, future work environments1.
The term “enterprise-enabled ubiquitous workspace” is defined here as a
technology-rich physical environment that supports business processes
and links together enterprise assets, services and data repositories with
new input/output mechanisms coupled to new computing devices.
In such an environment, various aspects of the enterprise are represented using some form of
enterprise model which keeps track of roles and policies and which can be utilised in process
orchestration and collaboration. This model is constructed using a top down approach and is
based on enterprise goals and activities, which are expressed as business processes in the
form of workflows. Process orchestration tools such as workflow engines are important in this
type of environment to coordinate business processes that can facilitate productive interaction
between decoupled components and devices.
Enterprise work environments require support for a range of activities such as meetings,
strategic planning, remote coordination (command and control) and collaborative work such
as software development. The software infrastructure required to support enterprise-enabled
work environments is complex and research to date in ubiquitous/pervasive computing has
focused more on augmenting physical spaces with new interface technologies at the expense
of enterprise needs. One of the driving factors behind the current trend to pervasiveness is
the desire to abandon traditional computing interfaces and embrace more natural ways of
utilising technology infrastructures [53]. In future, collaborative environments, keyboards and
mice will be replaced and more human-centric, natural interaction mechanisms such as voice
and gestures will be coupled with new interactive display devices. This will enable people to
move from being “cabled and connected” to environments where “wireless and wandering”
will be the norm and this is where a substantial amount of research has been focused. These
trends will allow humans to be physically decoupled from computers but this will raise many
issues [21].
Future workspaces will employ a range of display technologies, interaction devices, and
contextual sensors to augment physical spaces such as meeting rooms and collaborative
work areas. In these settings, technology will become ubiquitous and, in a sense, will
disappear from view. It will become interwoven with the physical backgrounds of
collaborative, interactive environments [49]. New software infrastructures will provide the
1 A summary paper can be found at http://eworld.unisa.edu.au/publications/entworkspace.pdf
Terence Blackburn 9 Enterprise-enabled Ubiquitous WorkSpaces
basis for integrating, controlling and coordinating activities and technologies within these
future workspace settings. Additional enterprise-level infrastructure will be required to provide
for the integration and synchronisation of multiple, collaborative workspaces.
This thesis focuses on the challenge of providing the underlying architectures and software
infrastructure to accommodate these future environments and associated workspace
applications. As with individual workstations, which require an operating system to coordinate
and run applications, ubiquitous computing applications will require an underlying operating
environment. Research is well underway in various laboratories, e.g. [5, 29, 35, 45], to more
fully understand what this underlying infrastructure should be and a substantial part of this
work has focused on infrastructure to support interactions between people and devices.
In this thesis, we begin to explore how the infrastructure
for these interactive environments might be extended
and integrated into broader enterprise-level solutions.
Some of the characteristics that need to be considered in this respect include the use of
workflow processes for orchestrating and coordinating work activities, various layers of
distribution, enterprise information management and integration with various enterprise
services such as ontology servers, data repositories, and web services.
Sections two and three discuss the results of an extensive literature review undertaken to
identify related research initiatives. Section two also sets the context for the thesis by
discussing the desired characteristics of future workspaces and by providing examples of the
types of activities that will need to be supported in these settings.
Section three reviews five separate, different approaches to creating collaborative and
adaptive infrastructures. We discuss the architectural components that have been used to
form the foundations for intelligent, interactive environments and emerging enterprise-
computing approaches.
Section four starts by discussing the research environment that was used to conduct a case
study. The case study involved establishing a LiveSpaces environment as an interactive
meeting workspace. The infrastructure was comprised of two components: MetaGlue [29], a
multi-agent, ubiquitous computing infrastructure, which forms the basis of the MIT Intelligent
Room, and ODSI [2-4], an enterprise framework from DSTC. ODSI implements the concept of
an enterprise bus that allows the integration and coordination of a range of enterprise
services across an organisation. It uses an enterprise model, in the form of organisational
structures, context and processes, to orchestrate and coordinate work activities and allow
flexible employment of various enterprise applications and services. This section also
Terence Blackburn 10 Enterprise-enabled Ubiquitous WorkSpaces
describes the technology that was involved in the case study and spends some time
describing the important software and hardware components that were employed. To
highlight the merits of using an enterprise-enabled, interactive workspace, a simple meeting
scenario was used as the setting for the experiment.
Section five reports on the results of the case study. It discusses what we have learnt in the
context of future workspace characteristics and summarises the discussion of key results. In
addition, it raises some issues that invite further exploration such as the merits of lightweight
messaging in an enterprise environment and the absence of security, which hinders the ready
adoption of this type of enterprise-enabled workspace technology by business.
Section six completes the thesis by highlighting the conclusions that we have reached and
sharing the insights that we have experienced.
Terence Blackburn 11 Enterprise-enabled Ubiquitous WorkSpaces
2. Future WorkSpace Environments
2.1 Overview
Ubiquitous and pervasive computing initiatives are providing the components for augmenting
physical workspaces with devices that will allow people to interact more effectively with each
other and with technology [13]. Future workspaces will be extended with various interactive
display devices, universal interactors like personal information appliances, human-centric
input mechanisms and natural language interfaces. Approaches such as augmented reality,
virtual presence and conversational agents will help transform the way in which people use
information to support individual and collaborative workspace activities. This section
examines the components of future workspaces and the attributes that will be required to
support them.
2.2 Research Initiatives
Several research projects [5, 29, 35, 45] are currently underway that look at how these
devices and technologies can be integrated and managed as part of a future workspace. For
example, MIT’s Intelligent Room integrates the use of speech, gestures [27] and natural
language interfaces to help users interact with workspace applications. Context plays an
important part in enabling the room to tailor itself to the needs of workspace participants.
Stanford’s Interactive WorkSpace [17] explores the management of information in multidisplay
environments and supports user interaction between personal handheld devices and large
interactive displays. The researchers at the Ambiente [35] project in Darmstadt, Germany,
have adopted a parallel approach to the Stanford work with a focus on multi device,
interactive workspaces. They have extended this model by reengineering pieces of furniture
such as tables and chairs to act as parts of a collaborative workspaces. Each of these
initiatives has as its core, an infrastructure component that addresses important requirements
such as display management, interaction management and context awareness.
2.3 Architectural Focus
Related work has been undertaken to look at how these future workspaces might support
collaborative work activities [15, 17]. For example, Stanford’s Interactive Room has been
used to support architectural design activities while MIT’s Intelligent Room supports
applications such as the Meeting Manager [28]. The Ambiente infrastructure allows users to
join pieces of workspace furniture to form larger, interactive, virtual workspaces. However, a
review of the literature suggests that relatively little work has focused on examining how these
types of workspaces might be deployed as part of an overall enterprise environment. For
example, there is interest in the area of command and intelligence environments where
several such distributed workspaces might be used to collectively plan and execute a military
mission. Similar situations arise in the planning and execution of large software development
Terence Blackburn 12 Enterprise-enabled Ubiquitous WorkSpaces
projects and perhaps in the coordination of security for large sporting events. In such
situations, the work within individual workspaces needs to be orchestrated and synchronised
with other workspaces so that overall enterprise goals can be realised.
2.4 WorkSpace Activities
The types of activities that need to be supported in individual workspaces include those
associated with collaborative planning, analysis, briefing and execution. Each activity usually
requires access to corporate data and often generates new information; hence, appropriate
access to enterprise-wide data sources is critical. Workspaces also need to adapt readily to
the type of activity being undertaken, the setting that is hosting the activity and the people
involved with undertaking the activity. This adaptive characteristic can be described as
context awareness or enterprise awareness [12]. Moreover, activities need to be orchestrated
and managed within individual workspaces to ensure that goals are met within a required
timeframe and this can also involve awareness of context in the larger scope of activities.
2.5 Infrastructure Characteristics
As discussed earlier in this section, research into intelligent and interactive rooms has
identified a number of desirable characteristics that need to be supported through ubiquitous
computing infrastructure. Some of these characteristics can be physically manifested through
display management, interaction management, mobility, location sensitivity and support for
disconnectedness. In taking an enterprise perspective on the use of these future workspaces,
there are several additional characteristics that we believe need to be addressed. These
include distribution management, orchestration and synchronisation of organisational
processes, enterprise awareness, information management, and security. As discussed in
Section 3, these aspects are being considered in various research projects that look at future
enterprise computing architectures and infrastructure.
Our challenge is to investigate infrastructure for future work
environments that exhibit a combination of desirable characteristics
from both ubiquitous computing and enterprise computing domains.
This will be followed by an analysis of our findings, and this may lead us to some conclusions
regarding the future directions for these infrastructure environments.
2.6 Characteristic Descriptions
Some of the attributes required by enterprise enabled future workspaces include:
Terence Blackburn 13 Enterprise-enabled Ubiquitous WorkSpaces
Context Awareness
In terms of future workspace environments, context awareness refers to the ability of a
system able to perceive the state or existence of some aspect of itself or its environment.
The particular environment can be physical, simulated or virtual. This awareness may
include conditions such as temperature, time, smell and lighting levels or the proximity of
a person and what that person is doing. Environment awareness also includes
information and data and examples could include network traffic levels, the
communications activity in an agent messaging system or the firing of a database trigger.
This context awareness can exist both within and between workspaces.
Adaptiveness
This key attribute is linked to the management of change, and it can have a number of
different manifestations and drivers. In this research, workflows and business processes
constitute two of the main drivers for adaptive behaviour and this behaviour will promote
the dynamic composition of future workspaces. Other divers will include conditional
branching within a process, changes of state, levels of activity and scaling factors.
Process Orchestration
This concept can be described as the arrangement or combination of a series of
contiguous actions or processes for a desired effect within the enterprise. The processes
can include: the arrangement of a series of workflows to create a higher order workflow,
the dynamic composition or reconfiguration of an adaptive environment or the
synchronisation of a set of enterprise activities.
Collaboration
In this context, collaboration means working together or cooperatively in an endeavor and
the effort may or may not be goal oriented. In addition to individuals and groups,
collaboration also applies to device, machine and process activities in local and remote
workspaces.
Distribution
Distribution, in this thesis, encompasses the idea of dissemination or spreading of
components in an enterprise. Layers of distribution will include people, workflows,
processes, data, computer hardware and services. The enterprise, which can be situated
locally, remotely or virtually, is often a distributed entity by default.
State Management
The observable or unobservable condition of an object is called state and, to enable
management of state, information relating to the condition is usually stored as a data
type.
Terence Blackburn 14 Enterprise-enabled Ubiquitous WorkSpaces
Security
Software infrastructures are not introduced into production environments without
safeguards to isolate and protect whatever organisational assets are potentially exposed.
Existing security models are constantly challenged to address weaknesses and new
forms of attack from malicious intruders. Future enterprise security models will be
stretched even further with a range of new issues as workspace components are
invented or reengineered.
Persistence
The ability of an object or a piece of data to remain in existence after the end of a process
is called persistence. This can also be described as continuance or prolongation of the life
of the object.
A combination of some of these characteristics will be evident in future workspaces and one
of the cornerstones of this research is to determine the most advantageous approach to
creating the infrastructure to support these enterprise-related attributes.
2.7 LiveSpaces
2.7.1 Overview
The LiveSpaces environment is a joint undertaking between the Australian Defence Science
and Technology Organisation (DSTO) and the University of South Australia’s Advanced
Computing Research Center (UniSA/ACRC). It incorporates components from their separate
research programs along with research components from DSTC. LiveSpaces is an
experimental test bed for examining workspace infrastructures and it is being used to explore
a range of issues related to future workspace development.
2.7.2 LiveSpaces Goals
The LiveSpaces experimental environment project has been established with specific goals
that focus on exploring a range of issues related to collaborative work in future Defence
settings, in support of large software projects and in health domains. These goals will be
pursued by extending DSTC’s Open Distributed Services Infrastructure (ODSI) research
platform through technology integration and experimentation. Specific areas of research
include enterprise and inter-enterprise system architectures, enterprise security, rapid
configuration, advanced visualisation and multimodal interfacing, context management,
business process realisation and enterprise synchronisation. Technologies that support these
initiatives include adaptive workflow engines, interactive displays embedded in room furniture
Terence Blackburn 15 Enterprise-enabled Ubiquitous WorkSpaces
such as tables and walls, real time avatar interaction, advanced teleconferencing, mixed
reality, mobile and wireless computing paradigms and knowledge processing/management.
This project experiments with a subset of these technologies and goals and includes a focus
on context awareness, workflow processing, advanced display technologies, speech
interfaces, enterprise data access and collaboration.
2.7 3 Architectural features
Several of the major components of LiveSpaces (see Figure 2.1) are based on ODSI
architectural principles [2, 3]. ODSI has been selected as a foundation for ODSI for a number
of reasons. The framework has been designed with flexibility and adaptability as architectural
cornerstones. ODSI’s abstract definition of service provision allows it to rapidly integrate new
technologies and components without the need for reengineering. It is driven from a high-level
enterprise perspective where business processes and enterprise needs dictate what should
be done but do not dictate how it should be done. The implementation of these requirements
is left to lower level integration technologies.
The implementation independence of ODSI and LiveSpaces acts as a base for the rapid
composition of experimental superstructures. The peer to peer infrastructure is written in
Python, an object oriented scripting language, which is powerful yet concise. Many cross
platform technologies are deployed in the Java programming language and Python has a
natural interface to Java in the Jython language. This allows Python code to be implemented
and executed from within the Java Virtual Machine. This allows the choice of either tight or
loose coupling between software components depending on the application’s design.
Terence Blackburn 16 Enterprise-enabled Ubiquitous WorkSpaces
Figure 2.1 LiveSpaces Architectural Components
The workflow engine is the heart muscle of the LiveSpaces enterprise framework and the
Breeze suite of workflow products [43] has been selected for this implementation. This
includes the Breeze workflow engine, the GUI based Bred workflow editor and Brzmon, which
is a monitoring program that displays a workflow’s status throughout the course of its
execution.
Elvin [33] is the messaging mechanism that facilitates communication within the LiveSpaces
framework. It is lightweight, fast and easy to deploy and use. (Available client
implementations cover most of the major programming languages and code examples are
available from the Elvin [41] web site.) The messaging model is content based and
asynchronous so that publishers and subscribers remain anonymous and no message
acknowledgements are required.
2.7.4 Enterprise Model
The focal point of the LiveSpaces infrastructure is the Enterprise Model. This is manifested in
support for enterprise roles and policies, which are stored and accessed from data
repositories, and business processes, which are expressed as workflows.
Context information is gathered from a number of levels. These include: software applications
such as calendars, environmental sensors and enterprise models such as organisational
Terence Blackburn 17 Enterprise-enabled Ubiquitous WorkSpaces
hierarchies. This data is aggregated and used in the contextual environment for planned
activities.
Collaboration is fostered in a number of ways:
o through the peer software model, which promotes peer interaction for the fulfillment
of service requests
o through the meeting coordinator agent, which supports interaction between
participants to achieve desired goals
o via the workflow engine, which can direct and control activities described by business
processes and, hence, provide process orchestration.
Security is not a feature of the abstract LiveSpaces model but would probably constitute an
important component of the infrastructure if it was implemented within an organisation.
Persistence is supported in the enterprise model in a number of formats. Business processes,
in the form of workflow stubs, are stored in a database and accessed by the workflow engine.
Legacy data, which may be stored in proprietary formats, can be used in the model if the
appropriate interfaces are available.
Figure 2.2 LiveSpaces Populated with Research Components
Terence Blackburn 18 Enterprise-enabled Ubiquitous WorkSpaces
Other components, such as the augmented reality interface and the simulation services, are
abstractions without implementation layers in the version of LiveSpaces used in this case
study.
The LiveSpaces model has no security layer although Elvin version 4 has a number of
security components that offer different levels of secure messaging. This, by itself, however,
does not constitute a holistic approach to enterprise security. If Elvin version 4 is utilised as
the enterprise bus, rather then a previous version, it may support point-to-point message
security but it does not protect databases, it does not isolate a network from denial of service
attacks, nor dos it quarantine enterprise servers.
The flexibility of the architectural model is exemplified by the selection of technologies that
has been plugged into the LiveSpaces framework as depicted in Figure 2.2. This
configuration has been created for research into future command environments and has been
supplied courtesy of DSTO. Many of these technologies exist only in research laboratories but
LiveSpaces is actively being used as a dynamic environment for conducting experiments.
Terence Blackburn 19 Enterprise-enabled Ubiquitous WorkSpaces
3. Architectures, Infrastructures and Components
Several architectures and software infrastructures have been identified that provide some of
the desirable characteristics for the type of enterprise-enabled workspaces outlined in Section
1. In this section we draw from five examples to highlight how some of these characteristics
have been supported and implemented.
MetaGlue [30] is a mobile, multi-agent system that supports an experimental, intelligent room.
Most of the infrastructure consists of various agents that have one specific function. Most of
these agent functions are concerned with device control activities and interfacing to
applications. The remaining agents that are not involved with these activities are concerned
with the administration and management of the agent system.
ODSI [2] is an enterprise-focused framework that allows business managers to create and
describe abstract business processes. The supporting peer to peer infrastructure assumes
responsibility for instantiating and executing these business processes and it relies on a set of
plug in components to achieve its goals.
IROS [18] is an architecture that was designed to support large display devices. It has been
extended to encompass human interactivity and to integrate small hand held devices. Other
components have been built over this infrastructure and one of them, the Event Heap, is of
particular interest for its enterprise support.
Roomware [35] is one of the two European projects that have been included in this section.
Its area of focus is the integration of computer-augmented components into items of furniture
such as tables and chairs. By using this approach, the researchers have created new modes
of work orchestration and group collaboration between digital objects and humans.
The final infrastructure that will be reviewed is TOPOS [29], which has a 3D focus. This
research has goals to enhance distributed collaboration in various spaces. These spaces
include local, remote and digital spaces and all of this work is enveloped by a central spatial,
3D theme.
The section concludes with a table that summarises these five approaches and highlights
their key attributes and components.
Terence Blackburn 20 Enterprise-enabled Ubiquitous WorkSpaces
3.1 MetaGlue
Overview
The Intelligent Room is a part of the Oxygen [5] project at the Massachusetts Institute of
Technology, Cambridge, MA. It integrates a wide range of devices such as:
o cameras that monitor people and events
o microphones that listen to verbal commands and oral conversations
o speakers that play music and output synthesised voices
o projectors that display graphical information
o LED signs that display textual information
o various consumer devices such as VCRs and DVD players [13].
The supporting software communication infrastructure in the room is MetaGlue, a mobile,
multi-agent system. MetaGlue provides human-computer interfaces, support for persistent
storage mechanisms and device customisation abilities.
Architectural Components
MetaGlue Version 0.5 [30] is a multi-agent based system that provides computational glue for
large groups of collaborative software agents and device controllers, such as those used in
the Intelligent Room [5]. It provides communication and discovery services and enables users
to interact, subject to access control, with software and data services in the room. It also
arbitrates among applications competing for resources [11]. MetaGlue separates software
that acts on behalf of users from software that controls spaces. Societies, or groups of
agents, can be attached to any entity in an intelligent room and can move with the entity eg
camera and microphone agents that are associated with a person who walks across the
room, would move from one set of device controllers to another positioned near the person’s
new location. This introduces the concept of mobile agents. If a service is not available on a
particular host, MetaGlue can spread to that host and this is a process called glue spreading.
In this process, the required agent is started on the new host to provide the required service.
MetaGlue is implemented in Java and replaces the Remote Method Invocation (RMI)
mechanism with one that allows dynamic reconfiguration and reconnection so that agents can
invisibly resume previously established but broken connections. MetaGlue provides the
support for managing systems of interactive, distributed computations i.e. those in which
different components run asynchronously on a heterogeneous collection of networked
computers. It provides high-level support for writing groups of interacting software agents and
automates the connection and distribution of these agents according to their service and
computational requirements.
Terence Blackburn 21 Enterprise-enabled Ubiquitous WorkSpaces
The MetaGlue framework supports context awareness by capturing state information from the
devices in the environment. It supports distribution by managing a set of device controllers
and a level of persistence by retaining device state and agent attributes in a database.
Persistence is also supported by way of the Catalog Agent, which stores agent stub
information in a database.
Currently, there are a number of projects building on the MetaGlue infrastructure that are
designed to expand the functionality of the Intelligent Room. Some of these new projects
incorporate and extend various desirable workspace characteristics including collaboration,
process orchestration and security. The following bullets describe a selection of these
projects.
o A help system [7] allows a person to enter the room and receive interactive,
multimodal assistance from the room itself via speech output, visual displays and
keyboard/mice interfaces. The room's help system provides information about the
room's abilities and how a person can use them. This has similar interface
characteristics to ReBa, the reactive, behavioural system [13], which allows the room
to respond to specific user actions and commands on a one to one basis. In a similar
vein, the dynamic, context aware, speech recognition system aims to generate a
single, robust, contextual grammar and create a true, free form speech interface to
the room. The SAM project [13] aims to make the Intelligent Room responsive to user
affect (curiosity, frustration, etc). It also aims to make it affective, emotion-enabled
and expressive of its own state in emotional terms, which would be expressed
through spoken inflection in Text To Speech (TTS) output.
o Another set of projects [13] maintains a multi-user, multi-spatial focus with regard for
available resources. Collaborative environments can experience situations where
multiple users attempt to share the resources in an environment. This is best handled
through a segmentation of agents based on their representatives, human or device,
and a simple knowledge representation that encompasses the capabilities of the
space and user roles. Rascal [13] is a Resource Manager that is able to obtain
resources in terms of the services they provide and arbitrate among contending
requests for resources that may become scarce as the number of applications in the
room increases. The Meeting Manager [28] is a multi-user, multimodal collaboration
tool for planning, facilitating, and browsing structured meetings. It stores the contents
of the meetings, including video, in a database for reference at a later date.
o A project that would need to consider environmental factors is the security and
privacy project [40], which incorporates an access control scheme to ensure that only
an authorised person will have access to the information in the Intelligent Room.
Terence Blackburn 22 Enterprise-enabled Ubiquitous WorkSpaces
Another project, which extends the Intelligent Room metaphor beyond the four walls
of a room, is being undertaken by the mobile computing team. Its goals are to design
new principles for intelligent agent-based systems to operate on numerous mobile
platforms and to enhance MetaGlue to operate efficiently on small, mobile platforms
o The sensor development group [13] is researching a variety of wired and wireless
sensors (temperature, pressure and humidity sensors and motion detectors) to
incorporate them into the existing system and program higher-level code to organize
and interpret the data from the sensors to execute specified or implied tasks. The final
project [13] deals with information retrieval, web access and personal information
management. It seeks to make the process fast and efficient and provide
mechanisms to access previously visited information sources.
Analysis
A software agent in this environment has been defined as any piece of software that exposes
some of its functionality to other agents or software programs and can communicate
independently within a network with these other agents [13]. In this future workspace, agents
control hardware or software devices. It is important that agents can act autonomously and
without a single point of failure, which would be embodied in a central agent controller. In this
way scalability is supported as the system may evolve to hundreds or thousands of agents.
However, there may be limits to this scalability and this is discussed in Section 5.5. Another
desirable agent quality is the ability to stop, start, remove or dynamically introduce agents
without interrupting the system.
Agents in this environment become powerful when combined with other agents and are
organized into communities or societies, in the case of MetaGlue [8, 13, 30]. These societies
may be representative of logical workgroups, individuals or workspaces, which are all located
behind a firewall. An individual in a room, for example, may have a camera agent and a
microphone agent “attached” to them while they are in the room. The agents may move to
different computer hosts to provide access to different cameras and microphones as the
person moves across the room. However, there is currently no mechanism to extend the
model beyond the room and the firewall although research is addressing this issue (see
earlier in Section 3.1). Communication occurs when an agent produces or sends a message
on a channel and any number of subscriber agents can receive the message. This
publish/subscribe communication system succeeds in an agent community because it
promotes non-blocking communication and loose coupling between agents. Both of these
characteristics are desirable in workspaces.
MetaGlue provides a flexible, functional and scalable infrastructure to allow research into
future workspace requirements. The scalability attribute, however, must be qualified by the
Terence Blackburn 23 Enterprise-enabled Ubiquitous WorkSpaces
need to add a security blanket to control the activities of agent societies that need to exist
outside of the corporate firewall. MetaGlue lacks an enterprise theme to support business
processes rather than sensorally focused ad hoc activities. Debugging a set of heterogeneous
agents can also present challenges, as there is no structure to support this activity.
Fortunately, most agents are less than one page of source code and are not inherently
complex.
3.2 ODSI
Overview
The Open Distributed Services Infrastructure (ODSI), from Distributed Systems Technology
Centre (DSTC) in Queensland, is a framework that supports the collaboration of enterprise
resources, encapsulated as an enterprise model, to meet the challenge of an adapting
enterprise [2, 3, 4].
The enterprise model can be described as a representation of the set of polices, data
repositories and organisational roles that leverage enterprise assets to achieve enterprise
goals.
ODSI concentrates on providing collaborative services such as business process execution
rather than data-driven applications and hence maintains an enterprise perspective rather
than a software focus.
It provides a service integration environment designed to combine enterprise-modeling
techniques that incorporate shared enterprise information, such as policy, role and
component descriptions, with lightweight workflow and dynamic service integration
technology. It provides lifecycle management for distributed software services through a peer
infrastructure and supports their collaboration to perform complex business processes [4].
Architectural Components
This enterprise-focused infrastructure utilises an adaptive, enterprise bus called Elvin [33, 41],
which is both a content-based routing engine and a lightweight notification service. Message
producers detect events in their systems and send a notification to Elvin, which in turn passes
the notification to any clients that have previously registered an interest in that event. (Events
are changes in the state of an object.) Registration is affected by means of a flexible
subscription expression, which is composed of name/value pairs. The difference between
Elvin’s messaging model and most messaging systems is that Elvin’s message addressing
method is motivated by the message content rather than a client address or channel name.
Subscribers “require” any message that contains a specified word or phrase, for example,
From == “Lucy” or To == “Tom”. The advantage of this approach is that it decouples
Terence Blackburn 24 Enterprise-enabled Ubiquitous WorkSpaces
producers and consumers and thus promotes system evolution, integration and client
homogeneity [10].
ODSI work processes are driven by a workflow engine to enable resource coordination and
process orchestration. Breeze, the workflow engine that was used in this experiment, is
implemented in Java and can be used in a number of different modes:
o as a standalone application
o as a separate application but using Elvin as a communication mechanism
o fully integrated into ODSI where Python scripts can used to invoke the engine and
pass parameters seamlessly to the workflows.
The third example, where Breeze is fully integrated into ODSI, was used in the case study
although a Java client was used to start an instance of the workflow engine rather having it
started by the ODSI management software.
ODSI introduces an intermediate business logic layer that defines the coordination of
enterprise services and resources independent of underlying technology [3] and this allows
flexibility in the implementation of the infrastructure. Service components, which can be
software applications, are dynamically assembled based on workflows and their execution is
managed within the policies defined by the enterprise. By extracting this information from
Figure 3.1 ODSI Architecture
Terence Blackburn 25 Enterprise-enabled Ubiquitous WorkSpaces
enterprise components, system behaviour can be changed without modifying service
implementation. This is manifested through sub workflows and conditional branches in the
main workflow.
The Peer infrastructure manages the lifecycle of software services, which leverage enterprise
resources (see Figure 3.1). It supports publication, discovery and management of these
independent enterprise resources and there are three specific interfaces.
o The peer to peer interface supports the discovery and allocation of service requests.
Each peer understands its current service abilities and satisfies work requests when
service requests are received through their particular service subscription. Remote
Procedure Call (RPC) environments, by contrast, direct work requests towards a
server thus making it the responsibility of clients to discover service provisions.
o The client to peer interface is similar to the peer to peer interface as the client forms
the equivalent of a dynamically allocated peer. It publishes a service request to any
peer who will listen and waits for service fulfillment. This is registered as a return
message of “failed”, “succeeded” or “still running”. If the peer is able to fulfill the
request, the result is returned to the client. If not, the peer will forward the request on
to any other peer that has subscribed to service descriptions that match the request.
Peers maintain the service provision state of other peers by caching previously
discovered service locations and similarly discard them when the services become
unavailable.
o The peer to service interface provides reflection, management and work allocation to
services. A service wrapper translates between the enterprise service interface
provided to the peer and the implementation of the service. The service
implementation may exist within the wrapper itself or alternatively be accessed
through application invocation, some middleware infrastructure (CORBA, Java, COM,
etc.), or via a network protocol (HTTP, NNTP, SNMP, SMTP, etc.).
At the heart of ODSI is a service management infrastructure that facilitates the coordination of
software services to perform complex enterprise processes. Persistence is provided to the
enterprise as the service and process definitions are stored in the Enterprise Model along with
policies that effect the operation of the business. The storage mechanisms can range from a
relational database to a flat text file. This execution of this persistence mechanism is
expressed in the specific enterprise implementation.
The ability to adapt to enterprise needs is expressed through the workflow engine. Breeze
supports conditional workflows and sub workflows that can be created and loaded at runtime.
In addition, workflows can be non-blocking, which allows a workflow to proceed without
Terence Blackburn 26 Enterprise-enabled Ubiquitous WorkSpaces
feedback from the existing process, or blocking, which means that it must wait for a response
from the process before continuing with the workflow.
Collaboration is an implicit feature of the ODSI framework and is expressed through the
enterprise bus. Due to its message-based rather than service-based approach, all clients
have equal and unrestricted access to the bus, up to the high throughput capabilities of the
Elvin messaging server.
Due to its lightweight design and implementation, state management and security were
deliberately not included in this architectural paradigm but distribution is supported through
the content-based messaging feature.
Analysis
A peer provides a container or habitat that is dynamically populated with services, which are
made available to peers through enterprise interface specifications. These specifications, also
called workflow stubs, provide reflection on their capabilities and are currently written in
Python. Typically the interface describes mechanisms to start, allocate work, and terminate a
service. Any required parameters are usually simple strings or integers. These enterprise
interface descriptions are stored in the enterprise model, usually a database, and are linked to
actual service implementations when a service is allocated to a peer.
The peers communicate through an enterprise bus provided over the Elvin publish/subscribe
notification service. By utilising content-based routing, they are able to ensure service
availability and scalability and to dynamically form communication channels based upon
service provision and requirements descriptions. The content-based approach does not tie
the service requester to a particular peer, as it would with a service-based approach, but
allows the peer to pass the service request to another peer if it cannot fulfill the request itself.
Another feature of the content-based model is that there is no guarantee of message delivery.
If a subscriber misses a message, it is not stored for later retrieval.
ODSI has an abstract approach to providing enterprise services and applications, which
allows organisational flexibility in implementation. The peer to peer approach to fulfilling work
requests and undertaking workflow activities provides a sound basis for experimentation in
future workspace design. However, it lacks the environmental sensors that are necessary to
connect to human clients in a natural way.
ODSI would be complemented by an infrastructure such as MIT’s
MetaGlue or the Stanford Interactive Workspace environment,
which would provide the eyes and ears to interact with the physical
world.
Terence Blackburn 27 Enterprise-enabled Ubiquitous WorkSpaces
3.3 iROS
Overview
The Interactive Workspaces project at Stanford University [15, 16, 19, 37, 51] has developed
a high level architecture, iROS [18], for organising multi-person, multi-modal interactions in an
integrated space that combines multiple computer systems. The environment has an
experimental hardware and software infrastructure that features large, high-resolution wall-
mounted displays, called Interactive Murals [16], two 18' by 4.5' rear-projection, touch-
sensitive SmartBoards (see Figure 3.2), collaborative, bottom projected tabletop displays
called Interactive Tables (see Figure 3.3), as well as small, personal mobile computing
devices such as laptops and PDAs connected through a wireless LAN. Specialized input and
output devices such as LCD-tablets, laser pointer trackers, microphone arrays and pan-and-
tilt cameras are also present in the environment.
Architectural Components
The infrastructure supporting the intelligent room is based on the Intelligent Room Operating
System (iROS). Events in the workspace are communicated from one device and process to
another using a simple communication mechanism based on a tuplespace and the
implementation in this environment is based on the TSpaces server from IBM [44]. Tuple
spaces [15-9, 47, 50,] are based on Linda [22], a coordination language devised in the early
1980s, which provides virtual, shared memory spaces for different processes and processors.
They have been used for many years as a shared memory model for parallel and distributed
computing architectures [22]. They decouple producers and consumers in time and space
and provide interprocess communication and synchronisation, which is logically independent
from the underlying network.
Events in a system can be stored as tuples in a tuple-space [15]. (Tuples are simple data
structures that have a name variable and zero or many variables.) This is analogous to a
shared blackboard and publishing and subscribing to the tuplespace is sufficient to participate
in the room infrastructure, which supports dynamic reconfiguration and allows components to
remain very loosely coupled.
Instead of a traditional event queue, the architecture utilises a heap abstraction, called the
Event Heap [17], as the main communication mechanism between the software components.
The event queue metaphor, which works well for a single user sitting in front of a single
computer using a GUI, breaks down in an interactive workspace with multiple users sharing
common hardware and software applications. The Event Heap is a mechanism by which
multiple users, machines and applications can all simultaneously interact as consumers and
generators of system events. An example of this feature is the ability of multiple users to
operate mouse pointers simultaneously in the same display area.
Terence Blackburn 28 Enterprise-enabled Ubiquitous WorkSpaces
Due to their lightweight nature, however, tuple space mechanisms only support small feature
sets and do not provide a secure environment. There are also scalability problems where only
one tuple space is implemented. Clients can post event notifications to the event heap, query
the event heap for events matching a template, or subscribe for notification when another
entity posts events matching a template.
Figure 3.2 Large Displays at Stanford
The room’s infrastructure has leveraged the benefits of standard off the shelf hardware and
software by including a browser interface and mature development and authoring tools.
One domain for PDA usage includes remote control and universal-interactor applications. To
facilitate PDA interaction in the workspace, an application called the Usher [16] was created
that behaves like an HTTP server. It converts well-formed PDA HTTP GET and POST
requests that contain name/value pairs into operations against the event heap and tunnels
event-heap remote procedure calls over HTTP. The usher is currently implemented as
several Java servlets that plug into standard Java-supporting web servers. The opposite
procedure is undertaken to query the event heap for events matching a template. A fat URL
containing the encoded tuple is sent back to the browser enabled PDA. Using this
Terence Blackburn 29 Enterprise-enabled Ubiquitous WorkSpaces
mechanism, the usher can be invoked via almost any HTTP command and this again raises
the lack of security issue.
The Event Heap [15-9] is designed to be flexible, robust to the failure of individual nodes and
lightweight. However, issues like lack of security limit its practical applications in an enterprise
environment. A practice called snooping has been included in the design of the Event Heap
that allows any consumer to browse any current tuple. This has obvious security ramifications
in an enterprise environment where not all information is cleared for public release.
Events auto-age and are garbage collected, so events can be posted without knowing
whether or not they will be consumed and this has some similarity to the Elvin model. This
feature, which supports disconnected or mobile environments, is a key requirement for future
workspaces. It allows users with mobile computing devices, such as laptops and PDA’s, to
seamlessly enter and leave the interactive workspace. While in the workspace, users can
interact with an existing application and simultaneously control various hardware devices in
the room. Depositing a tuple in a tuple space has the benefit of adding a persistent element to
the model.
Collaborative work has support through the ability for multiple users to interact using the same
infrastructure. This allows data objects, for example, to be shared directly and interactively
rather than having to save an object and copy/paste it to the other user’s space. This also
involves an element of context awareness and adaptivity.
Distribution is also directly supported theoretically if not practically. A user with web access
from anywhere in the world can post a fat URL into the workspace and utilise any of the
available facilities. In practice, however, few organisations would be comfortable allowing
public exposure to the enterprise with an insecure connection.
A number of projects [45] have been started that either extend the infrastructure in the room
or build on the work in an unrelated domain by utilising the architecture in the room. Brief
details of some of the projects are as follows.
o A four-dimensional project management team [45] has been developing 2D and 3D
visualisation tools to support the collaborative planning of large projects and facilities.
The visualisations try to represent the metaphors and information contained in normal
printed documents and are displayed on the large tiled sets of displays. In a similar
way another team has applied advanced visualisation techniques to help debug large
computer systems, log files and networks.
Terence Blackburn 30 Enterprise-enabled Ubiquitous WorkSpaces
o Medicine [45] has benefited from the facilities in the room through two projects. The
first is creating computational technologies to support scientific collaboration and it
focuses mainly on using the interactive mural in two way or N way meetings between
individuals or groups. (The interactive nature of the room is also the cornerstone of an
interactive learning experiment that seeks to investigate the requirements of distance
learning with hands on and virtual experimentation.) The second project is driven by a
3D Medical Imaging Laboratory and extends radiology into 3D space in an effort to
explore the integration of high-density scan images with 3D volumetric rendering and
analysis.
o Another approach [45] has revisited the traditional meeting scenario and considered
how the model can be extended to include remote collaboration, logging of activities
and PDA/whiteboard interaction.
Figure 3.3 Tabletop WorkSpace at Stanford
Terence Blackburn 31 Enterprise-enabled Ubiquitous WorkSpaces
Analysis
Tuple spaces users can assume the roles of server or client and publisher or subscriber. The
model also allows any client to access information or insert malicious information. This is a
supported concept called snooping and has been mentioned previously. In this scenario, a
user can take a tuple from the tuple space, alter it and replace it. This can be useful where a
number of clients may wish to view an event but it can be dangerous when sensitive material
is being processed. Tuple spaces suffer from a lack of security (as was mentioned with
snooping), RMI can be a performance bottleneck and there is a high overhead associated
with the repetitious serialising and deserialising of objects, which leaves a tuple space
vulnerable to a denial of service attack.
Multiple languages are supported for writing client interfaces and template matching rules for
the tuple space are relaxed with regard to field size and field order. This adds a degree of
flexibility that was not present in the original Linda model.
The URL transport mechanism over HTTP can also support event notifications that may be
triggered from within a web browser environment but the support for this feature is limited to
static web pages rather than dynamic HTML, which is a security bonus. It dos not support
client side or server side scripting features.
The design of the Interactive Workspace superstructure and the iROS infrastructure creates
an environment that lends itself to exploring enterprise workspace requirements. The tuple
space mechanism and the HTTP server may support the level of scalability required in a
distributed organisation. The Event Heap provides the flexibility to allow seamless client
connectivity from legacy systems through to mobile handheld devices although research in
the area of security will be a necessary precursor to widespread enterprise adoption.
3.4 Roomware
Overview
The Ambiente [35, 54] project, which evolved from work started in the mid 1990s by GMD-
IPSI, Germany, has as its theme an office landscape for creative and innovative work, where
computing devices are ubiquitously integrated into room elements. It is based on Roomware,
which is a set of computer-augmented room elements such as walls, tables and chairs. These
devices are supplemented by the Passage mechanism, which enables the physical
transportation of digital information between different Roomware components. For example,
digital objects can be passed between two chairs though the use of a neutral proxy object.
Terence Blackburn 32 Enterprise-enabled Ubiquitous WorkSpaces
Architectural Components
Significant new electronic devices to emerge from this research include DynaWall [54], an
electronic wall with a large interaction area, InteracTable, an interactive table for informal
group work and mobile electronic chairs called CommChairs. Illustrations of these objects are
included in this section.
BEACH [35], which is synchronous groupware, provides the basic functionality necessary for
cooperative work. Digital information structures are accessible via touch-sensitive interaction
areas on the items of furniture and can be processed individually or in parallel in a group
meeting. Accordingly, the user interface integrates the access to private and public
workspaces. The "pen-centric" user interface enables the use of pens, fingers or similar
objects to create and annotate documents as well as to trigger commands using gestures.
Information objects can be “thrown” from one DynaWall to another, e.g., for structuring
purposes.
The InteracTable has a horizontal information display that has no predefined orientations
such as top and bottom or North and South. Therefore, by rotating objects users can change
the alignment of documents to the positions of the people standing around the table. Several
views of the same document can be created and used simultaneously.
Collaboration is one of the key themes of the Roomware components. For example, the
chairs in the room are tracked electronically for position and location. This information is used
to initiate a coupled session with shared displays between the CommChairs when they are
moved together to form a collaborative unit. Users are able to remotely edit and annotate
objects residing on other pieces of furniture.
The project also supports state management, distribution and context awareness within the
environment. This is exemplified in the a3 room where sensors are used to identify the people
in the room. The room identifies the project that the group last worked and configures itself by
restoring the state relating to the applications and documents involved in the project.
Another example of state information management is highlighted with the Passage [35]
mechanism. This is a process of connecting digital information objects to uniquely identifiable
physical objects. The required information is selected and linked through software to the
physical object on a special tray. This object can then be moved to another tray and all of the
associated information sets can be retrieved, applications opened and appropriate network
connections mounted. This also involves a substantial amount of persistent state information
storage.
Terence Blackburn 33 Enterprise-enabled Ubiquitous WorkSpaces
Analysis
While the Roomware products are examples of collaborative work environments, they do not
necessarily follow the theme of pervasive computing where the computers are becoming less
visible. Some of the interfaces, however, have obviated the need for keyboards and mice and
have provided users with a high degree of flexibility.
Figure 3.4 Discussions at the InteracTable.
As discussed, the InteracTable (see Figure 3.4) has no notion of orientation and users can
move objects around the able for easier viewing. Each user can their own version of the
object, which is oriented to the position of the person. Are changes updated to all versions of
the object and how is this interactively supported? Can data objects be shared in real time or
do users have different instances of the object?
Each CommChair is provided with an interface for a wireless network connection and an
independent power supply. The chairs enable people to work privately and to connect to
shared workspaces that may be displayed on the DynaWall or the InteracTable. Users can
also edit and annotate objects on these Roomware components remotely.
Figure 3.5 Two views of a CommChair
Terence Blackburn 34 Enterprise-enabled Ubiquitous WorkSpaces
The CommChairs (see Figure 3.5) combine the functionality of an office desktop computer
with an armchair thus freeing the user from a conventional desk but is this small chair an ideal
work environment and is putting two chairs together really a useful and efficient thing to do?
The DynaWall (see Figure 3.6) is an "interactive electronic wall", which is manifested as a
touch-sensitive information device. Its objective is to simulate a large, paper based surface
Figure 3.6 Two users interact at the DynaWall
whose interface enables a new set of intuitive, natural, human-computer interactions. It is
possible that information objects can be taken from one position and placed somewhere else
on the display or thrown from one side to the opposite side. What happens to the object when
it lands? Gestures with hands and fingers empower the user with a more natural human work
interface and this allows an expanded set of choices for editing and annotating large display
areas.
The Ambient workspace has a clear focus on collaboration and context awareness through
the use of augmented room components, principally chairs, tables and wall displays.
Workflow is supported but restricted at a low level to applications and individual projects.
Even large projects are small components in an enterprise and there is no higher order glue
for integrating the work components into an organisational context.
Terence Blackburn 35 Enterprise-enabled Ubiquitous WorkSpaces
3.5 TOPOS
Overview
As with AMBIENTE, (see Section 3.4), the WorkSPACE [29, 55] project from the University of
Aarhus, Denmark, is a part of the European Union’s “Disappearing Computer” project. It
focuses on moving from traditional screen and keyboard interfaces into pervasive computing
where traditional user interfaces are replaced by a wide variety of new devices. The
WorkSPACE project is based on an architecture called TOPOS, which is a re-write of the
MANUFAKTUR [55] architecture. It is aimed at local and distributed work collaboration
through the use of new software and hardware components integrated into various kinds of
augmented reality workspaces, environments and fields. This is called a Spatial Computing
Environment. The research has three focal points:
o Spatial Computing in the Distributed Project Room
o Object Centred Spatial Computing
o Spatial Computing Artefacts in the Field.
Architectural Components
Human work activities often generate dynamic configurations of spaces, information, and
people both within and outside of the office. These configurations include both digital and
physical materials and a lot of work centres on making sense of one piece of information in
relation to many others. Elements of spatial computing include embedded computing,
augmented reality, distributed and co-located collaboration and enhanced user interfaces that
include hearing, touching and tracking devices.
Topos is the name of both the supporting software infrastructure as well as the client
software, which presents a 3D interface to document and material organisation. The
workspace in Topos is the primary means of grouping and organizing materials and
documents in 3D space.
Terence Blackburn 36 Enterprise-enabled Ubiquitous WorkSpaces
Figure 3.7 View of a 3D Topos Client
Figure 3.7 shows a screen shot of a Topos client and it depicts an open workspace containing
a set of document objects. Double clicking any of the document objects will launch the screen
document in its application and changes to it will be immediately reflected within Topos. The
objects can be sized, moved and rotated, light effects may be applied and documents can be
made semi-transparent or organized into groups. The screen shot also shows the use of a
textured, light mapped and shadowed terrain, floating semi-transparent toolbars and a halo of
manipulation tools around the selected objects.
The Topos infrastructure consists of SQL databases to maintain persistent, collaborative
workspace state, a real-time, interactive collaboration server and a location-based, service
discovery framework to support configuration-less networked services. It is geared towards
interactive walls and tables, mobile augmented reality, desktops and the Internet. It integrates
with video tracking and GPS systems and can provide limited functionality inside a web
server.
The Tag-and-Track (TNT) Framework [29] services are written on top of the C++ framework
developed within WorkSPACE. TNT is a location-based, service-discovery framework that is
related to Universal Plug and Play and emphasises the provision of network services based
on physical location.
Terence Blackburn 37 Enterprise-enabled Ubiquitous WorkSpaces
In these 3D domains, work is characterised by a high level of cooperation. Groups of people
can simultaneously work with the same information or material in different ways and at
different locations. Attributes such as collaboration, context awareness, persistent storage
and state management are important features in this environment and are critical for
maintaining cohesive workflow.
Adaptiveness, along with collaboration, is one of the key workspace descriptors. Without this
element, the underlying technology would not be able to serve and maintain real-time
environments to multiple users without reference to physical location. Updates to state or
information made in one physical setting that is connected to a second environment, whether
physical or virtual, need to be accommodated in real-time.
Context awareness is a key component of the infrastructure and this is underpinned by
Awareness Agents and a server to support off-line configurations. There is also a location-
based service discovery framework to support networked services.
Terence Blackburn 38 Enterprise-enabled Ubiquitous WorkSpaces
3.
6
Su
m
m
ar
y
of
A
rc
hi
te
ct
ur
al
F
ea
tu
re
s
So
ur
ce
Pr
oj
ec
t
Fo
cu
s
In
fr
as
tr
uc
tu
re
K
ey
w
or
ds
C
om
po
ne
nt
s
M
IT
In
te
llig
en
t
ro
om
C
on
te
xt
a
w
ar
e,
d
ev
ic
e-
dr
iv
en
, c
ol
la
bo
ra
tio
n
M
et
aG
lu
e
(J
av
a)
M
ul
ti-
ag
en
ts
, m
ul
tim
od
al
, a
nt
hr
op
oc
en
tri
c,
in
te
ra
ct
iv
e,
m
ul
ti-
de
vi
ce
M
et
aG
lu
e,
s
oc
ie
tie
s,
C
at
al
og
,
N
ot
ifi
er
, h
ar
dw
ar
e
an
d
so
ftw
ar
e
de
vi
ce
s,
a
ge
nt
s
St
an
fo
rd
In
te
ra
ct
iv
e
W
or
kS
pa
ce
La
rg
e
di
sp
la
ys
,
in
te
ra
ct
iv
e,
s
m
al
l
de
vi
ce
s,
in
te
ra
ct
iv
ity
IR
O
S,
E
ve
nt
H
ea
p
(J
av
a)
Tu
pl
e
sp
ac
es
, m
ul
ti-
de
vi
ce
, m
ul
ti-
m
od
al
,
PD
As
, l
ar
ge
d
is
pl
ay
d
ev
ic
es
, f
lu
id
in
te
ra
ct
io
n,
a
dv
an
ce
d
vi
su
al
iz
at
io
n
Ev
en
t H
ea
p,
D
at
aH
ea
p,
L
or
e,
T
-
Sp
ac
es
, i
R
O
S,
iC
ra
fte
r,
Pr
ox
iW
eb
D
ST
C
O
D
SI
En
te
rp
ris
e
m
od
el
s,
ab
st
ra
ct
b
us
in
es
s
pr
oc
es
se
s
Pe
er
to
p
ee
r,
en
te
rp
ris
e
bu
s
(P
yt
ho
n,
C
)
Pe
er
to
p
ee
r,
co
nt
en
t-b
as
ed
m
es
sa
gi
ng
,
en
te
rp
ris
e
ta
sk
s
an
d
ar
ch
ite
ct
ur
e,
s
er
vi
ce
w
ra
pp
er
s,
li
gh
t w
ei
gh
t,
bu
si
ne
ss
p
ro
ce
ss
es
El
vi
n,
p
ee
rs
, e
nt
er
pr
is
e
m
od
el
,
bu
si
ne
ss
p
ro
ce
ss
es
, w
or
kf
lo
w
en
gi
ne
G
M
D
Am
bi
en
te
Pr
oc
es
s
or
ch
es
tra
tio
n,
co
lla
bo
ra
tio
n,
au
gm
en
te
d
fu
rn
itu
re
R
oo
m
w
ar
e,
BE
AC
H
(S
m
al
lta
lk
)
W
or
kf
lo
w
m
an
ag
em
en
t,
co
lla
bo
ra
tio
n,
vi
rtu
al
, d
ig
ita
l a
nd
re
m
ot
e
en
vi
ro
nm
en
ts
,
m
od
el
es
s
in
te
rfa
ce
, a
ug
m
en
te
d
fu
rn
itu
re
C
om
m
C
ha
ir,
In
te
ra
cT
ab
le
,
D
yn
aW
al
l,
C
on
ne
cT
ab
le
,
R
oo
m
w
ar
e,
P
as
sa
ge
Aa
rh
us
U
ni
ve
rs
ity
W
or
kS
PA
C
E
3D
d
is
pl
ay
s,
s
pa
tia
l
co
lla
bo
ra
tio
n
To
po
s
(C
++
)
C
us
to
m
c
om
po
ne
nt
s,
a
ug
m
en
te
d
en
vi
ro
nm
en
ts
, c
ol
la
bo
ra
tiv
e
w
or
k,
s
pa
tia
l
co
m
pu
tin
g,
in
no
va
tiv
e
in
te
rfa
ce
s
D
es
ig
ne
r’s
W
or
kb
en
ch
, 3
D
W
hi
te
bo
ar
d,
T
op
os
Te
re
nc
e
B
la
ck
bu
rn
39
En
te
rp
ris
e-
en
ab
le
d
U
bi
qu
ito
us
W
or
kS
pa
ce
s
3.5 Topos (Cont.)
Analysis
All collaboratively shared workspace state in Topos is kept in an SQL database. A
collaboration server, which keeps track of connected clients, facilitates real-time collaboration
and forwards update messages among the clients whether they are local or remote. The data
to update the databases is not sent through the collaboration server, but stored directly in the
database. Instead, an update message is sent to the collaboration server, notifying
collaborating clients of the partial changes that have happened. An awareness agent watches
changes made in workspaces and updates the state of closed workspace proxies to notify
users who come on-line later, that changes have happened in those workspaces without
users having to inspect the workspaces.
This environment supports many of the attributes deemed desirable for future workspaces
and this includes support for elements of group workflow. However, the workflow concepts in
this research seem to be driven by ad hoc design projects rather than by a broader enterprise
perspective. As such, the research is transferable to other generic design projects and similar
work but may be difficult to translate to the higher-level business process orchestration that is
important to enterprise continuity and workflow tasks.
Terence Blackburn 40 Enterprise-enabled Ubiquitous WorkSpaces
4. Case Study
The case study uses a meeting as an example of a real world scenario that represents a
common business activity. It has been used to explore the requirements of software
infrastructures that are capable of supporting enterprise-enabled workspaces. A hybrid type of
architecture approximates more closely to the key attributes identified in Section 2 so the
integration issues are important but of a secondary nature. The hybridised framework also
reduces development time as a number of key features need only be included rather than
created.
The case study experimented with the application and integration of two infrastructures,
MetaGlue from MIT and ODSI from DSTC. MetaGlue was chosen for its strength in
integrating and managing hardware and software devices in a workspace environment. ODSI
was selected for providing an enterprise focus primarily, in this case, through the Breeze
workflow engine and the Elvin-based enterprise bus. In the research, we hoped to achieve
some understanding of the level of enterprise support that the integration exercise provides
and to gain some insight into the extent of underpinning for future workspace characteristics.
Section 4.1 revisits the LiveSpaces environment that was used in this case study and spends
some time looking at its configuration. (This process is started in Section 4.1 and extended
with some components in Section 4.3.) The LiveSpaces components are reviewed and their
functionality and role in the experiment is described. The scenario for the case study is
characterised in Section 4.2 and a small description of typical meeting activities is supplied.
Section 4.3 reviews the experiment and spends some time looking at the component
functions and, where necessary, extends the descriptions from Section 4.1. Section 4.4
focuses on the programming aspects of the work and some of the source code details are
discussed to illustrate the software features. (Full details of the source code are included in
Appendix A.) This section concludes with a summary of what was achieved in the work and
also what was not completed. This has been highlighted to convey a clear picture of what was
achieved in the practical side of this project.
4.1 LiveSpaces Configuration
Operating Environment
A future workspace environment called LiveSpaces has been configured with off the shelf
technology to support research activities. It has been set up with computers that host a
Microsoft Windows 2000 environment for supporting the web displays, MetaGlue, viaVoice
and application software and a Solaris UNIX environment, which hosts the Elvin messaging
server [8], the Breeze workflow engine and ODSI.
Terence Blackburn 41 Enterprise-enabled Ubiquitous WorkSpaces
Components
The configuration for the LiveSpaces Environment, used in this case study, is depicted in
Figure 4.1. LiveSpaces, due to its abstract nature, can simulate a plug and play framework.
The component configuration used in this experiment can be juxtaposed with an alternative
configuration as depicted in Figure 2.2 to illustrate the flexibility of the framework.
A number of components from DSTC research have been incorporated into the framework
and these include the Breeze workflow engine, which is a service offered by an ODSI peer,
and the Bred graphical workflow editor, which is used to create workflow schemas for Breeze.
The Elvin content-based messaging engine is used as the enterprise bus and the ODSI
framework is used to enterprise-enable the architecture.
The display and interaction layer hosts three different applications. The dialog interface
utilises the viaVoice speech recognition engine from IBM and this is coupled to a headset
Figure 4.1 LiveSpaces Architecture for Case Study
microphone. A touch-sensitive, interactive SmartBoard is used as the main display device and
results from the viaVoice-captured commands are output to this device. The framework has
also been established to accommodate x10 device controllers. These are small hardware
modules that regulate the state of simple devices such as lights, appliances and multimedia
components.
Terence Blackburn 42 Enterprise-enabled Ubiquitous WorkSpaces
MetaGlue, the multi-agent system, provides the communications layer between the
environmental interfaces and the enterprise bus. MetaGlue is responsible for channeling
output from the viaVoice speech-to-text engine into the ODSI environment for processing by a
workflow.
A database is utilised by both ODSI and MetaGlue and, in this experiment, MySQL was used
by both frameworks. MetaGlue uses the database to store information about agent
occupations, agent attributes/values and agent societies. Breeze uses the database to store
workflow schemas and templates and ODSI uses relational tables to store associated
enterprise data.
The workspace includes a 1.5 x 1.2 meter touch-sensitive Smart Board operated through a
front mounted projector. IBM’s viaVoice speech recognition software processes the voice
input and provides the speech-to-text functionality. R-JAX, a program from Stryon, processes
event generated messages and passes them to MS Windows applications. These
applications can be run collaboratively on the smart board displays or on personal notepad
computers, which can communicate via an 802.11 wireless LAN. X10 device controllers are
used to control various LiveSpaces devices such as lights and the coffee machine.
The picture of the LiveSpaces environment in the e-World laboratory, as depicted in Figure
4.2, shows three wireless notebook computers in the foreground, the interactive SmartBoard
on the right of the picture and a coffee machine in the background connected to the x10
device (not visible in the diagram) plugged into the wall. One of the users has a wireless
keyboard and mouse while the other user is using a PDA.
Terence Blackburn 43 Enterprise-enabled Ubiquitous WorkSpaces
Figure 4.2 Technology in the LiveSpaces Environment
4.2 Scenario
An augmented, dedicated meeting space was selected as being a relevant scenario for the
investigations. Activities normally conducted during meetings were considered as
representative of the types of workspace activities that we might be interested in for future
command and intelligence, planning and review environments. The aim of the experiment
was to extend the meeting paradigm to incorporate workspace attributes such as context
awareness, adaptability, collaboration and workflow process orchestration. This was to be
supported by MetaGlue and ODSI.
Meeting Activities
This enterprise perspective in this project focuses on integrating the two architectures in an
effort to extend the range of resources available to clients for future work activities, an
example of which is a meeting.
Typical activities that are undertaken during the course of a meeting to promote collaboration
and workspace adaptivity include the following:
o Data capture in the form of minutes and motions, analogous to state capture
Terence Blackburn 44 Enterprise-enabled Ubiquitous WorkSpaces
o Data interrogation by applications
o Data display in either paper or electronic format
o Collaborative, structured work such as discussion of agenda items
o Unstructured, adaptive work such as discussions on general business
o Steering activities, or process orchestration, usually from the chair
The nature of the activities outlined in the above scenario match with the workspace attributes
that the case study intends to explore.
Meeting Workflow
The chair starts the meeting with a command spoken into the microphone. viaVoice converts
the words into text, which is passed in turn, to
o a MetaGlue speech agent
o the MetaGlue Notifier (the agent responsible for sending event notifications to
subscribers)
o the “Elvin client” agent
o the Elvin messaging server.
Elvin sends it to a subscriber, the ODSI peer that is hosting Breeze, the workflow engine.
Breeze, acting as a service on the ODSI peer, processes the message and starts the
appropriate workflow. The first task in the workflow turns on the coffee machine, loads a
browser window and displays the agenda for the meeting. Breeze publishes these instructions
to Elvin who passes them to a MetaGlue agent, which relays them to the MetaGlue Notifier,
which, in turn, passes them to the appropriate service controller agents. The first of these
messages is sent to an x10 device controller that turns on the coffee maker and an
application controller, a wrapper agent for the web browser, processes the second message.
This wrapper agent, which had subscribed to the second message starts the browser on the
Smart Board and sends it a URL, which is a web page displaying the meeting agenda.
4.3 Case Study Analysis
The schematic in Figure 4.3 describes the integration of the MetaGlue and ODSI
architectures along with the peripheral devices in the experiment. The colours delineate the
two infrastructures and where they meet. This conjunction of ODSI and MetaGlue could have
been created in a number of ways, all of which could be described either as some MetaGlue
code working within ODSI the environment or some Python code executing inside a MetaGlue
agent. The latter was tempting to use, as the Jython programming language would have
Terence Blackburn 45 Enterprise-enabled Ubiquitous WorkSpaces
Figure 4.3 Schematic of ODSI Integrated with MetaGlue
enabled an agent to invoke an ODSI workflow directly from the MetaGlue environment but we
chose a similar solution. A Java program, called WfClient, which had already been written by
DSTC, was designed to invoke the Breeze engine and start a workflow. Unfortunately some
version mismatches slowed down our efforts to implement this code so it was not quite
working at the end of our case study.
Other sections of the diagram in Figure 4.3 detail where the devices are connected to the
architecture and illustrate some of the available options for implementing workflow tasks. For
example, the x10 devices can be controlled by any part of the infrastructure. MetaGlue has
agents that can issue x10 instructions, Elvin could send simple on and off calls to appliances
and the tuple space environment mentioned in the Stanford work, but not part of this
experiment, also has support for x10 devices.
Breeze Workflow Engine
Breeze has been described as a lightweight, cross platform workflow engine. However, it
does not schedule or run workflows in the accepted sense. It coordinates enterprise services
to perform business processes or, in other words, workflow tasks are completed through
service requests. The workflow tasks are issued as service requests to the local peer, which
Terence Blackburn 46 Enterprise-enabled Ubiquitous WorkSpaces
runs the Breeze engine. The peer then assumes responsibility for trying to implement the
service identified in the workflow task. To paraphrase, the workflow engine asks for a service
to be carried out but has no interest in how it is carried out or who carries it out. It only needs
to know whether or not it has been carried out.
The first action in the meeting used in our case study scenario can be used as a workflow
example. A command is issued by the chair to open the meeting. The first workflow task is
programmed to display a web page. Breeze asks a peer to undertake this service and only
wants to know whether and when it is completed. Since it is implementation independent,
Breeze can exist independently of service implementation and vice versa.
Breeze provides a range of workflow features including sub-workflow execution, joins, data
flow and control flow definition. It does not provide loops, as state management provides
significant challenges but workflows may be built recursively by designing a sub workflow that
calls itself. This simulates a loop but adds more user control through simpler state
management.
In the case study, the Breeze workflow was very simple. It consisted of subscribing to
messages, processing them through the workflow engine and sending them to the Elvin
server for a subscribing MetaGlue agent to receive.
Bred
Workflows are defined using Bred, a graphical workflow definition tool (see Figure 4.4 & 4.5).
The workflow manager is able to select from a toolbox of logical business services and pre-
defined workflows to build new workflow definitions. The tool guides the user through service
or sub-workflow selection as well as the mapping of data between the collaborating
components. Workflows are generated by Bred and stored in two formats, in an XML format
on the local file system and in an SQL database for later execution by the workflow engine.
Brzmon
The workflow manager, Brzmon (see Figure 4.6), is an asynchronous interface to the
synchronous workflow engine. It manages a set of threads executing synchronous calls to the
workflow engine. Brzmon keeps track of which workflows are being executed and their current
state and, by querying Breeze, any sub-workflows that are active, can be monitored. Any
workflow problems are propagated back to the workflow manager and a sub-workflow stack
trace provided. Colours are used to indicate the status of the current workflow execution. Red
indicates that a process has completed and green indicates that a task is active. The example
in the Figure 4.5 is taken from the literature and does not represent the workflow in the
meeting scenario, which is depicted in Figure 4.4.
Terence Blackburn 47 Enterprise-enabled Ubiquitous WorkSpaces
Peers
A peer is an application server. It provides a container for services and has mechanisms for
interacting with other peers for the lookup, discovery and management of services. To
support this peer interaction, a communication model is required and ODSI uses Elvin. All
peer services support a reflection interface that informs the peer of their capabilities. The host
peer will then advertise this information to other peers.
When a peer receives a request, it must decide how to process it. If the service request can
be fulfilled locally, it will direct the request to the local peer. If the service is not available
locally it will refer to its cached list of peers and their associated services to try and send the
request to a peer with the capability to fulfill the request. If this is unsuccessful, the request
will fail.
Peers interact with their environment through three important interfaces: peer to client, peer to
peer and the peer to service interface. The peer-to-client interface allows external parties to
access services as well as provides service access for other services.
Only one peer was used in the case study. It ran the enterprise database as a service, one
copy of which must run to initialise and utilise ODSI services, and it also hosted the Breeze
workflow engine as an enterprise service. For this experiment, the peer interacted with
another party, the MetaGlue environment, on a peer-to-client basis and also on a peer-to-
service basis when using ODSI services and invoking a Breeze workflow.
Figure 4.4 Meeting Workflow
Terence Blackburn 48 Enterprise-enabled Ubiquitous WorkSpaces
Figure 4.5. Bred
Figure 4.6. Brzmon
Terence Blackburn 49 Enterprise-enabled Ubiquitous WorkSpaces
Elvin
Elvin is a notification/messaging service with a difference. Rather than messages being
directed by applications from one component to another, Elvin messages are routed to one or
more locations, based entirely on the content of each message.
Elvin Version 3 [41-2] is an example of a content-based messaging service and provides the
enterprise bus for ODSI. Elvin sends simple structured messages and allows clients to use a
subscription language to select messages of interest. The messages are sent asynchronously
and it is assumed that they arrive at their destination. There is no system of message
acknowledgements or data resending in this model and there are no guarantees of message
delivery.
It uses a publish/subscribe mechanism and typically sends messages over event channels.
Notifications are arbitrary sets of name value attributes and subscriptions are Boolean
expressions, which are matched against the attributes of the notification. The Elvin server
uses an algorithm to check the notification against any registered subscriptions and delivers
the message to matching consumers. This makes the system decoupled, transitory, policy
free, content based and dynamic.
It is very simple to use Elvin, only three lines of Java are required to write a client and send a
message. No sessions need to be set up, no logins are required and conversations are
unidirectional. In addition to the normal primitives, the subscription language [42] supports an
opaque data type, which allows serialised objects to be attached to a message.
MetaGlue
A number of MetaGlue agents were built for this experiment. (For more details see Section
4.4) The important features that needed to be provided were:
o Handling speech input and converting text to commands
o Starting workflows from the ODSI environment
o Starting applications on the display devices
o Switching the state in devices from off to on etc
o Communicating within the MetaGlue environment
o Communicating within the ODSI environment
o Communicating between the environments
It is important for the LiveSpaces software infrastructure to be robust and dynamically
reconfigurable to support new features in composable workgroup configurations. MetaGlue
agents provide these desired attributes as agents can be automatically started, connected
Terence Blackburn 50 Enterprise-enabled Ubiquitous WorkSpaces
and distributed as required. All of the agents communicate through interfaces, as in the RMI
model, and all agents must implement an agent interface.
MetaGlue also includes a runtime environment, the MetaGlue Virtual Machine (MVM), which
is a container environment for agents. There are special MetaGlue system agents that
establish, distribute, and connect agents. These include the Catalog, which stores references
to agent names and stubs, the Notifier, which is the agent communication channel and the
Agent Manager, which must run in each MVM and is responsible for starting agents.
R-JAX
Stryon’s R-JAX [48] exposes the methods of Microsoft ActiveX, DLL and COM objects to any
Java application running in a Java Virtual Machine. R-JAX enables any of the MetaGlue
agents to invoke the methods and retrieve and modify the variables of the COM or ActiveX
object, as if they were accessing native Java objects (see Figure 4.7).
Figure 4.7 Superset of R-JAX Functionality
A direct access interface is provided for Java technology and COM programs that reside on
the same computer as the R-JAX server, which runs on the Windows server where the
COM/DLLs reside.
In our case study, a dedicated agent, the ExplorerWrapperAgent, acts as an interface
between the MetaGlue environment and an application wrapper, which in this example, wraps
Internet Explorer. The agent and wrapper are tied to the computer that hosts the R-JAX
software and the Windows application. Internet Explorer is used to display the meeting items
such as the agenda in the first workflow task.
Terence Blackburn 51 Enterprise-enabled Ubiquitous WorkSpaces
ViaVoice
This program allows a user to navigate through applications and around the Internet using
natural language voice commands. Dictation can be performed using Microsoft Word or e-
mail. Applications can be opened and closed and a subset of commands is available for a
number of programs. While these features are available in viaVoice, they were not used.
Instead, the open and close commands are created in a grammar file that is used by the IBM
Java Speech application. This allows fine-grained control over applications and a closer fit
with the methods available from within the application.
In our meeting scenario, viaVoice was used to capture user commands from a microphone
and convert the spoken commands into text. A downstream MetaGlue Speech agent then
processed the text commands according to the relevant contextual business processes.
SmartBoard
The interactive SmartBoard turns a computer and projector into a tool for teaching,
collaborating and presenting. With a computer image projected onto the board, a user can
touch its large, touch-sensitive surface to access and control any application. Using a
coloured electronic pen from the SMART Pen Tray, a user can work at the board to take
notes or highlight important information or open and manipulate applications. In the case
study the SmartBoard was used to display web pages with agenda items for the meeting.
X10 devices
X10 is a communications "language" that allows compatible products to talk to each other via
the AC electrical wiring in a building. No rewiring is necessary in most cases, although in the
e-World lab the existence of different power circuits limited the flexibility of the x10 devices.
The installation of a coupling device at some point in the future to link the circuits will allow the
x10 signals to communicate freely throughout the room.
Activation messages can be sent either of two ways. Either a plug-in unit with an antenna
catches the radio signal from the wireless transmitter and puts the X10 signal onto the line or
a transmitter module is used to directly couple a computer to the power network through an
RS232 serial connection. The latter was used in the LiveSpaces environment.
4.4 MetaGlue Code
This section displays and discusses the source code for some of the agents and applications
that were required to build the LiveSpaces environment. A description of the correlation
between the processes in the case study and the programming work is detailed in Figure 4.8
The figure describes the three separate process streams that, in total, comprise the
functionality of the LiveSpaces example. The two points displayed in red highlight the two
areas that were incomplete at the time of submitting this thesis. The point under the
Terence Blackburn 52 Enterprise-enabled Ubiquitous WorkSpaces
x10Devices source code identifies a problem communicating with the serial port on the
application computer that hosted the x10 devices. The second unfinished point relates to
software version mismatches that were experienced with the Breeze workflow engine and the
application used to instantiate a workflow from within the agent environment.
In the source code examples, only the relevant methods are included. The full source code for
the MetaGlue agents and the ODSI workflow examples is contained in Appendix A.
SpeechAgent
This agent loads a grammar file, which contains predefined phrases and checks the incoming
text message from the IBMJS application against this set of commands. The grammar file in
this experiment is the simplest possible with only one command to process.
#JSGF V1.0;
grammar myprojects.test.explorer;
public =open explorer ;
It is loaded in the following manner using the loadGrammar() method from the
GrammarInspectorAgent class, which inherits from the agentland.resource.ManagedAgent
class.
loadGrammar("myprojects.test.explorer") ;
It then uses the reliesOn( ) method to make sure there is an instance of the ExplorerWrapper
active. If there is no active instance, MetaGlue will start one on the designated host, in this
case the host identifier is “hostname”.
explorer=(ExplorerWrapper)reliesOn("agentland.iroom.application.explorer.ExplorerWrapper",
"hostname");
(The agent name “ExplorerWrapper” does not reflect the functionality of the agent.)
Abstract Process Center
This term has been employed to make the meaning of the workflow clearer. All of the
perceived functionality in the Process Center is contained in other agent code. For example,
to send a command to an application wrapper, the SendAgent code would be used. Rather
than use the term SendAgent repeatedly to invoke different functions in the LiveSpaces room,
the Process Center is used to receive requests and dispatch workflow processes to agents.
Terence Blackburn 53 Enterprise-enabled Ubiquitous WorkSpaces
SendAgent
This code for SendAgent and ReceiveAgent is used for agent communication within the
MetaGlue system. The reliesOn() method is used to ensure that there is a Processx10 agent
available.
x = (Processx10)reliesOn ("myprojects.test.Processx10") ;
The next line ensures that the Notifier is listening for any messages that are being published.
Not = (Notifier)reliesOn ("agentland.util.Notifier");
A string, labeled s, is sent on the channel called ‘test’. (A secret is a message.)
not.notify(new Secret(getAgentID( ), "test.channel", s)) ;
ReceiveAgent
In a similar manner to SendAgent, this code is also used extensively throughout MetaGlue. In
this example, the ReceiveAgent sets up a connection to the notifier and then, on the next line,
subscribes to a channel called “test” by using the addSpy( ) method. The agent will receive
any messages sent on this channel.
notifier = (Notifier)reliesOn("agentland.util.Notifier") ;
notifier.addSpy(getAgentID(), "test.channel") ;
The tell() method is used to receive the message, called a secret, and divulge its contents.
Here, the method prints the channel name, the contents of the message and the name of the
agent that sent it.
System.out.println ("channel = "+ secret.name( ));
System.out.println ("message = "+ secret.details( ));
System.out.println ("agentID = "+ secret.getSource( ).toString( ));
ExplorerTestAgent
This (inappropriately named) agent is used to set up a connection with Elvin, the message
router. It demonstrates how to create subscriber code, message producer code and then
demonstrates the usage of the two features.
First a message producer is set up. The next piece of code is used to create a message and
then send it. The line notif.put adds a string to the message. This string includes the word
‘demo’, which will be used in the subscription.
Producer prod = new Producer(new ElvinURL("elvin://river")) ;
Notification notif = new Notification() ;
notif.put("demo","from terence ") ;
Terence Blackburn 54 Enterprise-enabled Ubiquitous WorkSpaces
prod.notify(notif);
The next piece of code builds an Elvin consumer and a subscription. The subscription
‘requires’ that any message containing the word ‘demo’ is passed back to the subscribing
client.
Subscription sub = new Subscription("require(demo)") ;
sub.addNotificationListener (this) ;
Consumer cons = new Consumer(new ElvinURL("elvin://river")) ;
cons.addSubscription(sub) ;
The final method is activated when the Elvin messaging engine sends a message that
matches the subscription requirements, in this case if the message contains the word ‘demo’.
In the method below, the message is printed to the screen. It can be processed in other ways.
System.out.println(event + "terence's message...");
ExplorerWrapperAgent
The code in this agent is used to start the application, Microsoft Internet Explorer. The
commands from the speech capture agent are processed then passed in the form of a hash
table. If the hash table contains the correct “rule”, which is “open” in this case, the
corresponding methods are invoked.
if(tags.get("rule").equals("open"))
explorer.startApplication( );
Once Internet Explorer is started, subsequent commands can be issued. In order, a URL is
requested, the application is told to wait for 10 seconds and then the home page is retrieved.
explorer.gotoURL("www.unisa.edu.au");
Thread.sleep(10000);
explorer.goHome( );
Processx10Agent
The workflow engine may issue a command to turn on an appliance. The command is sent
through Elvin to a Processx10Agent, which parses the message to extract the relevant data.
The data will identify the device by a label and specify whether the device should be turned
off or on.
Each x10 device has an identifier that is composed of two parts. The first part is an alpha
character between ‘a’ and ‘p’ inclusive and the second character is a number between 1 and
Terence Blackburn 55 Enterprise-enabled Ubiquitous WorkSpaces
16 inclusive. Devices may share the same identifier and, in this case, the devices will process
the same command. Commands are usually sent to change the state of a device from off to
on or vice versa. Lights, however may accept a command that changes the level of brightness
or a dim command.
The x10 devices cannot be queried to determine their state so it must be stored separately
and this has not been implemented in this experiment. Neither is it possible to determine
whether the appliance is plugged in or unavailable. Serial port problems can be addressed,
however, through the normal Java exception handling methods
The following line of code in the doX10( ) method of the Processx10Agent class creates an
x10Devices object.
x10 = new x10Devices ( ) ;
The turnOn( ) method (and the turnoff() method) from the x10Devices class takes two
parameters. These parameters identify an x10 device. In this example, the x10 interface to
the coffee maker in the LiveSpaces room is designated E5. Each of the components in the
label, ‘e’ and 5, is sent as a separate parameter. Both are converted to bytes in the
x10Devices class.
x10.turnOn ('e', 5) ;
X10Devices
This piece of code starts an x10 device such as a coffee maker or a light. The primitives that
are sent to the serial port must be bytes so the input parameters, housecode = ‘e’ and module
= 5, are converted at the start of the method.
house = (byte)housecode;
mod = (byte)module ;
x10 = new SerialX10 ( ) ;
A SerialX10 object is created and the open( ), turnOn( ) and close( ) methods are invoked
from the SerialX10 class. The balance of the code is used for catching exceptions.
x10.open ("COM2") ;
x10.turnOn(house, mod) ;
x10.close() ;
Terence Blackburn 56 Enterprise-enabled Ubiquitous WorkSpaces
StartWfAgent
This class invokes a Breeze workflow directly from a MetaGlue agent running within a Java
Virtual Machine. It does this by creating a WfClient object and passing a string as a parameter
to the first workflow task. A number of different command line parameters must be included to
start the workflow. This agent requires a set of string parameters that are used to invoke the
workflow engine and supply a command and, optionally, some name value pairs. The
StringTokenizer is used to break the input string into a series of smaller strings, which are
stored as tokens. These are passed to a string array and then to the run( ) method of the
workflow client software, WfClient, which processes the array values accordingly.
The first line saves the command line parameters from the input string s in a variable.
tokens = new StringTokenizer(s) ;
The next line creates a string array.
cmds = new String[tokens.countTokens( )] ;
The next two lines create the WfClient object and invoke its run( ) method with the array as an
input parameter.
wf = new WfClient () ;
wf.run(cmds) ;
WfClient
This class contains the run( ) method that starts the Breeze workflow from the MetaGlue
agent. It was supplied by DSTC and has been modified to fit the LiveSpaces environment. It
takes an array of strings passed form the StartWfAgent code and processes it in order to
configure the workflow engine. Towards the end of the code, the invoke( ) method, which is
part of the Server class in ODSI, is used to start the workflow. This is where control passes to
the ODSI environment.
ODSI Code
All communication within ODSI uses the Remote Procedure Call (RPC) method through Elvin
to pass messages from one peer to another. A handle to the peer is created using the
following call, which uses strings for its arguments.
peer = misc.get_peer(‘peer_name’, ‘network_name’)
The peer instance can then communicate with ODSI by calling the rpc( ) method with the
following string arguments [args=??].
res = peer.rpc(‘wrapper method_example’, argument=1)
Terence Blackburn 57 Enterprise-enabled Ubiquitous WorkSpaces
Peers are only interested in whether or not a service has been performed and, consequently,
all return values from a service invocation call are one of: succeeded, failed, aborted or
running. If no return message has been received after a timeout value has elapsed, an abort
value will be assumed.
test_client
This code, called test_client.py, is used to test the functionality of the workflow interface called
running_test and it supplies the equivalent functionality of WfStartAgent and WfClient. The
program starts Breeze, loads the running_test workflow and waits for a message. When one
is received, it performs some string manipulation and returns a message to the workflow.
When a message is received, it is manipulated by reversing its string order before being
returned via Elvin.
m = list(m)
m.reverse()
m = ''.join(m)
send_reply(id, m, TIMEOUT)
A connection to Elvin is created.
client = elvin.client(elvin.ThreadedLoop)
This line creates a subscription to Elvin messages with a particular message ID and sets the
Boolean reply value.
sub = conn.subscribe("require(MSG.ID)", 1, None)
This method, defined at the start of the code, loads Breeze and the workflow.
start_workflow()
running_test
All requests to peers are Elvin event notifications and are comprised of a sequence of
attribute/value pairs. The peers use several of these attributes/value pairs for the message
protocol.
ODSI.From Name of the requesting peer.
ODSI.To Name of target peer.
ODSI.Interface Name of the service and function being requested.
ODSI.Instance Unique identifier for this interaction.
An example of the ODSI message format is detailed as follows.
ODSI.From Terence
ODSI.To Damien
Terence Blackburn 58 Enterprise-enabled Ubiquitous WorkSpaces
ODSI.Interface e-World turnOn_coffee
ODSI.Instance 345km9gf8ifm4
Name start_expresso
This uses the turnOn_coffee wrapper in the e-World namespace.
turnOn_coffee (name="start_expresso")
running_test is a Breeze service wrapper which works in conjunction with the test_client code.
It has two methods, which are advertised as being available, called send( ) and query( ) and
the two methods are called separately. The send( ) method creates a message, publishes it to
the enterprise bus and broadcasts a succeeded notification. A connection to Elvin is created.
self.client = elvin.client(elvin.ThreadedLoop) # plus other code
A subscription is created and registered.
sub = self.conn.subscribe('MSG.reply == "%s"' % id)
sub.add_listener(self.__reply, self.conn)
sub.register()
The send( ) method is invoked, which sends a string as a message.
n = {'MSG.ID': sha.sha(time.asctime()).hexdigest(), 'MSG.reply': 0, 'MSG.msg': msg}
self.conn.notify(n)
The workflow checks to see if there is a reply. (This is part of the constructor.)
self.recieved = threading.Event() # check for reply
The workflow waits until it receives a message and then query( ) method sends a reply.
n = {'MSG.ID': id, 'MSG.reply': 1, 'MSG.msg': msg}
self.conn.notify(n)
The query( ) method creates a message in the ODSI format as detailed above, then a
message is created.
id = sha.sha(time.asctime()).hexdigest()
sub = self.conn.subscribe('MSG.reply == "%s"' % id)
sub.add_listener(self.__reply, self.conn)
sub.register()
The method is published to the ODSI network.
n = {'MSG.ID': id, 'MSG.reply': 1, 'MSG.msg': msg}
self.conn.notify(n)
Terence Blackburn 59 Enterprise-enabled Ubiquitous WorkSpaces
The method then sends ODSI a message to say that it is running and waiting for a response
to be returned.
self.Running()
4.5 Results of Experiment
The Merriam-Webster’s dictionary defines research as “investigation or experimentation
aimed at the discovery and interpretation of facts”. This description embodies the work that
was undertaken in this experiment. We had Beta versions of software to work with, for
example, MetaGlue 0.5 and Breeze 0.5, we had new interfaces to explore, such as the x10
serial devices and we had integration issues to contend with for an environment that has
never been built. This is what makes research vibrant.
We did not quite finish all that we started out to achieve but at the time of completing this
thesis we have come close. The work that we have started will continue and it will be
extended in different directions over the next few years as part of other projects. We have
created the foundation for some interesting and useful research into future workspaces and
related areas.
To put the work that we completed in context, the meeting scenario must be revisited. A
normal meeting will proceed along the following lines in the LiveSpaces environment. The
following is an overview, as some of the minor details have been omitted for clarity:
Figure 4.8 Workflow Execution for a Meeting.
Terence Blackburn 60 Enterprise-enabled Ubiquitous WorkSpaces
1. Capture Voice Command: the chair starts the meeting with a command spoken into
the microphone.
2. Convert voice to text: viaVoice converts the speech into text
3. Compare text to commands: the text is passed in turn to a MetaGlue speech agent,
which uses the “explorer” grammar to identify the commands issued
4. Send command to Notifier: the command is sent to the MetaGlue Notifier (the agent
responsible for MetaGlue communications)
5. Receive command from Notifier: The command can be parsed and processed
6. Send command to x10 device: these commands can optionally be executed directly
rather than by the workflow engine
7. Send command to start application: applications can optionally be invoked directly
rather than by the workflow engine
8. Produce Elvin message: the “Elvin client” agent and the Elvin messaging server,
which sends it on to an ODSI peer subscriber.
9. Start a workflow: the correct parameters, if any, are included
10. Start Breeze and invoke a workflow stub: The Breeze workflow engine is started and
it then loads the required workflow script from the enterprise database
11. Send ODSI message to Elvin: the Breeze workflow task instructions are sent through
Elvin
12. Receive Elvin message: this returns execution to the Abstract Process Center
13. Process Elvin message: the message is parsed and processed and any commands
are relayed via the MetaGlue Notifier to any device agents or application controller
agents that can handle the request. A specific host can be specified, if required
14. The first workflow task turns on the coffee machine
15. A wrapper agent for the web browser processes the other part of the message and
passes it through the R-JAX server, which starts the browser on the Smart Board and
sends a URL to the browser.
Figure 4.8 also highlights the two code points that need to be completed in this scenario. A
detailed summary of the source code is highlighted in Section 5.12 and the two sections that
need further work are also detailed.
The actions in the meeting scenario above would encompass the greater part of a standard
meeting. Commands to browse backwards and forwards through the agenda items required
the use of the ‘back’ and ‘next’ commands in the browser. These instructions would not
logically be a part of the Breeze workflow but could be processed directly by a MetaGlue
agent. The workflow would cycle through the agenda items and display different web pages. It
may have a conditional branch that starts a PowerPoint presentation and it may have sub
workflows that would process a set of instructions for a particular agenda item. All of these
Terence Blackburn 61 Enterprise-enabled Ubiquitous WorkSpaces
actions can be described by the activities in the scenario described in Figure 4.8. All of the
code to implement these actions has been created in the case study.
The code does not have the capability to handle errors. Some Java processing errors will be
caught but problems with the workflow may halt execution of the meeting flow. Breeze does
not store state and will consequently be unaware of the status of the workflow. The agent
system is unable to interrogate devices to determine their status and will be unable to
accommodate requests to restore a required state. This is a serious pitfall in the workflow
model and one of the ramifications of trying to integrate the two dissimilar architectures.
Some of the benefits that arise from the research include the ability to leverage COM objects
from within the Java environment, the ability to access enterprise resources from the multi-
agent system and the benefit of being able to incorporate new interface devices such as voice
activation.
Some of the weaknesses that become apparent include the inability to handle errors and
failures (as discussed above), simplistic workflow task execution results such as failed,
running or succeeded and the high level of vocal training that is required by viaVoice.
Data sources are a vital component in any enterprise but they have had little mention in this
thesis. Even in a meeting scenario, data items will need to be retrieved and reviewed and new
information will be processed and stored in a database of some type. We have taken the
approach that, while information manipulation is a critical exercise in any enterprise, it is
already a mature activity and including it in our work would add little to the research.
Terence Blackburn 62 Enterprise-enabled Ubiquitous WorkSpaces
5. Discussion
Agent based systems, messaging systems and tuple spaces represent three approaches that
were discussed in the literature review in Section 3. They exhibit many desirable future
workspace characteristics but no one architecture provides all of the characteristics and this
has been one of the main motivations into exploring this aspect of ubiquitous enterprise
computing. In this section, MetaGlue and ODSI, the infrastructures used in the case study,
are discussed within the context of LiveSpaces characteristics and the strengths and
shortcomings of these architectures are considered.
Preliminary results indicate that it is possible to aggregate and blend the strengths and
benefits of the individual software infrastructures to extend the LiveSpaces environment with
enterprise-enabled characteristics. ODSI has a strong process orchestration focus and was
able to leverage the adaptive, device management features of MetaGlue while MetaGlue has
strong context awareness and collaborative features that were enhanced by integrating the
ODSI enterprise workflow concepts. It is analogous to giving eyes and ears to a structured,
work focused person who cannot see or hear.
A number of aspects relating to the case study will be discussed in this section and the first
issue examines the implementation experience. There were a number of choices that needed
to be made on how to approach the integration questions and some time will be examined.
The topic of enterprise service provision is discussed at length and this is followed by an
examination of some of the architectural approaches taken by MetaGlue and ODSI. This
leads the discussion into interoperability and how bridging into MS Windows applications fits
into the LiveSpaces infrastructure.
The balance of this section examines the role of the enterprise attributes, which were
examined in Section 2, within the LiveSpaces setting. Separate paragraphs cover each of the
characteristics of: security, scalability, orchestration and synchronisation, adaptiveness,
persistence and state, context awareness, collaboration and distribution. The descriptions in
Section 2 are expanded within the context of the experiment and some conclusions become
apparent. This is followed by a summary.
This Discussion section finishes with an outline of several areas that represent future
research directions and this also introduces the attributes of tuple spaces, which feature in the
Stanford research but have not been mentioned here at any length. Tuple spaces were not
included in our experiment but appear to offer a range of benefits for enterprise-enabled
workspaces.
Terence Blackburn 63 Enterprise-enabled Ubiquitous WorkSpaces
5.1 Implementation issues
MetaGlue can be downloaded from the MIT Intelligent Room website along with
documentation and startup instructions. Installing the software was straightforward and the
accompanying test environment was utilised extensively to trial prototype agents. When it
came to extending the set of agents that accompanied the code, problems were experienced
with the x10 devices. While there was example code that opened and closed a set of curtains,
the implementation appeared to be taken from a fully featured agent environment, which
meant that it was necessary to create x10 agents with a full state management harness. This
meant that deploying an x10 device controller became a complex exercise and, consequently,
lack of time precluded using this feature. Fortunately, there was an example of an application
wrapper agent available and this facilitated the presentation of web pages on the SmartBoard.
ODSI seems to be an architecture that was designed and implemented in an early release by
researchers at DSTC and there do not appear to be plans to develop the infrastructure
further. It has a sensible philosophical approach to designing architectures with an enterprise
focus and represents a sound experimental platform for enterprise research. The
infrastructure lacks documented support but the researchers in the e-World laboratory
enjoyed solid email and phone support when it was required from the developer organisation,
DSTC.
As a result of experimenting with ODSI, several interesting issues arose. The first was that
once a service request is sent to ODSI, no further action was necessary. The peer to peer
infrastructure assumes responsibility for fulfilling the request and finding a peer that can
provide the service. For example, when a request is sent to ODSI, via Elvin, to start a
workflow, a peer starts an instance of Breeze and passes in any values to the workflow.
However, Breeze does not perform work in an intuitive manner. It was not designed with the
capability to launch or monitor enterprise services but has an abstract approach to fulfilling
work requests. It implements workflow requests by directing peers to start and manage
enterprise services that are defined and reside elsewhere. This makes it a useful coordination
engine and, given its features, such as sub workflow tasks, conditional branching and
recursion, it can be effective in coordinating workflow requests. Breeze also has the capability
of operating in a stand-alone mode, separate from ODSI, and using remote procedure calls or
Java’s remote method invocation to call external services.
Breeze allows blocking workflows that can accept new sub workflows at runtime and although
this allows a workflow to be started without sub workflows being defined, a workflow cannot
be changed dynamically. To change an active workflow, the engine must be stopped and the
new workflow loaded. This describes support for process orchestration but a lack of support
for adaptiveness and the rapid, dynamic composition of workspaces.
Terence Blackburn 64 Enterprise-enabled Ubiquitous WorkSpaces
5.2 Service Provision
The MetaGlue and ODSI models share a similar approach for providing services to the
enterprise. This is loosely based on a set of peers that can perform specific services when
requested and it stands in contrast to a centralised model of service provision where all
requests for fulfillment are channeled through a central authority. Certain core services are
available in the peer architecture and these usually comprise the basic functions that are
needed to boot the system (see Figure 5.1).
We have not defined the term “peer to peer” in order to distance ourselves from any potential
discussion on the subject but, instead, we have looked at some of the characteristics of the
peer to peer model and placed ODSI and MetaGlue within this context.
In a generic peer to peer model, all peers are equal. They advertise their state and the
services they can provide and other peers store the information. Peers must also advertise
any changes to their set of services so that other peers have a current picture of the system.
Peers all use the same peer management software to perform their management duties.
Peers can perform services themselves or pass the service request to another peer if it is
more appropriate. For example, a particular light, rather than just any light, may need to be
switched on and this will require service provision on the host for that light service. In this
example, the peer passes the service request to the peer operating on the light’s host.
ODSI needs to load the Enterprise Model on at least one and usually only one peer. (The
Enterprise Model has been defined as support for enterprise roles and policies, which are
stored and accessed from data repositories, and business processes which, are expressed as
workflows (see Section 2.7.3)). It is unclear how the architecture would operate if the
Enterprise Model was loaded onto more than one peer, but it is possible that some degree of
confusion could appear. For example, if there are two versions of the enterprise model loaded
and there is a request to load and start Breeze, can ODSI arbitrate between the different
implementations and only load one? If two versions of Breeze are instantiated, they will both
subscribe to the same Elvin-routed service requests. Will both versions of Breeze load an
instance of the workflow interface and execute the workflow? If there are two versions of the
same workflow stub to load, which gets loaded and which database is it saved to? There may
be simple answers to these questions but it seems likely that only one enterprise model would
exist in each ODSI domain.
MetaGlue has an agent called the “Agent agent” from which all agents extend and inherit their
primitives. This includes system agents such as the Catalog agent and the Configurator
agent. Its main function is to start agents automatically in the system and this function is
analogous to loading an ODSI peer on a host, except that ODSI peers must be loaded
manually.
Terence Blackburn 65 Enterprise-enabled Ubiquitous WorkSpaces
MetaGlue has an agent, which performs an ODSI “Enterprise” type role, called the Catalog.
This Catalog Agent allocates unique names to agents and stores the agent name details in a
database. Only one catalog can exist in an agent society. In addition, there are other helper
agents that have similar administrative functions such as the Attribute Manager agent, the
Configurator agent and the Notifier, which, like Elvin, facilitates communication in the
architecture.
The agent that shares a similar attribute set to an ODSI Peer is the Manager agent and its
main role is to supervise a container environment called the MetaGlue Virtual Machine
(MVM). All Manager agents use the same management software to search for agents in the
MVM that they maintain and start them or stop them as requested. For example, if an agent
requires a service to be fulfilled on a particular host, the Manager agent will either find the
required agent in the MVM or, if one does not exist, start one up to provide the service. If
there is no Manager agent or MVM on the target host, MetaGlue will invoke a daemon that
will spread MetaGlue to the host, create an MVM and start a Manager agent, which will then
start the required agent to provide the service. This functionality extends beyond that of an
ODSI peer, which must always be loaded by hand when a system is booting.
Some of the MetaGlue behaviour is similar to that of a peer to peer model but it probably
exceeds the definition and is not a peer to peer structure. This is due to the heterogeneous
nature of agents, the central administrative structure and the ability to move services (agents)
from host to host as required.
Figure 5.1 Generic Service Architecture
The ODSI model, as depicted in Figure 5.2, relies more heavily on core services than
MetaGlue. This is manifest in the enterprise approach to service integration and provision.
Enterprise roles and policies are stored in a data repository and an example is the Breeze
workflow engine. When Breeze loads a workflow, it interrogates an enterprise database for
the workflow interface or sub workflow interface.
Terence Blackburn 66 Enterprise-enabled Ubiquitous WorkSpaces
Figure 5.2 ODSI model for providing services through peers
The workflow is executed, however, using a peer methodology. Breeze passes requests to
the peer infrastructure for task execution. Other than the enterprise focus, ODSI is an
architecture that is peer oriented for service provision.
A limitation of ODSI is that peer service wrappers and internal communications are written
entirely in Python. While it may be argued that Python is a sensible choice for a programming
language, it may involve another learning curve for the enterprise IT department. A greater
problem, though, is the issue of interoperability between different operating environments.
Creating an interface to Python from another language may not always be straightforward. It
would be beneficial if a graphical interface could be designed to manage the translation
processes such as mapping data types from one language to the other. In this way code
could be auto generated.
MetaGlue uses the Catalog agent for the provision of core naming services. This is a
lightweight set of services but, as with the ODSI enterprise database, it still represents a
single point of failure. The Catalog stores and provides agent information but database
services are also used separately to store agent attribute information and device state
information. It is not clear at this time how vital these extra database services are to
maintaining a functioning agent system. MetaGlue has a less centralised approach to service
provision
Terence Blackburn 67 Enterprise-enabled Ubiquitous WorkSpaces
Figure 5.3 The MetaGlue Approach to Providing Services
than ODSI and this is probably due to its micro focus on devices and applications rather than
enterprise issues and goals.
The Notifier is the equivalent of ODSI’s Elvin messaging engine and it provides a publish-
subscribe communications layer that allows the agents to perform service fulfillment.
Both models allow a client to request a service and peers handle the implementation details.
A client in either model is an entity that asks for service provision. This could be a human
client, but often it will be a piece of software, which will be either a peer or agent. This allows
an ODSI peer and a MetaGlue agent to act as a client or a server.
ODSI advertises its public methods but does not disclose details of what and how it provides
services. MetaGlue does not advertise its services and an implementer needs knowledge of
the system to design a workspace. This does not mean that in the future MetaGlue services
cannot be abstracted and advertised. Given the direction of current research, see Section 2,
this development may happen in second-generation MetaGlue applications. Since ODSI is
already a high level abstraction, no knowledge of the underlying processes is required. This
enables evolution of the model without alienating exiting client services.
The abstract nature of ODSI, where the methods for service provision are not defined, allows
plugins to be inserted and applications to be “bolted on”. For example, the Breeze workflow
engine can be used as a stand-alone product or as an integrated component of ODSI. During
the transition from Elvin 3 to Elvin 4 at DSTO in Adelaide, a plugin module was able to listen
to ODSI requests, translate them from Elvin 3 to Elvin 4 and send back an ODSI response.
Terence Blackburn 68 Enterprise-enabled Ubiquitous WorkSpaces
5.3 Architectural Design
The enterprise bus, where data is passed from one node to the next, is one of the vital
components in an enterprise infrastructure and Elvin was chosen for this role in ODSI.
Messaging models can be classed into two groups, directed and undirected.
The directed model, which can be client server or peer to peer, is usually synchronous, tightly
coupled, the message destination is known and homogeneity is promoted. Examples include
the Remote Procedure Call, message queues and multicast messages. There are
shortcomings in this model that become apparent when communication services are
intermittent, locations are altered and message recipients change.
Undirected communications, allow loose coupling, asynchronous communications, uni-
directional messaging (event notification) and heterogeneous clients. The receiver’s address
may not be known when the message is sent and this suggests that authentication
techniques may sometimes be required to allow message retrieval.
Elvin is an example of the undirected model. It sends simple structured messages and allows
clients to use a subscription language for selecting messages of interest. The messages are
sent asynchronously and it is assumed that they arrive at their destination. There is no system
of message acknowledgements or data resending in this model. Multiple clients can receive
the same message and this could be good or bad depending on the context. If clients are
disconnected, however, messages may not be received.
Elvin’s lightweight messaging model has practical enterprise applications in a number of
situations including instant messaging, devices advertising their state, event notifications and
efficient multicasting. It also has enormous benefits for scalability, as it is a very fast and
efficient model. Lightweight messaging does not suit all enterprise applications and there are
occasions when a more reliable model is required. Executing workflows can sometimes be
examples of when a heavier messaging model is required. A particular workflow may rely on
input from other applications or devices to proceed from one task to another. If a message is
only broadcast once, and this will often be the case, and the workflow does not receive the
updated message, it may remain in a wait state until it receives an intervention. Clearly this
could be detrimental to a mission critical task in an enterprise. In this situation, a message
server that guarantees message delivery is of more use to an organisation. A persistence
mechanism could be added to the lightweight model to capture important messages, but this
defeats the philosophy of lightweight messaging. It is likely that a directed messaging model
would be more appropriate in this case.
Another shortcoming to the lightweight Elvin model is that nested data structures like XML
files and data types like hash tables are not supported although the protocol has been
Terence Blackburn 69 Enterprise-enabled Ubiquitous WorkSpaces
extended to include opaque objects such as mime attachments. These are not routed easily,
however, and clients are required to subscribe to all messages that include objects, and these
messages must subsequently be filtered at the client end. Lists must also be flattened to a
string and require string manipulation functions to retrieve desired values.
A design limitation that will affect some applications is the lack of security. Elvin is a content-
based messaging service and any client can subscribe to any message in a federation of
Elvin servers. The situation is similar with MetaGlue and this can allow unwanted access to
any enterprise resources exposed within the architecture. Security is discussed in more detail
in Section 5.5.
The ODSI infrastructure supports decentralised coordination and control through a set of
peers existing at each node in the environment. The peer is similar in many ways to the
capsule concept from RM-ODP or a container from the Java or CORBA component worlds. It
incubates a set of services and provides access to them in a well-defined way according to
the workflow requirements of interactions. Each command given to a peer-managed service
must return one of:
o Succeeded - successful result returned,
o Failed - failed during processing,
o Aborted - access to the service was aborted, or
o Running - an intermediate result.
All communication to services is through a peer and uses an event notification service for
addressing and delivery. Notifications give us some key advantages over the more common
directed communication mechanisms such as RPC or RMI. New peers (and hence hosts) can
be added to the environment without the need to explicitly redirect communication. This gives
us a more scalable and flexible environment because we can augment or replace services at
peers with impunity. Asynchronous notifications also support the concept of multiple
intermediate results that are key to our workflow-oriented environment
One of the useful features of MetaGlue is the relies_On() method. It is used when multiple
agents require simultaneous access to a particular device or service. It allows more than one
agent to attach to a particular wrapper agent that is controlling the device or application.
Instead of agents creating new instances of an application wrapper object each time a service
is required, the relies_On() method allows the agents to share the one instance. In this way, if
one agent changes the device’s state, all agents are notified. This would not happen if each
agent was associated with a separate instance of the application wrapper agent object.
Terence Blackburn 70 Enterprise-enabled Ubiquitous WorkSpaces
More than one agent can interact with a device. For example, if two or more agents,
representing entities such as applications or people, wish to send separate URLs to the
browser, each can communicate individually. In this way collaboration is fostered by group
interaction with the application.
Another useful feature of the relies_On() method is that it ensures that there is an agent
available to provide a particular service. If there is no instance of an agent to fulfill the service
request, the local Manager Agent will start a new instance of the required agent. This leads to
the tied_To() method.
The tied_To() method glues a MetaGlue agent to a specified device or application host
computer. This is important when a service is required that is only available on a certain host.
If there is no agent available on that host to provide the service, the Agent Manager will move
an agent to the host or start new instance of an agent.
5.4 Inter-infrastructure
One of the problems encountered when integrating software infrastructures, such as the ones
in the case study, is creating the bridges that facilitate bi-directional messaging or event
notification across the different architectural paradigms. In this instance there were three
environments to span: ODSI, which has a publish-subscribe based infrastructure, the
MetaGlue multi agent infrastructure, which also uses a publish-subscribe communications
model and Microsoft Windows, which can use DCOM, COM+ or other proprietary
approaches.
A number of companies have created products that can bridge from a Java environment to
Microsoft Windows for application integration and manipulation. J-Integra, a product from
Intrinsyc Software [46], allows COM components to be accessed from the Java environment.
This solution exposes the methods available in the target application and converts the target
data types into Java data types. However there were initial problems with resources not being
disposed of correctly and a second solution was chosen and implemented; R-JAX [48], from
Stryon. This product did not seem to be as flexible as J-Integra but it was very easy to install
and use. It provided an intuitive interface to the process of exposing the Microsoft application
methods and provided a workable interface for MetaGlue agents to invoke the methods in
Microsoft’s Internet Explorer.
There are a number of potential solutions to enable MetaGlue to communicate with the ODSI
environment. The need to start a workflow provides the motive to engage this process and the
main goal is to start a workflow engine and feed input values into the workflow. The
implementation of ODSI used in the case study was written in Python. This means that
Terence Blackburn 71 Enterprise-enabled Ubiquitous WorkSpaces
management software for ODSI components was written in Python and this includes
commands to start and control, Breeze, the workflow engine. At some point then, information
must be exchanged between the Java environment and the Python environment. Some of the
solutions to this issue include the following:
1. Embedding Python within a Java program is synonymous with calling the ODSI
workflow stub from within a MetaGlue agent. This approach to calling Python
methods is routed via the Elvin messaging engine. The call to ODSI is all that is
required as ODSI handles the Breeze invocation and passing the workflow
parameters. This was untested.
2. Another approach, which does not look simple and was not tested, is to run a java
program on an ODSI peer. This program would then run a system command to
invoke a Python script, which would start the Breeze engine. If the workflow engine
was not on the same peer, it would be started remotely through the peer to peer
mechanism. This is a static or hardwired way of approaching a dynamic problem and
does not look very extensible. The initial parameters that invoke the correct workflow
must also be sent to the Java program although subsequent parameters are sent via
the messaging engine.
3. The solution that was selected involved running a workflow client directly from an
agent. This program issued ODSI formatted calls to invoke the correct workflow and
sent the request through the Elvin messaging server. The ODSI syntax to set this up
includes the line:
ODSI.TO == Breeze
Breeze, an ODSI peer service, subscribes to all Elvin messages containing this text
and can also accept extra parameters that may be required by the workflow. This
appeared to be the easiest and most scalable answer to allowing a MetaGlue agent
to start a Breeze workflow. It may have been more robust to implement the Java
workflow client as two separate agents. One could subscribe to the MetaGlue
Notifier and publish to the Elvin server and the second agent could subscribe to the
Elvin server and publish to the MetaGlue Notifier. In this example scenario, though,
the workflow client fulfilled both of the roles of publisher and subscriber to both
architectures.
In all three methods, extra input parameters to the workflow can be sent in the same way by
using ODSI syntax and sending the message via Elvin. Receiving workflow notifications was
straight forward and involved subscribing to appropriate Elvin messages.
5.5 Security
The lack of security was one of the first issues to become apparent when working with these
infrastructures. It is quite reasonable, however, to expect a bare bones set of features to
accompany these early version architectures, as they are still research products. For
Terence Blackburn 72 Enterprise-enabled Ubiquitous WorkSpaces
example, the MetaGlue implementation is Beta version 0.5. A set of secondary features
including security mechanisms would normally accompany a more mature product, and in the
MetaGlue instance, this is happening as more research is being undertaken using MetaGlue
as the infrastructure as described in Section 3.
This section also includes redundancy, as the topic seems to fit into a discussion on security.
Messaging
The main security weakness in the Elvin (Version 3) security model is the open nature of the
messaging protocol. It allows any client to intercept and read a message meant for another
client and may also allow producers or consumers to masquerade, although the value of a
client masquerading is questionable in circumstances where the publisher is unaware of its
message destination anyway. There is no authentication of either the server or the client,
messages are sent in plain text, there is no message integrity control and there is no access
control to the messaging network. Multiple clients can receive the same message and this
could be good or bad depending on the context. There are obvious security issues when the
sender does not know who is receiving the message. However, all of these criticisms describe
the lightweight nature of the protocol and this is how it was designed.
Elvin’s message processing algorithm is flexible. It handles fields in excess of those
requested in the subscription template by evaluating them as “unknown”. However, This has
clear ramifications for security as extra unauthorised fields could be added to a message
before the client received the notification and there would be no way to validate the
message’s integrity.
One of the key benefits delivered by content based messaging is the loose coupling between
producers and consumers and adding a security layer, like the authorisation of message
delivery, creates a degree of coupling [32]. Elvin (Version 4) [33] has introduced an
authorisation mechanism, based on one-way hash keys, that still allows loose coupling. The
message producer creates and supplies raw keys that are encrypted by a one-way hash
function within a server. These transformed keys are distributed to consumers who must
supply a matching key to receive a given message. Subscribers may elect to receive only
secured messages and this may reduce the chances of a denial of service attack on the
subscriber. Keys can be used in either of two ways. The first is connection based where the
key lasts while the client is connected and the second is to use a key for each message or
notification that is sent. It is possible to combine these methods for added security although
employing keys has an associated cost and this could have an impact on message
throughput.
Terence Blackburn 73 Enterprise-enabled Ubiquitous WorkSpaces
The management and distribution of the keys, however, remains the responsibility of a third
party as Elvin remains aloof from this process. This may introduce a security weakness
through the interception of keys, which must be encrypted when being transmitted to
subscribers.
Security in the Elvin 4 implementation includes SSL encryption at the transport level and also
allows a choice of two other client security models. Clients can choose to:
o use a public/private key pair to decrypt a message
o use two pairs of asymmetric keys for extra strength security.
In the second option, the public key from each of the sets is paired with the private key of the
other set and the resultant pairs are summed and compared. If the sums match, then the
message has not been compromised, the source is authenticated and a secure conversation
can take place.
It is not clear as to what degree data integrity is still an issue with Elvin 4, but the authors
have indicated that this will be covered in a future paper on Elvin 4 security. It should be
noted that Elvin is a component of the ODSI model and constitutes the main security
mechanism, but ODSI is not restricted to the use of Elvin’s security model alone. As with
ODSI, the Breeze workflow engine has no security layer although some investigation has
been undertaken into security in agent-based workflows [34].
Multi-agent systems
Security issues like authentication and authorisation occur when humans or workspace
entities want access to other workspaces or agents. Access control [39] has a number of
facets and these include: who has access to resources, who controls the access and who can
make decisions about the control and the delegation of control of resources. Access control
and authentication can be handled by traditional methods where one user wants access to
one space. However, it is harder to define roles and authentication rules where multiple users
are interacting with multiple spaces that potentially span multiple organisations.
Users in one workspace may request access, through agents, to resources in another
workspace. How are rules created or evaluated to handle these issues? Contextual
information may help to define rules for various roles. For example, a user, who can assume
a particular role, has been authenticated and verified by an agent as being in a certain
location. This means that it would be safe to allow access to printers and data, but at another
time, the same user could be in a remote location where security violations could occur if the
same access was allowed.
Terence Blackburn 74 Enterprise-enabled Ubiquitous WorkSpaces
One option is to explore the use of security policies [1, 38]. In the security context, this means
that if a policy states that a particular process should be restricted or authorised at various
levels, then this should be supported in the representation of that process in the model. This
scenario also offers opportunities for further research. These policies can be built into trusted
agent systems [20, 52] and can be useful in regulating access to various types of spaces.
Investigation into security for multi-agent systems [14, 31] has existed for a many years and,
in a similar manner as Elvin 4, current systems have also incorporated Public Key
Infrastructure (PKI) into their security models.
By using role-based approaches, agents could be used as policy managers that receive
secure messages via a content-based message system. They could ask for security
validation, which would then be checked against the underlying enterprise knowledge
repositories and the tuplespaces would be used for persistence (see Future Research,
Section 5.14). This would provide a possible approach to security issues for process
orchestration via workflow. This model would map well to the software infrastructure in this
case study which uses workflow as a coordination and control mechanism and supports the
mapping of business processes across into an enterprise enabled workspace model.
MetaGlue has no answers to any of these questions. The only security measure in the
MetaGlue environment is a firewall. It was noted in Section 3.1, though, that research is
starting to explore this issue.
Redundancy
MetaGlue has a central registration agent, the Catalog, which keeps track of all agents
running at any given time and the interconnections between them. It is also the distributor of
handles to agents and acts as a synchronisation point for ensuring that there are no naming
conflicts among the agents. There is a problem if the Catalog crashes as all agent information
is lost and agents become inaccessible. There is no backup mechanism to restart the system
with agent state intact.
However, if a connection between agents is severed for any reason, individual agents may try
and reconnect to the agent or device that they were connected to. They may try for a certain
period of time or a certain number of times before the system automatically restarts the
service.
ODSI has no backup mechanism either. In every ODSI system there must be one peer that
runs the enterprise database. This is a collection of tables populated with workflow definitions,
service interfaces and interface definitions, usually written in Python. (This enterprise
database also includes the peer’s own database of service information.) If the computer
hosting the peer and the enterprise database fails, ODSI also fails. The system will need
Terence Blackburn 75 Enterprise-enabled Ubiquitous WorkSpaces
human intervention to restart the system but all system state will be lost including workflow
state, as Breeze does not store any workflow state. This would also appear to be a weakness
if Breeze is trying to run a large number of workflows. Is there a way of determining which
input parameter goes to which workflow?
5.6 Scalability
As discussed in the subsection relating to redundancy, MetaGlue has a single point of failure
in the Catalog agent. It is less complex when each society has only one point of
synchronisation, but it also inhibits scalability in an agent society. This does not prevent a
number of agent societies connecting to each other through the Hyperglue mechanism, which
is a communications layer for enabling wide scale connections between agent societies [13].
Each agent communicates through the Notifier and given that a communications channel only
exists while a message is being sent, it seems reasonable that the Notifier could scale to
handle the communications requirements of several thousand agents. If this were not the
case, there would be merit in investigating the use of Elvin as a message passing
mechanism. It would certainly be appropriate to consider using Elvin in a wider area scenario
to communicate between groups of agents. This is not the main limiting factor in the
MetaGlue system, though. The limiting factor in a MetaGlue society is the concept of relying
on another agent. This can be a very useful feature as discussed in subsection 5.2 but also
means that an agent must rely on a second agent to perform a task. This agent in turn may
rely on a third agent for its functionality, which may rely on a fourth and so on. The web of
inter agent reliance quickly becomes a tangled web that falls over if a system crashes or an
agent dies. It also becomes complicated when agents maintain connections to other agents
that have broken down or moved to other hosts.
Any connection between agents may not last for long, though. If an agent needs to turn on the
coffee machine, for example, the connection between any pair of agents may endure only for
milliseconds. However, other connections may last for several hours, such as a microphone
agent recording speech that is passed to another agent for processing and it is clear that this
agent web would limit the growth of a society at some point.
ODSI has more support for scaling to a larger system and this is due to its peer to peer
design and its messaging architecture, which is an important element in scalability issues [6].
Peers are application servers that support interoperability with other peers to discover
services and manage their execution. It is a dynamic environment that uses a publish-
subscribe messaging system to support communication in this society of equals. Elvin, a
content-based message router, underpins the communication transmission and this is where
Elvin’s lightweight design is of most benefit to an enterprise. The transmission mechanism is
similar to that of the Notifier in MetaGlue. A channel can be established for just the amount of
Terence Blackburn 76 Enterprise-enabled Ubiquitous WorkSpaces
time needed to broadcast a message and then it is closed. This dynamic mechanism can
scale to thousands of messages per second, particularly if a set of Elvin servers has been
federated over a larger domain.
ODSI is similar to MetaGlue in that it can support a point-to-point event channel for end-to-
end communication or it can also use a publish-subscribe mechanism for broadcast
messaging, which is scalable.
5.7 Orchestration and Synchronisation
ODSI supports process orchestration or workflow coordination in a natural way. This is
evident by having the workflow engine as a central component in the infrastructure. It can
support many different activities due to its abstract approach to service fulfillment. As
discussed earlier in this section, Breeze coordinates workflow but does not implement it. This
responsibility is left to peers. Breeze is only concerned with whether a workflow process is
active, is finished or has aborted. This enables a variety of services to be performed and a
richer set of enterprise services to be made available.
This scales well within an atomic structure such as a workspace or an organisation but it is
unclear what would happen if more than one workspace required support. What would
happen if two workflow engines from different workspaces were required to coordinate and
synchronise their activities? This is an important scenario that can be viewed at a number of
levels. Workspaces can be composed of individuals or large groups of people and domains
can vary from medical or software organisations to military settings. Two bricklaying sub
contractors coordinating their daily activities will have different requirements to a police
organisation coordinating a manhunt in an urban terrain. Homogenous arrays of services may
not meet the needs of these heterogeneous workspaces and synchronisation issues along
with other enterprise attributes such as context awareness and adaptability will need careful
consideration.
MetaGlue, while it does not have a built in process orchestration attribute such as a workflow
engine, has natural synchronisation abilities and this is evident in agent activities as they
automatically work together in an unassisted manner.
5.8 Adaptability
It is difficult to conceive of a fully adaptable workspace environment, which by definition would
have an infrastructure and a set of tools to assist in processing elements of work, but it is
certainly conceivable to add higher levels of adaptability. The infrastructure and tool set for
any workspace-supporting framework would need to be structured and well defined. However,
with higher levels of abstraction, more adaptability can be added to a software infrastructure
in the form of plugin modules and components. Ideally, adding extra functionality would be a
Terence Blackburn 77 Enterprise-enabled Ubiquitous WorkSpaces
dynamic process that would not involve shutting down a system and rebooting it. MetaGlue
and ODSI both have adaptive frameworks but both infrastructures support adaptability in
different ways.
ODSI follows the approach outlined in the preceding paragraph by approaching the provision
and implementation of services in an abstract, top down way. The transport protocol stack in
Elvin is abstract as is the definition of service provisions in the ODSI architecture. Breeze and
Elvin, as mentioned, are plugin modules that can be replaced by any suitable workflow engine
and communications model.
MetaGlue support for adaptability seems to take a bottom up approach. All possible agent
types are predefined and a workspace only needs to start the appropriate agent, which will
start other agents as needed, to obtain service fulfillment. This approach is not difficult in an
environment where many of the variables are known. All of the existing hardware devices can
have agent controllers and most of the software applications can also have wrapper agents to
invoke services. However, by leaving a known environment, such as the Intelligent Room,
new challenges exist for this type of approach. The problems here are related to the
scalability issues discussed in Section 5.5.
5.9 Persistence and State Management
The lack of persistence is one of the limitations in both architectures as described in earlier
subsections. This is manifest in single points of failure with the enterprise database in ODSI
and the Catalog Agent databank in MetaGlue. The design and lightweight attributes of the
Elvin content routing engine also preclude the provision of a persistence mechanism, which in
some cases is desirable. Persistence is also a key factor in state management.
State management is one of the key factors that will
enable or inhibit collaboration, coordination and process
orchestration across multiple workspaces or domains.
Persisting state in real time is analogous to taking snapshots of system conditions every
millisecond. Without information on the current condition of a system, it cannot be recreated
or restored and it cannot be referred to in support of context awareness and adaptivity.
Having an understanding of the importance of state management adds context to the amount
of effort expended by the creators of MetaGlue into handling device state. This was an
unexpectedly large part of the MetaGlue system and, consequently, was not included in the
case study.
State information, which will be retrieved from persistent storage, will be critical for a number
of components and activities in enterprise-enabled workspaces and include:
Terence Blackburn 78 Enterprise-enabled Ubiquitous WorkSpaces
o Dynamic template-driven workspace composition
o Workspace replication across domains
o Context sensitive security mechanisms
o Adaptive business process execution
o Collaborative activities with multimodal devices
This is only a short list of examples and the essential point is that state, knowledge of the condition of
the system, will play a major role in all of these future workspace activities.
Persistence and state management attributes are also discussed in Section 5.13 when future
research areas are explored.
5.10 Context Awareness
Many of the enterprise attributes are closely linked to each other. The seam between
persistence and state management has been discussed in Section 5.8 and there is also an
important connection between distributed components and state management. Context
Awareness also has a direct association with state, which was defined in Section 2 as the
condition of an object. Context Awareness, also according to our definition, is the awareness
of state and MetaGlue and ODSI have different approaches to this important issue.
MetaGlue has a reactive element in its infrastructure in that lights will be dimmed when the TV
is activated and the heater will be turned on if the temperature drops to a certain point. These
actions happen automatically and exemplify the natural context-awareness of the
architecture. A number of agents are built around context but this was not a design goal. One
of the design goals was to maintain connections between agents so that if an agent becomes
unavailable, the service can be started elsewhere. In the context of the agent being
unavailable, the system is motivated to start another agent service. In the same way, if an
agent needs more processing power, the ManagerAgent can move it to a more powerful host.
The agent context has driven the need to move the agent to another host. Similarly, a load-
balancing agent would also be motivated by agents’ context and relocate them accordingly.
At another level, the agents in an intelligent environment have the ability to respond to a
user’s needs. In an intelligent room, for example, the room collects contextual information in
an attempt to divine what the user is doing and what they intend to do. This encapsulates the
biggest problem in context awareness. Collecting the contextual information is one aspect but
analysing it and deciding what to do with it is the tricky part.
ODSI has been designed to actively drive its infrastructure according to enterprise polices and
goals rather than be driven in a passive manner like MetaGlue. Even though parameters are
sent to the workflow engine, it reacts in a predefined and predictable manner that would be
difficult to describe as context sensitive. It is more like a command driven environment. A
Terence Blackburn 79 Enterprise-enabled Ubiquitous WorkSpaces
database trigger, for example, while an example of context driving an action, would not
normally start a workflow. It would more likely send a message to a log file or raise a flag in
someone’s workspace.
The messaging engine in ODSI is similar to the workflow engine in that it reacts to commands
in a predictable manner but does not perceive the state of its environment, as defined in
Section 2.6. This is not a necessary attribute, though, as changes to the messaging engine
structure would move its design away from the lightweight model. Leveraging the context
awareness of another architecture, like MetaGlue, could address the attribute limitation. When
the two architectures are combined, the resulting mixture of workflow driven actions and
device driven reactions could produce some interesting scenarios. This was not part of the
case study but may represent an area of future research.
5.11 Collaboration
Human collaboration has always been one of the cornerstones for successful workgroup
environments. The emergence of new workgroup technologies, such as those described in
the projects reviewed in Section 3, and the resulting unexplored methodologies, such as hand
held devices interacting collaboratively on large display areas, raises a new set of questions.
These questions revolve around how to capitalise on these new developments and increase
workspace productivity.
One of the main features of the ODSI architecture is enterprise collaboration, which is
manifested through workflow fulfillment or business process execution. The enterprise is
defined loosely as a collection of cooperating resources trying to achieve a common goal.
When these enterprise resources link business processes through service requests, complex
organisational tasks can be described and executed. This allows business managers to
define the enterprise goals and describe business processes to achieve them. ODSI, then,
executes these business processes.
MetaGlue also supports collaboration and this is achieved through agents interacting with
other agents. One user action, such as a command spoken into a microphone, can trigger a
series of actions. These actions can involve a number of different agents triggering other
agent events through the ‘relying On’ mechanism, which facilitates collaborative work.
5.12 Distribution
Distributed systems have existed for many years and can be considered as a reasonably
mature technology. Objects, applications and processes have been used in a disseminated
manner for a couple of decades and distribution represents a link to the concept of tuple
spaces as used in the Stanford research environment. Tuple spaces were developed from the
Linda coordination language in the early 1980s and used in parallel and distributed
Terence Blackburn 80 Enterprise-enabled Ubiquitous WorkSpaces
processing. They seemed to lose popularity in the mid 1990s but can be seen in modern
laboratories and involved in current research. The benefits of tuple space models are
explored in Section 5.13.
Future workspaces will extend the distributed metaphor to concepts such as distributed
adaptability, distributed context awareness and distributed coordination. These terms
represent enterprise attributes as defined in Section 2 but manifested on a large scale or
spanning diverse environments. In many of these settings, the distribution models will
represent encapsulated aggregations of distributed state. This will pose some management
challenges but coordination on a large scale is likely to represent a higher order of difficulty.
ODSI supports wide area distribution through the Elvin messaging network and MetaGlue
supports distribution through agent spreading and Hyperglue as discussed earlier.
5.13 Summary
We set out to explore enterprise-enabled workspace architecture and we used two
frameworks in an experiment to investigate these workspace characteristics.
When we started to look at the integration issues, we found two peer to peer type
infrastructures that have some similar enterprise characteristics yet quite divergent
approaches to satisfying organisational needs. MetaGlue is almost an out of the box
installation and comes with many pre built agents to handle a plethora of room-based
activities. These agents were not used in our case study but served as useful examples when
questions arose. ODSI is a collection of Python files, which are loaded onto a host computer,
and a set of optional components to service enterprise requests. We chose to install Elvin as
the enterprise bus and Breeze as the workflow engine and it took a some time to understand
the separate paradigms before we tackled the integration issues.
We discussed the enterprise approaches presented by the two architectures and surmised
that both had strong peer to peer characteristics. We did not settle on a formal definition of
peer to peer as that may have raised more discussion that agreement but, instead, looked at
some of the attributes that peer to peer infrastructures share. Both MetaGlue and ODSI have
management infrastructures that can start services on request. MetaGlue goes a little further
and is able to start the services on any specified host while an ODSI peer can only offer the
services that have been preloaded. ODSI can advertise its available services but developers
need some knowledge of MetaGlue to work within the framework.
Communication is the nervous system of enterprise infrastructure. ODSI uses a lightweight,
publish subscribe, content-based messaging engine that is fast, simple and scalable. It is
driven by client subscriptions rather than publisher addressing and it lacks one or two features
Terence Blackburn 81 Enterprise-enabled Ubiquitous WorkSpaces
such as security and persistence, but these were deliberate design omissions. MetaGlue uses
a version of Java’s RMI that can send point to point messages between agents or support a
publish subscribe model. The model also supports glue spreading, which is a process for
disseminating agents throughout the network to where they are required.
There were a number of available choices for creating the bridge between ODSI and
MetaGlue and we chose an off the shelf program that started a Breeze workflow from within a
MetaGlue agent. Unfortunately, we didn’t read the label properly and lost some time due to
software version mismatches. However, it was a clean simple approach to communicating
between MetaGlue and ODSI. Messages flowing the opposite way are easy to receive as
subscribing to Elvin messages is a breeze. The other bridging issue was sending method
calls to MS Windows applications and this was handled smoothly by R-JAX.
Neither infrastructure had mature security models. Neither framework, however, was
designed with a security component in mind but we identified some of the issues that would
need to be addressed if enterprise-enabled workspaces were to incorporate either of these
models in production release software. (ODSI can leverage the new security features of Elvin
version 4, which has a number of optional, deployable security components.) Both MetaGlue
and ODSI have a single point of failure in their central management systems and this issue
has been left unaddressed by the developers.
MetaGlue appears to be scalable when the communications model is examined but its facility
for agents to rely on other agents sets up a web of interconnections that would become
massively complex as the system grew. It would also become more vulnerable to the failure
of the Catalog, the central agent organiser. Interestingly, it is less susceptible to single agent
failure as MetaGlue has a reconnection facility. ODSI scalability, on the other hand, is well
supported by the Elvin messaging bus, particularly when Elvin is federated over a larger
domain.
ODSI is well designed for process orchestration and synchronisation with its built in support
for workflow execution. The implementation of workflow is also supportive of these
characteristics as it is abstract and, consequently, very flexible. MetaGlue, while having little
or no concept of workflows, has natural support for synchronisation. This is due to the
autonomous nature of the agents and their method of invoking other agents when they are
required.
MetaGlue and ODSI both have adaptive frameworks but both infrastructures support
adaptability in different ways. ODSI takes a top down approach to adaptability and has a
number of abstract implementation layers. It uses a set of plugin modules and components to
support adaptability. In our case study we selected the Breeze and Elvin components to form
Terence Blackburn 82 Enterprise-enabled Ubiquitous WorkSpaces
the core services for our LiveSpaces environment. MetaGlue, on the other hand, approaches
adaptability from a bottom up perspective. All possible agent types are predefined and a
workspace only needs to start the appropriate agent, which will start other agents as needed,
to obtain service fulfillment. This call has a limitation as all devices must be known to have pre
built support and this precludes adapting to new devices and applications although this
observation also applies to ODSI.
Persistence and state management seem to be the most important characteristics for
enterprise-enabling workspaces. These attributes underpin most of the characteristics that
were identified as being important in our research. Neither MetaGlue nor ODSI are good in
this area although some support for these characteristics is evident. Both suffer from single
points of failure in their implementations and some form of persistent data storage may
address this limitation. MetaGlue has taken state management quite seriously but stopped
short of supporting the Catalog, the central agent management facility. ODSI needs to
consider adding workflow state management to its model as executing a large number of
workflows could become complicated.
Context awareness is closely linked to state as all context information in a system is
represented as state. The storage and management of state, then, is crucial to supporting
context awareness. MetaGlue responds to state change and this is often manifested in agent
activity. This context awareness can be seen in passive room responses to human activity
and device state changes that result from other agent actions. ODSI is less supportive of
context awareness. Elvin has no idea about who receives its messages and Breeze has no
idea of how the workflows are implemented. Neither does it have any means of sensing its
environment in the manner of MetaGlue, but it does not try to excel in this area. However,
when the two infrastructures are blended, a lot of synergy is produced.
ODSI rates well in enterprise collaboration and this is expressed through the workflow engine.
When workflows are combined into higher order workflows, enterprise collaboration is
strongly evident. MetaGlue has a collaborative agent system. This is supported by building
autonomy into the agent framework and is promoted by the concept of relying on other
agents.
The concept of distribution is almost synonymous with the image of an enterprise. Future
workspaces will need to incorporate this characteristic as workers become decoupled from
their computers and traditional hand operated interfaces, and become wireless, wandering
and hands free. State will become distributed as will context awareness and so on. The
increased mobility of humans within an organisation will drag forward the development of
distributed concepts. ODSI supports wide area distribution through the Elvin messaging
network and MetaGlue also supports distribution through agent spreading and Hyperglue.
Terence Blackburn 83 Enterprise-enabled Ubiquitous WorkSpaces
The end result of integrating the two architectures in the case study is a change to a more
productive methodology for executing tasks, or units of work. This is manifested in faster
access to relevant information, the facilitation of collaborative group interaction and more
efficient dissemination of context appropriate information to the enterprise. It also provided a
set of smarter interfaces to the enterprise.
The case study created the foundation architecture for the LiveSpaces environment in the e-
World laboratory. It will provide a test bed for our investigations into enterprise-enabled
workspaces. Part of the required ODSI infrastructure has been created to initiate our
experiments with enterprise attributes and a number of MetaGlue agents have been written to
control hardware and software devices in the interactive workspace. As part of the work we
experimented with the following:
1. An agent to process the text output from the viaVoice speech to text engine
2. An agent to send messages within the MetaGlue environment
3. An agent to receive messages within the MetaGlue environment
4. An application wrapper to invoke methods on selected Microsoft Office applications
5. Agent code to automatically start an arbitrary number of agents
6. Agent code to tie agents to a host
7. An agent to control x10 devices
8. Code to communicate with serial devices
9. An agent to publish to Elvin
10. An agent to subscribe to Elvin
11. An agent to invoke an ODSI workflow
12. Java client code to start the workflow
13. A Python peer with a service interface to invoke the workflow
14. A Python peer to publish a message to Elvin
The environment still needs some programming effort to make it robust and more functionality
needs to be added to be able to conduct a full meeting. The status of the case study source
code at the time of completing this thesis is that most of the code has been written but it
needs to be glued together to be able to create a working demonstration. Time has not
allowed this to happen.
5.14 Future Work
A number of significant issues have been brought to light during the course of the case study
and many of them are related to the enterprise characteristics that were identified in Section
2. Most of the research into enterprise workspaces is narrowly focused on a particular aspect
of future work environments. These aspects include interaction devices, multimodal displays,
Terence Blackburn 84 Enterprise-enabled Ubiquitous WorkSpaces
collaboration and human-computer interaction. Our research involves integrating this work
into an enterprise-enabled environment to support real life work domains. Our focus for
research will investigate some of the following issues.
Security
The first issue was discussed in Sections 2.6 and 5.4 and relates to the lack of security in the
infrastructure components in the case study. As discussed previously, a security component
is usually one of several features that are added to a new architectural model after it achieves
some degree of stability and a firm feature set. Although ODSI has been used as a test bed
for several years, development seems to have stopped some time ago. The Elvin messaging
server has evolved into a content-based message router and while moving from version 3 to
version 4, it has had a security layer added. This layer has a number of encryption
components, which can be applied optionally according to the application under development.
Breeze appears to be in the process of being swallowed by a larger project and it is unknown
how it will emerge. The workflow engine used in the experiment was version 0.5 Beta and a
decision had been made not to include security, as the process had been too complicated.
ODSI, it seems, may need to rely on Elvin’s security model as protection against intrusion,
denial of service and other security breeches. (Section 5.4 expands on the Elvin 4 security
model in more detail.)
MetaGlue was developed in 1999 and a number of projects have been started that build on
this infrastructure. One of the projects is concerned with security and privacy and a regulation
mechanism controls access to workspace information based on authentication. This is not the
heavy-duty approach needed to help MetaGlue transform from being a one-room research
model into an intensive enterprise environment.
The PKI approach addresses the lack of secure authentication inherent in multi-agent
systems. It introduces the concept of creator accountability with agent deployment. However,
security issues remain if the paradigm is extended beyond the firewall. A globally secure key
repository is required. There is a significant amount of investigation being undertaken into
mobile [9, 36] and multi-agent security and further research is necessary to address this issue
within the LiveSpaces environment.
MetaGlue is also a weak model from the perspective that, without the corporate insulation of
firewalls, access to the room is publicly available. This lack of an access control mechanism is
not desirable in most circumstances. There is a lot of research in access controls for agent
spaces and some type of sentinel is required in MetaGlue.
Terence Blackburn 85 Enterprise-enabled Ubiquitous WorkSpaces
Persistence and State Management
The other limitation that was highlighted was the lack of persistent storage in a number of
situations and this issue was cross-linked to the security limitations in several areas. The first
area where a persistent data storage facility would be useful is with the lightweight messaging
model. Disconnectedness and intermittent connectivity [36] are two communications modes
that will need to be accommodated in future workspaces and this will make a message
persistence mechanism mandatory. As an example, it may be important in some situations for
a notification to be received regarding the success or failure of an event. An ODSI workflow
may block or wait until there is human intervention if a notification status message is not
received. Elvin makes no guarantee of message delivery when clearly some messages need
to be delivered.
MetaGlue also has a security issue with the lack of a support mechanism for Catalog failure. If
the Catalog stops, the agent system would also fail. The catalog seems to store agent stub
information in a database but there is no documentation to explain the reasons behind this
storage facility. The documentation does make it clear that system failure will result from
Catalog failure. Can the Catalog Agent be mirrored or can a Doctor Agent start another
instance of the Catalog if it falls over? In either case, persistent storage of Catalog data will
assist in the process of restoring from a failure.
Tuple Spaces
The final area for further research is in tuple spaces (and it ties in some of the other areas of
future research). The tuple space is one of the fundamental components of the Stanford
project and the theory behind tuple spaces is solid, simple and powerful. A shared blackboard
with simple primitive data types allows any client software to post messages and read others.
The messages or tuples can persist for as long as they are needed before being garbage
collected. This provides a solution to the message persistence issue with Elvin and it may
also provide a data store for Catalog state in a MetaGlue agent system.
Developments in content-based messaging and multi-agent systems have partly addressed
the security issues but concerns remain. Both would benefit from a secure data repository. It
is possible that a content-based, shared memory model, such as a tuple space, could provide
a persistence mechanism for a content-based message routing architecture. It could
simultaneously provide a secure, global key repository for an extended, multi-agent
infrastructure. Further work is warranted in this area and particularly in the opportunities
afforded by tuple spaces, which were designed as a persistence mechanism.
Possibly the most interesting subject for research is the concept of mixing elements from the
architectures mentioned in this thesis to create new components for experimenting with future
workspaces. Ingredients in these hybrid architectures would include messaging engines, tuple
Terence Blackburn 86 Enterprise-enabled Ubiquitous WorkSpaces
spaces, workflow engines, ontology servers and agent systems. For example, multiple tuple
spaces could form the backbone for a set of interactive workspaces and a messaging server
could be used as the communications medium. These workspaces could all host different
meetings that interact on a level to support collaboration, information passing and distributed
work processes to achieve a common goal. How would these work activities be synchronised
across multiple workspaces in accordance with enterprise policies? Coordinating these hybrid
environments would increase the complexity of issues such as adaptivity, security and state
management, particularly if a person existed physically in one environment and virtually in
another. This could also be confusing for issues such as context awareness.
Agents could be used to manage access to the tuple spaces and, with a small code footprint,
these workspaces could be installed on hand held devices. This would decouple workspaces
from static rooms and buildings and enable more flexible mobile [9, 36] environments. In this
manner, we may be able to create persistent workspaces.
Research has been undertaken that explores methods for utilising tuple spaces to try and
solve some of the security problems experienced with multi-agent models [23-6]. Some of
these mechanisms rely on access control mechanisms and strict policy enforcement. Part of
this work also includes the concept of budgets where access to a resource is only permitted if
there is a positive budget. Another consideration is the plethora of different policies that would
exist in a normal distributed heterogeneous enterprise system. What sort of security
mechanism would cope with such diversity?
Client software for tuple spaces has a 15K footprint and this makes them candidate
infrastructures for PDAs and other handheld devices. They could be used as a
communication mechanism where objects could be passed to mobile phones, kitchen
appliances or watches. They could allow a richer set of features on small devices in a
workspace and facilitate communication between all types of enterprise computing devices.
Further Case Studies
When the LiveSpaces infrastructure is stable, it would be useful to consider further case
studies in various other domains. This would enable enterprise characteristics to be perceived
under different circumstances. In particular, military environments undertake considerable
planning activities, which are conducted across multiple workspaces. This would be an ideal
environment to investigate collaboration and synchronisation. Large software projects are
subject to regular reviews and experiments in this domain would enable inquiry into workflow
execution and business process orchestration.
Terence Blackburn 87 Enterprise-enabled Ubiquitous WorkSpaces
6. Conclusions
Research is often built on the shoulders of previous work and this is our approach with the
LiveSpaces experimental test bed. “Enterprise-enabled ubiquitous workspaces” is a very
important and stimulating area in which to conduct research. It is a field that has attracted a
number of institutions such as Sony, Stanford and MIT and their areas of focus have included
new display devices, novel interface technologies, holistic security mechanisms and
enterprise workflow. However, there appears to be little work in the area of creating
workspaces that have the technological eyes and ears of the MIT iRoom, the interactive and
display capabilities of Stanford’s WorkSpace and the enterprise focus of DSTC’s research.
Our aim for this project, then, was to integrate some of these components into a higher order
structure to support enterprise goals and objectives expressed as business processes.
We started out by conducting an extensive review of the existing literature and analysing the
research initiatives in this field. Work is being undertaken with human computer interfaces in
the Sony laboratories and the European Disappearing Computer Project has thrusts in many
original directions. We decided to examine two of the Disappearing Computer projects in
more detail. The Ambient project at GMD in Germany has embedded technology into room
elements such as tables and chairs and these can be used for collaborative work. The
University of Aarhus in Denmark has pushed the enterprise workspace boundaries by
creating a real time distributed 3D collaborative work environment. The US government,
through its agencies, funds an enormous amount of research and two of these programs are
the Intelligent Room at MIT and the Interactive WorkSpaces project at Stanford University.
Both of these programs focus on human/environment interaction but their respective
approaches are quite different. Research into enterprise requirements for ubiquitous work
environments is partially funded by the Australian government through DSTC in Queensland
and they have created a number of products that address some aspects of enterprise work
processing. Another significant source of Australian government funding for research is
through the Department of Defence’s DSTO and it is through their association with the
University of South Australia that we are conducting the LiveSpaces project in the e-World
laboratory.
We selected the MetaGlue infrastructure from MIT and the ODSI architecture from DSTC as
the foundations for our research.
The aim of the case study in this project was to try and identify the
issues and problems that result from building enterprise workspaces by
creating a hybrid infrastructure from the two architectures.
Terence Blackburn 88 Enterprise-enabled Ubiquitous WorkSpaces
The most notable results from this work highlight the importance of the different workspace
characteristics. We had preconceived ideas of how attributes such as collaboration and
context awareness fitted workspace models but it seems that there are more fundamental
issues that need to be addressed to support the type of enterprise work environments we
wish to research.
The major conclusions from this thesis are summarised in the following bullets.
o Context awareness is required to underpin the move from keyboard/mouse interfaces
to new ways of interacting with technology such as gesture and speech
o Multiple, distributed enterprise workspaces will require higher orders of support for
collaborative workflow execution and this will be underpinned by real time
synchronisation and process orchestration
o A distributed memory model may support coordination across multiple workspaces
and domains and tuple spaces could provide an appropriate mechanism
o Current security models are inadequate to cope with new hybrid enterprise
workspace structures that may include agent systems, messaging engines, peer to
peer infrastructures, client server models and tuple spaces
o The fundamental building block for these future workspaces will be state
management, an activity that will include state capture, replication, persistence and
retrieval
Preliminary results suggest that there is merit in pursuing this avenue of research. The
resulting integrated framework highlighted several potential weaknesses, for example, more
work is required to integrate the respective failure mechanisms to create a more manageable
and predictable architecture. However, it is also important to consider how hybrid
infrastructures can be utilised within an enterprise by illustrating with a real world example.
Technology is utilised by an individual in a workspace to increase productivity and this could
be expressed as faster, smarter or higher quality work. Workspaces may contain multiple
individuals (or no individuals where virtual presence is employed) and technology in an
enterprise-enabled workspace can be leveraged to create higher levels of collaboration and
workflow processing. As an example, software production enterprises are required to conduct
regular software reviews. These will often take the form of a structured meeting where
individuals will have roles and activities will be predefined, for example, one person may be
appointed to paraphrase the code that is being reviewed. In our future workspace, the room
can be initialized to recall the state of the room when the previous meeting was saved, the
displays can retrieve the appropriate code files for the designated paraphraser, the room will
be aware of the people involved in the meeting, it can automatically connect to the
appropriate enterprise data sources, code review policies can be displayed, the correct
Terence Blackburn 89 Enterprise-enabled Ubiquitous WorkSpaces
workflows can be activated, monitoring applications can be invoked, security mechanisms can
be installed, peripherals can be initialised and so on. This setting can be created
automatically by retrieving the required state and established the environment according to
the contextual parameters. This will facilitate more efficient process orchestration and
workflow implementation.
Work will continue on further defining and validating requirements for architectures and
software infrastructure for future work environments of the type outlined in this project. The
LiveSpaces environment will be enhanced to support a greater range of environmental
interfaces such as interactive display devices, augmented reality interfaces and dialog
interfaces. Experiments will be conducted with Stanford’s iROS to investigate the use of
tuples spaces for enhanced display, interaction management in multidisplay, multi-user
environments and shared memory models for distributed workspaces.
Further case studies will be undertaken to address enterprise-wide aspects related to the
deployment and use of interactive workspaces. Of specific interest will be issues related to
the orchestration and synchronization of workspace activities, information management and
augmentation resulting from the inclusion of additional enterprise services such as simulation.
Case studies will be conducted in the domains of software production, medical research and
future military command and intelligence environments.
We have set the groundwork for research in this area by creating the foundations for the
LiveSpaces experimental test bed. This work will be extended by researchers with projects
that explore other aspects of the LiveSpaces environment, which will, in turn, become an
enterprise-enabled ubiquitous workspace.
Terence Blackburn 90 Enterprise-enabled Ubiquitous WorkSpaces
References
[1] AO, X., MINSKY, N. and NGUYEN, T. (2000) A Hierarchical Policy Specification Language
and Enforcement Mechanism for Governing Digital Enterprises, Rutgers University, New
Brunswick, NJ 08854 USA.
[2] BOND, A. (2001) ODSI: Enterprise Service Co-ordination, available at
www.dstc.edu.au/Research/Projects/Integrator/documents/DOA-abstract.htm last visited June
2002.
[3] BOND, A. (2001) Open Distributed Services Infrastructure ODSI, White Paper, available at
http://www.dstc.edu.au/Research/Projects/Integrator/documents/whitepaper.pdf
[4] BOND, A. (2001) Service Composition for Enterprise Programming, Working Conference
on Complex and Dynamic Systems Architecture, 2001.
[5] BROOKS, R. with contributions from COEN, M., DANG, D., DEBONET, J., KRAMER, J.,
LOZANO-PEREZ, T., MELLOR, J., POOK, P., STAUFFER, C., STEIN, L., TORRANCE, M.
and WESSLER, M. (1997) The Intelligent Room Project, Proc. Second International Cognitive
Technology Conference, Aizu, Japan.
[6] CARZANIGA, A., ROSENBLUM, D. and WOLF, A. (2000) Achieving Scalability and
Expressiveness in an Internet-Scale Event Notification Service, Proc. Nineteenth ACM
Symposium on Principles of Distributed Computing, Portland, OR, July 2000.
[7] CHANG, A. (2001) A Help System for the Intelligent Room, Masters thesis, Massachusetts
Institute of Technology, Cambridge, MA, USA available at
http://sow.lcs.mit.edu/2001/proceedings/changa.pdf
[8] COEN, M., PHILLIPS, B., WARSHAWSKY, N., WEISMAN, L., PETERS, S. and FININ, P.
(1999) Meeting the Computational Needs of Intelligent Environments: The MetaGlue System,
Proc. MANSE'99. Dublin, Ireland.
[9] DASGUPTA, P., MOSER, L. and MELLIAR-SMITH, P. (2000) The Security Architecture
for MAgNET: A Mobile Agent E-commerce System, University of California, Santa Barbara,
CA USA.
[10] FITZPATRICK, G., MANSFIELD, T., KAPLAN, S., ARNOLD, D., PHELPS, T. and
SEGALL, B. (1999) Augmenting the Workaday World with Elvin, Proc. ECSCW’99,
Copenhagen, 431-451, Kluwer Academic Publishers.
Terence Blackburn 91 Enterprise-enabled Ubiquitous WorkSpaces
[11] GAJOS, K. (2001) Rascal - a Resource Manager For Multi Agent Systems In Smart
Spaces. Proc. CEEMAS’01, Kraków, Poland, 2001.
[12] HAMMOND, T., GAJOS, K., Davis, R. and SHROBE, H. (2002) An Agent-Based System
For Capturing And Indexing Software Design Meetings. Proc. The International Workshop On
Agents in Design, Cambridge, MA, August 2002.
[13] HANSSENS, N., KULKARNI, A., TUCHINDA, R. and HORTON, T. (2002) Building
Agent-Based Intelligent Workspaces, Proc. The International Workshop on Agents for
Business Automation. Las Vegas, NV, 2002.
[14] HE, Q., SYCARA, K. and FINN, T. (1988) Personal security agent: Kqml-based pki. Proc.
Second International Conference on Autonomous Agents, May 1998.
[15] JOHANSON, B. and FOX, A. (2002) The Event Heap: A Coordination Infrastructure for
Interactive Workspaces, Stanford University, Serra Mall, Stanford, CA. USA.
[16] JOHANSON, B., FOX, A., HANRAHAN, P. and WINOGRAD, T. (2000) Integrating
Information Appliances into an Interactive Workspace, IEEE Computer Graphics and
Applications, May/June 2000.
[17] JOHANSON, B., FOX, A., HANRAHAN, P. and WINOGRAD, T. (2000) The Event Heap:
An Enabling Infrastructure for Interactive Workspaces CS Tech Report CS 2000.
[18] JOHANSON, B., FOX, A. and WINOGRAD, T. (2002) The Interactive Workspaces
Project: Experiences with Ubiquitous Computing Rooms, In press for IEEE Pervasive
Computing Special Issue on Overviews of Real-World Ubiquitous Computing Environments,
April-June 2002.
[19] JOHANSON, B., PONNEKANTI, S., KICIMAN, E., SENGUPTA, C. and FOX, A. (2001)
System Support for Interactive Workspaces, Unpublished, available at
http://graphics.stanford.edu/papers/iwork-sosp18/
[20] KAGAL, L., FININ, T. and JOSHI, A. (2001) Moving from Security to Distributed Trust in
Ubiquitous Computing Environments, University of Maryland Baltimore.
[21] LANGHEINRICH, M., COROAMA, V., BOHN, J. and ROHS, M. (2002) As we may live –
Real-world implications of ubiquitous computing, Swiss Federal Institute of Technology, ETH
Zurich, 8092 Zurich, Switzerland.
Terence Blackburn 92 Enterprise-enabled Ubiquitous WorkSpaces
[22] Linda Group Technical Reports, (1996) available at http://www.cs.yale.edu/Linda/tech-
reports.html
[23] MINSKY, N., MINSKY, Y. and UNGUREANU, V. (2000) Making Tuple Spaces Safe for
Heterogeneous Distributed Systems.
[24] MINSKY, N. and UNGUREANU, V. (2000) Regulated Coordination in Open Distributed
Systems, Rutgers University New Brunswick, NJ, 08903 USA.
[25] MINSKY, N., MINSKY, Y. and UNGUREANU, V. (2000) Safe Tuplespace-Based
Coordination in Multi Agent Systems, Rutgers University, New Brunswick, NJ, 08903 USA.
[26] MINSKY, N. and UNGUREANU, V. (2000) Law-Governed Interaction: a Coordination and
Control Mechanism for Heterogeneous Distributed Systems, Rutgers University, New
Brunswick, NJ, 08903 USA.
[27] OH, A., FOX, H., Van KLEEK, M., ADLER, A., GAJOS. K., MORENCY, L. and
DARRELL, T. (2002) Evaluating Look-to-Talk: A Gaze-Aware Interface in a Collaborative
Environment, Proc. CHI 2002. Minneapolis, MN, 2002.
[28] OH, A., TUCHINDA, R. and WU, L. (2001) MeetingManager: A Collaborative Tool in the
Intelligent Room, Student Oxygen Workshop, Cambridge, MA, 2001.
[29] ØRBAEK, P., MOGENSEN, P. and GRØNBAEK, K. (2001) Interaction Techniques for
Spatial Organization of Digital and Physical materials - the Topos Approach, Position paper
for the first Danish HCI Symposium November 2001, Aarhus, Denmark. 51-52.
[30] PHILLIPS, B. (1999) MetaGlue: A Programming Language for Multi-Agent Systems.
M.Eng. Thesis. MIT, Cambridge, MA. available at
http://www.ai.mit.edu/projects/iroom/publications/brenton-thesis.pdf
[31] POGGI, A., RIMASSA, G. and TOMAIUOLO, M. (2001) Multi-User and Security Support
for Multi-Agent Systems, Università di Parma, Parma, Italy.
[32] RAMDUNNY, D., DIX, A. and RODDEN, T. (1998) Exploring the design space for
notification servers. Proc. CSCW’98.
Terence Blackburn 93 Enterprise-enabled Ubiquitous WorkSpaces
[33] SEGALL, B., ARNOLD, D., BOOT, J., HENDERSON, M. and PHELPS, T. (2000) Content
Based Routing with Elvin4, The University of Queensland, St Lucia, 4072, Australia, available
at http://elvin.dstc.edu.au/doc/papers/auug2k/auug2k.pdf
39
[34] STORMER, H., KNORR, K. and ELOFF, J. (2000) A Model for Security in Agent-based
Workflows, Privacy in the Net 24 INFORMATIK * INFORMATIQUE June 2000.
[35] STREITZ, N., TANDLER. P., MULLER, C. and KONOMI, S. (2001) Roomware: Towards
the Next Generation of Human-Computer Interaction based on an Integrated Design of Real
and Virtual Worlds, In: J. Carroll (Ed.): Human-Computer Interaction in the New
Millenium, Addison-Wesley, 2001. pp. 553-578.
[36] SUTTON, P., ARKINS, R. and SEGALL, B. (2001) Supporting Disconnectedness -
Transparent Information Delivery for Mobile and Invisible Computing, The University of
Queensland, Brisbane QLD 4072 Australia.
[37] THOMPSON, P. (2002) Ruple: an XML Space Implementation, available at
http://www.idealliance.org/papers/xmle02/dx_xmle02/papers/04-05-03/04-05-03.html
[38] TRIPATHI, A., AHMED, T., KUMAR, R. and JAMAN, S. (2002) Design of a Policy-Driven
Middleware for Secure Distributed Collaboration, University of Minnesota, To appear in Proc.
International Conference on Distributed Computing Systems 2002.
[39] TUCHINDA, R. (2002) Access Control Mechanism for Intelligent Environments, Bitstream
- MAY 2002 27 Artificial Intelligence.
[40] TUCHINDA, R. (2002) Security and Privacy in the Intelligent Environment,
Massachusetts Institute of Technology, Cambridge, Massachusetts 02139.
[41] Web site for Elvin, available at http://elvin.dstc.edu.au/ last accessed June 2002.
[42] Web site for Elvin, Elvin Subscription Language, available at
http://elvin.dstc.edu.au/doc/esl4.html last accessed August 2002.
[43] Web site for Breeze workflow products, available at http://www.dstc.edu.au/ last
accessed August 2002.
[44] Web site for IBM’s alphaWorks Tspaces server, available at
http://www.alphaworks.ibm.com/tech/tspaces last visited June 2002.
Terence Blackburn 94 Enterprise-enabled Ubiquitous WorkSpaces
[45] Web site for iROS and Event Heap, Stanford Interactive Workspaces, available at
http://www.graphics.stanford.edu/projects/iwork/ last visited June 2002.
[46] Web site for Intrinsyc, available at http://www.intrinsyc.com/ last visited June 2002.
[47] Web site for JavaSpaces(TM), Service Specification, available at
http://wwws.sun.com/software/jini/specs/jini1.2html/js-spec.html last visited June 2002.
[48] Web site for Stryon, available at http://www.stryon.com/ last visited June 2002.
[49] WEISER, M. (1991) The Computer for the 21st Century, Scientific American, Sept 1991.
[50] WELLS, G. (2001) A Programmable Matching Engine for Application Development in
Linda, Ph.D. Thesis. University of Bristol, England.
[51] WINOGRAD, T. (1999) Towards a Human-Centered Interaction Architecture, Working
paper for Stanford project on Interactive Workspaces, available at
http://graphics.stanford.edu/projects/iwork/papers/humcent/index.html
[52] WONG, H. and SYCARA, K. (1999) Adding Security and Trust to Multi-Agent Systems,
Proc. Autonomous Agents '99 Workshop on Deception, Fraud, and Trust in Agent Societies,
May 1999, pp. 149 - 161.
[53] ARK, W. and SELKER, T. (1999) A look at human interaction with pervasive computers,
IBM Systems journal, Vol 38, N4, 1999
[54] STREITZ, A., GEISSLER, J., HOLMER, T., KONOMI, S., MULLER-TOMFELDE, C.,
REISCHL, W., REXROTH, P., SEITZ, P. and STEINMETZ, R. (1999) I-LAND: An interactive
Landscape for Creativity and Innovation, Proc of ACM Conference on Human Factors in
Computing Systems, Pittsburgh, USA, ACM Press New York. pp. 120-127.
[55] BUSCHER, M., CHRISTENSEN, M., MOGENSEN, P., ORBAEK, P. and SHAPIRO, D.
(2000) Creativity, Complexity and Precision: Information Visualisation for (Landscape)
Architecture, Proc Conf. On Information Visualisation (InfoVis 2000), Salt Lake City, IEEE
Press
Terence Blackburn 95 Enterprise-enabled Ubiquitous WorkSpaces
Appendix A
MetaGlue Agent Source Code
Speech agent
public class SpeechAgent extends ManagedSpeechAgent implements Speech,
RemoteTagsListener
{
public static String channel = "myproject.speech";
ExplorerWrapper explorer;
public SpeechAgent() throws RemoteException
{
loadGrammar("myprojects.test.explorer"); // "explorer" is the name of the grammar file
say("We have loaded the Grammar"); // a diagnostic line
explorer = (ExplorerWrapper)reliesOn
("agentland.iroom.application.explorer.ExplorerWrapper", "cis214570");
}
SendAgent
public class SendAgent extends ManagedAgent implements Send
{
Processx10 x ;
Notifier not ;
public SendAgent() throws RemoteException
{
try
{
x = (Processx10)reliesOn ("myprojects.test.Processx10"); // starting an agent
not = (Notifier)reliesOn ("agentland.util.Notifier"); // setting up a publish channel
}
catch(Exception e){e.printStackTrace();
}
}
public void send(String s) throws RemoteException
{
not.notify(new Secret(getAgentID(), "test.channel", s)); // sending on test channel
}
Terence Blackburn 96 Enterprise-enabled Ubiquitous WorkSpaces
ReceiveAgent
public class ReceiveAgent extends ManagedAgent implements Receive
{
public ReceiveAgent() throws RemoteException
{
notifier = (Notifier)reliesOn("agentland.util.Notifier");
notifier.addSpy(getAgentID(), "test.channel"); // subscribing to "test"
}
public void tell(Secret secret) throws RemoteException
{
System.out.println ("channel = "+ secret.name());
System.out.println ("message = "+ secret.details());
System.out.println ("agentID = "+ secret.getSource().toString());
}
}
ExplorerTestAgent
public void sendElvinMessage(String s) throws RemoteException
{
try
{
Producer prod = new Producer(new ElvinURL("elvin://river")) ;
Notification notif = new Notification() ;
notif.put("message = ", s) ;
notif.put("demo","from terence ") ;
notif.put("pi = the following: ", 3.14);
prod.notify(notif);
prod.getConnection().close();
} // end of elvin code to send or produce a message
catch(Exception e)
{
e.printStackTrace();
}
}
Terence Blackburn 97 Enterprise-enabled Ubiquitous WorkSpaces
public ExplorerTestAgent() throws RemoteException
{
try
{
Subscription sub = new Subscription("require(demo)") ;
sub.addNotificationListener (this) ;
Consumer cons = new Consumer(new ElvinURL("elvin://river")) ;
cons.addSubscription(sub) ;
System.out.println("waiting for events...") ;
}
catch(Exception e)
{
e.printStackTrace() ;
}
}
public void notificationAction(Notification event)
{
System.out.println(event + "terence's message...");
}
ExplorerAgentWrapper
public void acceptedTagsResult(Hashtable tags)
{
try
{
Enumeration keys = tags.keys( );
Enumeration el = tags.elements( );
while(keys.hasMoreElements( ))
if(tags.containsKey("rule"))
{
if(tags.get("rule").equals("open"))
{
explorer.startApplication( );
explorer.gotoURL("www.unisa.edu.au");
Thread.sleep(10000);
explorer.goHome( );
}
Terence Blackburn 98 Enterprise-enabled Ubiquitous WorkSpaces
}
}
catch(Exception e){e.printStackTrace( );}
}
Processx10Agent
public void doX10( )
{
try
{
x10 = new x10Devices ( ) ;
x10.turnOn ('e', 5) ;
}
catch(Exception e) { e.printStackTrace( ) ; }
}
x10Devices
public boolean turnOn(char housecode, int module) throws RemoteException
{
try
{
house = (byte)housecode;
mod = (byte)module ;
x10 = new SerialX10 ( ) ;
System.out.println ("house = " + house) ; // diagnostic code
System.out.println ("mod = " + mod) ; // diagnostic code
x10.open ("COM2") ;
x10.turnOn(house, mod) ;
x10.close() ;
}
catch (NoSuchPortException n)
{
System.out.println ("No such port " + n.getMessage()) ;
}
catch (PortInUseException p)
{
System.out.println ("Port in use " + p.getMessage()) ;
}
Terence Blackburn 99 Enterprise-enabled Ubiquitous WorkSpaces
catch (java.io.IOException i)
{
System.out.println ("IO exception " + i.getMessage()) ;
}
return false ;
} // end turnOn(char int)
StartWfClient
public void start (String s)
{
StringTokenizer tokens;
String[] cmds;
int i = 0;
try
{
tokens = new StringTokenizer(s); // adds cmd line params from string s
cmds = new String[tokens.countTokens( )]; // cmds is now an array of tokens
wf = new WfClient () ;
wf.run(cmds) ; // invoke the run method from WfClient with the start params
}
catch(Exception e)
{
System.out.println ("We have a problem, Housten! " + e.getMessage()) ;
e.printStackTrace();
}
}
WfClient
public static void run(String[] args) throws ServerException
{
args = Config.setProperties(args);
if (args.length < 1)
{
usage("You must supply a workflow to run.");
}
Map result;
Terence Blackburn 100 Enterprise-enabled Ubiquitous WorkSpaces
try
{
Server.setName("breeze-" + System.currentTimeMillis());
if ("--shutdown".equals(args[0]))
{
invoke("Wf Shutdown", new HashMap());
}
else if ("--status".equals(args[0]))
{
Map dict = new HashMap();
if (args.length > 1)
{
dict.put("Wf.ID", args[1]);
}
invoke("Wf Status", dict);
}
else if ("--reap".equals(args[0]))
{
Map dict = new HashMap();
dict.put("Wf.ID", args[1]);
invoke("Wf Reap", dict);
}
else
{
String cmd = "Wf Create";
int i = 0;
if ("--spawn".equals(args[0]))
{
cmd = "Wf Spawn";
i++;
}
Map dict = new HashMap();
dict.put("WfName", args[i++]);
for (; i < args.length; i++)
{
int j = args[i].indexOf('=');
if (j < 1)
{
usage("Missing '=' or name in parameter argument: " + args[i]);
}
Terence Blackburn 101 Enterprise-enabled Ubiquitous WorkSpaces
String name = args[i].substring(0, j);
Object value = args[i].substring(j+1);
try
{
value = new Integer((String) value);
}
catch (NumberFormatException e)
{
// ignore it, it's probably a string
}
dict.put(name, value);
}
invoke(cmd, dict);
}
}
finally
{
Server.dispose();
}
}
ODSI Source Code
test_client
def start_workflow():
peer = get_peer(PEER, NETWORK)
ret = peer.rpc('WfManager start', WfName='running_test')
def msg(sub, msg, insec, rock):
id = msg['MSG.ID']
reply = msg['MSG.reply']
m = msg['MSG.msg']
text.insert(END, '\nID = %s\nMessage = %s\nReply = %d\n' % (id, m, reply))
if reply:
m = list(m)
m.reverse()
m = ''.join(m)
text.insert(END, '\nSending reply of %s in %d seconds\n' % (m, TIMEOUT))
send_reply(id, m, TIMEOUT)
def send_reply(id, msg, timeout=None): # timeout is in seconds
if timeout:
Terence Blackburn 102 Enterprise-enabled Ubiquitous WorkSpaces
t = threading.Timer(timeout, send_reply, [id, msg])
t.start()
else:
n = {'MSG.reply': id, 'MSG.msg': msg}
conn.notify(n)
client = elvin.client(elvin.ThreadedLoop)
conn = client.connection()
conn.set_discovery(0)
conn.append_url(elvin_server)
conn.open()
sub = conn.subscribe("require(MSG.ID)", 1, None)
sub.add_listener(msg, conn)
sub.register()
root = Tk()
f = Frame(root)
yscroll = Scrollbar(f)
yscroll.pack(side=RIGHT, fill=Y)
xscroll = Scrollbar(root, orient=HORIZONTAL)
text = Text(f, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)
text.pack(side=LEFT, fill=BOTH, expand=1)
f.pack(side=TOP, expand=1)
xscroll.pack(side=BOTTOM, fill=X)
start_workflow()
mainloop()
running_test
import elvin, time, sha, threading, copy
from service import service
from misc import *
elvin_server = 'elvin://river'
class running_test(service):
reflect = copy.deepcopy(service.reflect)
reflect.add_method('send',
In = [('msg', 'string')])
Terence Blackburn 103 Enterprise-enabled Ubiquitous WorkSpaces
reflect.add_method('query',
In = [('msg', 'string')],
Out = [('reply', 'string')])
def __init__(self, peer, **args_d):
apply(service.__init__,(self, peer),args_d)
self.recieved = threading.Event() # event to check for reply
self.reply = None
#start up an elvin connection
self.client = elvin.client(elvin.ThreadedLoop)
self.conn = self.client.connection()
self.conn.set_discovery(0)
self.conn.append_url(elvin_server)
self.conn.open()
def send(self, msg, **args_d):
n = {'MSG.ID': sha.sha(time.asctime()).hexdigest(),
'MSG.reply': 0, 'MSG.msg': msg}
self.conn.notify(n)
self.Succeeded()
def query(self, msg, **args_d):
id = sha.sha(time.asctime()).hexdigest()
sub = self.conn.subscribe('MSG.reply == "%s"' % id)
sub.add_listener(self.__reply, self.conn)
sub.register()
n = {'MSG.ID': id, 'MSG.reply': 1, 'MSG.msg': msg}
self.conn.notify(n)
# send a running response to ODSI
self.Running()
while not self.recieved.isSet():
self.recieved.wait(1)
Terence Blackburn 104 Enterprise-enabled Ubiquitous WorkSpaces
self.recieved.clear()
self.Succeeded(reply = self.reply)
def __reply(self, sub, msg, insec, rock):
self.reply = msg['MSG.msg']
self.recieved.set()
Terence Blackburn 105 Enterprise-enabled Ubiquitous WorkSpaces