219 research outputs found

    Timed petri-nets and FastAsy

    Get PDF
    Die Arbeit führt eine spezielle Klasse von zeitbeschrifteten Petri-Netzen mit Read-Arcs ein. Wir stellen darauf basierend einen Effizienzbegriff vor und verwenden ein Testing-Szenario, um zu einer Charakterisierung des Begriffs zu gelangen. Wir zeigen weiter eine Methode auf, zeitbehaftete Erreichbarkeitsgraphen effizient zu speichern. Die Ausdrucksmächtigkeit verschiedener Untertypen der Netze werden untersucht. Zuletzt stellen wir unsere Software FastAsy vor, die automatisiert die Effizienz solcher Netze vergleichen kann.This work introduces a special class of timed petri-nets with read-arcs. Based on this, we present a notion of efficiency and then use a testing scenario to provide a means of characterization. Furthermore we show a method for efficient storage of timed reachability graphs. The expressiveness of different subtypes of our nets is discussed. Last we present our software FastAsy which can automatically compare the efficiency of such nets

    Einsatz Domänen-spezifischer Sprachen für Komponenten-basierte Web Anwendungen

    Get PDF
    In Projekten zur Entwicklung verteilter Web-basierter Systeme stellt die Spezifikation der zu entwickelnden Lösung eine zeitintensive Aufgabe dar, bei der häufig Kommunikationsschwierigkeiten zwischen Kunden, Anwendern und Entwicklern auftreten. Domänen-spezifische Sprachen (DSLs) bieten sich hier aufgrund ihrer Nähe zur Problemdomäne und der damit einhergehenden leichteren Erlernbarkeit und Verständlichkeit als ideale Alternative zu schwergewichtigen Modellierungsmethoden an. Dieser Beitrag präsentiert einen Ansatz zur Entwicklung von Web Anwendungen durch Komposition hochgradig konfigurierbarer Fachkomponenten und deren Konfiguration mittels DSLProgrammen

    Partner datenverarbeitender Services

    Get PDF
    Diese Arbeit untersucht den Einfluss von Daten auf das Verhalten und die Korrektheit eines verteilten Systems. Ein verteiltes System besteht aus mehreren Services. Ein Service ist eine selbständige, plattformunabhängige Einheit, die anderen Services eine bestimmte Funktionalität über eine wohldefinierte Schnittstelle zur Verfügung stellt. In dieser Arbeit betrachten wir die Interaktion von jeweils genau zwei Services miteinander. Zwei Services, die erfolgreich miteinander zusammenarbeiten können, nennen wir Partner. Ein Service heißt bedienbar, wenn er mindestens einen Partner hat. Ziel der Arbeit ist es, zu untersuchen, wann zwei Services Partner sind, und für einen Service zu entscheiden, ob dieser bedienbar ist. Aufgrund der Daten kann der Zustandsraum eines Service sehr groß oder sogar unendlich groß werden. Wir untersuchen zwei Klassen von Services mit unendlich vielen Zuständen. Für diese Klassen stellen wir Algorithmen vor, welche zu einem gegebenen Service einen Partner synthetisieren, falls ein solcher existiert. Auf diese Weise entscheiden wir konstruktiv die Bedienbarkeit eines Service. Weiterhin stellen wir Transformationsregeln für Partner vor und untersuchen, wie viel Speicherplatz ein Partner eines Services mindestens benötigt.This thesis studies the influence of data on the behavior and the correctness of a distributed system. A distributed system consists of several services. A service is a self-contained, platform-independent entity which provides a certain functionality to other services via a well-defined interface.In this thesis, we consider the interaction of exactly two services. Two services that can successfully cooperate with each other are called partners. We call a service controllable, if the service has at least one partner. The goal of this thesis is to study the conditions for which two services are partners and to decide whether a given service is controllable. Due to the data, the state space of a service may be very large or even infinite. We investigate two classes of services with infinitely many states. For these classes, we present algorithms that synthesize a partner of a service, if it exists. This allows us to decide the controllability of a service constructively. Furthermore, we present transformation rules for partners and investigate the minimum amount of memory that a partner of a service needs

    Modellierung und Verifikation von verteilten/parallelen Informationssystemen

    Get PDF
    Petri nets are used in many fields as modelling technique. The different usage areas and modelling objectives require different classes of Petri nets. Powerful high level Petri nets and especially coloured Petri nets are well suited for describing behavior of distributed information systems in order to verify and analyse them. Extended coloured Petri nets with structured marks are presented in this work. An example is used in order to demonstrate the analysis and verification steps. This example algorithm is modeled with extended coloured Petri nets (HCPN-ST). It is transformed into coloured Petri nets, in order to simulate, analyse and verify the method with existing software tools. The model is simulated and analysed with PENECA Chromos tool, although it cannot verify all properties, but it allows to interoperate with INA tool. The remainder of the analysis and verification is done in the INA tool. The above mentioned steps are extended and integrated into the complete analysis process and the verification methodology. Finally, the need and motivation for the extension of dynamic approaches modelling for the analysis of distributed information system is elaborated to accomplish the goal of the work. We succeed to validate, that the extended formal method is an effective method to model and analyse distributed information systems.Petrinetze werden in vielen Bereichen als Modellierungstechnik verwendet. Die verschiedenen Einsatzgebiete und Modellierungsziele erfordern mittel unterschiedliche Typen von Petrinetzen. Die höheren Petrinetze eignen sich gut zur Formalisierung des Verhaltens verteilter Informationssysteme zum Zweck der Verifikation und Analyse. Eine Klasse erweiterter gefärbte Petrinetze (HCPN-ST) mit strukturierten Marken wird in dieser Arbeit vorgestellt und am Beispiel erläutert. An diesem konkreten Modell wird die Analyse und Verifikation demonstriert. Das Beispiel-Algorithmenmodell wird in ein CPN transformiert. Der Algorithmus der Transformation wird vorgestellt. Diese Transformation wird durchgeführt, um die erweiterte Methode mit Software -Tools zu analysieren und verifizieren. Mit Peneca Chromos wird das Modell editiert und simuliert und einige Eigenschaften werden analysiert. Die weitere Analyse und Verifikation erfolgt mit dem Tool INA. Es folgt die Erweiterung und Integration in den gesamten Analyseprozess und die Verifikationsmethodik. Abschließend wird die Notwendigkeit und Motivation zur Erweiterung von dynamischen Modellierungsansätzen für die Analyse von verteilten Informationssystemen behandelt und damit die Zielstellung der Arbeit erreicht

    Adaptive Verhaltensentscheidung und Bahnplanung für kognitive Automobile

    Get PDF
    In der vorliegenden Arbeit wird eine biologisch motivierte Verhaltenssteuerung für ein kognitives Automobil vorgestellt, die ein hohes Maß an Rückmeldung liefert und damit die Grundlage für zukünftige Lernverfahren bildet. Weiterhin wird eine universell einsetzbare Bahnplanungskomponente entwickelt. Wesentliches Element des vorgestellten Ansatzes ist die Repräsentation von Fahrintention und Fahrzeugumfeld mit Hilfe von dynamischen Gefahrenkarten

    Fairneß, Randomisierung und Konspiration in verteilten Algorithmen

    Get PDF
    Fairneß (d.h. faire Konfliktlösung), Randomisierung (d.h. Münzwürfe) und partielle Synchronie sind verschiedene Konzepte, die häufig zur Lösung zentraler Synchronisations- und Koordinationsprobleme in verteilten Systemen verwendet werden. Beispiele für solche Probleme sind das Problem des wechselseitigen Ausschlusses (kurz: Mutex-Problem) sowie das Konsens-Problem. Für einige solcher Probleme wurde bewiesen, daß ohne die oben genannten Konzepte keine Lösung für das betrachtete Problem existiert. Unmöglichkeitsresultate dieser Art verbessern unser Verständnis der Wirkungsweise verteilter Algorithmen sowie das Verständnis des Trade-offs zwischen einem leicht analysierbaren und einem ausdrucksstarken Modell für verteiltes Rechnen. In dieser Arbeit stellen wir zwei neue Unmöglichkeitsresultate vor. Darüberhinaus beleuchten wir ihre Hintergründe. Wir betrachten dabei Modelle, die Randomisierung einbeziehen, da bisher wenig über die Grenzen der Ausdrucksstärke von Randomisierung bekannt ist. Mit einer Lösung eines Problems durch Randomisierung meinen wir, daß das betrachtete Problem mit Wahrscheinlichkeit 1 gelöst wird. Im ersten Teil der Arbeit untersuchen wir die Beziehung von Fairneß und Randomisierung. Einerseits ist bekannt, daß einige Probleme (z.B. das Konsens- Problem) durch Randomisierung nicht aber durch Fairneß lösbar sind. Wir zeigen nun, daß es andererseits auch Probleme gibt (nämlich das Mutex-Problem), die durch Fairneß, nicht aber durch Randomisierung lösbar sind. Daraus folgt, daß Fairneß nicht durch Randomisierung implementiert werden kann. Im zweiten Teil der Arbeit verwenden wir ein Modell, das Fairneß und Randomisierung vereint. Ein solches Modell ist relativ ausdrucksstark: Es erlaubt Lösungen für das Mutex-Problem, das Konsens-Problem, sowie eine Lösung für das allgemeine Mutex-Problem. Beim allgemeinen Mutex-Problem (auch bekannt als Problem der speisenden Philosophen) ist eine Nachbarschaftsrelation auf den Agenten gegeben und ein Algorithmus gesucht, der das Mutex-Problem für jedes Paar von Nachbarn simultan löst. Schließlich betrachten wir das ausfalltolerante allgemeine Mutex-Problem -- eine Variante des allgemeinen Mutex-Problems, bei der Agenten ausfallen können. Wir zeigen, daß sogar die Verbindung von Fairneß und Randomisierung nicht genügt, um eine Lösung für das ausfalltolerante allgemeine Mutex-Problem zu konstruieren. Ein Hintergrund für dieses Unmöglichkeitsresultat ist ein unerwünschtes Phänomen, für das in der Literatur der Begriff Konspiration geprägt wurde. Konspiration wurde bisher nicht adäquat charakterisiert. Wir charakterisieren Konspiration auf der Grundlage nicht-sequentieller Abläufe. Desweiteren zeigen wir, daß Konspiration für eine große Klasse von Systemen durch die zusätzliche Annahme von partieller Synchronie verhindert werden kann, d.h. ein konspirationsbehaftetes System kann zu einem randomisierten System verfeinert werden, das unter Fairneß und partieller Synchronie mit Wahrscheinlichkeit 1 konspirationsfrei ist. Partielle Synchronie fordert, daß alle relativen Geschwindigkeiten im System durch eine Konstante beschränkt sind, die jedoch den Agenten nicht bekannt ist. Die Darstellung der Unmöglichkeitsresultate und die Charakterisierung von Konspiration wird erst durch die Verwendung nicht-sequentieller Abläufe möglich. Ein nicht-sequentieller Ablauf repräsentiert im Gegensatz zu einem sequentiellen Ablauf kausale Ordnung und nicht zeitliche Ordnung von Ereignissen. Wir entwickeln in dieser Arbeit eine nicht-sequentielle Semantik für randomisierte verteilte Algorithmen, da es bisher keine in der Literatur gibt. In dieser Semantik wird kausale Unabhängigkeit durch stochastische Unabhängigkeit widergespiegelt.Concepts such as fairness (i.e., fair conflict resolution), randomization (i.e., coin flips), and partial synchrony are frequently used to solve fundamental synchronization- and coordination-problems in distributed systems such as the mutual exclusion problem (mutex problem for short) and the consensus problem. For some problems it is proven that, without such concepts, no solution to the particular problem exists. Impossibilty results of that kind improve our understanding of the way distributed algorithms work. They also improve our understanding of the trade-off between a tractable model and a powerful model of distributed computation. In this thesis, we prove two new impossibility results and we investigate their reasons. We are in particular concerned with models for randomized distributed algorithms since little is yet known about the limitations of randomization with respect to the solvability of problems in distributed systems. By a solution through randomization we mean that the problem under consideration is solved with probability 1. In the first part of the thesis, we investigate the relationship between fairness and randomization. On the one hand, it is known that to some problems (e.g. to the consensus problem), randomization admits a solution where fairness does not admit a solution. On the other hand, we show that there are problems (viz. the mutex problem) to which randomization does not admit a solution where fairness does admit a solution. These results imply that fairness cannot be implemented by coin flips. In the second part of the thesis, we consider a model which combines fairness and randomization. Such a model is quite powerful, allowing solutions to the mutex problem, the consensus problem, and a solution to the generalized mutex problem. In the generalized mutex problem (a.k.a. the dining philosophers problem), a neighborhood relation is given and mutual exclusion must be achieved for each pair of neighbors. We finally consider the crash-tolerant generalized mutex problem where every hungry agent eventually becomes critical provided that neither itself nor one of its neighbors crashes. We prove that even the combination of fairness and randomization does not admit a solution to the crash-tolerant generalized mutex problem. We argue that the reason for this impossibility is the inherent occurrence of an undesirable phenomenon known as conspiracy. Conspiracy was not yet properly characterized. We characterize conspiracy on the basis of non-sequential runs, and we show that conspiracy can be prevented by help of the additional assumption of partial synchrony, i.e., we show that every conspiracy-prone system can be refined to a randomized system which is, with probability 1, conspiracy-free under the assumptions of partial synchrony and fairness. Partial synchrony means that each event consumes a bounded amount of time where, however, the bound is not known. We use a non-sequential semantics for distributed algorithms which is essential to some parts of the thesis. In particular, we develop a non-sequential semantics for randomized distributed algorithms since there is no such semantics in the literature. In this non-sequential semantics, causal independence is reflected by stochastic independence

    Eine Verallgemeinerung der Überwachersynthese mit Hilfe des mü-Kalküls

    Get PDF

    Komponentenbasierte Überwachung hybrider Systeme durch den Einsatz formaler Methoden

    Full text link
    Die vorliegende Arbeit beschäftigt sich mit der Entwicklung eines neuen Verfahrens zum nahtlosen Komponentenentwurf und zur Systemüberwachung durch ein einheitliches Modell, das die Anforderungen der Entwicklung von komplexen dynamischen Systemen erfüllt und somit einen Beitrag zum Entwurf verlässlicher Systeme leistet. Hierfür wird die komponentenbasierte Design-Methodologie KobrA eingesetzt, weil diese eine schrittweise Komponentenzerlegung auf verschiedenen Abstraktionsebenen und Sichten durchführt. Sie beinhaltet sowohl „Top-down“-Elemente als auch „Bottom-up“-Ansätze, die für eine effiziente prototypische Systemrealisierung geeignet sind. Mit der Entwicklung eines formalen echtzeitfähigen Überwachungs- und Fehlererkennungsmechanismus wird die KobrA-Methode durch eine formale Modellierungssprache erweitert, welche sowohl für die Softwareentwickler als auch für die Ingenieure verständlich sein soll. Aus diesem Grund sollte diese Sprache eine eindeutige und streng definierte Semantik besitzen. Die einheitliche Beschreibung der Systemkomponenten sowie der Überwachungskomponenten durch denselben formalen Sprachmittel ermöglicht die systematische Einbettung der Überwachung über den gesamten Entwicklungsprozess und dessen Ausführung während des Betriebs. Petri-Netze gehören zur Graphentheorie und zählen seit mehreren Jahren zu den mächtigsten Spezifikationswerkzeugen in verschiedenen Gebieten. Sie erlauben die Beschreibung des Komponentenverhaltens durch ein Netzwerk, bestehend aus Knoten und aus Bedingungen für den Datenfluss zwischen diesen Knoten. Wesentliche Vorteile von Petri-Netzen sind zum einen ihre formale mathematische Formulierung, die auf einem soliden theoretischen Fundament beruht, sowie zum anderen die explizite Abbildung des Prozesszustandes über ein Markierungskonzept. Petri-Netze ermöglichen zusätzlich die Darstellung sequentieller, sich gegenseitig ausschließender sowie paralleler Aktivitäten, die Modellierung und Visualisierung von Systemverhalten sowie die Nebenläufigkeit und die Synchronisation von kooperativen Prozessen. In dieser Arbeit erfolgt die Verhaltensbeschreibung der Überwachungskomponenten durch eine neue Klasse von Petri-Netzen, so genannte „Modifizierte Partikel Petri-Netze“ (engl., Modified Particle Petri Nets „MPPN“). Diese Netzklasse beinhaltet hybride Petri-Netze für die Modellierung des hybriden Systemverhaltens und einen Partikelfilter als probabilistische Erweiterung, um die Überwachung als Tracking-Problem aufzufassen. Petri-Netze bieten eine vollständige und konsistente Beschreibung der Prozesse, die graphische Anschauung sowie Simulation und Animation als Testmöglichkeit bereits während der Entwurfsphase. Die Kombination aus KobrA-Beschreibungsformalismus und Petri-Netzen erlaubt eine anschauliche, modular und hierarchisch strukturierte Modellierung, direkt in einer formalen Sprache. Durch unterstützende Werkzeuge, die im Rahmen dieser Arbeit entwickelt sind, kann die Realisierung der Überwachungskomponente direkt aus der Spezifikation generiert werden. Hierfür wird das Petri-Netzmodell in ein textuelles kompaktes XML-Austauschformat (engl., „Extensible Markup Language“) transformiert, welche sich an dem PNML-Standard (engl., „Petri Net Markup Language“) orientiert. Diese generische Vorlage enthält das Komponentenverhalten und die für den Überwachungsprozess notwendigen Parameter. Der besondere Aspekt für den Einsatz derselben formalen Methode, nämlich die Petri-Netze, sowohl für die Spezifikation als auch für die Realisierung, beruht auf zwei Zielen. Das primäre Ziel ist, ein einheitliches verständliches Ausdrucksmittel für die Entwurfsphase eines Systems zu stellen, mit dem alle Aspekte des ausgewählten Abstraktionsniveaus unmissverständlich dargestellt werden können. Denn Spezifikationsdokumente in natürlichen Sprachen sind anfällig für Missverständnisse, während formale Spezifikationen auf mathematischen Beschreibungen und eindeutiger Semantik und Syntaxen basieren. Das sekundäre Ziel ist eine formale überprüfbare Spezifikation (mittels eines Simulationswerkzeuges) als solide Basis für die Realisierungsphase zu bilden. Denn eine automatisch verifikationsbasierte Systementwicklung stellt eine Möglichkeit zur Erhöhung der Systemverlässlichkeit dar. Die andere Möglichkeit basiert auf der Robustheit des Überwachungsverfahrens während der Betriebsphase

    Komponentenbasierte Softwareentwicklung für datenflußorientierte eingebettete Systeme

    Get PDF
    Diese Dissertation beschäftigt sich mit den Problemen bei der Entwicklung von effizienter und zuverlässiger Software für eingebettete Systeme. Eingebettete Systeme sind inhärent nebenläufig, was mit einen Grund für ihre hohe Entwurfskomplexität darstellt. Aus dieser Nebenläufigkeit resultiert ein hoher Grad an Kommunikation zwischen den einzelnen Komponenten. Eine wichtige Forderung zur Vereinfachung des Entwurfsprozesses besteht in der getrennten Modellierung von Kommunikationsprotokollen und eigentlichen Verarbeitungsalgorithmen. Daraus resultiert eine höhere Wiederverwendbarkeit bei sich ändernden Kommunikationsstrukturen. Die Grundlage für die sogenannten Datenflußsprachen bildet eine einfache von Gilles Kahn konzipierte Sprache für Parallelverarbeitung. In dieser Sprache besteht ein System aus einer Menge sequentieller Prozesse (Komponenten), die über Fifokanäle miteinander kommunizieren. Ein Prozess ist rechenbereit, wenn seine Eingangsfifos mit entsprechenden Daten gefüllt sind. Übertragen werden physikalische Signale, die als Ströme bezeichnet werden. Ströme sind Folgen von Werten ohne explizite Zeitangaben. Das Einsatzgebiet von Datenflußsprachen liegt in der Entwicklung von Programmen zur Bild- und Signalverarbeitung, typischen Aufgaben in eingebetteten Systemen. Die Programmierung erfolgt visuell, wobei man Icons als Repräsentanten parametrisierbarer Komponenten aus einer Bibliothek auswählt und mittels Kanten (Fifos) verbindet. Ein im allgemeinen dynamischer Scheduler überwacht die Ausführung des fertiggestellten Anwendungsprogramms. Diese Arbeit schlägt ein universelleres Modell physikalischer Signale vor. Dabei werden zwei Ziele verfolgt: 1. Effiziente Kommunikation zwischen den Komponenten 2. Entwurfsbegleitende Überprüfung von Programmeigenschaften unter Verwendung komplexerer Komponentenmodelle Zur Effizienzsteigerung werden nur relevante Werte innerhalb von Strömen übertragen. Dies erhöht zwar den Mehraufwand zur Kennzeichnung des Aufbaus eines Teilstroms, in praktischen Anwendungen ist die hier vorgestellte Methode jedoch effizienter. Die Einführung neuer Signalmerkmale erlaubt unterschiedlichste Überprüfungen der Einhaltung von Typregeln durch die Eingangs- und Ausgangsströme einer Komponente. Anstelle einfacher Schaltregeln werden aufwendigere Kommunikationsprotokolle für die verschiedenen Arten von Komponenten eingeführt. Fifomaten (Fifo-Automaten) dienen als formale Grundlage. Mittels eines dezidierten Model-Checking-Verfahrens wird das Zusammenspiel der Fifomaten daraufhin untersucht, ob ein zyklischer Schedule existiert. Die Existenz eines solchen zyklischen Schedules schließt Speicherüberlauf und Deadlocks aus und garantiert darüber hinaus, daß das Programm nach endlicher Zeit wieder in die Ausgangssituation zurückfindet. Da im allgemeinen die Datenflußprogramme turingäquivalent sind, kann es allerdings zyklische Schedules geben, die das Verfahren nicht entdeckt. Mit der hier vorgestellten und implementierten Methode wird die Entwicklungszeit korrekter Datenflußprogramme deutlich reduziert. Das neue Modell physikalischer Signale macht zudem die Ausführung effizienter

    Tool-Supported Formal Analysis of Real-Time Systems

    Get PDF
    In dieser Arbeit werden Verfahren zur effizienten, benutzerfreundlichen Analyse von Echtzeitsystemen entwickelt. Ziel ist die Verbesserung der Entwurfsqualität hinsichtlich von dynamischen/zeitlichen Programmabläufen möglichst ohne zusätzlichen Aufwand seitens des Entwicklers. Dieses erfordert ein Aufsetzen auf Spezifikationen, die bei der Entwicklung ohnehin anfallen. Konkret wird daher untersucht, wie sich Modelle der Unified Modeling Language mit formalen Methoden analysieren lassen und wie diese Analyse automatisiert werden kann. Es wird geklärt, welche Teilmenge von Modellen als Ausgangspunkt für eine dynamische Analyse geeignet ist. Dabei werden in dieser Arbeit drei Analyseziele definiert, die jeweils eine eigene Sprachdefinition erfordern. Wichtiger Bestandteil der Arbeit ist die Realisierung einer automatisierten Analyse. Dabei wird auf formale Techniken wie Model-Checking und auf algorithmische Lösungen der Scheduling-Theorie zurückgegriffen. Es wird nachgewiesen, dass sich verschiedene theoretische Lösungsansätze unter dem Dach einer einheitlichen Notation für den Anwender transparent anwenden lassen und in der Summe zu einer deutlichen Verbesserung der Software- Qualität in einem besonders komplexen Anwendungsgebiet beitragen können.In this work, methods for an efficient and user friendly analysis of real-time systems are developed. The intention is an improvement of the quality of the software design regarding the dynamic/temporal execution runs without additional efforts of the developer. This requires the use of specification models, which are common in the developing process, as basis for the analysis. Therefore, formal analysis of the Unified Modeling Language (UML) is investigated and how this analysis can be automated. As precondition, it is investigated, which subset of UML models is well suited for a dynamic analysis. Three domains of an analysis are defined, which requires their own input language definition. An important part of this work is the development of an automated analysis. Therefore, formal methods like model checking and algorithms of the scheduling theory are used. It is shown, that different solution approaches can be hidden behind a well-known notation for improving the quality of software design in a complex application domain
    corecore