19 research outputs found

    Low Latency Reliable Data Sharing Mechanism for UAV Swarm Missions

    Get PDF
    The use of Unmanned Aerial Vehicle (UAV) swarms is increasing in many commercial applications as well as military applications (such as reconnaissance missions, search and rescue missions). Autonomous UAV swarm systems rely on multi-node interhost communication, which is used in coordination for complex tasks. Reliability and low latency in data transfer play an important role in the maintenance of UAV coordination for these tasks. In these applications, the control of UAVs is performed by autonomous software and any failure in data reception may have catastrophic consequences. On the other hand, there are lots of factors that affect communication link performance such as path loss, interference, etc. in communication technology (WIFI, 5G, etc.), transport layer protocol, network topology, and so on. Therefore, the necessity of reliable and low latency data sharing mechanisms among UAVs comes into prominence gradually. This paper examines available middleware solutions, transport layer protocols, and data serialization formats. Based on evaluation results, this research proposes a middleware concept for mobile wireless networks like UAV swarm systems

    An Analysis of Energy Efficient Data Transfer between Mobile Device and Dedicated Server

    Get PDF
    This paper discusses research results with regard to energy-efficient transmission of serialised data between servers and mobile devices. A test environment was created in which the research authors primarily measured electricity consumption during communication between a mobile device and server. Numerical results were used to determine how well data serialisation was performed on a dedicated server and its effects on the power consumption of a mobile device. The time spent in data serialisation and the size of the serialised file were found to significantly influence energy consumption. Based on that fact, results have been used to create a mathematical model which was later introduced with functional forms. The main variables in those functional forms were time of serialisation and size of a serialised file. The data collected through this research has been used for an experimental API-CB Saver, which based on mathematical models chooses the most favourable manner of serialisation and compression in real time. The results collected during the tests show that the CBSaver-Api approach performs with greater energy efficiency than current techniques. Furthermore, with optimal selection of data serialisation type and compression level in real time the considered system shows better performance in power saving. According to the results, the API-CBSaver tests indicate the direction which one should take for the purposes of improving energy efficiency

    An overview of IoT architectures, technologies, and existing open-source projects

    Get PDF
    Financiado para publicación en acceso aberto: Universidade da Coruña/CISUG[Abstract]: Today’s needs for monitoring and control of different devices in organizations require an Internet of Things (IoT) platform that can integrate heterogeneous elements provided by multiple vendors and using different protocols, data formats and communication technologies. This article provides a comprehensive review of all the architectures, technologies, protocols and data formats most commonly used by existing IoT platforms. On this basis, a comparative analysis of the most widely used open source IoT platforms is presented. This exhaustive comparison is based on multiple characteristics that will be essential to select the platform that best suits the needs of each organization.This research/work has been supported by GAIN (Galician Innovation Agency) and the Regional Ministry of Economy, Employment and Industry, Xunta de Galicia under grant COV20/00604 through the ERDF Galicia 2014-2020; and by grant PID2019-104958RB-C42 (ADELE) funded by MCIN/AEI/10.13039/501100011033 . Funding for open access charge: Universidade da Coruña/CISUG.Xunta de Galicia; COV20/0060

    Rendering real-time dashboards using a GraphQL-based UI Architecture

    Get PDF
    With the increase in the complexity of the systems being built and demand in the quality of service by the customers, developing and providing highly efficient real-time systems is one of the biggest challenges today for software enterprises. BluemixTM ─ IBM’s cloud offering implemented on Cloud Foundry, an open source “Platform as a Service” (PaaS), is an example of such a system. Currently, there are approx. 26 infrastructural services running in the background from where the data is fetched and is rendered on different dashboards of the system. However, the system suffers from performance issues. This thesis explores the performance improvements of the real-time dashboards by introducing our proposed GraphQL-based UI architecture which allows caching and asynchronous loading. The test results of this architecture’s implementation on the Bluemix Usage Dashboard show that the Real data renders 245% faster and the Switching Account 153% faster than the existing system

    Distributed architecture for an integrated development environment, large trace analysis, and visualization

    Get PDF
    ABSTRACT: Integrated development environments (IDEs) provide many useful tools such as a code editor, a compiler, and a debugger for creating software. These tools are highly sophisticated, and their development requires a significant effort. Traditionally, an IDE supports different programming languages via plugins that are not usually reusable in other IDEs. Given the high complexity and constant evolution of popular programming languages, such as C++ and even Java, the effort to update those plugins has become unbearable. Thus, recent work aims to modularize IDEs and reuse the existing parser implementation directly in compilers. However, when IDE debugging tools are insufficient at detecting performance defects in large and multithreaded systems, developers must use tracing and trace visualization tools in their software development process. Those tools are often standalone applications and do not interoperate with the new modular IDEs, thus losing the power and the benefits of many features provided by the IDE. The structure and use cases of tracing tools, with the potentially massive execution traces, significantly differ from the other tools in IDEs. Thus, it is a considerable challenge, one which has not been addressed previously, to integrate them into the new modular IDEs. In this paper, we propose an efficient modular client–server architecture for trace analysis and visualization that solves those problems. The proposed architecture is well suited for performance analysis on Internet of Things (IoT) devices, where resource limitations often prohibit data collection, processing, and visualization all on the same device. The experimental evaluation demonstrated that our proposed flexible and reusable solution is scalable and has a small acceptable performance overhead compared to the standalone approach

    Microservices - Eine State-of-the-Art Bestandsaufnahme und Abgrenzung zu SOA

    Get PDF
    Microservices haben in den letzten Jahren einen Hype erfahren und gelten momentan als der Stil, der es einem Unternehmen erlaubt, möglichst agil und innovativ in der Entwicklung von Software zu sein. Durch die Entkopplung von fachlich nur wenig zusammenhängenden Teilen zu eigenständigen Microservices, kann eine Unterteilung der Entwicklung in hochgradig autonome Teams erreicht werden. Zusätzlich unterstützen Cloud-Technologien und Automatisierung durch Continuous Delivery und DevOps die Teams bei der schnellen Weiterentwicklung ihres abgegrenzten Bereiches und erlaubt es diesen, selbständig für den Betrieb ihrer Microservices verantwortlich zu sein. Der Begriff Microservices ist noch relativ jung und zeigt sich in unterschiedlichen Formen, weshalb oft unklar ist, was er eigentlich genau bedeutet. Daraus ergeben sich auch Schwierigkeiten in der Abgrenzung zu anderen Ansätzen wie SOA. Der Ansatz, Software durch Services zu modularisieren, ist nicht neu und wird schon bei SOA angewendet, um die Integration verschiedener Systeme zu erleichtern und diese schneller an veränderte Geschäftsprozesse anzupassen. Obwohl Microservices aus SOA heraus entstanden sind, fokussiert der Stil mehr auf die Flexibilität und Geschwindigkeit bei der Entwicklung von modernen Online-Softwaresystemen und setzt Service-Orientierung anders um als es bei SOA der Fall ist. Diese Arbeit erfasst das Themengebiet unterteilt in Stil-Ebene, Architektur-Ebene und Service-Ebene. Sie versucht so, dabei zu helfen, mehr Verständnis über den Begriff Microservices zu erlangen. Dabei werden angrenzende Konzepte sowie Technologien erklärt und anhand von Charakteristiken beschrieben, was den Microservices-Stil ausmacht. Über veröffentlichte Berichte und Konferenzvorträge von Unternehmen, die nach eigenen Angaben Microservices umsetzen, werden typische Gründe und Motivationen für den Microservice-Stil herausgearbeitet. Zuletzt wird SOA kurz definiert und anhand dem aktuellen Verständnis eingeführt. Mit den erlangten Kenntnissen über Microservices und deren Motivation, wird ein Vergleich mit SOA auf den verschiedenen Ebenen unternommen

    A comparison of data serialization formats for optimal efficiency on a mobile platform

    No full text

    Nouvelle architecture pour les environnements de développement intégré et traçage de logiciel

    Get PDF
    La conception et le développement de logiciels requièrent souvent l’utilisation d’un Environnement de Développement Intégré (EDI) pour assister et faciliter le travail des développeurs. Les EDI offrent, à travers une interface graphique, des outils pour l’édition, la compilation et le débogage du code. Cependant, lorsque ces outils ne sont pas adaptés et suffisants pour la détection de défauts de performance sur des logiciels complexes, comme les systèmes distribués, les développeurs se tournent vers des techniques de traçage. Des logiciels appelés traceurs récoltent des informations précises pendant l’exécution du système instrumenté, et les regroupent dans une trace. Une trace peut contenir une quantité importante de données. Des outils spécialisés ont été développés afin d’en automatiser le processus d’analyse et de visualisation. Au fur et à mesure qu’un logiciel grandit et se complexifie, l’utilisation de ces outils d’analyse et de visualisation devient tout aussi importante qu’un débogueur. Néanmoins, ces outils sont complexes, autonomes et difficilement réutilisables dans d’autres systèmes. De plus, ils ne supportent pas les mêmes analyses, les mêmes formats de trace, ni les mêmes cas d’utilisation, ce qui implique que le développeur ait besoin d’installer plusieurs outils pour arriver à ses fins. Dans le cadre de ce projet, nous cherchons donc à résoudre ces problèmes et à intégrer l’analyse et la visualisation de trace non seulement dans les EDI, mais dans tout autre système qui pourrait en bénéficier, tels que les serveurs d’intégration continue ou encore les systèmes de monitorage. Par conséquent, nous proposons une nouvelle architecture logicielle flexible basée sur une approche client-serveur, d’architecture orientée service et multicouche. Notre travail s’étend à l’implémentation de l’architecture du serveur au sein du projet Trace Compass et l’implémentation de l’architecture du client au sein d’un nouveau projet appelé TraceScape. Toutes nos contributions sont disponibles à code source ouvert. Des tests de performance ont été menés afin d’évaluer le surcoût associé à la nouvelle architecture par rapport à la précédente approche, et les résultats indiquent un surcoût acceptable.----------ABSTRACT: Creating software often requires using an Integrated Development Environment (IDE) to help and facilitate the development work. With a simplified user interface, IDEs provide many useful tools such as a code editor, a compiler, and a debugger. Nonetheless, when those tools are not enough to detect performance defects in a large, complex and multithreaded system, developers use tracing techniques. A program called tracer collects accurate information during the execution of an instrumented system. A trace could contain a lot of data, and specialized tools have been developed to analyze traces automatically and show the results in interactive views. As the software grows and becomes more complex, using trace visualization tools must be part of the developer tool environment, like the debugger in the software development process. However, trace visualization tools are sophisticated, standalone and hardly reusable in other systems such as an IDE. Moreover, they have their specific trace format support, specific use cases, and specific trace analyses. Most of the time, developers need to install and use several such tools to fulfill their needs. In this research project, we aim to solve those problems and integrate trace analysis and visualization in tools such as IDEs, monitoring systems or continuous integration systems. Thus, we propose a flexible software architecture based on client-server, service-oriented architecture and layered approaches. We implemented the server architecture in the Trace Compass project and the client architecture in a new project called TraceScape. All of our contributions are available online in open source repositories. We also evaluated our proposed architecture through benchmarks, and the results show that our approach has an acceptable overhead compared to the standalone approach
    corecore