1,163 research outputs found
Software engineering and middleware: a roadmap (Invited talk)
The construction of a large class of distributed systems can be simplified by leveraging middleware, which is layered between network operating systems and application components. Middleware resolves heterogeneity and facilitates communication and coordination of distributed components. Existing middleware products enable software engineers to build systems that are distributed across a local-area network. State-of-the-art middleware research aims to push this boundary towards Internet-scale distribution, adaptive and reconfigurable middleware and middleware for dependable and wireless systems. The challenge for software engineering research is to devise notations, techniques, methods and tools for distributed system construction that systematically build and exploit the capabilities that middleware deliver
DIAMOnDS - DIstributed Agents for MObile & Dynamic Services
Distributed Services Architecture with support for mobile agents between
services, offer significantly improved communication and computational
flexibility. The uses of agents allow execution of complex operations that
involve large amounts of data to be processed effectively using distributed
resources. The prototype system Distributed Agents for Mobile and Dynamic
Services (DIAMOnDS), allows a service to send agents on its behalf, to other
services, to perform data manipulation and processing. Agents have been
implemented as mobile services that are discovered using the Jini Lookup
mechanism and used by other services for task management and communication.
Agents provide proxies for interaction with other services as well as specific
GUI to monitor and control the agent activity. Thus agents acting on behalf of
one service cooperate with other services to carry out a job, providing
inter-operation of loosely coupled services in a semi-autonomous way. Remote
file system access functionality has been incorporated by the agent framework
and allows services to dynamically share and browse the file system resources
of hosts, running the services. Generic database access functionality has been
implemented in the mobile agent framework that allows performing complex data
mining and processing operations efficiently in distributed system. A basic
data searching agent is also implemented that performs a query based search in
a file system. The testing of the framework was carried out on WAN by moving
Connectivity Test agents between AgentStations in CERN, Switzerland and NUST,
Pakistan.Comment: 7 pages, 4 figures, CHEP03, La Jolla, California, March 24-28, 200
A Peer-to-Peer Middleware Framework for Resilient Persistent Programming
The persistent programming systems of the 1980s offered a programming model
that integrated computation and long-term storage. In these systems, reliable
applications could be engineered without requiring the programmer to write
translation code to manage the transfer of data to and from non-volatile
storage. More importantly, it simplified the programmer's conceptual model of
an application, and avoided the many coherency problems that result from
multiple cached copies of the same information. Although technically
innovative, persistent languages were not widely adopted, perhaps due in part
to their closed-world model. Each persistent store was located on a single
host, and there were no flexible mechanisms for communication or transfer of
data between separate stores. Here we re-open the work on persistence and
combine it with modern peer-to-peer techniques in order to provide support for
orthogonal persistence in resilient and potentially long-running distributed
applications. Our vision is of an infrastructure within which an application
can be developed and distributed with minimal modification, whereupon the
application becomes resilient to certain failure modes. If a node, or the
connection to it, fails during execution of the application, the objects are
re-instantiated from distributed replicas, without their reference holders
being aware of the failure. Furthermore, we believe that this can be achieved
within a spectrum of application programmer intervention, ranging from minimal
to totally prescriptive, as desired. The same mechanisms encompass an
orthogonally persistent programming model. We outline our approach to
implementing this vision, and describe current progress.Comment: Submitted to EuroSys 200
Parallel Computing in Java
The Java programming language and environment is inspiring new research activities in many areas of computing, of which parallel computing is one of the major interests. Parallel techniques are themselves finding new uses in cluster computing systems. Although there are excellent software tools for scheduling, monitoring and message-based programming on parallel clusters, these systems are not yet well integrated and do not provide very high-level parallel programming support.
This research presents a number of issues which are considered to be key to the suitability of Java for HPC (High Performance Computing) applications and then explore the support for concurrency in the current Java 1.8 specification. We further present various relatively recent parallel Java models which support HPC for both shared and distributed memory programming paradigms. Finally, we attempt to evaluate the performance of discussed Java HPC models by comparing the same with the relative traditional native C implementations, where appropriate. The analysis of the results suggest that Java can achieve near similar performance to natively compiled languages, both for sequential and parallel applications, thus making it a viable alternative for HPC programming
Adaptive Scheduling Across a Distributed Computation Platform
A programmable Java distributed system, which
adapts to available resources, has been developed to minimise the
overall processing time of computationally intensive problems.
The system exploits the free resources of a heterogeneous set of computers
linked together by a network, communicating using
SUN Microsystems' Remote Method Invocation and Java sockets.
It uses a multi-tiered distributed system model, which in principal allows for a system of unbounded size.
The system consists of an n-ary tree of
nodes where the internal nodes perform the scheduling and the
leaves do the processing. The scheduler nodes communicate in a
peer-to-peer manner and the processing nodes operate in a strictly
client-server manner with their respective scheduler. The
independent schedulers on each tier of the tree dynamically allocate resources
between problems based on the constantly changing characteristics
of the underlying network. The system has been evaluated over a network of 86
PCs with a bioinformatics application and the travelling salesman
optimisation problem
Design and Implementation of a Distributed Middleware for Parallel Execution of Legacy Enterprise Applications
A typical enterprise uses a local area network of computers to perform its
business. During the off-working hours, the computational capacities of these
networked computers are underused or unused. In order to utilize this
computational capacity an application has to be recoded to exploit concurrency
inherent in a computation which is clearly not possible for legacy applications
without any source code. This thesis presents the design an implementation of a
distributed middleware which can automatically execute a legacy application on
multiple networked computers by parallelizing it. This middleware runs multiple
copies of the binary executable code in parallel on different hosts in the
network. It wraps up the binary executable code of the legacy application in
order to capture the kernel level data access system calls and perform them
distributively over multiple computers in a safe and conflict free manner. The
middleware also incorporates a dynamic scheduling technique to execute the
target application in minimum time by scavenging the available CPU cycles of
the hosts in the network. This dynamic scheduling also supports the CPU
availability of the hosts to change over time and properly reschedule the
replicas performing the computation to minimize the execution time. A prototype
implementation of this middleware has been developed as a proof of concept of
the design. This implementation has been evaluated with a few typical case
studies and the test results confirm that the middleware works as expected
- …