263 research outputs found
First Smart Spaces
This document describes the Gloss software currently implemented. The description of the Gloss demonstrator for multi-surface interaction can be found in D17. The ongoing integration activity for the work described in D17and D8 constitutes our development of infrastructure for a first smart space. In this report, the focus is on infrastructure to support the implementation of location aware services. A local architecture provides a framework for constructing Gloss applications, termed assemblies, that run on individual physical nodes. A global architecture defines an overlay network for linking individual assemblies. Both local and global architectures are under active development
A methodology for developing and deploying distributed applications
We describe a methodology for developing and deploying distributed Java applications using a reflective middleware system called RAFDA. We illustrate the methodology by describing how it has been used to develop a peer-to-peer infrastructure, and explain the benefits relative to other techniques. The strengths of the approach are that the application logic can be designed and implemented completely independently of distribution concerns, easing the development task, and that this gives great flexibility to alter distribution decisions late in the development cycle
Node reliance : an approach to extending the lifetime of wireless sensor networks
A Wireless Sensor Network (WSN) consists of a number of nodes, each typically having a small amount of non-replenishable energy. Some of the nodes have sensors, which may be used to gather environmental data. A common network abstraction used in WSNs is the (source, sink) architecture in which data is generated at one or more sources and sent to one or more sinks using wireless communication, possibly via intermediate nodes.
In such systems, wireless communication is usually implemented using radio. Transmitting or receiving, even on a low power radio, is much more energy-expensive than other activities such as computation and consequently, the radio must be used judiciously to avoid unnecessary depletion of energy. Eventually, the loss of energy at each node will cause it to stop operating, resulting in the loss of data acquisition and data delivery. Whilst the loss of some nodes may be tolerable, albeit undesirable, the loss of certain critical nodes in a multi-hop routing environment may cause network partitions such that data may no longer be deliverable to sinks, reducing the usefulness of the network.
This thesis presents a new heuristic known as node reliance and demonstrates its efficacy in prolonging the useful lifetime of WSNs. The node reliance heuristic attempts to keep as many sources and sinks connected for as long as possible. It achieves this using a reliance value that measures the degree to which a node is relied upon in routing data from sources to sinks. By forming routes that avoid high reliance nodes, the usefulness of the network may be extended.
The hypothesis of this thesis is that the useful lifetime of a WSN may be improved by node reliance routing in which paths from sources to sinks avoid critical nodes where possible
A flexible, policy-aware middleware system
Middleware augments operating systems and network infrastructure to assist in
the creation of distributed applications in a heterogeneous environment. Current
middleware systems exhibit some or all of the following five main problems:
1. Decisions must be made early in the design process.
2. Applications are inflexible to dynamic changes in their distribution.
3. Application development is complex and error-prone.
4. Existing systems force an unnatural encoding of application-level semantics.
5. Approaches to the specification of distribution policy are limited.
This thesis defines a taxonomy of existing middleware systems and describes their
limitations. The requirements that must be met by a third generation middleware system
are defined and implemented by a system called the RAFDA Run-Time (RRT). The RRT
allows control over the extent to which inter-address-space communication is exposed to
programmers, aiding the creation, maintenance and evolution of distributed applications.
The RRT permits the introduction of distribution into applications quickly and
with minimal programmer effort, allowing for quick application prototyping.
Programmers can conceal or expose the distributed nature of applications as required. The RRT allows instances of arbitrary application classes to be exposed to remote access as Web Services, provides control over the parameter-passing semantics applied to
remote method calls and permits the creation of flexible distribution policies. The design of the RRT is described and evaluated qualitatively in the context of a case study based around the implementation of a peer-to-peer overlay network. A prototype implementation of the RRT is examined and evaluated quantitatively.
Programmers determine the trade off between flexibility and simplicity offered by
the RRT on a per-application basis, by concealing or exposing inter-address-space
communication. The RRT is a middleware system that adapts to the needs of applications, rather than forcing distributed applications to adapt to the needs of the middleware system
Autonomic management in a distributed storage system
This thesis investigates the application of autonomic management to a distributed storage
system. Effects on performance and resource consumption were measured in experiments,
which were carried out in a local area test-bed. The experiments were conducted with
components of one specific distributed storage system, but seek to be applicable to a wide range of such systems, in particular those exposed to varying conditions.
The perceived characteristics of distributed storage systems depend on their configuration
parameters and on various dynamic conditions. For a given set of conditions, one specific configuration may be better than another with respect to measures such as resource
consumption and performance. Here, configuration parameter values were set dynamically
and the results compared with a static configuration. It was hypothesised that under non-changing conditions this would allow the system to converge on a configuration that was
more suitable than any that could be set a priori. Furthermore, the system could react to
a change in conditions by adopting a more appropriate configuration. Autonomic management was applied to the peer-to-peer (P2P) and data retrieval components of ASA, a
distributed storage system. The effects were measured experimentally for various workload and churn patterns. The management policies and mechanisms were implemented
using a generic autonomic management framework developed during this work.
The motivation for both groups of experiments was to test management policies with the objective to avoid unsatisfactory situations with respect to resource consumption and performance. Such unsatisfactory situations occur when either the P2P layer or the data retrieval mechanism is configured statically. In a statically configured P2P system two unsatisfactory situations can be identified. The first arises when the frequency with which P2P node states are verified is low and membership churn is high. The P2P node state becomes inaccurate due to a high membership churn, leading to errors during the routing process and a reduction in performance. In this situation it is desirable to increase the frequency to increase P2P state accuracy. The converse situation arises when the frequency is high and churn is low. In this situation network resources are used unnecessarily, which may also reduce performance, making it desirable to decrease the frequency.
In ASA’s data retrieval mechanism similar unsatisfactory situations can be identified with respect to the degree of concurrency (DOC). The DOC controls the eagerness with which multiple redundant replicas are retrieved. An unsatisfactory situation arises when the DOC is low and there is a large variation in the times taken to retrieve replicas. In this situation it is desirable to increase the DOC, because by retrieving more replicas in parallel a
result can be returned to the user sooner. The converse situation arises when the DOC is
high, there is little variation in retrieval time and there is a network bottleneck close to the requesting client. In this situation it is desirable to decrease the DOC, since the low variation removes any benefit in parallel retrieval, and the bottleneck means that decreasing parallelism reduces both bandwidth consumption and elapsed time for the user.
The experimental evaluations of autonomic management show promising results, and suggest several future research topics. These include optimisations of the managed mechanisms, alternative management policies, different evaluation methods, and the application of developed management mechanisms to other facets of a distributed storage system. The findings of this thesis could be exploited in building other distributed storage systems that focus on harnessing storage on user workstations, since these are particularly likely to be exposed to varying, unpredictable conditions
Orthogonal persistence revisited
The social and economic importance of large bodies of programs and data that are potentially long-lived has attracted much attention in the commercial and research communities. Here we concentrate on a set of methodologies and technologies called persistent programming. In particular we review programming language support for the concept of orthogonal persistence, a technique for the uniform treatment of objects irrespective of their types or longevity. While research in persistent programming has become unfashionable, we show how the concept is beginning to appear as a major component of modern systems. We relate these attempts to the original principles of orthogonal persistence and give a few hints about how the concept may be utilised in the future
A framework for constraint-based deployment and autonomic management of distributed applications (extended abstract)
This work is supported by EPSRC Grants GR/M78403, GR/R51872, GR/S44501 and by EC Framework V IST-2001-32360We propose a framework for the deployment and subsequent autonomic management of component-based distributed applications. An initial deployment goal is specified using a declarative constraint language, expressing constraints over aspects such as component-host mappings and component interconnection topology. A constraint solver is used to find a configuration that satisfies the goal, and the configuration is deployed automatically. The deployed application is instrumented to allow subsequent autonomic management. If, during execution, the manager detects that the original goal is no longer being met, the satisfy/deploy process can be repeated automatically in order to generate a revised deployment that does meet the goal.Peer reviewe
Applying constraint solving to the management of distributed applications
Submitted to DOA08We present our approach for deploying and managing distributed component-based applications. A Desired State Description (DSD), written in a high-level declarative language, specifies requirements for a distributed application. Our infrastructure accepts a DSD as input, and from it automatically configures and deploys the distributed application. Subsequent violations of the original requirements are detected and, where possible, automatically rectified by reconfiguration and redeployment of the necessary application components. A constraint solving tool is used to plan deployments that meet the application requirements
A Framework for Comparing Type Systems for Database Programming Languages
Several proposals have been published in recent years for database programming languages (DBPLs), many of which have been object-oriented. Our goal in this paper is not to argue for or against specific solutions, but simply to provide a framework for comparing certain critical points of type system design. This framework may be used in the description of a DBPL. It is our hope that the framework will promote clear communication among designers and developers of DBPLs. 1 Introduction At the Second Object-Oriented Database Workshop [OO88], the first author posed a set of questions as a way of urging people to be clear when talking about types and/or classes. This brief paper expands on those questions in an effort to provide a framework for describing type systems that can be used to compare programming languages in a meaningful manner. We have divided the questions to be asked into five areas. The first is discussed in Section 2 and has to do with the nature of the type system. Section..
- …
