Keywords: Mobile computing, sentient computing, context-aware computing, location sensors, resource monitoring, middleware, spatial indexing, CORBA, visualisation, HCI
We present a novel implementation of VIA that consists of a thin software layer over the CLAN network. Performance of CLAN VIA is comparable with native solutions. The software implementation is highly flexible: we show that performance optimisations and extensions to the standard are easy to add.
The CLAN network has a very simple network model with very low overhead, that we believe scales well to very high bandwidths and large numbers of endpoints. These desirable properties are thus inherited by CLAN VIA.
There is a need to define a global network infrastructure to make all these services operate seamlessly and yet be compatible with systems based on IPv4.
This talk examines proposed enhancements to IPv6 to allow it to become a key part of a new Global Network Infrastructure
In this paper we investigate new tools and techniques which address the problem of application-level web security. We (i) describe a scalable structuring mechanism facilitating the abstraction of security policies from large web-applications developed in heterogenous multi-platform environments; (ii) present a tool which assists programmers develop secure applications which are resilient to a wide range of common attacks; and (iii) report results and experience arising from our implementation of these techniques.
In this paper we present a technique that reduces the overhead of the application/device-driver interface, hence shifting the tradeoff towards a soft implementation. We show how this technique is used to improve the performance of the CLAN user-level network interface. Results given show that the performance of this interface exceeds that of other technologies that provide a direct user-level interface to the hardware, whilst retaining the flexibility and simplicity of a software interface.
We have approached the challenge of implementing a wide-area, in-building AR system in two different ways. The first uses a head-mounted display connected to a laptop, which combines sparse position measurements from the Bat system with more frequent rotational information from an inertial tracker to render annotations and virtual objects that relate to or coexist with the real world. The second uses a PDA to provide a convenient portal with which the user can quickly view the augmented world. These systems can be used to annotate the world in a more-or-less seamless way, allowing a richer interaction with both real and virtual objects.
In this paper we introduce the grenade timer, an evolution of the watchdog timer that can place a hard upper bound on the amount of processor time that guest code may consume. Unlike its predecessor, it is resistant to malicious attacks from the software it controls; but its structure remains extremely simple and maps to very frugal hardware resources.
In this paper we present a new primitive for in-band synchronisation: the Tripwire. Tripwires provide a flexible, efficient and scalable means for synchronisation that is orthogonal to data transfer.
We describe the implementation of a non-coherent distributed shared memory network interface, with Tripwires for synchronisation. This interface provides a low-level communications model with gigabit class bandwidth and very low overhead and latency. We show how it supports a variety of communication styles, including remote procedure call, message passing and streaming.
The system has two phases: first we transform SAFL programs using meaning-preserving transformations to choose the area-time position (e.g. by resource duplication/sharing, specialisation, pipelining) while remaining a high-level specification. After this the FLaSH compiler maps the resultant SAFL program into hardware in a resource-aware manner, that is we map separate functions into separate functional units; functions which are called twice now become shared functional units - accessed by multiplexers and possibly arbiters. The current compiler outputs hierarchical RTL Verilog.
The first phase is user-guided. The second is completely automatic - it uses optimising compiler technology to insert arbiters for shared functional units and to insert intermediate registers (both on an `only when needed' basis). We justify SAFL as both amenable to transformation and facilitating an efficient translation to hardware.
The current compiler has been used to implement a small commercial processor; we achieve similar gatecounts to two previous RTL and netlist specifications but with around one tenth the source code.
The paper presents a classification and quantification of sensor information together with a description of a method for altering the behaviour of arbitrary terminal devices. It also presents a framework for ``programming with space'' which can associate space-related events with actions. Consideration is given to the applications made possible by such systems.
As computer literacy evolves from desirable to necessary for people from all backgrounds, computer professionals and academics are responsible for taking a long-term view on how best to educate the next few generations of computer users. Form shapes contents, so the influence of a clean yet expressive first language in establishing good mental models and programming habits should not be underestimated.
This paper discusses how Python, with its high level of abstraction and judicious balance of simplicity, conciseness and versatility, is an excellent choice to introduce the fundamental ideas of the art of programming.
The Cambridge RFT came top of their group and subsequently fourth overall in the Paris 1998 RoboCup small-size league. In the later stages of the competition the goalkeeper proved highly valuable, and enabled extended periods of play. Although it is difficult to provide empirical data to show the skill of a given team, or the effectiveness of its individual players, descriptions of the goalkeeper in use in a penalty shoot-out, and whilst in play against the CMU '98 team in the semi-final are provided.
This paper builds on a case study, of an anonymous auction between mistrustful principals with no trusted arbitrator, to introduce ``anonymous broadcast'' as a new protocol building block. This primitive is, in many interesting cases, a more accurate model of what actually happens during transmission. With certain restrictions it can give a particularly efficient implementation technique for many anonymity-related protocols.
A colour edge detector is presented, where hue difference is weighted more heavily than brightness difference. Seed points for region growing are derived from the colour edge image as the peaks in the associated Voronoi image. Regions are grown using gates on pixel colour relative to region central colour and region edge pixel colour. This permits regions to encompass shading gradients. Image edges act as hard barriers during region growing. A discrete feature based texture model is derived and then used to unify groups of smaller regions into extended textured regions.
The segmentation scheme is designed to facilitate image retrieval and has been tested on a corpus of over 40000 images and has been found to be robust.
Keywords: image segmentation, colour edge detection, textured region properties, region based image retrieval.
The hardware modules available are ATM video, ATM audio, ATM LCD tile, ATM disc brick and DEC Alpha workstations. The video module can accommodate four camera heads and can provide images at six different sizes for each. The audio module has four bidirectional channels and a range of sampling frequencies up to 48KHz. The display tile is based on a 640x480 active matrix display. The disc brick uses RAID-3 technology and provides 8Gbytes of storage.
The system has been deployed in the laboratory and some two hundred modules and switches are available for experimentation. For the time being, raw video is being used to make easier the development of applications which incorporate the use of agents.
The software platform consists of two components; an object oriented applications environment, and the applications themselves written in a scripting language called Tcl/Tk. The applications environment is a peer-to-peer architecture which uses active object to represent information sources, sinks, data converters and so on. Data can flow from module to module on connections between them. Connections between modules are simple, reliable and unbuffered. More complex connections are represented by special intermediate modules. Modules for providing basic agent features are available, ranging from simple motion and sound observers to gesture, speech and face recognition components. Applications can be prototyped rapidly and different combinations of features evaluated with ease.
Applications - Applications include a media server which simultaneously provides many channels at many sizes for viewing on a workstation or display tile.
A multi-way video phone uses four video streams and an audio stream between the corresponding parties. The cameras are used to provide head and shoulder and more general views into an office. Views of documents are available from a rostrum camera above the desk. Four microphones and speakers provide hands-free audio to any part of the office. In a conversation, all video streams are sent to the recipient who can choose what to watch at the largest size. Additionally, the streams can be sent to an agent which suggests or controls the way sizes are allocated to views. The decision is a combination of the amount of motion, where in the field of view the motion is taking place, together with some hysteresis to prevent flicking between scenes. It also incorporates the user's options on a per-application and per-office basis. When two corresponding parties operate in this way a total of 30 streams are sent across the ATM network.
The video mail application records all views so that subsequently the recipient can choose which (one or many) to view. This presents a high load on the storage system because each view must be recorded at maximum size as at that it is not known how it will be subsequently presented.
Finally, a hand tracker is shown where a two-stage algorithm starts by searching for a hand in a scene, and, having found it, draws an outline and attempts some gesture recognition.
The Medusa system is currently being used to develop a variety of algorithms suitable for use by agents ranging from simple ones which can provide ubiquitous service to all clients to complex ones which are invoked as required.
For comments, suggestions and further information please contact
us.
Copyright © 2001 AT&T Laboratories
Cambridge