This document is meant to provide a bit more information about the system as well as providing brief information on what supporting services (needed to run some of the transformers) are included and how to start them.
Our developed toolkit is based on a shared dataspace, a TupleSpace called Equip. It allows us to share components, their properties and links between these properties. A set of configuration facilities exists to modify the arrangement of components and the links between these - the editors.
Once properties associated with transformers have been placed in the shared dataspace they become available to users. Transformers are linked together by binding the various properties together. Essentially, two properties of the same class (e.g. text, id, URL) can be bound together and whenever a property value changes all of the properties bound to that property change. This allows the chaining together of transformers. In order to compose arrangements of transformers needed to link devices the toolkit currently provides a few different initial ways of binding properties together, one of which is the Jigsaw Editor. Read more about transformers in the Understanding and Using the Tangible Toolbox deliverable.
The jigsaw editor uses a screen based graphical display. On the upper part of the screen the editor shows the currently available transformers, each represented as a jigsaw piece. These are dynamically updated whenever a new component is shared within the data space. On the middle part of the screen is the workspace where different transformers are linked. By attaching the transformer representing the kitchen cupboard to the SMS sender transformer, an SMS is received each time a grocery is missing in the cupboard. The internal change of a property, is highlighted in the jigsaw piece thus the user gets a view of the activities within the home. Read more about this editor and three more in the Understanding and Using the Tangible Toolbox deliverable.
Also, some of the transformers require external services - for instance, our implemented SMS sending transformer requires a 3rd party mobile phone controller software running on a machine with a mobile phone connected through a serial port.
The core of the component transformer model is a shared data space platform that allows information to be shared across a range of different devices. The platform used to share this information is called Equip. The EQUIP platform provides an active distributed real-time data sharing platform that supports the sharing of arbitrary data among heterogeneous distributed applications. This embraces applications written in both C++ and Java and allows applications to make selected information available to other applications through a standard set of simple interfaces. Once internal application data has been made available to the platform updates and alterations to the shared state are propagated to all interested applications using EQUIP. The platform extends work on tuple spaces and shared virtual environments to provide an active shared state infrastructure that is equally accessible from large virtual environments and small handheld devices. Read more about Equip at Chris's Equator Pages.
For running the ACCORD system there are three main processes which are started by the equip_services.bat file (as explained in the Quick Start starting). These are the
This chapter covers how to run the included support services implemented during the project. Most of them rely on external hardware/software/web services and are therefore supplied as is, hopefully easily modified for other hardware/software.
This is an API client to post to Movable Type blogs.It includes methods for posting files locally to the blog. It uses MovableTypes MetaWeblog- and Blogger-supporting XMLRPC API. This is currently used by the BlogPublisher (javadoc) transformer. This is just a support class, nothing needed to be started.
The ACCORD project used a bubble tower (see picture in Understanding and Using the Tangible Toolbox deliverable) as an ambient display device. Included is java source for a TINI microcontroller receiving commands via a socket, which controls some digital output pins on the TINI. These have been connected to relays controlling the air pump and three (red, green, blue) light bulbs (electronics done by SICS, not available commercially as far as we know).This is currently used by the BubbleTower (javadoc) transformer. Included is a also a binary (.tini) file ready for download to a TINI. See TINI site on how to get it up and running.
To create an SMS bridge (used by the SMSSend and SMSReceive transformers), a server called gsmd.tcl was written (requires tcl). It uses the gnokii tools to control a mobile phone via serial cable. For additional gnokii requirements, see the gnokii documentation.
To start the server on the machine with phone/gnokii, type gsmd.tcl in the accord/apps/services/gsm/ directory (for optional parameters, such as specifying serial port, type gsmd.tcl --help).
To browse categorized news articles from the web (used by the News transformer), there is a java application called MoreOverCache which retrieves the categorization data from MoreOver. This data, a cache, is then used by the News transformer.
To generate the cache on the machine which will run the News transformer, run cache.bat in the accord/apps/services/news/bin/ directory (this .bat file contains the path to where the news cache is generated).
A minimal web browser for PDAs, capable of displaying text and images (used in conjunction with the PocketDisplay transformer) is available as java 1.1 application receiving URLs via a socket from PocketDisplay transformer.
How to run the PocketDisplayClient depends on platform and jre. Within ACCORD, PocketDisplayClient has been run on PocketPC2002 os on an ipaq 3650 with the Joede Java Runtime. This involves installing Joede, and then copying ipaq_app.jar file to the ipaq (in our case, the My Device/accord directory) and creating a start link simliar to the pdclient.exe.lnk (changing the ip address and port number arguments in this file to respond to that of the computer running the PocketDisplay transformer) which in our case was copied to the My Device/Windows/Start Menu ipaq directory.
A tcl server watching a web server traffic log file has been used in order for the SICSWebHits transformer to publish webserver hit data it retrieves via a socket from this server.
To run the server, run the log_watch.tcl in the accord/apps/services/webwatch/ directory (for additional arguments, such as log file path, run log_watch.tcl --help).
For completeness, here follows a list of all implemented transformers with a brief explanation. These have been coded during different stages of the project and have not necessarily used the same conventions, even though this has been our intention.
|
AddToList |
|
|
BlogPublisher |
|
|
BubbleTower |
|
|
Camera |
|
|
GroceryAlarm |
|
|
HallwayTable |
|
|
KitchenTableDisplay |
|
|
MailReceive |
|
|
MailToBubbles |
|
|
Motion |
|
|
News |
|
|
PocketDisplay |
|
|
Reminder |
|
|
SICSWebHits |
|
|
SmartItsDefault |
|
|
SMSReceive |
|
|
SMSSend |
|
|
Speech |
|
|
TableCommands |
|
|
TextToWeb |
|
|
TimerGate |
|
|
WebHitsToBubbles |
|
|
WebToText |