11 research outputs found
Delegating remote operation execution in a mobile computing environment
Remote operation execution is nowadays the most popular paradigm
used to build distributed systems and applications. This success
originates in the simplicity exhibited by programming along the
client--server paradigm. Unfortunately, connectivity and bandwidth
restrictions defy the unchanged porting of this well known
mechanisms to the mobile computing field.
In this paper we present an approach that allows to develop
applications which are tailored for the specific requirements of
mobile computing, while retaining the simple and well understood
remote execution paradigm. The approach provides the additional
benefit that established services could easily be used from mobile
platforms. The cornerstone of our approach is integrated linguistic
support for dynamically delegating the execution and control of
remote procedure calls (RPC) to a delegate located on the fixed part
of the network. Besides presenting the language constructs, we
discuss the extensions to the RPC--based development process and the
necessary run--time support
The many faces of publish/subscribe
Well adapted to the loosely coupled nature of distributed interaction in large-scale applications, the publish/subscribe communication paradigm has recently received increasing attention. With systems based on the publish/subscribe interaction scheme, subscribers register their interest in an event, or a pattern of events, and are subsequently asynchronously notified of events generated by publishers. Many variants of the paradigm have recently been proposed, each variant being specifically adapted to some given application or network model. This paper factors out the common denominator underlying these variants: full decoupling of the communicating entities in time, space, and synchronization. We use these three decoupling dimensions to better identify commonalities and divergences with traditional interaction paradigms. The many variations on the theme of publish/subscribe are classified and synthesized. In particular, their respective benefits and shortcomings are discussed both in terms of interfaces and implementations
Building object-oriented software with the D-Bus messaging system
Object-oriented programming is a widely adopted paradigm for desktop software development.
This paradigm partitions software into separate entities, objects, which consist
of data and related procedures used to modify and inspect it. The paradigm has evolved
during the last few decades to emphasize decoupling between object implementations, via
means such as explicit interface inheritance and event-based implicit invocation.
Inter-process communication (IPC) technologies allow applications to interact with each
other. This enables making software distributed across multiple processes, resulting in a
modular architecture with benefits in resource sharing, robustness, code reuse and security.
The support for object-oriented programming concepts varies between IPC systems.
This thesis is focused on the D-Bus system, which has recently gained a lot of users, but
is still scantily researched. D-Bus has support for asynchronous remote procedure calls
with return values and a content-based publish/subscribe event delivery mechanism.
In this thesis, several patterns for method invocation in D-Bus and similar systems are
compared. The patterns that simulate synchronous local calls are shown to be dangerous.
Later, we present a state-caching proxy construct, which avoids the complexity of
properly asynchronous calls for object inspection. The proxy and certain supplementary
constructs are presented conceptually as generic object-oriented design patterns. The
e ect of these patterns on non-functional qualities of software, such as complexity, performance
and power consumption, is reasoned about based on the properties of the D-Bus
system. The use of the patterns reduces complexity, but maintains the other qualities at a
good level.
Finally, we present currently existing means of specifying D-Bus object interfaces for the
purposes of code and documentation generation. The interface description language used
by the Telepathy modular IM/VoIP framework is found to be an useful extension of the
basic D-Bus introspection format.Siirretty Doriast
Models of higher-order, type-safe, distributed computation over autonomous persistent object stores
A remote procedure call (RPC) mechanism permits the calling of procedures in another
address space. RPC is a simple but highly effective mechanism for interprocess communication
and enjoys nowadays a great popularity as a tool for building distributed applications.
This popularity is partly a result of their overall simplicity but also partly a consequence
of more than 20 years of research in transpaxent distribution that have failed to deliver
systems that meet the expectations of real-world application programmers.
During the same 20 years, persistent systems have proved their suitability for building
complex database applications by seamlessly integrating features traditionally found in
database management systems into the programming language itself. Some research. effort
has been invested on distributed persistent systems, but the outcomes commonly suffer
from the same problems found with transparent distribution.
In this thesis I claim that a higher-order persistent RPC is useful for building distributed
persistent applications. The proposed mechanism is: realistic in the sense that it uses
current technology and tolerates partial failures; understandable by application programmers;
and general to support the development of many classes of distributed persistent
applications.
In order to demonstrate the validity of these claims, I propose and have implemented three
models for distributed higher-order computation over autonomous persistent stores. Each
model has successively exposed new problems which have then been overcome by the next
model. Together, the three models provide a general yet simple higher-order persistent
RPC that is able to operate in realistic environments with partial failures.
The real strength of this thesis is the demonstration of realism and simplicity. A higherorder
persistent RPC was not only implemented but also used by programmers without
experience of programming distributed applications. Furthermore, a distributed persistent
application has been built using these models which would not have been feasible with a
traditional (non-persistent) programming language
Mobile Fleet Management
Este documento foi elaborado para dar a conhecer o trabalho realizado no âmbito do projeto Mobile Fleet Management. Este projeto foi proposto pela empresa Tecmic - Tecnologias de Microeletrónica, S.A. e insere-se na unidade curricular de Estágio do Mestrado em Engenharia Informática - Computação Móvel (MEI-CM).
O objetivo deste projeto consistiu no desenvolvimento de uma aplicação móvel para utilização de operadores de frota, apelidada de iZiTraN Mobile.
A aplicação permite aos operadores de frota efetuar, a qualquer hora e em qualquer lugar, uma gestão remota de todos os veÃculos da sua frota, tendo disponÃvel para a tomada de decisões informação em tempo real. Os operadores de frota podem consultar informações referentes a veÃculos, contactar os seus condutores pela troca de mensagens, receber alertas dos mais variados incidentes que possam surgir e tratar dos mesmos, tudo em tempo real e num dispositivo móvel.
A aplicação iZiTraN Mobile tem uma forte componente tecnológica que recorre a várias tecnologias emergentes, tendo sido desenhada para ser modular, com camadas independentes e separadas de forma a facilitar futuras manutenções e atualizações de software. As opções de desenho e implementação seguidas permitiram reduzir de forma considerável o custo de desenvolvimento, o futuro custo de manutenção e de exploração deste produto da Tecmic S.A.. Este produto, posiciona-se dentro do portfólio de produtos da empresa como um dos produtos mais inovadores e com maior potencial de crescimento nesta área de negócio do setor da gestão de frotas de veÃculos
Management of Temporally and Spatially Correlated Failures in Federated Message Oriented Middleware for Resilient and QoS-Aware Messaging Services.
PhDMessage Oriented Middleware (MOM) is widely recognized as a promising solution for the communications between heterogeneous distributed systems. Because the resilience and quality-of-service of the messaging substrate plays a critical role in the overall system performance, the evolution of these distributed systems has introduced new requirements for MOM, such as inter domain federation, resilience and QoS support.
This thesis focuses on a management frame work that enhances the Resilience and QoS-awareness of MOM, called RQMOM, for federated enterprise systems. A common hierarchical MOM architecture for the federated messaging service is assumed. Each bottom level local domain comprises a cluster of neighbouring brokers that carry a local messaging service, and inter domain messaging are routed through the gateway brokers of the different local domains over the top level federated overlay. Some challenges and solutions for the intra and inter domain messaging are researched.
In local domain messaging the common cause of performance degradation is often the fluctuation of workloads which might result in surge of total workload on a broker and overload its processing capacity, since a local domain is often within a well connected network. Against performance degradation, a combination of novel proactive risk-aware workload allocation, which exploits the co-variation between workloads, in addition to existing reactive load balancing is designed and evaluated.
In federated inter domain messaging an overlay network of federated gateway brokers distributed in separated geographical locations, on top of the heterogeneous physical network is considered. Geographical correlated failures are threats to cause major interruptions and damages to such systems. To mitigate this rarely addressed challenge, a novel geographical location aware route selection algorithm to support uninterrupted messaging is introduced. It is used with existing overlay routing mechanisms, to maintain routes and hence provide more resilient messaging against geographical correlated failures
Domänenübergreifende Anwendungskommunikation im IP-basierten Fahrzeugbordnetz
In heutigen Premiumfahrzeugen kommunizieren bis zu 80 Steuergeräte über bis zu
sechs verschiedene Vernetzungstechnologien. Dabei öffnet sich die
Fahrzeugkommunikation nach außen: Das Fahrzeug kommuniziert auch mit dem
Smartphone des Fahrers und dem Internet.
Für die Kommunikation über verschiedene Anwendungsdomänen im Fahrzeug müssen
heute Gateways eingesetzt werden, die zwischen den nicht-kompatiblen Protokollen
übersetzen. Deswegen geht der Trend auch in der Fahrzeugkommunikation zum
Internet Protocol (IP), das für technologie- und domänenübergreifende Kommunikation entwickelt wurde. Neben dem durchgängigen
Protokoll auf der Vermittlungsschicht ist für die effiziente Entwicklung eines
komplexen, verteilten Systems wie einem Fahrzeug auch eine entsprechende
Kommunikationsmiddleware notwendig.
Die Kommunikation in einem Fahrzeug stellt spezielle Anforderungen an die
Kommunikationsmiddleware. Zum einen werden in Fahrzeugen
unterschiedliche Kommunikationsparadigmen genutzt, beispielsweise signalbasierte
und funktionsbasierte Kommunikation. Zum anderen können sich die
Kommunikationspartner in einem Fahrzeug hinsichtlich ihrer Ressourcen und ihrer
Komplexität erheblich unterscheiden.
Keine existierende IP-basierte Kommunikationsmiddleware erfüllt die in der
vorliegenden Arbeit identifizierten Anforderungen für den Einsatz im Fahrzeug.
Ziel dieser Arbeit ist es daher, eine Kommunikationsmiddleware zu konzipieren,
die für den Einsatz im Fahrzeug geeignet ist.
Die vorgestellte Lösung sieht mehrere interoperable Ausprägungen der
Middleware vor, die den Konflikt zwischen unterschiedlichen funktionalen
Anforderungen einerseits und den sehr heterogenen Kommunikationspartnern
andererseits auflösen.
Ein weiterer elementarer Teil der Lösung ist die Umsetzung der im Fahrzeug
erforderlichen Kommunikationsparadigmen. Das funktionsbasierte Paradigma wird
durch einfache Remote Procedure Calls implementiert. Das signalbasierte
Paradigma wird durch ein darauf aufbauendes Notification-Konzept implementiert.
Somit wird eine stärker am aktuellen Informationsbedarf orientierte
Umsetzung ermöglicht, als dies im heutigen Fahrzeugbordnetz durch das einfache
Verteilen von Daten der Fall ist. Es wird gezeigt, dass sich prinzipiell beide
Kommunikationsparadigmen durch einen einzigen Mechanismus abbilden lassen, der
abhängig von den beteiligten Ausprägungen mit dynamischen oder nur statischen
Daten operiert. Ein skalierbares Marshalling berücksichtigt darüber hinaus
die unterschiedlichen Anforderungen der Anwendungen und die unterschiedliche
Leistungsfähigkeit der beteiligten Steuergeräte. Hiermit wird die Kommunikation zwischen allen Anwendungen im IP-basierten Fahrzeugbordnetz
durchgängig ermöglicht.
Auf dieser Basis wird die Lösung um wichtige Systemdienste erweitert.
Diese Dienste implementieren Funktionen, die nur in der
Kooperation mehrerer Komponenten erbracht werden können oder kapseln allgemeine
Kommunikationsfunktionalität zur einfachen Wiederverwendung.
Zwei für die Anwendung im Fahrzeug wichtige Systemdienste werden
prototypisch dargestellt: Ein Service-Management ermöglicht die Verwaltung von
Diensten in unterschiedlichen Zuständen, ein Security-Management bildet Security-Ziele
auf die bestmögliche Kombination von implementierten Security-Protokollen der
beteiligten Kommunikationspartner
ab. Diese Systemdienste sind selbst skalierbar und lassen sich damit an
das Konzept unterschiedlicher Ausprägungen der Kommunikationsmiddleware
anpassen.
Durch Leistungsmessungen an den im Rahmen dieser Arbeit entstandenen Prototypen
wird gezeigt, dass die konzipierte Kommunikationsmiddleware für den
Einsatz auf eingebetteten Systemen im Fahrzeug geeignet ist. Der
Versuchsaufbau orientiert sich an typischen Anwendungsfällen für die
Fahrzeugkommunikation und verwendet Automotive-qualifizierte, eingebettete
Rechenplattformen. Insbesondere wird nachgewiesen, dass mit dem beschriebenen
Konzept auch leistungsschwache Steuergeräte ins System eingebunden werden
können. Die IP-basierte Kommunikationsmiddleware ist damit auf allen relevanten
Steuergeräten im Fahrzeug durchgängig einsetzbar.In today's premium cars, up to 80 electronic control units communicate over up
to six networking technologies. Additionally, vehicle communication opens to
off-board: the car connects to the driver's smartphone and the Internet. The
communication between different application domains within the vehicle builds on additional hardware components as application layer gateways to translate between the
incompatible protocols. Thus, also for in-car communication, the trend goes
towards networking over the Internet Protocol (IP) that has been developed for
being independent of technologies and application domains. Besides the
universal protocol at the network layer, an efficient development of a
complex distributed system requires communication
middleware.
In-car communication makes special demands on the communication middleware. On
the one hand, a variety of communication paradigms are used for in-car
communication, such as signal-based and function-based communication.
On the other hand, the communication partners differ considerably in terms of
computing resources and complexity of the hosted applications. No existing
IP-based middleware fulfils the identified requirements for
in-car communication.
The objective of this research is to design a middleware that is
suitable for IP-based in-car communication.
The presented solution provides multiple interoperable specifications
of the middleware which resolves the conflict between different functional
requirements on the one hand and the very heterogeneous communication partners
on the other hand.
Another fundamental part of the solution is the implementation of
required communication paradigms. The function-based paradigm is
implemented by simple remote procedure calls. The signal-based
paradigm is implemented by a notification concept that allows for a more
demand-oriented communication compared to today's practice. It is shown, how
both communication paradigms can be implemented through a single mechanism that
operates on dynamic or static data -- depending on the involved middleware
specifications. A scalable marshalling considers the different requirements and
performance levels of the participating electronic control units. Scalable
specifications of the communication middleware enable seamless operations on
restricted embedded and more powerful platforms.
On this basis, the solution is enhanced with important system services. Such
services implement functionality that can only be provided in cooperation of
multiple components or that encapsulate general communication functionality for
easy reuse. Two essential services are prototyped: a service management allows
the management of services in different operational states. A security management
matches security objectives in the best possible combination of implemented
security protocols that two given communication partners have in common. These
system services are designed to be scalable and can therefore be adapted to the
concept of different specifications of the communication middleware.
Performance measurements using the implemented prototypes show that the designed
communication middleware is suitable for the application on embedded systems
in the vehicle. The experimental set-up is based on typical use cases for
in-car communication and uses automotive-qualified, embedded computing
platforms. In particular, the set-up practically demonstrates that the concept
also incorporates low-performance electronic control units into the system. The
IP-based communication middleware enables
communication between all applications in the IP-based in-car communication
system
System support for object replication in distributed systems
Distributed systems are composed of a collection of cooperating but failure prone system components. The number of components in such systems is often large and, despite low probabilities of any particular component failing, the likelihood that there will be at least a small number of failures within the system at a given time is high. Therefore, distributed systems must be able to withstand partial failures. By being resilient to partial failures, a distributed system becomes more able to offer a dependable service and therefore more useful. Replication is a well known technique used to mask partial failures and increase reliability in distributed computer systems. However, replication management requires sophisticated distributed control algorithms, and is therefore a labour intensive and error prone task. Furthermore, replication is in most cases employed due to applications' non-functional requirements for reliability, as dependability is generally an orthogonal issue to the problem domain of the application. If system level support for replication is provided, the application developer can devote more effort to application specific issues. Distributed systems are inherently more complex than centralised systems. Encapsulation and abstraction of components and services can be of paramount importance in managing their complexity. The use of object oriented techniques and languages, providing support for encapsulation and abstraction, has made development of distributed systems more manageable. In systems where applications are being developed using object-oriented techniques, system support mechanisms must recognise this, and provide support for the object-oriented approach. The architecture presented exploits object-oriented techniques to improve transparency and to reduce the application programmer involvement required to use the replication mechanisms. This dissertation describes an approach to implementing system support for object replication, which is distinct from other approaches such as replicated objects in that objects are not specially designed for replication. Additionally, object replication, in contrast to data replication, is a function-shipping approach and deals with the replication of both operations and data. Object replication is complicated by objects' encapsulation of local state and the arbitrary interaction patterns that may exist among objects. Although fully transparent object replication has not been achieved, my thesis is that partial system support for replication of program-level objects is practicable and assists the development of certain classes of reliable distributed applications. I demonstrate the usefulness of this approach by describing a prototype implementation and showing how it supports the development of an example toy application. To increase their flexibility, the system support mechanisms described are tailorable. The approach adopted in this work is to provide partial support for object replication, relying on some assistance from the application developer to supply application dependent functionality within particular collators for dealing with processing of results from object replicas. Care is taken to make the programming model as simple and concise as possible