DE10065286B4 - Methods for designing and / or operating combinable components (TYCS) - Google Patents
Methods for designing and / or operating combinable components (TYCS) Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-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 ...
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
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.
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
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
In
Fällen
in denen eine solche asynchrone Verarbeitung nicht hinreichend ist,
kann die Verwendung von Callbacks nicht vermieden werden. In
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
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
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
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.
- - 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
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.
- - 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
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
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
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:
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äß
In
den
Beschreibt
man für
das System aus
Soll
nun die im ursprünglichen
Beispiel in
Bzgl.
der rekursiv definierten Directory Komponenten Strukturen aus
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
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
For a process (task) is within the framework of the overall architecture, as in
Als
Basisabläufe
sollen im weiteren die durch die Maschinen (Unit) zur Verfügung gestellten
Dienste verwendet werden, diese sind in
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
Mit
Hilfe dieser Basisarchitektur und ihrer spezifischen Rollen ist
in der
Sind
bei einer ScanUnit2 Komponente in der
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
Die
Komposition des Copy Ablaufes und seiner untergeordneten Abläufe ist
dabei, wie in der
Kommt
es nun dazu, daß z.B.
gemäß
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
Die
einzelnen Abläufe
können
dabei das Task-Schema geeignet variieren, solange die Abhängigkeiten
bzgl. der Synchronisation nur verringert werden. In
An
dem nun folgenden Beispiel gemäß
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
Um
verschiedene Arten der Bezahlung zu erlauben, gibt es im weiteren
die Basiskontrakte Ecash, CreditCard und Account, dargestellt in
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
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
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
Um
sich desweiteren gleichzeitig aber alle möglichen Quellen zu erschließen, wird
mit dem BookSource Kontrakt in
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
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)
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)
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)
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 |
-
2000
- 2000-12-29 DE DE10065286A patent/DE10065286B4/en not_active Expired - Fee Related
Patent Citations (1)
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)
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 |