11 research outputs found

    A history and future of Web APIs

    Get PDF

    Delegating remote operation execution in a mobile computing environment

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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.

    Get PDF
    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

    Performance studies of file system design choices for two concurrent processing paradigms

    Get PDF

    Domänenübergreifende Anwendungskommunikation im IP-basierten Fahrzeugbordnetz

    Get PDF
    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

    Get PDF
    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
    corecore