20 research outputs found
Echtzeitfähige Softwareagenten zur Realisierung cyber-physischer Produktionssysteme
Aktuelle ökonomische Trends, wie die zunehmende Globalisierung und die wachsende Technisierung und Individualisierung vieler Konsumgüter, führen im Hinblick auf die zur Fertigung dieser Güter eingesetzte Automatisierungstechnik zu steigender Komplexität und hohen Flexibilitätsanforderungen. Ein Konzept zur Adressierung dieser Anforderungen ist die Auslegung von automatisierten Anlagen als modulares System flexibel kombinierbarer cyber-physischer Komponenten. Die namensgebende Einheit von mechatronischem Bauteil und lokaler Rechenkapazität ermöglicht Herstellern solcher Komponenten, Softwarebausteine für typische Steuer-, Bedien- oder Diagnoseaufgaben gebrauchsfertig vorzubereiten und so den (Re-)Engineeringaufwand bei der (Um-)Gestaltung des Gesamtsystems deutlich zu reduzieren. Allerdings stellt diese Vision hohe Ansprüche an die zugrundeliegende Softwarearchitektur, die von den derzeit zur Realisierung automatisierter Systeme eingesetzten Technologien nicht vollständig erfüllt werden.
Das Paradigma der Agentenorientierung ist ein tragfähiger Ansatz zur Realisierung solcher lose gekoppelten verteilten Systeme und stellt durch leistungsfähige Interaktionsmechanismen sowie die enge Integration von semantischem Wissen zusätzliche Funktionalität in Aussicht: Als Agenten ausgelegte Komponenten könnten auch die logische Vernetzung untereinander während der Inbetriebnahme, nach Umrüstungen oder in Reaktion auf Betriebsstörungen teilweise selbst übernehmen. Dadurch ergeben sich Fähigkeiten wie Selbstkonfiguration und Selbstregeneration, die in der Fachliteratur unter dem Begriff Self-X zusammengefasst werden. Die fehlende Echtzeitfähigkeit, insbesondere in Bezug auf besagte Interaktionsmechanismen, hat jedoch bisher die Einsetzbarkeit von Agentensystemen in der Automatisierung limitiert und die Ausschöpfung der genannten Potentiale behindert.
Deshalb wird in dieser Dissertation eine echtzeitfähige Laufzeitumgebung für Softwareagenten entworfen und anschließend die Überarbeitung bestehenden Kommunikationsmechanismen im Hinblick auf ihre Echtzeitfähigkeit vorgenommen. In diesem Kontext wird mit dem Konzept der semantischen Adressierung eine vielfältig einsetzbare Möglichkeit geschaffen, Nachrichten an ausgewählte Gruppen von Agenten mit bestimmten, semantisch beschriebenen Eigenschaften zur verschicken. Die dabei zur Wissensrepräsentation genutzten Taxonomie-Bäume bieten ein für viele Aufgabenstellungen ausreichendes Maß an Ausdrucksstärke und erlauben zudem die Verarbeitung unter harten Echtzeitbedingungen. Abschließend werden die geschaffenen Mechanismen in einem Antwortzeitmodell abgebildet, mit dem das rechtzeitige Reagieren eines Agentensystems auf lokal oder verteilt zu behandelnde Ereignisse überprüft und nachgewiesen werden kann. Damit wird ein Hauptkritikpunkt von Agentensystemen adressiert, was zu einer nachhaltigen Steigerung der Akzeptanz des Agentenparadigmas führen könnte. Während große Teile der erarbeiten Lösung als allgemeingültige Grundlagenforschung verstanden werden können, wird bei der Formulierung von Anforderungen, der Darstellung von Beispielen und der Erläuterung von Entwurfsentscheidungen immer wieder auf automatisierungstechnische Belange Bezug genommen. Außerdem wird am Ende der Arbeit eine kritische Bewertung der Ergebnisse vor dem Hintergrund eines möglichen Einsatzes in zukünftigen Automatisierungssystemen durchgeführt und damit das Gesamtbild abgerundet
A Hierarchical Scheduling Model for Dynamic Soft-Realtime System
We present a new hierarchical approximation and scheduling approach for applications and tasks with multiple modes on a single processor. Our model allows for a temporal and spatial distribution of the feasibility problem for a variable set of tasks with non-deterministic and fluctuating costs at runtime. In case of overloads an optimal degradation strategy selects one of several application modes or even temporarily deactivates applications. Hence, transient and permanent bottlenecks can be overcome with an optimal system quality, which is dynamically decided. This paper gives the first comprehensive and complete overview of all aspects of our research, including a novel CBS concept to confine entire applications, an evaluation of our system by using a video-on-demand application, an outline for adding further resource dimension, and aspects of our protoype implementation based on RTSJ
Deterministische und interoperable Kommunikation mit dem Constrained Application Protocol
In dieser Arbeit wird untersucht, inwieweit sich Echtzeitanforderungen in der Kommunikation mit einer rein Software-basierten Lösung auf Basis etablierter IoT-Standards unter Verwendung von Standardhardware erfüllen lassen. Hierzu wird schrittweise gezeigt, wie sich eine zeitlich deterministische Kommunikation allein auf Basis des Constrained Application Protocols (CoAP) erreichen lässt. Die Wirksamkeit der erarbeiteten Mechanismen wird mit verschiedenen Experimenten belegt. Abschließend wird aus den beschriebenen Mechanismen eine eigene Standarderweiterung für CoAP abgeleitet
Virtual Java Machines for Small Embedded Systems
Die objektorientierte Programmiersprache Java ist auf eingebetteten Systemen noch nicht stark verbreitet, meist aus Kostengründen. Eine virtuelle Java Maschine erfordert normalerweise ein leistungsfähigeres System. Diese Arbeit befasst sich damit, Java auf besonders preiswerten 8-Bit-Mikrocontrollern auszuführen. Das eröffnet für Java die Welt der Messung, Steuerung und Regelung und verknüpft sie mit Benutzerinteraktion und Kommunikation. Java kann mit geringerem Programmieraufwand dazu beitragen, beispielsweise einen Haushalt zu steuern und zu überwachen. Für die speichereffiziente Umsetzung von Java werden einige Techniken evaluiert und auf einem Mikrocontroller (ST7) integriert. Mittels einer Vorverarbeitung von Java-Programmen und der virtuellen Maschine selbst auf einem Entwicklungssystem wird der Platzbedarf auf dem Zielsystem verringert. Geeignete Datenstrukturen und Klassenbibliotheken (API) belegen nur wenig Laufzeitspeicher mit Daten. Die Kombination von Java-Bytecode mit zielsystemabhängigen nativen Code ermöglicht die Ansteuerung von Peripheriekomponenten. Geeignete Zeitsteuerungen (zeitschrankenbasiertes Thread-Scheduling) machen Java auch für zeitkritische Anwendungen geeignet. Zusammen mit einer Software-Umgebung auf dem Entwicklungssystem entstand ein einsatzfähiges Java-System für einen Mikrocontroller. Die bei der Entwicklung dieser JavaVM gemachten Erfahrungen werden schließlich in neue Entwurfsverfahren zur Erstellung spezieller eingebetteter virtueller Maschinen umgesetzt. Dabei kommt ein vollständig in Java beschriebenes mehrschichtiges Modell zum Einsatz, das sich flexibel an verschiedene Zielsysteme anpassen lässt. Das Modell enthält die virtuelle Maschine bestehend aus Kern und Laufzeitbibliothek sowie eine allgemeine Anwendungsprogrammierschnittstelle. Erst Code-Generatoren fügen den zielsystemabhängigen nativen Code in das Modell ein.Java is an object oriented programming language. But mainly because of the costs it’s not widely used on embedded systems. Typical Java virtual machines require larger systems. This work aims for integration of Java on inexpensive 8-bit microcontrollers. This makes Java possible in the world of measurement, control and automation and allows the combination of control, user interaction and communication on a single system. E. g. Java can be used to enable home automation with less programming effort. To integrate Java on small embedded systems with low memory consumption, some techniques are explored and realized on a microcontroller (ST7). Due to preprocessing of Java programs and the virtual machine itself on a development system, the program memory allocation on the target system is reduced. Applicable data structures and class libraries (API) are designed to use as little data memory as possible. If Java bytecode is combined with the target system’s native code, peripheral components can be utilized. Furthermore deadline based thread scheduling can be used for time critical tasks. Together with a software environment for development systems this results in an operative Java system on a microcontroller. Experiences developing this JavaVM are now resulting to new development practices for creation of specialized embedded virtual machines. A completely Java based multilayered model is able to match various target systems. The model contains the virtual machine (kernel and runtime) and a generic application programming interface. Only at the end, code generators insert target system specific native code into the model
Java in eingebetteten Systemen
Moderne, objektorientierte Sprachen spielen bei der Entwicklung von
Software für eingebettete Systeme bislang kaum eine Rolle. Die Gründe
hierfür sind vielfältig, meist wird jedoch die mangelnde Effizienz und
der größere Speicherbedarf hervorgehoben.
Obwohl Java viele Eigenschaften hat, die sehr für einen Einsatz in
eingebetteten Systemen sprechen, so hängt doch gerade Java vielfach
immer noch das Vorurteil an, in Systemen mit beschränkter Rechenleistung
und Speicher zu viele Ressourcen zu benötigen.
Diese Arbeit soll dazu beitragen, diese Vorurteile abzutragen. Sie
stellt insbesondere Techniken vor, die den Speicherbedarf einer
JVM so gering wie möglich halten und diese effizient mit der zur
Verfügung stehenden Rechenleistung umgehen lassen. Viele der
dargestellten Verfahren und Algorithmen wurden in der Kertasarie
VM implementiert, einer virtuellen Maschine, die speziell für den
Einsatz in eingebetteten Systemen konzipiert wurde.
Durch die weit verbreitete Vernetzung eingebetteter Systeme über das
Internet stellt sich in vielen Fällen zudem das Problem einer modernen,
abstrakten und effizienten Form der Kommunikation. Aus diesem Grund
liegt der zweite Schwerpunkt dieser Arbeit auf dem Vergleich von
objektorientierten Middleware-Architekturen, insbesondere von
Java-RMI. Auch auf diesem Gebiet wird eine eigene, speziell an
eingebettete Systeme angepasste RMI-Variante vorgestellt.Modern, object oriented languages do not play an important role when developing software for embedded systems. There are many reasons for it, most often an inadequate performance and a greater memory demand are mentioned. In spite of the fact that Java has many features suitable for embedded systems, Java often faces the prejudice to consume too much resources in systems with limited processing power and memory. This work is a contribution to diminish this prejudices. It presents techniques to limit the memory demands of a Java Virtual Machine and to effectively cope with limited computing power. Many of the presented methods and algorithms are implemented in the Kertasarie VM, a JVM designed to run in embedded systems.Due to the fact of increasing network capabilities embedded systems often face the problem of a modern, abstract and efficient communication. Therefore the second emphasis of this work is put on the comparison of object oriented middleware architectures, especially Java-RMI. An own implementation for embedded systems is also presented
Deductive Verification of Safety-Critical Java Programs
This work investigates the application of deductive verification techniques to safety critical Java programs, in particular RTSJ programs. A focus is put on the formalization of the RTSJ memory model in dynamic logic, the utilization of a region-based memory model for ensuring non-interference and a design-by-contract based approach for the formal specification and verification of worst case memory consumption
Effiziente Mehrkernarchitektur für eingebettete Java-Bytecode-Prozessoren
Die Java-Plattform bietet viele Vorteile für die schnelle Entwicklung komplexer Software. Für die Ausführung des Java-Bytecodes auf eingebetteten Systemen eignen sich insbesondere Java-(Bytecode)-Prozessoren, die den Java-Bytecode als nativen Befehlssatz unterstützen. Die vorliegende Arbeit untersucht detailliert die Gestaltung einer Mehrkernarchitektur für Java-Prozessoren zur effizienten Nutzung der auf Thread-Ebene ohnehin vorhandenen Parallelität eines Java-Programms. Für die Funktionalitäts- und Leistungsbewertung eines Prototyps wird eine eigene Trace-Architektur eingesetzt. Es wird eine hohe Leistungssteigerung bei nur geringem zusätzlichem Hardwareaufwand erzielt sowie eine höhere Leistung als bekannte alternative Ansätze erreicht
Java Sound als Plattform für die Entwicklung studiotauglicher Audioapplikationen
Die vorliegende Arbeit versucht, die Eignung von Java Sound als Basisplattform für die Entwicklung studiotauglicher Audioanwendungen zu evaluieren. Dafür werden die Besonderheiten der Audioprogrammierung mit Sampling- und MIDI-Daten erarbeitet und daraus Anforderungen an Audiosoftware für den Studiobereich abgeleitet. Es wird kritisch überprüft, inwieweit Java und Java Sound theoretisch geeignet sind, diese Anforderungen zu erfüllen. Gegenstand der Überprüfung ist dabei sowohl das Java Sound API als auch dessen Implementierungen. Im praktischen Teil werden zwei Sampleeditoren und einige PlugIns entwickelt, um aus der praktischen Erfahrung weitere Ergebnisse zu gewinnen. Abschließend wird eine Gesamtbewertung der Studiotauglichkeit von Java Sound vorgenommen und ein Zukunftsausblick gegeben
Zuverlässige und herstellerübergreifende Medizingeräteinteroperabilität: Beiträge zur IEEE 11073 SDC-Normenfamilie
Medizingeräte im Krankenhaus sind heute fast ausschließlich isolierte Insellösungen. Sie stellen nach außen keine Informationen und Interaktionsmöglichkeiten bereit - oder nur innerhalb ihres geschlossenen Ökosystems. Daher führt diese Arbeit in die neue IEEE 11073 Service-oriented Device Connectivity (SDC)-Normenfamilie ein, die eine herstellerübergreifende Interoperabilität ermöglicht. Es werden drei Anwendungsbereiche betrachtet: zuverlässige Fernauslösung von Gerätefunktionalitäten, dynamische Assoziierung von Fernsteuerungselementen und -operationen und verteilte Alarmierungssysteme.Medical devices in today's hospitals are almost always isolated systems, which do not transmit information to or interact with external devices. At the most, this is possible within closed company ecosystems. Thus, this work introduces the new IEEE 11073 Service-oriented Device Connectivity (SDC) family of standards, which provides manufacturer-independent interoperability. Three fields of application are considered: safe activation of a device's functionality, dynamic association of a random number of remote-control elements and remote-controllable operations, and distributed alarm systems