[go: up one dir, main page]

DE10065286B4 - Methods for designing and / or operating combinable components (TYCS) - Google Patents

Methods for designing and / or operating combinable components (TYCS) Download PDF

Info

Publication number
DE10065286B4
DE10065286B4 DE10065286A DE10065286A DE10065286B4 DE 10065286 B4 DE10065286 B4 DE 10065286B4 DE 10065286 A DE10065286 A DE 10065286A DE 10065286 A DE10065286 A DE 10065286A DE 10065286 B4 DE10065286 B4 DE 10065286B4
Authority
DE
Germany
Prior art keywords
contracts
components
contract
behavior
component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE10065286A
Other languages
German (de)
Other versions
DE10065286A1 (en
Inventor
Holger Giese
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GIESE, HOLGER, 33098 PADERBORN, DE
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to DE10065286A priority Critical patent/DE10065286B4/en
Publication of DE10065286A1 publication Critical patent/DE10065286A1/en
Application granted granted Critical
Publication of DE10065286B4 publication Critical patent/DE10065286B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Verfahren zum Betrieb kombinierbarer Komponenten in Applikationsservern, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird,
dadurch gekennzeichnet, daß zur Beschreibung jeder Komponente
zusätzlich zur syntaktischen Schnittstellenbeschreibung jeweils ein Verhaltensprotokoll für jeden Kontrakt verwendet wird, das Eigenschaften der Komponente bzgl. der Synchronisation zwischen den Komponenten über den jeweiligen Kontrakt beschreibt,
eine interne Abhängigkeitsrelation zur Beschreibung der Abhängigkeiten zwischen angebotenen und benutzten Kontrakten verwendet wird, die mittels eingeschränkter Kontrakte, die nur zu einer einseitigen Blockierung des Kontraktbenutzers durch den Kontraktanbieter führen können, die Abhängigkeiten innerhalb der Komponente zwischen angebotenen und benutzten Kontrakten beschreibt und zusammen mit den Kontrakten erlaubt, Anomalien bei der Synchronisation der Komponente mit anderen Komponenten des Gesamtsystems auszuschließen,
mittels Applikationsservern und/oder Betriebssystembestandteilen Synchronisations-Anomalien der kombinierbaren Komponenten beim Betrieb der Komponenten verhindert oder diagnostiziert werden, indem die Abhängigkeitsrelation bei Kombination von...
Method for operating combinable components in application servers, in which the behavior of the components of an overall system formed from the components is described by means of interfaces between individual components on the basis of contracts,
characterized in that to describe each component
in addition to the syntactical interface description, a behavior protocol is used for each contract, which describes the properties of the component with regard to the synchronization between the components via the respective contract,
An internal dependency relation is used to describe the dependencies between offered and used contracts, which describes the dependencies within the component between offered and used contracts and together with the contracts by means of restricted contracts, which can only lead to a one-sided blocking of the contract user by the contract provider allows to exclude anomalies in the synchronization of the component with other components of the overall system,
by means of application servers and / or operating system components, synchronization anomalies of the combinable components during the operation of the components can be prevented or diagnosed by the dependency relation when combining ...

Figure 00000001
Figure 00000001

Description

Die Erfindung betrifft ein Verfahren nach den Ansprüchen 1 und/oder 2, zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten gemäß den Oberbegriffen der Ansprüche 1 und 2. The Invention relates to a method according to claims 1 and / or 2, for design and / or for the operation of combinable components according to the generic terms of claims 1 and 2.

Der Entwurf und Betrieb von heute in der Regel recht umfangreichen Softwareprogrammen ist in der Praxis durch eine Vielzahl von Problemen gekennzeichnet. Ein Problem besteht darin, daß umfangreiche Softwareprogramme von einer großen Zahl von Mitarbeitern parallel entwickelt werden und daher zur Realisierung verschiedener Unterfunktionen häufig jeweils eigene Programmroutinen entwickelt werden. Die dadurch bedingte, häufig monolithische Struktur vieler umfangreicher Anwendungsprogramme erfordert, daß bei Anwendungen häufig in identischer oder ähnlicher Form wiederkehrende Teilfunktionen häufig jeweils spezifisch neu implementiert werden müssen, wodurch der Programmieraufwand und die Länge des Programmcodes und damit die Kosten für die Softwareerstellung stark ansteigen.The Design and operation of software programs that are usually quite extensive is characterized by a variety of problems in practice. One problem is that extensive Software programs from a large number are developed by employees in parallel and therefore for implementation different sub-functions frequently each have their own program routines developed. The resulting frequently monolithic structure of many extensive application programs requires that at Applications often in identical or similar Form recurring sub-functions are often specifically new have to be implemented whereby the programming effort and the length of the program code and thus the costs for software development increases significantly.

Eine häufig geforderte Designregel für Softwareprojekte ist deswegen, den Grad der Wiederverwendung der Softwarebausteine zu erhöhen. In der Praxis sind bisher Frameworks oder Bibliotheken (libraries) bekannt, die die übliche Form der Wiederverwendung von Softwareelementen darstellen. In derartigen Bibliotheken oder Frameworks werden immer wieder benötigte Softwarefragmente abgelegt und dokumentiert, welche Daten jeweils übergeben werden müssen und welche Werte zurückgeliefert werden. Auch sollten entsprechende Erläuterungen zur inneren Funktionsweise der Bibliotheken oder Frameworks bzw. von deren Bestandteilen hinterlegt sein.A frequently required design rule for Software projects is therefore the level of reuse of the Increase software modules. So far, frameworks or libraries have been used in practice. known to be the usual Represent the form of reuse of software elements. In such Libraries or frameworks are always needed software fragments filed and documented which data must be transferred and what values are returned become. Appropriate explanations of the internal functioning should also be provided the libraries or frameworks or their components.

Darüber hinaus sind verschiedene Komponentensysteme [Szyperski 1998] und entsprechende Infrastrukturen in Form von Betriebssystemerweiterungen oder sogenannten Applikationsservern eingeführt und standardisiert worden. Eine Reihe von Ansätzen beschränken sich dabei auf die Aspekte von graphischen Benutzerschnittstellen (OLE + COM, JavaBeans), während für den gesamten Anwendungsentwurf COM+ mit MTS, Enterprise JavaBeans mit JTS und die in der Standardisierung befindlichen CORBA Components zu nennen sind. Von diesen Neuerungen erhofft man sich, die Produktivität entscheidend steigern zu können und die als „Softwarekrise" beschriebenen Probleme der Softwareerstellung somit zumindest teilweise überwinden zu können.Furthermore are different component systems [Szyperski 1998] and corresponding infrastructures in the form of operating system extensions or so-called application servers introduced and been standardized. A number of approaches are limited to the aspects of graphical user interfaces (OLE + COM, JavaBeans) while for the whole Application design COM + with MTS, Enterprise JavaBeans with JTS and to name the CORBA components that are in the process of standardization are. One hopes that these innovations will make productivity decisive to be able to increase and the problems described as the "software crisis" overcome software development at least partially to be able to.

Alle derartigen Ansätze haben jedoch den Nachteil, daß schon beim Austausch einzelner Programmbestandteile gegen andere das Verhalten des gesamten Programmensystems nicht zwangsläufig stabil sein muß. Wird beispielsweise im einfachsten Fall ein Unterprogramm aus einer Programmbibliothek gegen ein anderes ausgetauscht, das hinsichtlich der gelieferten Ergebnisse funktionsgleich sein soll, so ist, wenn z.B. Callbacks (d.h. Aufrufe, die zurück in die Anwendung reichen) möglich sind, trotzdem nicht sicher gewährleistet, daß dieses neue Unterprogramm den Ablauf der Software nicht beeinträchtigt. Beispielsweise kann durch interne Funktionsweise des Unterprogrammes derartige Zustände hervorrufen, daß das Unterprogramm keine sinnvollen oder überhaupt keine Werte mehr an das aufrufende Programm zurück liefert und damit dieses aufrufende Programm nicht weiterarbeiten kann oder nicht mehr sinnvoll funktioniert. Hierdurch kann beispielsweise die Gesamtfunktion der Software in Frage gestellt werden, wobei insbesondere bei technischen Steuerungsprozessen z.B. für Fertigungsanlagen oder dgl. Echtzeit abhängigen Anwendungen dieses „Hängen" der Software gravierende technische und auch finanzielle Auswirkungen haben kann.All such approaches have the disadvantage, however, that behavior when exchanging individual program components for others of the entire program system need not necessarily be stable. Becomes for example, in the simplest case, a subroutine from a program library exchanged for another that is delivered Results should be functionally the same, for example if callbacks (i.e. calls that return range) possible are still not guaranteed, that this new subroutine does not affect the software process. For example, through the internal functioning of the subroutine cause such conditions that this Subroutine no more meaningful or no values at all the calling program back delivers and so this calling program does not continue to work can or no longer works sensibly. This can, for example the overall function of the software are questioned, whereby especially in technical control processes e.g. for manufacturing plants or the like. Real-time dependent Applications of this "hanging" of the software are serious can have technical and financial implications.

Kann bei herkömmlicher Vorgehensweise zur Softwareentwicklung dieses Hängenbleiben der Software dadurch vermieden werden, daß möglichst alle denkbaren Zustände z.B. bei Unterprogrammaufrufen ausgetestet werden und dadurch innerhalb des Unterprogrammes oder des aufrufenden Programmes entsprechende Vorkehrungen zum Abfangen derartiger undefinierter Zustände getroffen werden können, so ist bei zunehmender Modularisierung von Software und dem Trend zu während der Laufzeit jeweils neu konfigurierter Software eine derartige Vorgehensweise aufgrund der Vielfalt der möglichen Zusammenstellungen der Softwarekomponenten nicht mehr sinnvoll durchzuführen bzw. nicht mehr zuverlässig genug.can with conventional Approach to software development of this software getting stuck be avoided that as many as possible conceivable states e.g. are tested in subroutine calls and thus within the Precautions corresponding to the subroutine or the calling program can be taken to intercept such undefined states, so is increasing with the modularization of software and the trend while Such a procedure during the runtime of newly configured software due to the variety of possible combinations the software components no longer make sense or no longer reliable enough.

Unter einer Komponente versteht man in diesem Zusammenhang ein Element des Gesamtsystems mit wohl-definierten angebotenen und benutzten Kontrakten, das unabhängig einsetzbar ist. Ein Kontrakt ist dabei eine wohl-definierte Schnittstelle (englisch interface), die Syntax, funktionales Verhalten (Vorbedingungen und Nachbedingungen), Synchronisation (Protokolle) sowie die Dienstgüte (Quality of Service) beinhalten kann. Ein Dienst (englisch Service) ist dabei eine über einen oder mehrere wohl-definierte Kontrakte angebotene Leistung, unter Dienstvermittlung (englisch Trader) versteht man die Infrastruktur zur dynamischen Zuordnung von Diensten. Die Verwendung von Komponenten soll damit erleichtern, modulare statt monolithische Systeme zu erzielen, wodurch eine Erhöhung des Grades der Wiederverwendung und eine Austauschbarkeit von Komponenten zur Laufzeit des Programmes ermöglicht wird. Durch die Verwendung von Kontrakten wird durch ein späteres Zuordnen der Dienste eine erhöhte Flexibilität und Erweiterbarkeit der Software ermöglicht.In this context, a component is an element of the overall system with well-defined contracts that are offered and used and that can be used independently. A contract is a well-defined interface that can include syntax, functional behavior (preconditions and postconditions), synchronization (protocols) and quality of service. A service (English service) is a service offered via one or more well-defined contracts; service mediation (English trader) means the infrastructure for dynamic allocation of services. The use of components is intended to make it easier to achieve modular rather than monolithic systems, which enables an increase in the degree of reuse and interchangeability of components at runtime of the program. By using contracts By later assigning the services, increased flexibility and expandability of the software is made possible.

Der an sich ideale Entwurf und Betrieb von Softwarekomponenten in vollständig modularer Weise ist aufgrund in der Praxis verwendeter eingeschränkter Kontraktbegriffe und der oben aufgeführten Problematik des Testens von Softwareelementen eine bisher in der Praxis noch nicht erreichte Zielvorstellung. Die bisher verwendeten Verfahren und Technologien für Softwarekomponenten sind statt dessen in ihrem Um fang auf syntaktische Kontrakte beschränkt, wodurch die Synchronisation der Komponenten allein nicht sicher gewährleistet werden kann.The in itself ideal design and operation of software components in a completely modular Wise is due to limited contract terms used in practice and the one listed above Problem of testing software elements one in the past Practice not yet achieved. The previously used Processes and technologies for Instead, software components are syntactic in scope Contracts limited, whereby the synchronization of the components alone is not secure guaranteed can be.

Die heute vorhandenen „Middleware"-Produkte unterstützen eine Interoperabilität nur in der Form einer geeigneten Kodierung von Nachrichten und der standardisierten Abwicklung von Remote-Aufrufen. Deswegen reichen die durch die Laufzeitsysteme unterstützten Schnittstellenbegriffe in der Regel nicht aus, um die Übereinstimmung zwischen erwartetem und geleistetem Verhalten der Softwarebestandteile sicherzustellen. Die Anwendung aufwendiger mathematischer Modelle, um die funktionale Konformität von Komponentenverbindungen zu garantieren, wie z.B. der Entwurf mit Vor- und Nachbedingungen (design by contract [Meyer 1997]) ist möglich, aber bisher in der Praxis nicht üblich. Durch Verwendung von Interfacevererbung oder eindeutigen Identifikationsnummern kann allerdings jedem Interface zumindest theoretisch eine komplette Schnittstellenspezifikation zugeordnet werden. Allerdings erzwingt dies, daß die für die Kooperation zweier Programmbestandteile notwendige Schnittstelle komplett standardisiert ist. Dienste und ihre Vermittlung zwischen Komponenten sind somit entweder a priori auf Basiskontrakte beschränkt oder die Dienstzuordnung läuft Gefahr, fälschlicherweise ein „Passen" der Komponenten zu ermitteln, da Übereinstimmung für funktionales Verhalten im allg. nicht effizient bestimmbar ist.The Middleware products available today support one interoperability only in the form of an appropriate coding of messages and the standardized handling of remote calls. That's why it's enough the interface terms supported by the runtime systems usually not out to match between expected and accomplished behavior of the software components sure. The application of complex mathematical models, about functional conformity guarantee of component connections, e.g. the design with pre and post conditions (design by contract [Meyer 1997]) possible, but not yet common in practice. By Use of interface inheritance or unique identification numbers however, each interface can, at least theoretically, have a complete interface specification be assigned. However, this forces that for the cooperation of two program components necessary interface is completely standardized. Services and their mediation between components is therefore either a priori limited to basic contracts or the service assignment is running Danger, wrongly a "fit" of the components to determine because match for functional Behavior in general cannot be determined efficiently.

Im Gegensatz zu einzelnen Kontrakten zwischen zwei Komponenten und deren syntaktischen und funktionalen Bestandteilen kann bei der Synchronisation in einem komplexen Softwaresystem die Betrachtung nicht auf einzelne Verbindungen zwischen einzelnen Komponenten beschränkt werden, sondern muß im allgemeinen alle denkbaren Verbindungen zwischen allen Komponenten für das gesamte System umfassen. Diese Nicht-Lokalität („Transitivität") der Effekte und Abhängigkeiten führt dazu, daß eine Analyse von Synchronisationseffekten das gesamte bei der Kombination entstehende System umfassen muß. Dabei ist im allg. die Betrachtung einer sowohl die angebotenen wie die benutzten Kontrakte umfassenden Verhaltensspezifikation notwendig. Unter Verhaltensspezifikation versteht man in diesem Zusammenhang, daß die mögliche Interaktion der Komponente mit ihrer Umgebung über durch die Kontrakte bereitgestellte Aufrufe oder dgl. komplett beschrieben ist.in the Contrast to individual contracts between two components and their syntactic and functional components can be found in the Synchronization in a complex software system not be limited to individual connections between individual components, but rather must in general all conceivable connections between all components for the entire system. This non-locality ("transitivity") of the effects and dependencies leads to, that a Analysis of synchronization effects the whole when combining emerging system must include. In general, the consideration of both the offered such as the behavior specification comprising the contracts used necessary. In this context, behavioral specification means that the possible Interaction of the component with its environment via the contracts provided by the contracts Calls or the like is completely described.

Die sich ergebenden möglichen Varianten für kompatibles Komponentenverhalten, das andere Komponenten in jedem Kontext ersetzen kann, ohne das komplette System zu gefährden, sind dabei in ihrem Verhalten sehr weit eingeschränkt. Deswegen ist die Modularität des Systems bezogen auf diese Spezifikation im allgemeinen nicht gegeben, statt dessen wird bei Austausch der Komponente eine entsprechende komplexe Analyse des Systems notwendig. Bei dieser ist selbst für die einfache Klasse der endlichen Automaten bei paralleler Kombination von Komponenten bereits das exponentielle Wachstum des Zustandsraumes („state explosion problem") zu beobachten, das nahelegt, daß solch eine Analyse im allgemeinen nicht für beliebig kombinierte Systeme effizient möglich ist. Auch sollte ein genereller Austausch bei Einhaltung brauchbarer Restriktionen möglich sein, da sonst die modulare Weiterentwicklung von Komponenten nicht unterstützt ist.The resulting possible Variants for compatible Component behavior that other components replace in any context can do so without endangering the entire system Very limited behavior. That's why it's modular of the system generally not based on this specification is given instead, a corresponding one is given when the component is replaced complex analysis of the system necessary. This is even for the simple one Class of finite automata with parallel combination of components the exponential growth of the state space (“state explosion problem ") to observe, which suggests that such an analysis is generally not efficient for arbitrarily combined systems possible is. A general exchange should also be more useful if adhered to Restrictions possible be otherwise the modular further development of components supports is.

In der Praxis werden wegen der enormen Komplexität und der sich ergebenden sehr restriktiven Einschränkungen für gültige Ersetzungen (engl. Refinements) keine kompletten Verhaltensspezifikationen betrachtet. Komponentensysteme sind deswegen heutzutage dadurch gekennzeichnet, daß entweder eine generell eingeschränkte Architektur vorausgesetzt wird, um mögliche Synchronisations-Anomalien auszuschließen, oder aber das Problem wird ganz ignoriert. Die Abhängigkeiten zwischen angebotenen und erwarteten Kontrakten einer Komponente können z.B. in einem strikt hierarchischen Entwurf (engl. „layered architecture") die explizite Betrachtung unnötig machen. Allgemein beschreibt man, nach welchen generischen Mustern die Komponenten kooperieren können oder sollen. Ein Beispiel wäre hierfür eine sogenannte „Pipe and Filter"-Architektur, deren Elemente jeweils einen Strom von Daten verarbeiten können. Im Gegensatz zu den in der Regel auf syntaktische Aspekte beschränkten Schnittstellenbeschreibungen wird bei der Beschreibung von Software-Architekturen dem Verhalten und der Interaktion der Teile ebenso Aufmerksamkeit geschenkt. Als Beispiel sei hier nur der explizite „Connector"-Begriff aus [Allen&Garlan 1997] erwähnt, der Protokolle zur Beschreibung der möglichen Interaktionsfolgen für Verbindungen verwendet. Ist keine geeignete übergreifende Software-Architektur [Shaw&Garlan 1996] definiert, so kann die Integration von Komponenten selbst bei Verwendung von Adaptern scheitern („architectural mismatches"). Bei nicht streng hierarchischen oder gemischten und sich überlappenden Architektursti len werden desweiteren die Erwartungen und Zusicherungen bzgl. einer Komponente immer unklarer. Ein systematische und praktikable Möglichkeit, dies für eine Komponente zu beschreiben, fehlt heutzutage.In practice, due to the enormous complexity and the resulting very restrictive restrictions for valid replacements (English refinements), no complete behavioral specifications are considered. Component systems are therefore now characterized in that either a generally restricted architecture is required to rule out possible synchronization anomalies, or the problem is ignored entirely. The dependencies between the offered and expected contracts of a component can make explicit observation unnecessary in a strictly hierarchical design (English: "layered architecture"). In general, one describes the generic patterns according to which the components can or should cooperate. An example of this would be one So-called "pipe and filter" architecture, the elements of which can each process a stream of data. In contrast to the interface descriptions, which are usually limited to syntactic aspects, the description and description of software architectures also pay attention to the behavior and interaction of the parts. As an example, only the explicit "connector" term from [Allen & Garlan 1997] should be mentioned, which uses protocols to describe the possible interaction sequences for connections. If no suitable comprehensive software architecture [Shaw & Garlan 1996] is defined, the integration of components itself can be done fail when using adapters ("architectural mismatches"). In the case of not strictly hierarchical or mixed and overlapping architectural styles, the expectations and assurances regarding one Component increasingly unclear. A systematic and practicable way of describing this for a component is missing these days.

Die möglichen Synchronisations-Anomalien beim Einsatz komponentenbasierter Software können ihre Ursache in semantischen Annahmen und Effekten haben, die auch unter Verwendung von Datenbanktechnologien teilweise nicht ausgeschlossen werden können. Darüber hinaus können verteilte, zeitlich längere Transaktionen und die Erkennung von Verklemmungen in verteilten Systemen nicht beliebig skaliert werden und daher in der Praxis zu nicht unerheblichen Performanceproblemen führen. Die heutigen Komponentenansätze beschränken sich darauf, die notwendigen Datenbankkonzepte, wie Transaktionen und Persistenz, durch standardisierte Schnittstellen zu integrieren. Die hier angesprochene Problematik der durch nicht miteinander harmonierende Interaktionen entstehende Synchronisations-Anomalien ist somit größtenteils unabhängig von Datenbanktechnologien zu sehen.The potential Synchronization anomalies when using component-based software can have their cause in semantic assumptions and effects that too partially cannot be excluded using database technologies can. About that can out distributed, longer in time Transactions and detection of deadlocks in distributed Systems are not scaled arbitrarily and therefore in practice lead to not inconsiderable performance problems. Today's component approaches are limited to the necessary database concepts, such as transactions and persistence, to integrate through standardized interfaces. The problem addressed here the result of interactions that do not harmonize with each other Synchronization anomalies are therefore largely independent of database technologies to see.

Als Beispiel, um die möglichen Probleme, die durch die Synchronisation von Komponenten entstehen, zu verdeutlichen, soll im folgenden kurz das Beispiel eines flachen Directory Service [aus Syperski 1998, s. 52) verwendet werden. Umfang der Komponente ist die in 5 (links) gegebene Schnittstelle (Kontrakt), die beschreibt, wie mittels der Operationen lookup, add, remove, register und unregister das Directory entsprechend modifiziert werden kann. Die Operationen sind hierbei mit entsprechenden Vor- und Nachbedingungen (vgl. [Meyer 1997]) durch geschweifte Klammern spezifiziert, wobei {query} beschreibt, daß eine Operation keinen Seiteneffekt auf den Zustand der Komponente hat, lookup' in einer Nachbedingung das vorherige Ergebnis von lookup vor Ausführen der Operation beschreibt und (pred?a:b) für Prädikat pred wahr a ansonsten b bezeichnet.As an example to illustrate the possible problems that arise from the synchronization of components, the example of a flat directory service [from Syperski 1998, p. 52) can be used. The scope of the component is the in 5 (left) given interface (contract), which describes how the directory can be modified accordingly using the operations lookup, add, remove, register and unregister. The operations are specified with appropriate preconditions and postconditions (cf. [Meyer 1997]) by curly brackets, where {query} describes that an operation has no side effect on the state of the component, lookup 'in a postcondition the previous result of describes lookup before performing the operation and (pred? a: b) for pred pred pred true a otherwise b.

Für das Beispiel wird in [Szyperski 1998] beschrieben, wie bedingt durch registrierte Beobachter und die zu ihnen auftretenden Callbacks eine Implementierung zu einem Stack Overflow führen kann. Agiert ein Beobachter bei Auftreten des Callbacks nur lokal, z.B. indem er die aktuelle Anzeige aktualisiert, so ist das Zusammenspiel reibungslos. Will der Beobachter dagegen z.B. Einträge mit einem bestimmten Namen verhindern, indem er sie direkt wieder löscht, so kann es zu einem unendlichen Re greß und somit dem Stack Overflow kommen. Diese Probleme können nicht vermieden werden, ohne eine spezielle Implementierung festzulegen.For the example is described in [Szyperski 1998] as due to registered Observers and the callbacks that occur to them an implementation lead to a stack overflow can. If an observer only acts locally when the callback occurs, e.g. by updating the current display, that's how it works smoothly. On the other hand, if the observer wants to Entries with a prevent certain names by deleting them directly, so can result in an infinite size and thus the stack overflow come. These problems can cannot be avoided without specifying a specific implementation.

Um das in dem Beispiel auftretende Phänomen und dessen Handhabung besser zu verstehen, soll deshalb kurz auf Callbacks und die diesbzgl. Effekte (vgl. 5 (rechts)) eingegangen werden.In order to better understand the phenomenon occurring in the example and its handling, we should briefly refer to callbacks and the related Effects (cf. 5 (right)).

Sind zwei Komponenten durch ein normalen Kontrakt und einen Kontrakt in entgegengesetzter Richtung für einen Callback verbunden, so besteht grundsätzlich das Problem, daß zyklische Aufrufe nicht ausgeschlossen sind. Diese können im einfachen, nicht nebenläufigen Fall z.B. zu dem beschriebenen endlosen Regreß und Stack Overflow führen oder im allgemeinen zur Nicht-Terminierung oder zu ungewollten Synchronisationseffekten.are two components through a normal contract and a contract in the opposite direction for connected a callback, there is basically the problem that cyclical Calls are not excluded. These can be in the simple, non-concurrent case e.g. lead to the described endless regress and stack overflow or generally for non-termination or unwanted synchronization effects.

Ein möglicher Ansatz zur Veranschaulichung von Synchronisationsabhängigkeiten ist im weiteren die Unterscheidung zwischen „exklusiven" und „shared" Kontrakten. In 6 ist eine exklusive Variante des Directory Service ohne Callbacks beschrieben, die wie in 5 die vollständigen Vor- und Nachbedingungen spezifiziert. Die „shared" Version aus 7 dagegen kann wegen der verschiedenen zugreifenden Kontraktbenutzer keinem der Kontraktbenutzer solche Vor- und Nachbedingungen garantieren, da der konkurrierende Zugriff der verschiedenen Kontraktbenutzer keine Garantien dafür ermöglicht, daß eingefügte Einträge auch erhalten bleiben.Another possible approach to illustrate synchronization dependencies is to differentiate between "exclusive" and "shared" contracts. In 6 is an exclusive variant of the directory service without callbacks, which is described in 5 the complete pre and post conditions specified. The "shared" version 7 on the other hand, because of the different accessing contract users, none of the contract users can guarantee such preconditions and postconditions, since the competing access of the different contract users does not guarantee that inserted entries are retained.

Callbacks führen generell zu einem hohen Grad an Koppelung und deswegen ist es eine gute Strategie, solche Effekte soweit möglich auszuschließen, statt Callbacks nur Ereignisse (engl. events) zur Koppelung zu verwenden. Solch eine Lösung ist in 8 beschrieben. Der „shared" Kontrakt SharedDir wird entsprechend um die Ereignisse added und removed erweitert. Diese Lösung schließt den direkten unendlichen Regreß und somit Stack Overflow dadurch aus, daß die Ereignisverarbeitung asynchron erfolgt und somit unabhängig vom dem das Directory modifizierenden Kontrollfluß abgearbeitet wird.Callbacks generally lead to a high degree of coupling and therefore it is a good strategy to exclude such effects as far as possible, instead of using callbacks only events for coupling. Such a solution is in 8th described. The "shared" contract SharedDir is expanded accordingly by the events added and removed. This solution excludes the direct infinite regress and thus stack overflow by the fact that the event processing takes place asynchronously and is therefore processed independently of the control flow modifying the directory.

In Fällen in denen eine solche asynchrone Verarbeitung nicht hinreichend ist, kann die Verwendung von Callbacks nicht vermieden werden. In 9 (links) ist eine entsprechende Lösung präsentiert. Die aus 5 schon bekannten register und unregister Operationen müssen hinzugefügt werden. Damit ist man jedoch wieder bei der ursprünglichen Problematik und für beliebige Implementierungen können weder ein Stack Overflow noch andere Synchronikationsprobleme ausgeschlossen werden. Eine entsprechende Konstellation ist in 9 (rechts) gezeigt. Bei möglichen zyklischen Aufrufen kann es so zu den genannten Phänomenen kommen.In cases where such asynchronous processing is not sufficient, the use of callbacks cannot be avoided. In 9 (left) a corresponding solution is presented. From 5 already known register and unregister operations must be added. However, this brings us back to the original problem and for any implementation, neither a stack overflow nor other synchronization problems can be excluded. A corresponding constellation is in 9 (right) shown. In the case of possible cyclical calls, the phenomena mentioned can occur.

Soll nun die im ursprünglichen Beispiel beschriebene Funktionalität erreicht werden, so ist dies mit dem obigen Schema unter Beibehaltung des zyklischen Aufrufgrafen nur möglich, wenn das Löschen falscher Einträge asynchron erfolgt. D.h. die obige Komponente aus 9 ruft remove für den NotifyingDir Kontrakt und den entsprechenden Eintrag erst auf, nachdem der Callback bereits komplett bearbeitet worden ist. In diesem Fall sind wie in der obigen, auf Ereignissen basierenden Lösung ebenfalls die beobachteten Probleme ausgeschlossen. In Bezug auf die ursprüngliche Lösung sei hier noch bemerkt, dass somit wiederum nur eine asynchrone Lösung sicher wäre und selbst der sofortige Zugriff auf die NotifyingDir Schnittstelle im nebenläufigen Fall in keinem Fall die notwendige Konsistenz garantiert. Im Gegenteil stellt sich dort die Frage, wie eine entsprechende Implementierung eine Änderung bzgl. anderer Anfragen behandelt, solange die Callbacks noch nicht terminiert sind. Ist die beschriebene Form von asynchronem remove nicht hinreichend bzgl. der angestrebten Konsistenz, so muß das Problem anders angegangen werden. In 10 ist eine entsprechende Erweiterung präsentiert. Neben einem allgemeinen Notify Kontrakt, der nur den asynchronen Zugriff erlaubt (siehe oben) werden sogenannte Wächter (engl. Guards) unterstützt, die es erlauben, daß vor Einfügen eines Eintrages alle registrierten Guards befragt werden, ob der Eintrag konform ist. D.h. die Lösung verhindert direkt, daß ein entsprechender Eintrag überhaupt erfolgt.If the functionality described in the original example is now to be achieved, this can only be done with the above scheme while maintaining the cyclic call graph if the incorrect entries are deleted asynchronously. Ie the above component 9 calls remove for the NotifyingDir contract and the corresponding entry only after the callback has already been completely processed. In this case, as in the obi event-based solution also excluded the observed problems. With regard to the original solution, it should be noted here that only an asynchronous solution would be secure and that even immediate access to the NotifyingDir interface does not guarantee the necessary consistency in the concurrent case. On the contrary, the question arises of how a corresponding implementation treats a change regarding other requests as long as the callbacks have not yet been scheduled. If the described form of asynchronous remove is not sufficient with regard to the desired consistency, the problem must be addressed differently. In 10 a corresponding extension is presented. In addition to a general notify contract that only allows asynchronous access (see above), so-called guards are supported, which allow all registered guards to be asked whether an entry is compliant before an entry is inserted. This means that the solution prevents a corresponding entry from being made at all.

Betrachtet man neben dem einfachen flachen Directory Service ebenso solche, die neben konkreten Einträgen (Dateien) auch andere Directories enthalten, so sind je nach Vorkommen von Mehrfachreferenzen im allg. Zyklen in der Struktur nicht ausgeschlossen. Aus diesem Grund trifft man bei der systematischen Suche in solchen Directory Bäumen mit Links auch auf das Problem, daß wiederholtes Durchsuchen bei mehrfachem Enthaltensein oder Zyklen vermieden bzw. ausgeschlossen werden müssen. Dies führt z.B. dazu, daß der CORBA Name Service nur die Traversierung und nicht die rekursive Suche anbietet. In 11 sind entsprechende Strukturen mit beliebig verbundenen Kontrakten gezeigt. Im linken Fall bietet die Komponente einen ExtDirectory Kontrakt, der z.B. nicht nur die Traversierung, sondern auch die rekursive Suche unterstützt. Soll eine die gesamte Struktur rekursiv durchsuchende Operation angeboten werden, so kann dies aber auch, wie in 11 (rechts) beschrieben, durch einen zusätzlichen Kontrakt angeboten werden. Beide Konstruktionen sind solange korrekt, solange die rekursive Suche nicht zu zyklischen Aufrufketten führen kann. Dies ist für die gegebenen Komponenten so allerdings nicht ausgeschlossen.If one considers not only the simple flat directory service but also those that contain other entries in addition to concrete entries (files), then depending on the occurrence of multiple references in the general cycles in the structure are not excluded. For this reason, the systematic search in such directory trees with links also leads to the problem that repeated searches with multiple contents or cycles must be avoided or excluded. This means, for example, that the CORBA Name Service only offers traversal and not recursive searches. In 11 corresponding structures with arbitrarily linked contracts are shown. In the left case, the component offers an ExtDirectory contract, which not only supports, for example, traversal, but also recursive search. If an operation that searches the entire structure recursively is to be offered, this can also be done, as in 11 (right) can be offered through an additional contract. Both constructions are correct as long as the recursive search cannot lead to cyclic call chains. However, this is not impossible for the given components.

Aufgabe der vorliegenden Erfindung ist es, ein gattungsgemäßes Verfahren zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten derart weiter auszugestalten, daß Synchronisations-Anomalien und dergleichen Effekte sicher ausgeschlossen werden können und dadurch die Wiederverwendbarkeit und Austauschbarkeit der Komponenten deutlich zu erhöhen.task The present invention is a generic method to design and / or to operate combinable components like this further elaborate that synchronization anomalies and the like effects can be safely excluded and thereby the reusability and interchangeability of the components to increase significantly.

Die Aufgabe wird gelöst durch die Verfahren gemäß den Ansprüchen 1 und/oder 2. Weitere vorteilhafte Ausgestaltungen der Erfindung ergeben sich aus den Unteransprüchen.The Task is solved by the method according to claims 1 and / or 2. Further advantageous refinements of the invention result from the subclaims.

Die Grundidee der vorliegenden Erfindung besteht darin, Typen für Komponenten (Typed Components Systems, kurz TYCS) zu verwenden, die das Synchronisationsverhalten der Komponenten bei der Komposition zu einem Gesamtsystem berücksichtigen und dadurch die oben genannten Probleme zu vermeiden.The The basic idea of the present invention is types for components (Typed Components Systems, TYCS for short) to use the synchronization behavior of the components when composing into an overall system and thereby avoid the problems mentioned above.

Wird ein Kontrakt in einem definierten Definitionsraum für alle Komponenten in diesem Definitionsraum global definiert, ist also allen Komponenten gleichermaßen bekannt, so wird im Rahmen dieser Erfindung dieser Kontrakt als Basiskontrakt bezeichnet. Unter einem Multikontrakt werden hier entsprechende Beschreibungen des Verhaltens einer Menge von einzelnen Kontrakten verstanden, die über das in den einzelnen Kontrakten definierte Verhalten weitere Einschränkungen beinhalten. Ein sog. kombinierter Kontrakt beschreibt einen Kontrakt, der in einem lokalen Definitionsraum aus Basiskontrakten eines globalen Definitionsraums definiert werden kann und aufgrund seiner Abstützung auf den globalen Definitionsraum eine Verwendung im globalen Definitionsraum ermöglicht, ohne global definiert werden zu müssen.Becomes a contract in a defined definition space for all components globally defined in this definition space, is known to all components equally, so in the context of this invention, this contract is called the basic contract designated. Corresponding are here under a multi-contract Descriptions of the behavior of a set of individual contracts understood that about the behavior defined in the individual contracts further restrictions include. A so-called combined contract describes a contract that in a local definition space from basic contracts of a global Definition space can be defined and based on its support the global definition space a use in the global definition space allows without having to be defined globally.

Damit wird es möglich, lokal Erweiterungen des Gesamtsystems zu spezifizieren, die auch von Komponenten, die nur den definierten globalen Definitionsraum kennen, lokal verwendet werden können.In order to will it be possible locally to specify extensions of the overall system, which too of components that only have the defined global definition space know, can be used locally.

Die Erfindung geht dabei aus von einem Verfahren zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird. Dieses gattungsgemäße Verfahren wird dadurch weiterentwickelt, daß zur Beschreibung jeder Komponente zusätzlich zur syntaktischen Schnittstellenbeschreibung jeweils ein Verhaltensprotokoll für jeden Kontrakt verwendet wird, das Eigenschaften der Komponente bzgl. der Synchronisation über den jeweiligen Kontrakt beschreibt, und eine interne Abhängigkeitsrelation verwendet wird, die mittels Kontrakten die Abhängigkeiten innerhalb der Komponente zwischen angebotenen und benutzten Kontrakten beschreibt und zusammen mit den Kontrakten erlaubt, Anomalien bei der Synchronisation der Komponente mit anderen Komponenten des Gesamtsystems auszuschließen. Die Kontrakte sind dabei insoweit eingeschränkt, als daß sie nur die einseitige Blockierung des Kontraktbenutzers durch den Kontraktanbieter erlauben.The The invention is based on a design method and / or for the operation of combinable components in which the behavior of the Components of an overall system formed from the components by means of Interfaces between individual components based on contracts is described. This generic method is further developed by that for Description of each component in addition to the syntactical interface description a protocol of behavior is used for each contract the properties of the component with regard to synchronization via the describes each contract, and an internal dependency relation The dependencies within the component are used by means of contracts describes and together between offered and used contracts with the contracts allowed, anomalies in the synchronization of the Exclude component with other components of the overall system. The Contracts are limited to the extent that they only block unilaterally allow the contract user by the contract provider.

Dadurch, daß zur Beschreibung jeder Komponente neben dem üblichen syntaktischen Schnittstellenbegriff ein Verhaltensprotokoll für jeden Kontrakt zur Verfügung steht, ist es möglich, die Synchronisation über die Kontrakte zu beschreiben. Die Abhängigkeitsrelation bzgl. angebotener und benutzter Kontrakte definiert dabei, inwiefern angebotenes Verhalten von benutztem Verhalten im Sinne der Synchronisation abhängen kann. So ist die Kombination von Komponenten immer möglich, solange die resultierende Abhängigkeitsrelation keine Zyklen enthält, die eine unzulässige Selbstbezüglichkeit beinhalten. Es erübrigt sich daher, die genaue Funktionsweise der Komponente jeweils neu untersuchen zu müssen, soll die Komponente in einem anderen Zusammenhang neu genutzt oder durch eine andere funktionsgleiche oder funktionsähnliche ersetzt werden. Es reicht dabei für die Gewährleistung der Synchronisation aus, die das interne Verhalten der Komponente symbolisierende getypte Beschreibung aus Abhängigkeitsrelation und Verhaltensprotokoll zu betrachten, um sichere Aussagen über das Auftreten von Zyklen aufgrund einer unzulässigen Selbstbezüglichkeit oder sonstiger Synchronisationsanomalien treffen zu können. Daher ist die Wiederverwendbarkeit der Komponente bzw. deren Ersatz durch andere Komponenten wesentlich einfacher möglich, als dies nach dem Stand der Technik heute sonst möglich wäre.Thereby, that for Description of each component in addition to the usual syntactic interface term a behavior log for every contract available stands, it is possible the synchronization over to describe the contracts. The dependency relation regarding offered and used contracts defines to what extent offered behavior may depend on the behavior used in the sense of synchronization. So the combination of components is always possible as long as the resulting one dependency relation does not contain cycles that an impermissible self-referentiality include. It is unnecessary Therefore, the exact functioning of the component is new to have to examine should the component be used again in a different context or by another functionally identical or functionally similar be replaced. It is enough to ensure synchronization which symbolizes the internal behavior of the component Description from dependency relation and behavior log to look at to make confident statements about that Occurrence of cycles due to an impermissible self-reference or other synchronization anomalies. Therefore is the reusability of the component or its replacement by other components are much easier to do than according to the status of technology otherwise possible today would.

Dazu sind die Verhaltensprotokolle auf Aufrufe, asynchrone Aufrufe oder durch den Kontraktanbieter erzeugte Ereignisse beschränkt. Der Kontraktbenutzer verpflichtet sich dabei, die Ergebnisse eines Aufrufs oder Ereignisse sofort zu akzeptieren, so daß der Kontraktanbieter nicht blockiert werden kann. Statt sogenannter „guarded operations", die in der Programmierung nebenläufiger Systeme häufig Anwendung finden, wird der Kontraktbenutzer über extern sichtbare Zustände synchronisiert, so daß mögliche Blockierungsbedingungen öffentlich bekannt sein müssen. Da genaugenommen auch einfache syntaktische Schnittstellen mit Remote-Aufrufen implizit ein Protokoll mit zugesichertem Verhalten – nämlich das auf eine Anfrage eine Antwort zurückgegeben wird – beschreiben, stellen auch diese Schnittstellen eine Art Verhaltensprotokoll oder etwas sehr ähnliches zur Verfügung. Somit ist es nicht immer notwendig, Verhaltensprotokolle von Kontrakten explizit zu definieren, sondern statt dessen kann auch die implizite Definition verwendet werden. Unter Verhaltensprotokoll in diesem Sinne soll im weiteren entweder ein implizites oder ein explizites Verhaltensprotokoll verstanden werden.To are the behavior logs on calls, asynchronous calls or events generated by the contract provider. The Contract users are committed to the results of a call or accept events immediately so that the contract provider does not can be blocked. Instead of so-called "guarded operations", which are used in programming Concurrent Systems often The contract user is synchronized via externally visible states, so that possible blocking conditions are public must be known. Strictly speaking, even simple syntactic interfaces with remote calls implicitly a protocol with guaranteed behavior - namely that a response is returned to a request - describe these interfaces also provide a kind of behavior log or something very similar to disposal. Thus, it is not always necessary to keep a log of contracts to define explicitly, but instead can also be implicit Definition. Taking behavior log in this The meaning should be either an implicit or an explicit one Behavioral log can be understood.

In diesem Zusammenhang soll der Begriff der Komponente spezifisch in der Weise allgemein die Eigenschaft bezeichnen, daß Entwicklung und Anwendung unabhängig voneinander erfolgen können. Hierbei kann eine Komponente sowohl hardwaremäßig als auch softwaremäßig als auch gemischt ausgestaltet werden, wie dies insbesondere bei heterogenen Computersystemen häufig der Fall ist.In In this context, the concept of the component is intended specifically in the way generally characterize the property that development and application independently can be done from each other. Here, a component can be used both in terms of hardware and software can also be mixed, as is particularly the case with heterogeneous ones Computer systems often the case is.

Hiermit ist es daher auch möglich, zu entscheiden, ob eine gegebene getypte Komponente (TYCS-Komponente) aufgrund ihrer externen spezifizierten Eigenschaften in eine gegebene Architektur eines Gesamtsystems eingefügt werden kann.Herewith it is therefore also possible to decide whether a given typed component (TYCS component) due to their external specified properties in a given Architecture of an overall system can be inserted.

Weiterhin ist es denkbar, daß mittels der Verhaltensprotokolle ein effizienter Test auf Koppelbarkeit für aus Basiskontrakten kombinierte Kontrakte durchgeführt wird, indem die Zustände des kombinierten Kontrakts als Kombination der Basiskontraktzustände beschrieben werden. Die Koppelbarkeit zwischen zwei Kontrakten A und B gewährleistet dabei, daß, wenn A von einer Komponente angeboten wird und B von einer anderen Komponente benötigt wird, der Kontrakt A gekoppelt an die zweite Komponente den Kontrakt B erfüllen kann. Aus A koppelbar an B folgt dabei nicht unmittelbar, daß B auch an A koppelbar sein muß. Durch eine möglichst umfassende Koppelbarkeit der Kontrakte kann somit die flexible Komposition von Komponenten anhand von Kontraktverbindungen erfolgen.Farther it is conceivable that by means of the behavior protocols an efficient test for connectivity for out Basic contracts combined contracts is carried out by the states of the Combined contract described as a combination of the basic contract conditions become. The connectivity between two contracts A and B ensures doing that, if A is offered by one component and B by another Component is needed contract A coupled to the second component contract B fulfill can. Couplable from A to B does not immediately follow that B also must be connectable to A. By one if possible The flexible composition enables the contracts to be fully coupled of components based on contract connections.

Über die einzelnen Kontrakte und die implizit die Abhängigkeiten beschreibende Abhängigkeitsrelation hinaus kann es in weiterer Ausgestaltung noch explizit bekannte Restriktionen bzgl. des kombinierten Verhaltens einer Menge von angebotenen und benutzten Kontrakten geben. Diese explizite Synchronisation (sog. komplexe Kontrakte) kann z.B. benutzt werden, um Pufferungseffekte wo notwendig extern sichtbar zu machen. Dazu kann man für eine Menge von angebotenen und benutzten Kontrakten einer Komponente (siehe in 2 und 3 jeweils die gestrichelten Kästen) eine Verhaltensrestriktion festlegen.In addition to the individual contracts and the dependency relation that implicitly describes the dependencies, there may also be explicitly known restrictions regarding the combined behavior of a set of offered and used contracts. This explicit synchronization (so-called complex contracts) can be used, for example, to make buffering effects externally visible where necessary. You can do this for a set of contracts offered and used for a component (see in 2 and 3 the dashed boxes) specify a behavioral restriction.

Eine Menge entsprechend gewählter Verhaltensregeln beschränkt dabei alle erlaubten Komponentenverhalten für eine gegebene Menge von angebotenen und benutzten Kontrakten sowie deren Abhängigkeit:

  • – Falls das durch einen Kontrakt angebotene Verhalten von einem benutzten Kontrakt abhängt, so muß dieses durch die Abhängigkeitsrelation abgedeckt werden. Wenn z.B. die Beantwortung eines Aufrufs an einen angebotenen Kontrakt durch eine Komponente neben lokalen Berechnungen auch des Aufrufs eines benutzten Kontraktes bedarf, so müssen benutzter und angebotener Kontrakt in interner Abhängigkeit zueinander stehen. Kann etwa durch Pufterungseffekte oder dgl. innerhalb einer Komponente das zugesicherte Verhalten eines angebotenen Kontraktes von dem Verhalten eines benutzten Kontraktes abhängig sein, so muß die Abhängigkeitsrelation ebenfalls erfüllt sein.
  • – Eine Komponente darf das Bedienen von angebotenen Kontrakten nur insoweit von Anfragen oder Verhalten benutzter Kontrakte abhängig machen, als diese Benutzung bei Annahme des garantierten Verhaltens für die benutzten Kontrakte zugesichert ist. Im einfachsten Fall kann somit eine angebotene Prozedur nur wiederum eine durch einen benutzten Kontrakt bereitgestellte Prozedur nutzen, wenn deren Terminierung auch tatsächlich garantiert ist. Im allgemeinen Fall bedeutet dies, daß das zugesicherte Verhalten eines angebotenen Kontrakts und seines Protokolls nur wiederum von zugesicherten Eigenschaften eines benutzten Kontraktes und seines Protokolls abhängen darf. Wenn etwa ein benutzter Kontrakt zum Beispiel ein willkürliches Ereignis beinhaltet, so darf das zugesicherte Verhalten eines angebotenen Kontraktes auf keinen Fall von dem Auftreten dieses Ereignisses abhängig gemacht werden.
  • – Das Verhalten einer Komponente muß dem in dem zugehörigen Multikontrakten beschriebenen Verhalten entsprechen. Ist z.B. in einem Multikontrakt für einen angebotenen und benutzten Kontrakt beschrieben, daß bei Einfügen eines Elementes über den angebotenen Kontrakt ein entsprechendes Element an den benutzten Kontrakt weitergereicht wird, so muß die Komponente dies entsprechend auch tatsächlich gewährleisten. Der Multikontrakt beschreibt dabei maximal, inwieweit Protokolle der Kontrakte in ihrem Einzelverhalten einander beeinflussen und kann somit auch dazu verwendet werden, zu beschreiben, wie mehrere angebotene Kontrakte einander beeinflussen.
  • – Die angebotenen Kontrakte müssen sowohl untereinander als auch für parallel erfolgende Anfragen fair durch die Komponente gewährleistet werden, soweit dies nicht durch einen Multikontrakt explizit eingeschränkt wurde. Wenn etwa zwei angebotene Kontrakte nicht durch einen Multikontrakt weiter beschrieben sind, so muß die Komponente deren Verhalten dem Protokoll entsprechend für beide parallel und fair anbieten. Ist dagegen das Verhalten der beiden Kontrakte durch einen Multikontrakt beschrieben, so muß die Komponente nur das in dem Multikontrakt beschriebene eingeschränkte parallele Verhalten gewährleisten.
A set of appropriately chosen rules of conduct limits all permitted component behavior for a given set of contracts offered and used and their dependency:
  • - If the behavior offered by a contract depends on a contract used, this must be covered by the dependency relation. If, for example, the answering of a call to an offered contract by a component requires the call of a used contract in addition to local calculations, the used and offered contract must be internally dependent on one another. Can, for example, through buffering effects or the like. Within a component, the guaranteed behavior of a contract offered depends on the behavior of a contract used the dependency relation must also be fulfilled.
  • - A component may only make the operation of offered contracts dependent on requests or behavior of contracts used, insofar as this use is guaranteed when the guaranteed behavior is accepted for the contracts used. In the simplest case, a procedure offered can in turn only use a procedure provided by a contract used if its termination is actually guaranteed. In general, this means that the guaranteed behavior of an offered contract and its protocol can in turn only depend on the guaranteed properties of a contract and its protocol used. If, for example, a contract used contains an arbitrary event, the guaranteed behavior of a contract offered must under no circumstances be made dependent on the occurrence of this event.
  • - The behavior of a component must correspond to the behavior described in the associated multi-contracts. If, for example, a multi-contract for an offered and used contract describes that when an element is inserted via the offered contract, a corresponding element is passed on to the used contract, then the component must actually guarantee this accordingly. The multi-contract describes the extent to which the protocols of the contracts influence each other in their individual behavior and can therefore also be used to describe how several offered contracts influence each other.
  • - The offered contracts must be guaranteed fairly by the component, both among themselves and for parallel requests, unless this was explicitly limited by a multi-contract. If, for example, two offered contracts are not further described by a multi-contract, the component must offer their behavior in accordance with the protocol for both in parallel and fairly. If, on the other hand, the behavior of the two contracts is described by a multi-contract, the component only has to guarantee the restricted parallel behavior described in the multi-contract.

Durch Kombinationen einzelner oder aller dieser Einschränkungen kann erreicht werden, daß die Kontrakte zusammen mit der internen Abhängigkeitsrelation eine ausreichende Beschreibung der Komponenten für die spätere Komposition darstellen. Im Gegensatz zu den aus dem Stand der Technik bekannten kompletten exter nen Verhaltensspezifikationen wird diese nur implizit betrachtet und dieser Ansatz erlaubt, die Frage, ob eine Komponente eine andere sicher ersetzen kann, direkt anhand der einzelnen Kontrakte und der internen Abhängigkeitsrelation zu entscheiden. Diese kontextunabhängige Austauschbarkeit ist zum einen sehr flexibel, da die implizite Beschreibung sehr viele Freiheiten erhält, darüber hinaus ist es auf Basis des einfachen Kriteriums der Zyklenfreiheit auch möglich, Ersetzungen durchzuführen, die nur in dem gegebenen Kontext sicher möglich sind.By Combinations of any or all of these restrictions can be achieved that the Contracts together with the internal dependency relation an adequate Description of the components for the later Represent composition. In contrast to those from the prior art known complete external NEN behavioral specifications considered only implicitly and this approach allows the question of whether one component can safely replace another, directly based on of the individual contracts and the internal dependency relation. This context-independent Interchangeability is very flexible because of the implicit description gets a lot of freedom about that furthermore, it is based on the simple criterion of freedom from cycles also possible, Carry out replacements, that are only possible in the given context.

Ebenfalls kann in weiterer Ausgestaltung die Abhängigkeitsrelation bei Komposition von Komponenten für die resultierende neue Komponente durch die Verknüpfung der einzelnen Abhängigkeitsrelationen der Komponenten und Abstraktion der Basiskontrakte bestimmt werden.Likewise can in a further embodiment the dependency relation in composition of components for the resulting new component by linking the individual dependency relations the components and abstraction of the basic contracts.

Die freie Kombinierbarkeit der Komponenten kann im weiteren nur insoweit eingeschränkt werden, als daß die kombinierte Abhängigkeitsrelation, die durch die Kombination entsteht, ohne Zyklen sein muß (siehe 1). Dann kann das Auftreten von permanenten Blockierungen durch Synchronisation zwischen den Komponenten ausgeschlossen werden. Dies ermöglicht einerseits den effizienten Test der Eigenschaft und bietet darüber hinaus auch während der Komponentenkombination eine leicht verständliche Metapher.The free combinability of the components can only be restricted to the extent that the combined dependency relation created by the combination must be without cycles (see 1 ). Then the occurrence of permanent blockages by synchronization between the components can be excluded. On the one hand, this enables the property to be tested efficiently and, moreover, also provides an easy-to-understand metaphor even during the combination of components.

Werden Komponenten nur mittels einfacher Kontrakte miteinander kombiniert, so ist die Bedingung, daß das kombinierte Verhalten frei von Verklemmungen ist, bei zyklenfreier kombinierter Abhängigkeitsrelation per Konstruktion gegeben.Become Components only combined using simple contracts, so the condition is that Combined behavior is free of deadlocks, with more cycle-free combined dependency relation given by construction.

Für eine überlappende Menge von Multikontrakten muß bei Kombination, um Synchronisations-Anomalien auszuschließen, die folgende Bedingung erfüllt sein:

  • – Das aus der Kombination der Menge von Multikontrakten und der beteiligten nicht weiter durch Multikontrakte eingeschränkten Kontrakte resultierende Verhalten muß frei von Verklemmungen sein und unendliche interne Aktivität, die eine Bearbeitung externer Anfragen verhindert, muß ausgeschlossen sein. Diese Betrachtung macht im allgemeinen dabei nur Sinn, wenn alle beteiligten Kontrakte verbunden sind.
For an overlapping set of multi-contracts, when combined to rule out synchronization anomalies, the following condition must be met:
  • - The behavior resulting from the combination of the number of multi-contracts and the contracts not further restricted by multi-contracts must be free of deadlocks and infinite internal activity that prevents processing of external inquiries must be excluded. This consideration generally only makes sense if all the contracts involved are linked.

Dann können für die resultierende Kombination Synchronisationsanomalien ausgeschlossen werden.Then can for the resulting combination synchronization anomalies can be excluded.

Neben der einmaligen Kombination im Betrieb ist es sinnvoll, entsprechende Kombination von Teilkomponenten zu einer vorab definierten Komponente, die durch die Komposition gebildet wird, zusammen zu fügen. Die Komposition bewirkt hierbei, daß von einer Kombination, in der die internen Kontraktverbindungen sichtbar sind, zu einer entsprechenden Komponente abstrahiert wird, die nur die nicht verbundenen Kontrakte offen legt.In addition to the unique combination in operation, it makes sense to combine the appropriate combination of sub-components into a predefined component that is formed by the composition. The composition causes a combination in which the internal con tract connections are visible, is abstracted to a corresponding component that only reveals the unconnected contracts.

Für den einfachen Fall, daß keine Multikontrakte vorliegen, kann einfach syntaktisch von der internen Struktur und den internen Verbindungen abstrahiert werden (siehe 4).In the simple case that there are no multi-contracts, one can simply abstract syntactically from the internal structure and the internal connections (see 4 ).

Für komplexe Kontrakte muß neben der anomaliefreien Kombination die Menge der verbundenen Multikontrakte entweder ganz innerhalb der Kombination oder ganz außerhalb liegen, d.h. daß für keinen angebotenen oder benutzten Multikontrakte ist noch der Anschluß weiterer Komponenten möglich.For complex Contracts must be next the anomaly-free combination is the amount of linked multi-contracts either entirely within the combination or entirely outside lie, i.e. that for no one offered or used multi-contracts is the connection of further Components possible.

Dann kann für die resultierende Komponente von dem durch die Kombination der komplexen Kontrakte beschriebenen internen Verhalten abstrahiert und ein stark vereinfachter Typ gefolgert werden (siehe 3).Then the resulting component can be abstracted from the internal behavior described by the combination of the complex contracts and a much simplified type can be concluded (see 3 ).

Im Fall, daß eine überlappende Menge von Multikontrakten sowohl interne als auch externe Bestandteile aufweist, kann auch von dem Verhalten interner Kontrakte abstrahiert werden. Dazu muß das abstraktere Verhalten eine Verfeinerung des aus der Kombination entstandenen Verhaltens sein (siehe 2).In the event that an overlapping set of multi-contracts has both internal and external components, the behavior of internal contracts can also be abstracted. To do this, the more abstract behavior must be a refinement of the behavior resulting from the combination (see 2 ).

Eine weitere Ausgestaltung der Erfindung betrifft die Komposition von Kontrakten.A Another embodiment of the invention relates to the composition of Contracts.

Der in der Praxis verwendete Schnittstellenbegriff beschränkt sich auf syntaktische Aspekte und beschreibt nicht die einem Kontrakt zugrundeliegende Synchronisation. In der Literatur vorgeschlagene Erweiterungen reichen von einfachen Protokollen bis zu komplett mathematisch spezifizierten Kontrakten. Die Berücksichtigung von Verhalten bei Kontraktkonformität führt im allgemeinen zu einer hohen Komplexität.The Interface term used in practice is limited on syntactical aspects and does not describe that of a contract underlying synchronization. Extensions proposed in the literature range from simple protocols to completely mathematically specified ones Contracts. The consideration of behavior in conformity with the contract generally leads to a high complexity.

Darüber hinaus können dabei im allgemeinen maximal endliche Automaten effizient behandelt werden.Furthermore can generally finite automata are treated efficiently.

Um nun sowohl die Komplexität zu reduzieren als auch die Zuordnung weitergehender Semantik z.B. in Form von Vor- und Nachbedingungen zu unterstützen, werden neben dem reinen Ablauf von Aufrufen und deren Beschränkungen (non uniform service availability) diesem Verhalten deklarierte Zustände zugeordnet. Somit kann die gesamte Semantik in Bezug zum abstrakten Protokoll spezifiziert werden. Diese Konstruktion erlaubt darüber hinaus die Bildung von neuen Typen durch Kombination gegebener und Hinzunahme neuer Bestandteile, wobei auf die volle Semantik der kombinierten Teile durch Verwendung der Zustände und Operationen Bezug genommen wird. Das Grundkonzept, allerdings erweitert um die Berücksichtigung von Verhaltensprotokollen, entspricht den "Compound Types" [Buchi&Weck 1998], die das Problem sich unabhängig entwickelnder Teilsysteme und daraus folgender fehlender konformer Typhierarchien verhindern. Durch diese Verwendung von Basiskontraktaspekten kann ein effizienter Test für Kontraktkonformität erreicht werden, wobei eine die Synchronisation beinhaltende Konformität auf Basis eines Vergleiches der Zustände und ihrer Zuordnung zueinander erfolgen kann.Around now both the complexity to reduce as well as the assignment of further semantics e.g. Support in the form of pre- and post-conditions are in addition to the pure Sequence of calls and their restrictions (non uniform service availability) assigned declared states to this behavior. So can the entire semantics specified in relation to the abstract protocol become. This construction also allows the formation of new types by combining given and adding new components, taking on the full semantics of the combined parts by using of states and operations are referenced. The basic concept, however expanded by the consideration of behavioral protocols, corresponds to the "compound types" [Buchi & Weck 1998], which addresses the problem independently developing Subsystems and the resulting lack of compliant type hierarchies prevent. Through this use of basic contract aspects, a efficient test for contract compliance can be achieved, with a conformity based on the synchronization a comparison of the states and their assignment to each other can be done.

Um eine flexiblere und sichere Erweiterbarkeit bei Kontrakten zu erreichen, kann man auf der Benutzungsseite zur Laufzeit das Einhalten des Protokolls erzwingen. Eine weitere Option ist es dabei, des weiteren die expliziten Zustände als Zustandsvorbedingungen zur Laufzeit neben den Nachrichten wenn notwendig zu verwenden, um die Aufrufe so zu kodieren, daß in mehr Fällen ein Kontraktkonformität erreicht werden kann. Dabei werden, wo sinnvoll, an die Kontraktprotokolle Informationen zur Laufzeit durch Mitschicken der Daten angeglichen, um den Mehraufwand zu minimieren.Around to achieve a more flexible and secure expandability for contracts, on the user page at runtime you can adhere to the Force protocol. Another option is to go further the explicit states as condition preconditions at runtime in addition to the messages if necessary to use to encode the calls so that in more make achieves a contract conformity can be. Where appropriate, the contract protocols are included Adjusted information at runtime by sending the data, to minimize the additional effort.

Dies liefert eine entsprechende Ordnung auf den Kontrakten, die eine bzgl. Synchronisations-Anomalien sichere Verwendung eines Kontrakts für alle seine erweiterten Typen (Subtypen) garantiert, wenn man von den Effekten, die durch die Koppelung mehrerer Kontrakte einer Komponente entstehen und die durch die Komponentennotation abgedeckt wird, absieht.This provides a corresponding order on the contracts, the one Safe use of a contract regarding synchronization anomalies for all his extended types (subtypes) guaranteed if one of the effects, that result from the coupling of several contracts of a component and that is covered by the component notation.

Die Identifizierung passender Kontrakte (Dienste) erfolgt in der Praxis normalerweise zum Entwurfszeitpunkt. Weiterführende Ansätze für verteilte Systeme versuchen entweder durch globale Typensysteme, auf Basis syntaktischer Information (structural subtyping), oder durch ergänzende, im allgemeinen nicht weiter spezifizierte Zusatzinformationen eine Identifikation passender angebotener Kontrakte für einen Kontraktbenutzer zur Laufzeit durch einen Dienstvermittler zu ermitteln. Für solch ein Vorgehen kann für die entwickelte Kontraktnotation der effiziente, zur Laufzeit mögliche Test auf Kontraktkonformität, der das Protokollverhalten beinhaltet, verwendet werden. Die dynamische Zuordnung von Kontrakten muß dabei nicht auf ein globales Typensystem, sondern nur auf dessen beliebige Kombination beschränkt sein, denn für Kontrakte, die nur durch Kombination von Basiskontrakten gebildet werden, kann mittels der gemeinsamen Basiskontraktaspekte jeder unabhängig davon gebildete Kontrakttyp, der die selben initialen Basiskontrakte realisiert und ein konformes Protokoll unterstützt, als konform und somit möglicher Kontraktanbieter erkannt werden. Treten Kontrakte selbst als Parameter auf, so kann man diese auf rekursive Typdefinitionen zurückführen und mittels „structural subtyping" behandeln.In practice, suitable contracts (services) are usually identified at the time of drafting. Further approaches for distributed systems try to identify a suitable contract contract for a contract user at runtime by a service agent either by means of global type systems, based on syntactic information (structural subtyping), or by means of additional information, which is generally not further specified. For such a procedure, the efficient contract conformity test, which includes the protocol behavior, can be used for the developed contract notation. The dynamic assignment of contracts does not have to be limited to a global type system, but only to any combination thereof, because for contracts that are only formed by a combination of basic contracts, each contract type that is formed independently of one another and that has the same initial contracts can be created using the common basic contract aspects Basic contracts implemented and a compliant protocol supported, recognized as compliant and thus possible contract provider. If contracts themselves appear as parameters, they can be referred to recursive type definitions return and treat using "structural subtyping".

Die beschriebene Komponenten- und Kontraktnotationen erlaubt in der dargestellten Art und Weise den Entwurf von verklemmungfreien Systemen. Dazu kann zum Entwurfszeitpunkt mittels der beschriebenen Techniken das aus bestehenden oder geplanten Komponenten gebildete System auf Basis der anschaulichen und kompakten externen Komponentenspezifikation bzgl. möglicher Probleme untersucht werden. Die externe Komponentenbeschreibung legt in Form der Kontrakte fest, welche Kontraktverbindungen im endgültigen System korrekt sind. Die Abhängigkeitsrelation sowie komplette durch komplexe Kontrakte überlagerte Bereiche erlauben es für die resultierende Komposition Synchronisations-Anomalien auszuschließen.The described component and contract notations allowed in the presented the design of jam-free systems. This can be done at design time using the techniques described the system formed from existing or planned components based on the vivid and compact external component specification regarding possible Problems are investigated. The external component description defines in the form of the contracts which contract links in the final System are correct. The dependency relation as well as complete areas overlaid by complex contracts it for the resulting composition to rule out synchronization anomalies.

Das erfindungsgemäße Verfahren ermöglicht es, Systeme und Teilsysteme unter Berücksichtigung der Synchronisation durch Komposition zu erlangen. Die beschriebenen Eigenschaften führen dabei zu einem Laufzeitverhalten, das Synchronisations-Anomalien ausschließt, die schwer oder gar nicht durch Tests auszuschließen sind.The inventive method allows es, systems and subsystems taking synchronization into account to attain through composition. The properties described lead here to a runtime behavior that excludes synchronization anomalies that difficult or impossible to rule out by tests.

Die beschriebenen Entwicklungen können sowohl während des Entwurfs als auch beim Betrieb zum Einsatz kommen. Ihre Integration in ein Betriebsystem, in Applikationsserver oder Konfigurationstools erlaubt nicht zuletzt, die Komposition erst durch den Administrator oder sogar Endanwender in flexibler Art und Weise vollziehen zu lassen.The developments described can both while of the design as well as in operation. Your integration into an operating system, application server or configuration tools Last but not least, the composition is only allowed by the administrator or even end users in a flexible way to let.

Durch die beschriebene kombinierte Kontraktnotation kann in Betriebsystemen oder Applikationsservern eine höhere Flexibilität bei der Zuordnung von Kontrakten (Diensten) erreicht werden. Notwendige Restriktionen können überwacht werden und die Wartung und Modifikation des Systems kann zur Laufzeit diagnostiziert werden. Die beschriebenen Kontrakt- und Komponentenbegriffe erlauben darüber hinaus den freien Austausch von Komponenten und deren Integration in andere Systeme auf Basis des Kontraktbegriffes.By the described combined contract notation can be used in operating systems or application servers a higher one flexibility can be achieved when assigning contracts (services). necessary Restrictions can be monitored and the maintenance and modification of the system can be done at runtime be diagnosed. The contract and component terms described allow about it free exchange of components and their integration into other systems based on the concept of a contract.

Die Erfindung betrifft weiterhin ein Verfahren gemäß Anspruch 19 zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird. Ein derartiges gattungsgemäßes Verfahren wird dadurch weiterentwickelt, daß die Kopplung von Kontrakten zur Laufzeit des Gesamtsystems nur dann erlaubt und/oder vermittelt wird, wenn für aus Basiskontrakten kombinierte Kontrakte, bei denen die Zustände des kombinierten Kontrakts als Kombination der Basiskontraktzustände beschrieben werden, bezüglich von Verhaltensprotokollen ein effizienter Test auf Koppelbarkeit erfolgreich durchgeführt wird. The The invention further relates to a method according to claim 19 for design and / or for the operation of combinable components in which the behavior of the Components of an overall system formed from the components by means of Interfaces between individual components based on contracts is described. Such a generic method is thereby further developed that the Coupling of contracts at runtime of the overall system only then is allowed and / or brokered when combined from base contracts Contracts where the states of the combined contract is described as a combination of the basic contract conditions be regarding an efficient test of connectivity successfully carried out becomes.

Hierdurch kann erreicht werden, daß ganz allgemein für die Kombination von Komponenten über Kontrakte zur Laufzeit Probleme, die in der Kontraktspezifikation abgedeckt werden, durch die Synchronisation, das funktionale Verhalten oder die Dienstgüte bei Verwendung eines dynamisch verbundenen Kontraktes nicht auftreten können, weil die Komposition von Kontrakten aus Basiskontrakten erlaubt, Koppelbarkeit bezüglich der aufgeführten Aspekte zu garantieren. Die Lösung erlaubt dabei auch, die Koppelbarkeit von Kontrakten zu bestimmen, ohne daß diese in einem gemeinsamen Definitionsbereich oder in einer spezifischen Reihenfolge deklariert wurden. Dies ermöglicht, daß getrennt entwickelte Komponenten gegebenen falls gegenseitig Kontrakte benutzen, ohne daß diese in einer gemeinsamen Definitionsumgebung festgelegt wurden. Statt dessen reicht es, wenn diese kombinierten Kontrakte sich auf eine Menge von Basiskontrakten der gemeinsamen Definitionsumgebung beziehen, um zu entscheiden, wann ein angebotener Kontrakt einen benötigten Kontrakt bedienen kann. Ansonsten können auch wesentliche Aspekte der Erfindung gemäß Anspruch 1 sowie der sich hierauf beziehenden, vorstehenden Erläuterungen ebenfalls für die Lösung zutreffen.hereby can be achieved that in general for the Combination of components over Contracts at runtime problems in the contract specification be covered by synchronization, functional behavior or the quality of service do not occur when using a dynamically linked contract can, because the composition of contracts from basic contracts allows Couplability regarding of the listed Guarantee aspects. The solution also allows the ability to link contracts to be determined without that these in a common domain or in a specific one Order have been declared. This enables separately developed components if necessary, use mutual contracts without them were defined in a common definition environment. Instead it is enough if these combined contracts are on a lot obtain from basic contracts of the common definition environment, to decide when an offered contract will need a contract can operate. Otherwise you can also essential aspects of the invention according to claim 1 and the the above explanations relating to this also apply to the solution.

Eine besonders bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens nach Anspruch 1 zeigt die Zeichnung.A particularly preferred embodiment of the method according to the invention according to claim 1 shows the drawing.

Es zeigen:It demonstrate:

1 – Restriktionen bei der Komposition von Softwarekomponenten, 1 - restrictions on the composition of software components,

2 – Abstraktion bei der Komposition von Multikontrakten, 2 - abstraction in the composition of multi-contracts,

3 – Abstraktion bei der Komposition mit geschlossener Menge von Multikontrakten, 3 - abstraction when composing with a closed set of multi-contracts,

4 – Abstraktion bei der Komposition von Komponenten, 4 - abstraction in the composition of components,

5 – Directory Service mit Callback ([Szyperski 1998, S. 52]), 5 - Directory service with callback ([Szyperski 1998, p. 52]),

6 – Directory Service mit "exklusivem" Zugriff, 6 - Directory service with "exclusive" access,

7 – Directory Service mit „shared" Zugriff, 7 - Directory service with "shared" access,

8 – Directory Service mit beobachtbaren Ereignissen, 8th - Directory service with observable events,

9 – Directory Service mit Benachrichtigung bei Änderungen, 9 - Directory service with notification of changes,

10 – Directory Service mit Benachrichtigung von Wächtern bei Veränderungen, 10 - Directory service with notification of guards when changes occur,

11 – Rekursiver Directory Services mit Suchfunktion, 11 - recursive directory services with search function,

9a – Directory Service mit Benachrichtigung bei Änderungen gemäß 9, aber unter Verwendung des TYCS-Konzeptes, 9a - Directory service with notification of changes according to 9 but using the TYCS concept,

10a – Directory Service mit Benachrichtigung von Wächtern bei Veränderungen gemäß 10, aber unter Verwendung des TYCS-Konzeptes, 10a - Directory service with notification of guards when changes occur 10 but using the TYCS concept,

11a – Rekursiver Directory Service mit Suchfunktion gemäß 11, aber unter Verwendung des TYCS-Konzeptes, 11a - Recursive directory service with search function according to 11 but using the TYCS concept,

12 – Task, Unit und AFT Offer Komponenten Schemata als Beispiel für eine Anwendung an einem flexiblen Fertigungssystem, 12 - Task, unit and AFT offer component schemes as an example for an application on a flexible manufacturing system,

13 – Scan Komponente und verklemmungsfreie Kombination an einem flexiblen Fertigungssystem, 13 - Scan component and jam-free combination on a flexible manufacturing system,

14 – Scanlmpl Komponente in Kombination mit ScanUnit2 an einem flexiblen Fertigungssystem, 14 - Scanlmpl component in combination with ScanUnit2 on a flexible manufacturing system,

15 – Scanlmpl2 Komponente und Kombination mit ScanUnit2 an einem flexiblen Fertigungssystem, 15 - Scanlmpl2 component and combination with ScanUnit2 on a flexible manufacturing system,

16 – Scanlmpl2 Komponente und Kombination mit Zyklus an einem flexiblen Fertigungssystem, 16 - Scanlmpl2 component and combination with cycle on a flexible manufacturing system,

17 – Komposition von Abläufen zu kombiniertem Ablauf an einem flexiblen Fertigungssystem, 17 - composition of processes to a combined process on a flexible manufacturing system,

18 – Copy Ablauf als Komposition zweier Teilabläufe an einem flexiblen Fertigungssystem, 18 - Copy sequence as a composition of two partial sequences on a flexible manufacturing system,

19 – Copy Ablauf mit modifizierter Komponente im untergeordneten Ablauf an einem flexiblen Fertigungssystem, 19 - Copy process with modified component in the subordinate process on a flexible manufacturing system,

20 – Abhängigkeiten reduzierende Modifikationen an einem flexiblen Fertigungssystem, 20 - Dependency-reducing modifications to a flexible manufacturing system,

21 – Scheitern der Komposition aufgrund zusätzlicher Abhängigkeiten in einem flexiblen Fertigungssystem, 21 - composition failure due to additional dependencies in a flexible manufacturing system,

22 – Basiskontrakte für Buchbestellung und Adressenangabe, 22 - Basic contracts for book orders and address details,

23 – Basiskontrakte für Bezahlung und Lieferung, 23 - basic contracts for payment and delivery,

24 – Kombinierter Kontrakt für einen Buchladen, 24 - Combined contract for a bookshop,

25 – Komposition von Kontrakten für einen BookOnDemand Gerät, 25 - composition of contracts for a BookOnDemand device,

26 – Maximale Komposition von Basiskontrakten des Online-Bookshop, 26 - Maximum composition of basic contracts of the online bookshop,

27 – Komposition der Basiskontrakte des Online-Bookshop, die mit beliebiger Zahlungsart zufrieden ist, 27 - composition of the basic contracts of the online bookshop, which is satisfied with any payment method,

28 – Szenario der passenden Kontraktverbindungen des Online-Bookshop. 28 - Scenario of suitable contract connections in the online bookshop.

Im den Figuren wird zur Beschreibung wo möglich die Unified Modeling Language (UML) [UML1.3] verwendet. In Erweiterung der UML werden Komponenten sowohl als Typen als auch Instanzen in UML Klassen- bzw. Instanzdiagrammen verwendet. Einfache Kreise beschreiben exklusive Kontrakte (nicht wie teilw. in der UML nur Interfaces) und Kreise mit doppelter Kante beschreiben „shared" Kontrakte, die zwischen mehreren Benutzern geteilt werden können. Dabei beschreibt eine einfache Kante zwischen einer Komponente und einem Kontrakt, daß dieser Kontrakt in der bezeichneten Mulitplizität angeboten wird, während ein Pfeil entsprechend die Benutzung bezeichnet.in the the figures are used to describe where possible the unified modeling Language (UML) [UML1.3] is used. Components are added to the UML both as types and as instances in UML class or instance diagrams used. Simple circles describe exclusive contracts (not as partly in the UML only interfaces) and circles with double edges describe "shared" contracts between can be shared among multiple users. One describes simple edge between a component and a contract that this Contract in the designated multiplicity is offered while a Arrow indicates the use accordingly.

Die im Beispiel für die kombinierten Kontrakte gemäß 22 bis 28 verwendete Notation für die Protokolle stellt eine Petri-Netz-Variante dar, bei der durch die sechseckigen Stellen, von denen immer nur eine einfach belegt sein kann, die möglichen Zustände kodiert sind. Die Transitionen bezeichnen verschiedene Formen von Aufrufen und nicht-deterministischem Verhalten. Die einfachen benannten Transitionen beschreiben die möglichen Aufrufe samt evtl. alternativer Rückgaben sowie deren Einfluß auf den Kontraktzustand. Die mit einem Schatten hinterlegten Transitionen dagegegen bezeichnen nicht-deterministische Zustandsübergänge.The in the example for the combined contracts according to 22 to 28 The notation used for the protocols represents a Petri net variant in which the possible states are coded by the hexagonal digits, of which only one can always be assigned. The transitions denote different forms of calls and non-deterministic behavior. The simple named transitions describe the possible calls including possible alternative returns as well as their influence on the contract status. In contrast, the transitions shaded indicate non-deterministic state transitions.

In den 9a, 10a und 11a wird schrittweise die Behandlung der in den 9 bis 11 schon vorstehend erläuterten Systeme, nun aber mittels TYCS-Softwarekomponenten beschrieben, um zu zeigen, wie dabei die bzgl. der Systeme beschriebenen Probleme und impliziten Abhängigkeiten vermieden werden, ohne eine spezielle Implementierung festzulegen.In the 9a . 10a and 11a is gradually treating in the 9 to 11 Systems already explained above, but now described using TYCS software components to show how the problems and implicit dependencies described with regard to the systems are avoided that without specifying a specific implementation.

Beschreibt man für das System aus 9 (rechts) wie in 9a gezeigt die TYCS-Abhängigkeitsrelation (gepunktete Linie), so kann z.B. für den oberen Fall ein solcher fataler zyklischer Effekt ausgeschlossen werden, da die benutzende Komponente garantiert im Fall einer Benachrichtigung nicht direkt wieder auf den Notifying-Dir Kontrakt zugreift (keine Abhängigkeit eingezeichnet). Dagegen kann es im unteren Fall aufgrund der Abhängigkeit zwischen dem Notify Kontrakt und dem Notifying-Dir Kontrakt zu diesem schon geschilderten Problem bzgl. des Callbacks kommen. Für die in 9a beschriebene Realisierung des NotifyingDir Kontraktes ist nur festgelegt worden, daß der Kontrakt von den Notify Kontrakten abhängig ist. Somit ist bzgl. der TYCS-Abhängigkeitsrelation nur die linke obere Komponente korrekt mit dieser verbunden, während die links untere zu einer nicht erlaubten zyklischen Abhängigkeit führt. Dies illustriert anschaulich, daß die Komposition der Abhängigkeitsrelation und der Ausschluß von Zyklen dabei effektiv das mögliche Problem ausschließt.Describe for the system 9 (right) as in 9a If the TYCS dependency relation (dotted line) is shown, such a fatal cyclical effect can be excluded, for example, in the upper case, since the component that is used guarantees that in the event of a notification, the Notifying-Dir contract will not access the contract directly (no dependency shown). On the other hand, in the lower case, due to the dependency between the Notify contract and the Notifying-Dir contract, this already described problem can arise with regard to the callback. For those in 9a Realization of the NotifyingDir contract described has only been stipulated that the contract is dependent on the Notify contracts. Thus, with regard to the TYCS dependency relation, only the upper left component is correctly connected to it, while the lower left component leads to an illegal dependency. This clearly illustrates that the composition of the dependency relation and the exclusion of cycles effectively exclude the possible problem.

Soll nun die im ursprünglichen Beispiel in 10 beschriebene Funktionalität erreicht werden und ist die in 9a beschriebene Form von asynchronem remove nicht hinreichend bzgl. der angestrebten Konsistenz, so kann das Problem wie in 10a beschrieben werden. Neben einem allgemeinen Notify Kontrakt, der nur den asynchronen Zugriff erlaubt (siehe oben) werden sogenannte Wächter (engl. Guards) unterstützt, die es erlauben, daß vor Einfügen eines Eintrages alle registrierten Guards befragt werden, ob der Eintrag konform ist. D.h. die Lösung verhindert direkt, daß ein entsprechender Eintrag überhaupt erfolgt. Die Guards müssen, um eine korrekte Anbindung an die GuardedDir anbietende Komponente zu erlauben, den Guard Kontrakt unabhängig vom GuardedDir bedienen.Should the in the original example in 10 described functionality can be achieved and is the in 9a The form of asynchronous remove described is not sufficient with regard to the desired consistency, so the problem as in 10a to be discribed. In addition to a general notify contract that only allows asynchronous access (see above), so-called guards are supported, which allow all registered guards to be asked whether an entry is compliant before an entry is inserted. This means that the solution prevents a corresponding entry from being made at all. In order to allow a correct connection to the component offering GuardedDir, the guards must operate the Guard contract independently of the GuardedDir.

Bzgl. der rekursiv definierten Directory Komponenten Strukturen aus 11 können ebenso mittels der TYCS-Abhängigkeitsrelation die entsprechenden Probleme ausgeschlossen werden (siehe 11a). Die linke Lösung bzgl. der komponenteninternen Abhängigkeitsrelation ist für den allgemeinen Fall nicht geeignet, da die allgemeine Komposition zu Zyklen führen kann. Vielmehr schließt die korrekte Komposition Zyklen aus und man ist deswegen nur in der Lage, azyklische Graphen zu bilden. Soll eine die gesamte Struktur rekursiv durchsuchende Operation angeboten werden, so sollte diese wie in 11a (rechts) beschrieben durch einen zusätzlichen Kontrakt angeboten werden. Da der DeepSearch Kontrakt nur von anderen Directory abhängt und nicht wiederum von anderen DeepSearch, sind sowohl die resultierende Abhängigkeitsrelation immer azyklisch als auch entsprechende Probleme ausgeschlossen. Eine entsprechende Realisierung könnte sich aufgrund der gegebenen Abhängigkeitsrelation nur auf andere Directory Kontrakte, aber nicht auf den DeepSearch Kontrakt abstützen und würde somit die notwendige Traversierung wie gefordert lokal mit Erkennung von Zyklen durchführen.Concerning. of the recursively defined directory component structures 11 the corresponding problems can also be excluded using the TYCS dependency relation (see 11a ). The solution on the left regarding the component-internal dependency relation is not suitable for the general case, since the general composition can lead to cycles. Rather, the correct composition excludes cycles and you are therefore only able to form acyclic graphs. If an operation that searches the entire structure recursively is to be offered, this should be done as in 11a (right) described by an additional contract. Since the DeepSearch contract only depends on another directory and not in turn on other DeepSearch, the resulting dependency relation is always acyclic and corresponding problems are excluded. A corresponding implementation could only be based on other directory contracts, but not on the DeepSearch contract due to the given dependency relation, and would therefore carry out the necessary traversing locally as required with the detection of cycles.

Wenn man neben Kontrakten ohne Protokoll, die alle ihre Operationen immer anbieten, auch solche Kontrakte, deren angebotene Operationen und Zustand variieren (engl. non uniform service availability), mit einbezieht, so müssen die obigen Betrachtungen auf Verhaltensprotokolle verallgemeinert werden. Enthält z.B. ein Kontrakt die Garantie, daß als Reaktion auf eine Anfrage in absehbarer Zeit ein Ereignis folgt, so kann es auch ohne aktive Aufrufe zu vergleichbaren Effekten kommen. Die TYCS-Softwarekomponenten und ihre Abhängigkeitsrelation umfassen deswegen mehr als nur eine Approximation des maximalen Aufrufgraphen und der integrierte Protokolle und entsprechenden Abhängigkeiten.If one next to contracts without a protocol, all of their operations always offer, including those contracts, their offered operations and condition vary (non uniform service availability), including, so must generalized the above considerations to behavior logs become. contains e.g. A contract guarantees that in response to a request An event follows in the foreseeable future, so it can also take place without an active one Calls for comparable effects come. The TYCS software components and include their dependency relation therefore more than just an approximation of the maximum call graph and the integrated protocols and corresponding dependencies.

Als weiteres Beispiel für die Anwendung der TYCS-Komponenten wird in den 12 bis 21 eine Fertigung für eine verteilte flexible industrielle Produktion betrachtet. Das werkstatt-orientierte Fertigungssystem soll auf der Basis autonomer fahrerloser Transportsysteme (AFT) und teilw. autonomer Fertigungsmaschinen eine flexible und erweiterbare Produktion von Prototypen und Einzelstücken erlauben.Another example of the use of the TYCS components is given in the 12 to 21 considered a manufacturing for a distributed flexible industrial production. The workshop-oriented production system should allow flexible and expandable production of prototypes and individual pieces on the basis of autonomous driverless transport systems (AFT) and partly autonomous production machines.

Als Grundkonfiguration ist eine Fertigungsumgebung zum maschinellen Fräsen von Kunststoffteilen gegeben, die mehrere Werkzeugmaschinen (z.B. Fünf-Achsen CNC-Fräsmaschinen) umfaßt. Zur Erfassung von Formen gibt es des weiteren einen 3D-Scanner, der in der Lage ist, CAD-Modelle von gegebenen Vorlagen zu erstellen.As Basic configuration is a manufacturing environment for mechanical mill given plastic parts that several machine tools (e.g. Five-axis CNC milling machines) includes. There is also a 3D scanner for capturing shapes Is able to create CAD models from given templates.

Ferner besteht die Fertigungsanlage aus einem automatischen Hochregallager, in welchem sich die Werkstücke und Rohlinge befinden und an welches auch die fertiggestellten Werkstücke übergeben werden.Further the production system consists of an automatic high-bay warehouse, in which the workpieces and blanks and to which the finished workpieces are also handed over.

Hauptaugenmerk für die Anlagensteuerung ist es, die teilweise notwendigen komplexen Fertigungs- und Erfassungsvorgänge in geeigneter modularer und adaptiver Form in einer Dienst-basierten Infrastruktur zu ermöglichen. Die einzelnen Abläufe (Tasks) sollen dabei die Entnahme aus dem automatischen Hochregallager, die Bearbeitung bzw. Erfassung durch die notwendigen Bearbeitungsschritte sowie schließlich die Zuführung zum Ausgangszwischenlager beinhalten. Eingangslager, die Bearbeitungs- und Erfassungsmaschinen und die AFTs verfügen über individuelle Steuerungen und sind über ein drahtloses Kommunikationssystem in der Lage, miteinander Informationen und Nachrichten auszutauschen, um die Übergabe des Werkstücks zu koordinieren. Die AFTs bieten des weiteren einzelne Transportdienste als Bestandteile der Service Infrastruktur an.The main focus for the system control is to enable the complex manufacturing and acquisition processes that are sometimes necessary in a suitable modular and adaptive form in a service-based infrastructure. The individual processes (tasks) should include the removal from the automatic high-bay warehouse, the processing or recording through the necessary processing steps, and finally the supply to the exit interim storage facility. The incoming warehouse, the processing and recording machines and the AFTs have individual controls and are able to use a wireless communication system exchange information and messages with each other in order to coordinate the transfer of the workpiece. The AFTs also offer individual transport services as part of the service infrastructure.

Die extern angestoßenen Abläufe können im wesentlichen nur die durch die relativ autonom operierenden Maschinen und in Form von Services zur Verfügung gestellte Grundfunktionalität kombinieren:
Für einen Ablauf (Task) ist dabei im Rahmen der Gesamtarchitektur, wie in 12 (links) beschrieben, vorgesehen, daß diese, um bei Trader-basierter Neukombination die notwendige Konformität der kombinierten Abläufe zu garantieren, das folgende Schema einhält. Um Ausnahmefälle geeignet behandeln zu können, muß eine übergeordnete Task der untergeordneten Task eine entsprechende Policies Schnittstelle anbieten, an die diese sich bei Auftreten entsprechender Ausnahmen wenden muß. Des weiteren ist festgelegt, daß ein Ablauf in seinem garantierten Verhalten nur von dem garantierten Verhalten der Unterabläufe sowie der übergeordneten Policies abhängen darf. Die ebenfalls angebotenen Policies müssen parallel zu Task Anfragen bearbeitet werden und dürfen nur von der übergeordneten Policies abhängen. Der zur allgemeinen Diagnose und Systemüberwachung genutzte Config Kontrakt darf nur den lokalen augenblicklichen Zustand berichten und sich nicht auf einen der benutzten Kontrakte abstützen.
The processes initiated externally can essentially only combine the basic functionality provided by the relatively autonomously operating machines and in the form of services:
For a process (task) is within the framework of the overall architecture, as in 12 (left), provided that, in order to guarantee the necessary conformity of the combined processes in the case of trader-based new combinations, the following scheme is followed. In order to be able to handle exceptional cases appropriately, a higher-level task of the lower-level task must offer a corresponding policies interface, to which the latter must turn when appropriate exceptions occur. Furthermore, it is stipulated that a process in its guaranteed behavior may only depend on the guaranteed behavior of the sub-processes and the higher-level policies. The policies also offered must be processed in parallel with task requests and may only depend on the higher-level policies. The config contract used for general diagnosis and system monitoring may only report the current local status and may not be based on one of the contracts used.

Als Basisabläufe sollen im weiteren die durch die Maschinen (Unit) zur Verfügung gestellten Dienste verwendet werden, diese sind in 12 (Mitte) spezifiziert. Diese können in ihrem garantierten Verhalten sowohl von dem Policies Kontrakt als auch dem entsprechenden Beladen über den Load Kontrakt abhängen. Der ebenso zur Verfügung gestellte Unload Kontrakt seinerseits darf nur vom Load und den internen Abläufen der Maschine abhängen.The services provided by the machines (unit) are to be used as basic processes, these are in 12 (Middle) specified. The guaranteed behavior of these can depend both on the policies contract and the corresponding loading via the load contract. The unload contract, which is also provided, may only depend on the load and the internal processes of the machine.

Die fahrerlosen Transportsysteme bieten entsprechend den Dienst Move an und garantieren dabei, daß das dort zugesicherte Verhalten nur vom korrekten Anbieten des benutzten Unload Kontraktes abhängt (siehe 12 rechts). Per Move wird ein Werkstück von einem Ort (Maschine, Lager) zu einem anderen bewegt.The driverless transport systems accordingly offer the Move service and thereby guarantee that the behavior guaranteed there only depends on the correct offering of the unload contract used (see 12 right). With a move, a workpiece is moved from one location (machine, warehouse) to another.

Mit Hilfe dieser Basisarchitektur und ihrer spezifischen Rollen ist in der 13 als weiteres Beispiel der Scan-Ablauf beschrieben, der im wesentlichen auf einem 3D-Scan Dienst basiert, der von einer ScanUnit angeboten wird und es erlaubt, ein 3D-Modell einer Vorlage in Form eines CAD-Modells zu erhalten. Des weiteren werden zwei Move Dienste zusammen mit der durch das Lager (In/Out) zur Verfügung gestellten Funktionalität dazu verwendet, ein beliebiges Werkstück aus dem Lager zum Scanner zu bringen, dort zu erfassen und abschließend ins Lager zurückzubringen. Die entsprechende Komposition kann in dem Instanzdiagramm in 13 betrachtet werden. Die zyklenfreie Abhängigkeitsrelation garantiert dabei, daß die Synchronisation zwischen den Komponenten bei korrektem Agieren aller Teilkomponenten nicht zur Blockierung führen kann. Bzgl. internem Versagen z.B. einem AFT-Ausfall gilt dies natürlich nicht.With the help of this basic architecture and its specific roles, the 13 As a further example, the scan process is described, which is essentially based on a 3D scan service that is offered by a ScanUnit and allows a 3D model of a template to be obtained in the form of a CAD model. Furthermore, two Move services together with the functionality provided by the warehouse (In / Out) are used to bring any workpiece from the warehouse to the scanner, to record it there and finally to return it to the warehouse. The corresponding composition can be found in the instance diagram in 13 to be viewed as. The cycle-free dependency relation guarantees that the synchronization between the components cannot lead to blocking if all subcomponents operate correctly. Concerning. internal failure, for example an AFT failure, naturally does not apply.

Sind bei einer ScanUnit2 Komponente in der 14, die alternativ zu ScanUnit aus 13 verwendet werden kann, alle für den Policies Kontrakt verpflichtend zu meldenden Ausnahmen unabhängig zum 3D-Scan Kontrakt, so kann der Komponententyp entsprechend um die Abhängigkeit verringert werden (siehe 14). Diese Komponente wäre dann auch in der Lage, mit dem Scanlmpl2 Ablauf, der bei einigen Policies Benachrichtigungen direkt wieder auf den 3D-Scan Kontrakt zugreift, korrekt zusammenzuarbeiten, weil diese wiederum in ScanUnit2 unabhängig von Anfragen an den Policies Kontrakt sind. Dies manifestiert sich in der zyklenfreien Komposition, wie in 15 gezeigt. Versucht man dagegen Scanlmpl2 mit dem ursprünglichen ScanUnit zu verbinden, so kommt es wie in 16 verdeutlicht, zu einem möglichen Problem. Würde die ScanUnit aufgrund einer Ausnahme den Policies Kontrakt um eine Entscheidung bitten, aber, um die interne Konsistenz zu garantieren, die weitere Bearbeitung von 3D-Scan Anfragen aussetzen, und fragt ScanImpl2 nach Erhalt der Policies Anfrage tatsächlich über das 3D-Scan Interface an, so haben sich beide Systeme blockiert.Are with a ScanUnit2 component in the 14 that are alternative to ScanUnit 13 can be used, all exceptions to be reported for the policies contract, regardless of the 3D scan contract, the component type can be reduced accordingly by the dependency (see 14 ). This component would then also be able to work correctly with the Scanlmpl2 process, which directly accesses the 3D scan contract for some policies notifications, because in ScanUnit2 these are in turn independent of requests to the policies contract. This manifests itself in the cycle-free composition, as in 15 shown. However, if you try to connect Scanlmpl2 to the original ScanUnit, it will work as in 16 clarifies a possible problem. If the ScanUnit would ask the policies contract for a decision due to an exception, but, in order to guarantee the internal consistency, the further processing of 3D scan requests would be suspended, and if ScanImpl2 actually received the policies request via the 3D scan interface, so both systems have blocked.

An einem erweiterten zusammengesetzten Ablauf Copy, der den Scan Ablauf mit einem zweiten DoCNC Ablauf kombiniert, soll betrachtet werden, wie die über die Zeit auftretende Veränderungen und die durch die Komponenten angestrebte Kapselung aufeinander wirken. Der in 18 verwendete DoCNC Kontrakt Anbieter CNC-Impl realisiert diesen Auftrag im wesentlichen durch die Verwendung eines 3D-CNC Kontraktes, der das Fräsen entsprechend eines gegebenen CNC-Programms erlaubt, sowie mittels eines Quality Kontraktes erlaubt, die Ergebnisse des Fräsens zu überprüfen. Wenn im Rahmen des DoCNC Kontraktes das Werkstück zum Lager zurück geht, wird je nach Ausgang der Kontrolle das Werkstück gegebenenfalls als Ausschuß betrachtet. Um das geeignete CNC-Programm anhand des durch den Scan Ablauf gelieferten CAD-Models zu berechnen, benutzt die Copylmpl Komponente im weiteren CAD- und CNC-Bibliotheken samt entsprechender Tools.Using an expanded composite process, which combines the scan process with a second DoCNC process, it should be considered how the changes occurring over time and the encapsulation aimed at by the components interact. The in 18 Used DoCNC contract provider CNC-Impl realizes this order essentially by using a 3D-CNC contract, which allows milling according to a given CNC program, and by means of a quality contract, to check the results of the milling. If, within the framework of the DoCNC contract, the workpiece is returned to the warehouse, depending on the outcome of the inspection, the workpiece may be considered a committee. In order to calculate the suitable CNC program based on the CAD model provided by the scan process, the Copylmpl component uses further CAD and CNC libraries together with the corresponding tools.

Die Komposition des Copy Ablaufes und seiner untergeordneten Abläufe ist dabei, wie in der 17 beschrieben, in einer bzgl. der möglichen Komponentensynchronisation zu einem leicht modifizierten Ablaufe äquivalent.The composition of the copy process and its subordinate processes is as in the 17 described, equivalent to a slightly modified procedure in terms of possible component synchronization.

Kommt es nun dazu, daß z.B. gemäß 19 eine neue CNC-Fräsmaschine mit der Schnittstelle 3D-CNC+ und eingebauter Qualitätskontrolle im System installiert wird, so ist es sinnvoll, diese geeignet zu integrieren. Ist die neue Maschine anstelle der alten Maschine koppelbar, so kann sie zuerst einmal ersatzweise verwendet werden.If it now happens that, for example, according to 19 If a new CNC milling machine with the 3D-CNC + interface and built-in quality control is installed in the system, it makes sense to integrate it appropriately. If the new machine can be coupled instead of the old machine, it can first be used as a replacement.

Dies allein würde es aber noch nicht erlauben, in geeigneter Weise die zusätzlichen Fähigkeiten des 3D-CNC+ Kontraktes zu nutzen. Um dies zu tun, müßte man ohne flexible Ablaufschicht gegebenenfalls alle Steuerungsprogramme anpassen, die eine CNC-Fräsmaschine benutzen. Durch die flexible Ablaufschicht dagegen reicht es, die untergeordneten Abläufe zu modifizieren, die direkt zugreifen. In unserem Fall resultiert dies in dem neuen untergeordneten Ablauf CNC-Impl2, der die Qualitäts kontrolle in der Fräsmaschine selber nutzt und somit einen Transport einspart. Berücksichtigt man die neuen Fähigkeiten nicht auch bei schon bestehenden Abläufen, so können nur neu hinzugefügte Steuerungsabläufe die neue Maschine geeignet nutzen.This alone would but it does not yet allow the additional appropriately Skills of the 3D-CNC + contract. To do this you would have to If necessary, all control programs without a flexible process layer customize that a CNC milling machine to use. The flexible drainage layer, on the other hand, is enough subordinate processes to modify that access directly. In our case results this in the new subordinate process CNC-Impl2, which controls the quality in the milling machine uses itself and thus saves transport. Considered one the new skills not even with existing processes, only newly added control processes can use the new machine appropriately.

Die wirklichen Vorteile der Dienst-basierten Grundarchitektur kommen dann zum Tragen, wenn nun entweder die neue oder alte Maschine wieder entfernt wird. Dafür beide Maschinen die Abläufe noch vorhanden sind, kann die dynamische Dienstvermittlung erreichen, daß das System unbeeinträchtigt weiterarbeitet. Aufgrund des Dienst-basierten Gesamtaufbaus kann es bei Instanziierung eines Copyltem Services durch die Copyltem Komponente je nach Verfügbarkeit somit zu der Realisierung durch die in den 18 und 19 gezeigte Konstellation kommen, wenn beide Typen von CNC-Maschinen und die ihnen zugeordneten Abläufe noch im System sind.The real advantages of the service-based basic architecture come into play when either the new or the old machine is removed. For both machines the processes are still there, the dynamic service switching can ensure that the system continues to work unimpeded. Due to the service-based overall structure, when a copyltem service is instantiated by the copyltem component, depending on availability, it can be implemented by the in the 18 and 19 shown constellation come when both types of CNC machines and the processes assigned to them are still in the system.

Die einzelnen Abläufe können dabei das Task-Schema geeignet variieren, solange die Abhängigkeiten bzgl. der Synchronisation nur verringert werden. In 20 z.B. wird statt desselben Policies Kontraktes den beiden untergeordneten Abläufen jeweils ein unterschiedlicher Policies Kontrakt zugeordnet. Wird dagegen wie in 21 gegen das Schema verstoßen und es kommt zu zusätzlichen Abhängigkeiten, so kann es zu Verklemmungen kommen.The individual processes can suitably vary the task scheme as long as the dependencies with regard to synchronization are only reduced. In 20 For example, instead of the same policies contract, the two subordinate processes are each assigned a different policies contract. In contrast, is as in 21 violate the schema and there are additional dependencies, so there may be jams.

An dem nun folgenden Beispiel gemäß 22 bis 28 soll die der Kontraktkomposition zugrundeliegende Grundidee verdeutlichen werden. Ausgehend von einer Menge von Basiskontrakte, die „orthogonal" bereichsspezifisch die relevanten Interaktionen und austauschbaren Daten beschreiben, kann durch Komposition eine Vielzahl von Diensten mit unterschiedlicher Güte abgeleitet werden. Da die Basiskontrakte sowohl Dienstanbietern wie Dienste-benötigenden Komponenten bekannt sind, bilden sie eine gemeinsame Basis, um zu ermitteln, ob die angebotene Kombination von Basiskontrakten einer benötigten Kombination entspricht. Die Traderbasierte Dienstanbindung auf Basis der Kontraktsemantik garantiert dann, daß alle ermittelten passenden Kontrakte die durch den erwarteten Kontrakttyp beschriebenen Erwartungen ebenfalls erfüllen.According to the example below 22 to 28 the basic idea on which the contract composition is based should be clarified. Starting from a set of basic contracts, which describe the relevant interactions and exchangeable data in an "orthogonal" area-specific manner, a multitude of services with different qualities can be derived by composition. Since the basic contracts are known to both service providers and service-requiring components, they form a common one Basis to determine whether the offered combination of basic contracts corresponds to a required combination The trader-based service connection based on the contract semantics then guarantees that all determined suitable contracts also meet the expectations described by the expected contract type.

Als Beispiel wird die Online-Bestellung von Büchern mit verschiedenen Anforderungen beschrieben. Im folgenden werden dazu zuerst die relevanten Basiskontrakte betrachtet und anschließend eine Reihe möglicher und sinnvoller Kombinationen. Die Basiskontrakte stellen dabei die wesentlichen Bestandteile zur Verfügung, um auch für kombinierte Kontrakte auf die komplette Semantik schließen zu können.As An example is the online ordering of books with different requirements described. In the following, the relevant basic contracts are considered first and subsequently a number of possible and meaningful combinations. The basic contracts represent the essential components available to even for combined contracts to be able to deduce the complete semantics.

In 22 sind links die beiden im Beispiel betrachteten alternativen Formen der Buchbestellung definiert. Die interaktive Version (OrderBookInteractive) erlaubt es iterativ per search, select, getPrice und order Operation zu klären, ob die selektierte Menge von Büchern der gewünschten Menge entspricht. Alternativ kann per Anfrage im OrderBookQuery Kontrakt die gewünschte Menge von Büchern, die geordert werden soll, bestimmt werden. Um im weiteren die Zulieferadresse zu bestimmen, gibt es noch den Kontrakt EnterAddess.In 22 the two alternative forms of book ordering considered in the example are defined on the left. The interactive version (OrderBookInteractive) allows iteratively to use search, select, getPrice and order operation to clarify whether the selected amount of books corresponds to the desired amount. Alternatively, the desired number of books to be ordered can be determined in the OrderBookQuery contract. In order to further determine the supplier address, there is also the EnterAddess contract.

Um verschiedene Arten der Bezahlung zu erlauben, gibt es im weiteren die Basiskontrakte Ecash, CreditCard und Account, dargestellt in 23. Mit dem Basiskontrakte Ecash wird die Bezahlung mittels eines elektronischen Zahlungsmittels beschrieben. Die Kreditkarte kann dagegen Verwendung finden, wenn der CreditCard Kontrakt benutzt wird. Falls ein entsprechendes Konto bei dem Kontraktanbieter vorliegt ist der Account Kontrakt eine weitere Möglichkeit.To allow different types of payment, there are the basic contracts Ecash, CreditCard and Account, shown in 23 , The basic contract Ecash describes payment using an electronic means of payment. The credit card, on the other hand, can be used if the CreditCard contract is used. If there is a corresponding account with the contract provider, the account contract is another option.

Die Lieferung einer beliebigen vereinbarten Leistung ist im weiteren durch den Kontrakt StandardDelivering beschrieben. Als Erweiterung gibt es noch den UPDelivering Sonderfall, bei dem, solange die Lieferung aussteht, der aktuelle Status der Lieferung abgefragt werden kann.The Delivery of any agreed service is further described by the Standard Delivery contract. As an extension there is still the UPDelivering special case, where as long as the delivery pending, the current status of the delivery can be queried.

Im weiteren wird anhand des Beispiels nun demonstriert, wie mit Hilfe der Basiskontrakte geeignete Kontrakte komponiert werden können, die es erlauben, Kontrakte zu definieren, die den Anwender- bzw. Dienstanbieter-spezifischen Bedürfnissen genügen.in the more is now demonstrated using the example, as with help suitable contracts can be composed of the basic contracts, the allow contracts to be defined that are specific to the user or service provider needs suffice.

In 24 sind als erstes Beispiel die Anforderungen eines gewöhnlichen Buchladens (BookShop) als Schnittstelle zu den Grosshändlern in seiner traditionellen Form beschrieben. Auf eine gezielte Buchanfrage hin wird diese geordert, wobei die Bezahlung per Konto beim Großhändler erfolgt, die normale Lieferung schließt das Geschäft ab.In 24 The first example describes the requirements of an ordinary book shop (BookShop) as an interface to wholesalers in its traditional form. This is ordered on the basis of a specific book request, whereby payment is made via an account with the wholesaler, the normal delivery closes the deal.

Im Gegensatz zu diesem traditionellen Vorgehen würde z.B. eine BookOnDemand Maschine statt der Bezahlung per Konto auf elektronischen Zahlungsmitteln und somit dem ECash Kontrakt bestehen (siehe 25).In contrast to this traditional approach, a BookOnDemand machine, for example, would exist on electronic means of payment and thus the ECash contract instead of paying by account (see 25 ).

Ein online Anbieter für Bücher (OnlineBookShop) möchte dagegen im Regelfall alle denkbaren Online-Kunden bedienen können. Deswegen bietet er in unserem Fall alle Formen der Auswahl (OrderBookInteraktive; OrderBookQuery) und Bezahlung (Ecash, CreditCard, Account) sowie die erweiterte Belieferung mit Überwachung an (siehe 26).An online book provider (OnlineBookShop), on the other hand, would like to be able to serve all conceivable online customers. Therefore, in our case, he offers all forms of selection (OrderBookInteractive; OrderBookQuery) and payment (Ecash, CreditCard, Account) as well as extended delivery with monitoring (see 26 ).

Um sich desweiteren gleichzeitig aber alle möglichen Quellen zu erschließen, wird mit dem BookSource Kontrakt in 27 beschrieben, daß man alternativ entweder mit Ecash, CreditCard oder Account Bezahlung zufrieden ist.In order to open up all possible sources at the same time, the BookSource contract in 27 described that you are alternatively satisfied with either Ecash, CreditCard or account payment.

Während im Fall des OnlineBookShop Kontrakts das angebotene Verhalten gleichzeitig angeboten wird und somit der Kontraktnutzer sich die gewünschte Variante aussuchen kann, ist für die Basiskontrakte für Bezahlung im BookSource Kontrakt nur bestimmt, daß einer von ihnen (alternativ) erreicht wird (autonome Kontrakt-Schritte).While in In the case of the OnlineBookShop contract, the offered behavior at the same time is offered and thus the contract user chooses the desired variant can choose is for the basic contracts for Payment in the BookSource contract only determines that one is achieved by them (alternatively) (autonomous contract steps).

Somit ergeben sich die abschließend in 28 durch die gestrichelten Linien angedeutete mögliche Kontraktverbindungen, die zeigen, welche passenden Verbindungen sich somit im System ergeben und welche möglichen Teile des Systems somit miteinander ins Geschäft kommen könnten.Thus, the final result is in 28 possible contract connections indicated by the dashed lines, which show which suitable connections thus result in the system and which possible parts of the system could therefore do business with one another.

Der BookShop kann so z.B. seine Bücher neben dem Großhandel (BookProvider) auch über OnlineBookShops beziehen, falls dies bzgl. des Preises attraktiv ist. Der OnlineBookShop ist in der Lage, neben dem Großhandel auch BookOnDemand Systeme direkt einzubinden.The BookShop can e.g. his books in addition to wholesale (BookProvider) also about Buy OnlineBookShops if this is attractive in terms of price is. The OnlineBookShop is able to, besides the wholesale also integrate BookOnDemand systems directly.

Des weiteren wäre es denkbar, daß Kunden, die spezielle Wünsche haben, gezielt zu geeigneten Anbietern gelangen können. Würde ein Kunde nach OrderBookQuery, EnterAddress, EcashPayment und StandardDelivery in Form eines kombinierten Kontraktes suchen, so hätte er im gegebenen Szenario z.B. den BookOnDemand und OnlineBookShop als geeignete Handelspartner.Of would be more it is conceivable that customers who special wishes have been able to target suitable providers. Would one Customer according to OrderBookQuery, EnterAddress, EcashPayment and StandardDelivery in the form of a combined contract, he would have given scenario e.g. the BookOnDemand and OnlineBookShop as suitable Trading partner.

Referenzencredentials

  • [Allen&Garlan 1997] R. Allen and D. Garlan. A Formal Basis for Architectural Connections. ACM Transactions on Software Engineering and Methodology, 6(3), July 1997.[Allen & Garlan 1997] R. Allen and D. Garlan. A Formal Basis for Architectural Connections. ACM Transactions on Software Engineering and Methodology, 6 (3), July 1997.
  • [Buchi&Weck 1998] Martin Büchi and Wolfgang Weck. Compound types for Java. In Proceedings of the Conference on Object-oriented programming, systems, languages, and applications, October 18 – 22, 1998, Vancouver Canada, 1998.[Buchi & Weck 1998] Martin Büchi and Wolfgang Weck. Compound types for Java. In Proceedings of the Conference on Object-oriented programming, systems, languages, and applications, October 18 - 22, 1998, Vancouver Canada, 1998.
  • [Meyer 1997] Bertrand Meyer. Object-Oriented Software Construction. Prentice Hall, 1997. 2nd edition.[Meyer 1997] Bertrand Meyer. Object-oriented software construction. Prentice Hall, 1997. 2nd edition.
  • [Shaw&Garlan 1996] Mary Shaw and Davis Garlan. Software Architecture: Perspectives on an emerging Discipline. Prentice Hall, 1996.[Shaw & Garlan 1996] Mary Shaw and Davis Garlan. Software Architecture: Perspectives on an emerging discipline. Prentice Hall, 1996.
  • [Szyperski 1998] Clemens Szyperski. Component Software, Beyond Object-Oriented Programming, Addison-Wesley, 1998.[Szyperski 1998] Clemens Szyperski. Component software, beyond Object-Oriented Programming, Addison-Wesley, 1998.
  • [UML1.3] Object Management Group, OMG Unified Modeling Language Specification, Version 1.3, June 1999. OMG document ad/99-06-08.[UML1.3] Object Management Group, OMG Unified Modeling Language Specification, Version 1.3, June 1999. OMG document ad / 99-06-08.

Claims (19)

Verfahren zum Betrieb kombinierbarer Komponenten in Applikationsservern, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird, dadurch gekennzeichnet, daß zur Beschreibung jeder Komponente zusätzlich zur syntaktischen Schnittstellenbeschreibung jeweils ein Verhaltensprotokoll für jeden Kontrakt verwendet wird, das Eigenschaften der Komponente bzgl. der Synchronisation zwischen den Komponenten über den jeweiligen Kontrakt beschreibt, eine interne Abhängigkeitsrelation zur Beschreibung der Abhängigkeiten zwischen angebotenen und benutzten Kontrakten verwendet wird, die mittels eingeschränkter Kontrakte, die nur zu einer einseitigen Blockierung des Kontraktbenutzers durch den Kontraktanbieter führen können, die Abhängigkeiten innerhalb der Komponente zwischen angebotenen und benutzten Kontrakten beschreibt und zusammen mit den Kontrakten erlaubt, Anomalien bei der Synchronisation der Komponente mit anderen Komponenten des Gesamtsystems auszuschließen, mittels Applikationsservern und/oder Betriebssystembestandteilen Synchronisations-Anomalien der kombinierbaren Komponenten beim Betrieb der Komponenten verhindert oder diagnostiziert werden, indem die Abhängigkeitsrelation bei Kombination von Komponenten, die durch die Verknüpfung der einzelnen Abhängigkeitsrelationen der Komponenten entsteht, auf Zyklen geprüft wird.Method for operating combinable components in application servers, in which the behavior of the components of an overall system formed from the components is described by means of interfaces between individual components on the basis of contracts, characterized in that, in addition to the syntactical interface description, a behavior log for each contract is used to describe each component is used, which describes the properties of the component with regard to the synchronization between the components via the respective contract, an internal dependency relation is used to describe the dependencies between the offered and used contracts, which uses restricted contracts that only block the contract user unilaterally Contract providers, which describes dependencies within the component between the offered and used contracts and allows them together with the contracts, A Exclude normalities in the synchronization of the component with other components of the overall system, by means of application servers and / or operating system components, synchronization anomalies of the combinable components during the operation of the components can be prevented or diagnosed by the dependency relation when combining components by linking the individual dependency relations of the Components are created, checked for cycles. Verfahren zum Entwurf kombinierbarer Komponenten in Applikationsservern, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird, dadurch gekennzeichnet, daß zur Beschreibung jeder Komponente zusätzlich zur syntaktischen Schnittstellenbeschreibung jeweils ein Verhaltensprotokoll für jeden Kontrakt verwendet wird, das Eigenschaften der Komponente bzgl. der Synchronisation zwischen den Komponenten über den jeweiligen Kontrakt beschreibt, eine interne Abhängigkeitsrelation zur Beschreibung der Abhängigkeiten zwischen angebotenen und benutzten Kontrakten verwendet wird, die mittels eingeschränkter Kontrakte, die nur zu einer einseitigen Blockierung des Kontraktbenutzers durch den Kontraktanbieter führen können, die Abhängigkeiten innerhalb der Komponente zwischen angebotenen und benutzten Kontrakten beschreibt und zusammen mit den Kontrakten erlaubt, Anomalien bei der Synchronisation der Komponente mit anderen Komponenten des Gesamtsystems auszuschließen, und Synchronisations-Anomalien der kombinierbaren Komponenten zum Entwurfszeitpunkt mittels Entwicklungs- und/oder Programmierwerkzeugen verhindert oder diagnostiziert werden, indem die Abhängigkeitsrelation bei Kombination von Komponenten, die durch die Verknüpfung der einzelnen Abhängigkeitsrelationen der Komponenten entsteht, auf Zyklen geprüft wird.Process for the design of combinable components in application servers, in which the behavior of the components of an overall system formed from the components is described by means of interfaces between individual components on the basis of contracts, characterized in that, for the description of each component, in addition to the syntactical interface description, a behavior log for each contract is used, the properties of the compo describes the synchronization between the components via the respective contract, an internal dependency relation is used to describe the dependencies between offered and used contracts, which uses dependencies by means of restricted contracts, which can only lead to a one-sided blocking of the contract user by the contract provider describes within the component between offered and used contracts and together with the contracts allows to exclude anomalies in the synchronization of the component with other components of the overall system, and to prevent or diagnose synchronization anomalies of the combinable components at the time of design by means of development and / or programming tools, by checking the dependency relation when combining components, which is created by linking the individual dependency relations of the components, on cycles. Verfahren gemäß einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß mittels der Verhaltensprotokolle ein effizienter Test auf Koppelbarkeit für aus Basiskontrakten kombinierte Kontrakte durchgeführt wird, indem die Zu stände des kombinierten Kontrakts als Kombination der Basiskontraktzustände beschrieben werden.Procedure according to a of claims 1 or 2, characterized in that by means of the behavior logs an efficient test for connectivity for combined from basic contracts Contracts carried out is by the states of the combined contract is described as a combination of the basic contract conditions become. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß zur expliziten Synchronisation für eine Menge von angebotenen und benutzten Kontrakten über das allgemeine Kontraktverhalten hinausgehende Einschränkungen spezifiziert werden.Procedure according to a the preceding claims, characterized in that for explicit synchronization for a lot of contracts offered and used about that general contract behavior restrictions going beyond be specified. Verfahren gemäß Anspruch 4, dadurch gekennzeichnet, daß ein durch einen Kontrakt angebotenes Verhalten nur dann von einem benutzten Kontrakt abhängig gemacht werden darf, wenn dies die Abhängigkeitsrelation der Komponente zuläßt.Method according to claim 4, characterized in that a behavior offered by a contract only from one used Contract dependent can be made if this is the dependency relation of the component allows. Verfahren gemäß mindestens einem der Ansprüche 4 oder 5, dadurch gekennzeichnet, daß eine Komponente das Bedienen von angebotenen Kontrakten nur dann von Anfragen oder Verhalten benutzter Kontrakte abhängig machen darf, wenn diese Benutzung bei Annahme des garantierten Verhaltens zugesichert wird.Procedure according to at least one of the claims 4 or 5, characterized in that one component controls the operation of offered contracts only of inquiries or behavior contracts used if this use is guaranteed upon acceptance of the guaranteed behavior becomes. Verfahren gemäß mindestens einem der Ansprüche 4 bis 6, dadurch gekennzeichnet, daß das Verhalten einer Komponente dem in den zugehörigen Multikontrakten beschriebenen Verhalten entspricht.Procedure according to at least one of the claims 4 to 6, characterized in that the behavior of a component that in the associated Behavior described in multi-contracts corresponds. Verfahren gemäß mindestens einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß eine definierte weitergehende Synchronisation dann gewährleistet wird, wenn die verschiedenen angebotenen Kontrakte sowie parallele Anfragen fair durch die jeweilige Komponente bearbeitet werden.Procedure according to at least one of the claims 4 to 7, characterized in that a defined further Synchronization is then guaranteed will when the different contracts offered as well as parallel Inquiries are processed fairly by the respective component. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß bei Kombination von Komponenten die Menge von Multikontrakten und die beteiligten, nicht weiter durch Multikontrakte eingeschränkten Kontrakte ein resultierendes Verhalten hervorrufen, das frei von Verklemmungen und unendlichen internen Aktivitäten ist.Procedure according to a the preceding claims, characterized in that at Combination of components the amount of multi-contracts and the contracts involved that are not further restricted by multi-contracts result in behavior that is free of deadlocks and infinite internal activities is. Verfahren gemäß Anspruch 9, dadurch gekennzeichnet, daß die Kombination von Komponenten die Bildung einer geeigneten Komposition in Form einer neuen Komponente erlaubt, wobei für überlappende Mengen von Multikontrakten gilt, daß diese interne und/oder externe Bestandteile aufweisen können und in dem Fall des Vorliegens sowohl interner als auch externer Bestandteile ein entsprechender abstrakter Multikontrakt der neugebildeten Komponente existiert, der von dem Verhalten interner Kontrakte abstrahiert.Method according to claim 9, characterized in that the Combination of components to form a suitable composition allowed in the form of a new component, being used for overlapping quantities of multi-contracts applies that this may have internal and / or external components and in the case of the presence of both internal and external components a corresponding abstract multi-contract of the newly formed component exists that abstracts from the behavior of internal contracts. Verfahren gemäß einem der vorstehenden Ansprüche 1 bis 10, dadurch gekennzeichnet, daß das Verhalten der Komponenten zur Laufzeit des Gesamtsystems auf Kontraktkonformität überprüft wird.Procedure according to a of the preceding claims 1 to 10, characterized in that the behavior of the components is checked for contract conformity at runtime of the overall system. Verfahren gemäß einem der vorstehenden Ansprüche 2 bis 10, dadurch gekennzeichnet, daß das Verhalten der Komponenten zum Entwurfszeitpunkt des Gesamtsystems auf Kontraktkonformität überprüft wird.Procedure according to a of the preceding claims 2 to 10, characterized in that the behavior of the components is checked for contract conformity at the time of design of the overall system. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß mittels Anwendungen oder modularen Anwendungsarchitekturen Synchronisations-Anomalien der kombinierbaren Softwarekomponenten während ihres Betriebs oder bei Konfiguration oder Hinzufügen von Softwarekomponenten verhindert oder diagnostiziert werden.Procedure according to a the preceding claims, characterized in that by means of Applications or modular application architectures synchronization anomalies of the combinable software components during their operation or at Configuration or adding prevented or diagnosed by software components. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß mittels Suche in Komponentenarchiven und/oder über Vermittler (trader) angebotene Kontrakte geeignete Komponenten oder Kontrakte zum Austausch oder Anschluß ermittelt werden.Procedure according to a the preceding claims, characterized in that by means of Search in component archives and / or offered through intermediaries (traders) Contracts suitable components or contracts for exchange or Connection determined become. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß mittels Anwendungen oder modularen Anwendungsarchitekturen Verletzungen der Spezifikation und somit das mögliche Auftreten von Synchronisations-Anomalien erkannt wird.Procedure according to a the preceding claims, characterized in that by means of Applications or modular application architectures violations the specification and thus the possible occurrence of synchronization anomalies becomes. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß mittels Werkzeugen zur Testerstellung und Testdurchführung mögliche Verletzungen der Spezifikation mit Hilfe für die Kontrakte gegebener Testfälle oder Testgeneratoren durch Kombination und Simulation des Protokolls erzeugt werden.Method according to one of the preceding claims, characterized in that by means of tools for test creation and test execution possible violations of the specification are generated with the help of contracts for given test cases or test generators by combining and simulating the protocol. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß bei dem Verhaltensprotokoll eines Kontraktes neben dem reinen Ablauf von Aufrufen und deren Beschränkungen (non uniform service availability) diesem Verhalten deklarierte Zustände zugeordnet werden.Procedure according to a the preceding claims, characterized in that at the behavior log of a contract in addition to the pure process of calls and their restrictions (non uniform service availability) assigned to this behavior declared states become. Verfahren gemäß einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß die Bildung von neuen Typen von Kontrakten durch Kombination gegebener und Hinzunahme neuer Kontrakte vorgenommen wird, wobei auf die Semantik der kombinierten Kontrakte durch Verwendung der Zustände und Operationen Bezug genommen wird.Procedure according to a the preceding claims, characterized in that the Formation of new types of contracts by combining given ones and addition of new contracts is made, focusing on the semantics the combined contracts by using the states and Operations. Verfahren zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten nach einem der Ansprüche 1 oder 2, bei dem das Verhalten der Komponenten eines aus den Komponenten gebildeten Gesamtsystems mittels Schnittstellen zwischen einzelnen Komponenten auf Basis von Kontrakten beschrieben wird, dadurch gekennzeichnet, daß die Kopplung von Kontrakten zur Laufzeit des Gesamtsystems nur dann erlaubt und/oder vermittelt wird, wenn für aus Basiskontrakten kombinierte Kontrakte, bei denen die Zustände des kombinierten Kontrakts als Kombination der Basiskontraktzustände beschrieben werden, bezüglich von Verhaltensprotokollen ein effizienter Test auf Koppelbarkeit erfolgreich durchgeführt wird.Design and / or operation methods that can be combined Components according to one of the claims 1 or 2, in which the behavior of the components is one of the components formed overall system by means of interfaces between individual Components are described on the basis of contracts, thereby characterized in that the Coupling of contracts at runtime of the overall system only then is allowed and / or brokered when combined from base contracts Contracts where the states of the combined contract is described as a combination of the basic contract conditions be regarding of behavior logs an efficient test for connectivity successfully completed becomes.
DE10065286A 1999-12-29 2000-12-29 Methods for designing and / or operating combinable components (TYCS) Expired - Fee Related DE10065286B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10065286A DE10065286B4 (en) 1999-12-29 2000-12-29 Methods for designing and / or operating combinable components (TYCS)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19963987.6 1999-12-29
DE19963987 1999-12-29
DE10065286A DE10065286B4 (en) 1999-12-29 2000-12-29 Methods for designing and / or operating combinable components (TYCS)

Publications (2)

Publication Number Publication Date
DE10065286A1 DE10065286A1 (en) 2001-07-12
DE10065286B4 true DE10065286B4 (en) 2004-12-09

Family

ID=7935132

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10065286A Expired - Fee Related DE10065286B4 (en) 1999-12-29 2000-12-29 Methods for designing and / or operating combinable components (TYCS)

Country Status (1)

Country Link
DE (1) DE10065286B4 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110618931B (en) * 2019-08-14 2024-06-07 重庆金融资产交易所有限责任公司 Dependency relationship detection method, dependency relationship detection device, computer equipment and readable storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546584A (en) * 1992-07-01 1996-08-13 Lundin; Kenneth System and method for establishing communication protocols between application programs

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5546584A (en) * 1992-07-01 1996-08-13 Lundin; Kenneth System and method for establishing communication protocols between application programs

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAY, C.: Von der computer- zur expertenorien- tierten Modellbeschreibung thermodynamischer Systeme, in: Simulationstechnik, 11. Symposium in Dortmund, November 1997, Tagungsband, Herausgeber: A. Kuhn u. S. Wenzel, Vieweg 1997, S. 296-301
MAY, C.: Von der computer- zur expertenorien- tierten Modellbeschreibung thermodynamischer Systeme, in: Simulationstechnik, 11. Symposium in Dortmund, November 1997, Tagungsband, Herausgeber:A. Kuhn u. S. Wenzel, Vieweg 1997, S. 296-301 *

Also Published As

Publication number Publication date
DE10065286A1 (en) 2001-07-12

Similar Documents

Publication Publication Date Title
DE69808633T2 (en) SEQUENCE CONTROL FOR A SOFTWARE SYSTEM
DE69808632T2 (en) Creation of software systems
DE69326464T2 (en) SYSTEM FOR CHANGING SOFTWARE DURING COMPUTER OPERATION.
DE602004011455T2 (en) Method and system for automatically generating service interfaces for a service-oriented architecture
DE69228230T2 (en) Software structure for telecommunications switching system
DE69803575T2 (en) VISUALIZATION IN A MODULAR SOFTWARE SYSTEM
DE69719269T2 (en) Ensuring indivisibility for a collection of transactional work steps in a workflow management system
EP0929864B1 (en) Coordination system
DE60029349T2 (en) ARRANGEMENT FOR THE COMPONENT-BASED IMPLEMENTATION OF TASKS DURING THE PROCESSING OF INSURANCE CLAIMS
DE69429740T2 (en) Integrated automatic development system and associated procedure
DE19705955A1 (en) Workflow processing model implementation method
DE10003015A1 (en) Computer-aided method for automatically transforming a process model
DE19955004A1 (en) Workload management method for computerized workflow management system, automatically generating workload management enclave when control flow enters enclave graph
DE19963673A1 (en) Document management system development method uses mask for interaction with software management and control bibliotech
EP0685086B1 (en) Device for automatically generating a knowledgebase for an expert diagnostic system
DE102012102883A1 (en) Method and system for generating a source code for a computer program for executing and simulating a process
DE10065286B4 (en) Methods for designing and / or operating combinable components (TYCS)
EP1202167B1 (en) Method for model based object oriented development of external interfaces for distributed software systems
EP1536328B1 (en) Data processing system with automatable management and method for automated management of a data processing system
WO2004003798A2 (en) Information generation system for product formation
DE69623309T2 (en) DEVICE AND METHOD FOR REDUCING THE COUPLING OF THE OBJECTS IN A OBJECT-ORIENTED PROGRAMMING OPERATING ENVIRONMENT
EP0825525B1 (en) Method for supporting the creation of objects
WO2021047970A1 (en) Software components for a software architecture
DE10033812A1 (en) Method for generating information models includes an information-processing system and a software product for executing this method.
EP1533940A1 (en) Transformation Function of a TMN System

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/46

8127 New person/name/address of the applicant

Owner name: GIESE, HOLGER, 33098 PADERBORN, DE

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee