DE102005018864B4 - Method and system for generating a source code for a computer program - Google Patents
Method and system for generating a source code for a computer program Download PDFInfo
- Publication number
- DE102005018864B4 DE102005018864B4 DE102005018864.8A DE102005018864A DE102005018864B4 DE 102005018864 B4 DE102005018864 B4 DE 102005018864B4 DE 102005018864 A DE102005018864 A DE 102005018864A DE 102005018864 B4 DE102005018864 B4 DE 102005018864B4
- Authority
- DE
- Germany
- Prior art keywords
- source code
- subject
- subjects
- file
- data
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
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)
Abstract
Verfahren zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung bzw. Simulation eines Geschäftsprozesses, umfassend folgende Schritte: – Festlegen von natürlichen Personen und/oder Geräten und/oder Teilen von Geräten des Geschäftsprozesses als Subjekte, wobei die Subjekte im Geschäftsprozess miteinander kommunizieren und/oder Handlungen ausführen, – Beschreiben des Geschäftsprozesses mit einem graphischen Diagramm als Blockschaltbild, wobei ein jedes Subjekt durch einen Block und die Kommunikation zwischen den Subjekten als Pfeile zwischen den Blöcken dargestellt werden, wodurch ein jedes Subjekt, die Kommunikation zwischen den Subjekten und die Art der Tätigkeit der einzelnen Subjekte definiert werden, – Speichern des so definierten Geschäftsprozesses in einer Prozessdatei, – automatisches Erzeugen eines Quellcodes für ein Computerprogramm aus der Prozessdatei, wobei für ein jedes Subjekt eine separate Quellcodedatei erzeugt wird, die jeweils Befehle zum Austausch von Daten mit Quellcodedateien weiterer Subjekte gemäß den in der Prozessdatei enthaltenen Informationen umfasst, wobei der Quellcode eines jeden Subjektes ein separates, ausführbares Programm darstellt, wobei jedes Subjekt einen Puffer zum Empfangen von Nachrichten aufweist, wobei der Quellcode derart ausgebildet ist, dass als Befehle zum Austausch von Daten Kommunikationsbefehle verwendet werden, die auf dem Monitorkonzept beruhen, so dass ein aktives Warten (busy waiting) vermieden wird.A method for generating a source code for a computer program for executing or simulating a business process, comprising the following steps: Defining natural persons and / or devices and / or parts of devices of the business process as subjects, the subjects communicating with one another and / or in the business process Performing actions, - Describing the business process with a graphic diagram as a block diagram, where each subject is represented by a block and the communication between the subjects as arrows between the blocks, whereby each subject, the communication between the subjects and the nature of the activity of the individual subjects are defined, - Saving the business process thus defined in a process file, - Automatic generation of a source code for a computer program from the process file, with a separate source code file being generated for each subject, each containing commands for exchanging Data with source code files of further subjects according to the information contained in the process file, the source code of each subject representing a separate, executable program, each subject having a buffer for receiving messages, the source code being designed such that as commands for exchange communication commands based on the monitor concept are used for data, so that active waiting (busy waiting) is avoided.
Description
Die Erfindung betrifft ein Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung bzw. Simulation eines Prozesses, bei dem mehrere Subjekte miteinander kommunizieren. Insbesondere ist das erfindungsgemäße Verfahren zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung bzw. Simulation eines komplexen Prozesses, mit einer Vielzahl von Subjekten vorgesehen, die miteinander kommunizieren.The invention relates to a method and system for generating a source code for a computer program for executing a process in which a plurality of subjects communicate with each other. In particular, the method according to the invention for generating a source code for a computer program for executing or simulating a complex process is provided, with a large number of subjects communicating with one another.
Verfahren zum automatischen Erzeugen eines Quellcodes sind hinlänglich bekannt. So ist in der
Ein weiteres derartiges Verfahren ist in der
Mit bekannten Verfahren zum automatischen Erzeugen eines Quellcodes können sowohl für technische als auch betriebswirtschaftliche Prozesse Computerprogramme automatisch erzeugt werden. Jedoch ist es mit diesen bekannten Verfahren schwierig, komplexe Prozesse in einem Computerprogramm umzusetzen. Komplexe Prozesse werden oftmals von einem bekannten Verfahren nicht bewältigt. Sollten die bekannten Verfahren es jedoch schaffen, für komplexe Prozesse auch einen Quellcode automatisch zu erzeugen, dann ist der Quellcode zum einen sehr umfangreich und zum anderen aufgrund der Komplexität des zugrunde liegenden Prozesses oftmals fehlerbehaftet und langsam in der Ausführung.With known methods for automatically generating a source code computer programs can be generated automatically for both technical and business processes. However, with these known methods, it is difficult to implement complex processes in a computer program. Complex processes are often not overcome by a known method. However, if the known methods manage to automatically generate source code for complex processes as well, then the source code is very extensive and, due to the complexity of the underlying process, often erroneous and slow to execute.
In der Master-Thesis ”Mission-flow Constructor; A Workflow Management System Using Mobile Agents”, V. S. Sundaram, 2000 wird ein als Mission-flow Constructor (MfC) beschriebenes workflow management System beschrieben, das einen grafisch dargestellten Prozess (workflow) durch eine Vielzahl mobiler Agenten darstellt. Es wird unter anderem vorgeschlagen, für jede Aufgabe einen separaten Agenten vorzusehen. Alternativ kann auch für jeden Ort, an welchem der Prozess ausgeführt wird, lediglich ein Agent vorgesehen werden, der die an diesem Ort auszuführenden Aufgaben übernimmt.In the master's thesis "Mission-flow Constructor; A Workflow Management System Using Mobile Agents ", V. S. Sundaram, 2000 describes a workflow management system described as a Mission-Flow Constructor (MfC), which is a graphically represented workflow through a variety of mobile agents. It is proposed, inter alia, to provide a separate agent for each task. Alternatively, for each location where the process is performed, only one agent can be provided to perform the tasks to be performed at that location.
Aus der
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren und ein System zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung bzw. Simulation eines komplexen Prozesses zu schaffen, das sofort ausführbar ist. Die Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 und durch ein System mit den Merkmalen des Anspruchs 10 und einen Datenträger mit den Merkmalen des Anspruchs 12 gelöst.The invention has for its object to provide a method and a system for generating a source code for a computer program for the execution or simulation of a complex process that is immediately executable. The object is achieved by a method having the features of
Vorteilhafte Ausgestaltungen der Erfindung sind in den jeweiligen Unteransprüchen angegeben.Advantageous embodiments of the invention are specified in the respective subclaims.
Durch das automatische Erzeugen einer Quellcodedatei für jedes Subjekt, das einen Quellcode enthält, in dem Befehle zum Austausch von Daten mit Quellcodedateien weiterer Subjekte enthalten sind, können selbst beliebig komplexe Prozesse einfach und strukturiert automatisch in einen Quellcode umgesetzt werden. Je komplexer ein Prozess ist, desto mehr Quellcodedateien erzeugt das erfindungsgemäße Verfahren, wobei die einzelnen Quellcodedateien nicht komplexer werden. Es hat sich gezeigt, dass bei komplexen Prozessen mit vielen Quellcodedateien jede einzelne Quellcodedatei lediglich mit einer begrenzten Anzahl von weiteren Quellcodedateien kommuniziert, so dass die Struktur einer jeden einzelnen Quellcodedatei einfach und daher wenig fehleranfällig ist. Zur Speicherung und Verwaltung einer Vielzahl von Quellcodedateien muss lediglich eine ausreichend große Speicherkapazität vorgesehen sein. Prinzipielle Probleme werden hierdurch nicht erzeugt.By automatically generating a source code file for each subject containing a source code containing instructions for exchanging data with source code files of other subjects, even arbitrarily complex processes can be automatically and simply automatically translated into source code. The more complex a process, the more source code files the method of the present invention produces, and the individual source code files do not become more complex. It has been found that in complex processes with many source code files, each individual source code file only communicates with a limited number of other source code files, so that the structure of each individual source code file is simple and therefore less error prone. For storage and management of a variety of source code files, only a sufficiently large storage capacity must be provided. Principal problems are not generated by this.
Der mit dem erfindungsgemäßen Verfahren hergestellte Quellcode kann entweder von einem herkömmlichen Compiler in ein lauffähiges Programm umgesetzt werden oder von einem Interpreter direkt ausgeführt werden. Das Programm ist sofort ohne weitere Bearbeitung ausführbar. Eine manuelle Bearbeitung des automatisch erzeugten Quellcodes ist nicht notwendig. Der Quellcode ist somit sofort ausführbar.The source code produced by the method according to the invention can either be converted by a conventional compiler into an executable program or executed directly by an interpreter. The program can be executed immediately without further processing. Manual processing of the automatically generated source code is not necessary. The source code is thus immediately executable.
Dass aus einer allgemeinen Prozessbeschreibung automatisch ein ausführbarer Quellcode generiert wird, stellt eine wesentliche Neuerung gegenüber bekannten Verfahren dar.The fact that an executable source code is automatically generated from a general process description represents a significant innovation over known methods.
Ein weiterer Vorteil der Erzeugung einer separaten Quellcodedatei für jedes Subjekt liegt darin, dass die einzelnen Quellcodedateien auf unterschiedlichen Computern in einem Netzwerk ausführbar sind. Die zur Kommunikation zwischen den einzelnen Subjekten verwendeten Funktionen (SENDEN, EMPFANGEN) sind derart ausgebildet, dass auch eine Netzwerk übergreifende Kommunikation ausführbar ist. Mit dem erfindungsgemäßen Verfahren können somit Computerprogramme erzeugt werden, die auf einem Netzwerk verteilt ausführbar sind, wobei die Art des Netzwerkes beliebig sein kann. Es können lokale Netzwerke (LAN), Intranets oder das Internet, sowie Netzwerke mit gemischter Topologie sein.Another advantage of creating a separate source code file for each subject is that the individual source code files are executable on different computers in a network. The communication between the Functions used in individual subjects (SEND, RECEIVE) are designed in such a way that communication across networks is also possible. With the method according to the invention computer programs can thus be generated which can be executed distributed on a network, wherein the type of network can be arbitrary. These can be local area networks (LANs), intranets or the Internet, as well as mixed topology networks.
Nach einer bevorzugten Ausführungsform der Erfindung ist die Quellcodedatei mit Verweisen auf Daten der Prozessdatei versehen, so dass beim Ausführen des Quellcodes die entsprechenden Daten der Prozessdatei ausgelesen werden und in Abhängigkeit dieser Daten Befehle aufgerufen werden. Hierdurch werden die Daten der Prozessdatei zur unmittelbaren Steuerung des Quellcodes herangezogen. Dies hat zur Folge, dass beim Erstellen der Prozessdatei automatisch ein wesentlicher Teil des auszuführenden Computerprogramms erzeugt wird und der automatisch zu erzeugende Quellcode sehr kompakt gehalten werden kann.According to a preferred embodiment of the invention, the source code file is provided with references to data of the process file, so that when executing the source code, the corresponding data of the process file are read out and commands are called in response to these data. This will use the data from the process file to directly control the source code. This has the consequence that when creating the process file automatically a substantial part of the computer program to be executed is generated and the automatically generated source code can be kept very compact.
Vorteilhaft werden mit der Quellcodedatei lediglich drei unterschiedliche Typen von Funktionen, nämlich SENDEN, EMPFANGEN und TUN aufgerufen. Die Verwendung von lediglich drei Typen von Funktionen macht die automatische Erzeugung eines Quellcodes einfach, wobei durch die Funktionen SENDEN und EMPFANGEN die Kommunikation zwischen den Subjekten vollständig geregelt werden kann, auch wenn es sich um einen komplexen Prozess handeln sollte.Advantageously, the source code file only calls three different types of functions, namely SEND, RECEIVE, and TUN. The use of only three types of functions makes the automatic generation of a source code simple, whereby the SEND and RECEIVE functions can fully control the communication between the subjects, even if it is a complex process.
Die Erfindung wird nachfolgend beispielhaft anhand der Zeichnungen erläutert. In den Zeichnungen zeigen:The invention will be explained below by way of example with reference to the drawings. In the drawings show:
Bei dem erfindungsgemäßen Verfahren wird ein in einer Prozessdatei dargestellter Prozess automatisch in einen Quellcode für ein Computerprogramm umgesetzt. Der Prozess kann sowohl technischer als auch betriebswirtschaftlicher Art sein oder sowohl technische als auch betriebswirtschaftliche Komponenten umfassen. Wesentlich für die Erfindung ist, dass in dem Prozess einzelne Akteure festlegbar sind, die natürliche Personen als auch bestimmte Geräte oder Teile von Geräten oder sonstige Stationen im Prozess sein können, die entweder mit weiteren Akteuren kommunizieren und/oder Handlungen ausführen. Diese Akteure werden im folgenden als Subjekte bezeichnet.In the method according to the invention, a process represented in a process file is automatically converted into a source code for a computer program. The process can be both technical and business-related or include both technical and business components. Essential to the invention is that in the process individual actors can be defined, which may be natural persons as well as certain devices or parts of devices or other stations in the process that either communicate with other actors and / or perform actions. These actors are referred to below as subjects.
Zur Erläuterung der Erfindung ist in
Der in
Lkw-Fahrer, GPS, OBU_Position, OBU_Fahren, OBU_Kontrolle, Toll_Collection_Center, Billing_Center, BAG_Kontrolle und Transport_Firma.The in
Truck driver, GPS, OBU_Position, OBU_Fahren, OBU_Kontrolle, Toll_Collection_Center, Billing_Center, BAG_Kontrolle and Transport_Firma.
Das Subjekt Lkw-Fahrer stellt die natürlich Person des Lkw-Fahrers dar, der zur Erfassung der Lkw-Maut an einer sogenannten On-board-unit (OBU) die Daten seines Lkws, wie z. B. Achszahl, Schadstoffklasse, Kostenstelle einzugeben hat. Die On-board-unit ist in diesem Prozess durch drei Subjekte dargestellt, nämlich OBU_Fahren 1/2, OBU_Position 1/3 und OBU_Kontrolle 1/4. Das Subjekt OBU_Position 1/3 steht in Verbindung mit dem Subjekt GPS 1/5, das einen GPS-Empfänger zur Erfassung der aktuellen Position des Lastkraftwagens darstellt. Aus der aktuellen Position des Subjektes GPS 1/5 erzeugt das Subjekt OBU_Position 1/3 eine Nachricht, dass die kostenpflichtige Mautstrecke beginnt (Beginn_Mautstrecke) bzw. endet (Ende_Mautstrecke), die an das Subjekt OBU_Fahren 1/2 gesendet wird. Nach dem vollständigen Abfahren einer Mautstrecke sendet das Subjekt OBU_Fahren 1/2 die aktuellen Fahrdaten an das Subjekt Toll_Collection_Center 1/6, das die Zentrale der mit der Mauterfassung beauftragten Firma darstellt. Hier wird eine Qualitätssicherung der empfangenen Daten durchgeführt, insbesondere Plausibilitätsprüfungen vorgenommen, um eventuelle Missbräuche aufzudecken. Die derartig qualitätsgesicherten Mautdaten werden von dem Subjekt Toll_Collection_Center 1/6 an das Subjekt Billing_Center 1/7 weitergeleitet. Das Subjekt Billing_Center 1/7 erzeugt eine Rechnung und schickt diese an die Transportfirma, die in diesem Prozess durch das Subjekt Transport_Firma 1/8 dargestellt ist. Auf einer mautpflichtigen Autobahn befindliche Lkws werden von der Bundesautobahngesellschaft kontrolliert, indem ein Fahrzeug der Bundesautobahngesellschaft neben einem Lkw fährt und mittels eines Funkgerätes eine Kommunikation zur On-board-unit aufbaut und dessen Zustand und Daten abfragt. Diese Kontrolleinheit ist in einem vorliegenden Diagramm für das Subjekt BAG_Kontrolle 1/9 dargestellt, die mit dem Subjekt OBU_Kontrolle 1/4 kommunizieren kann, das Bestandteil der On-board-unit ist.The subject Truck Driver represents, of course, the person of the truck driver, who records the truck toll on a so-called on-board unit (OBU), the data of his truck, such. B. number of axles, pollutant class, cost center has to enter. The on-board unit is represented by three subjects in this process, namely
Die Erzeugung eines solchen Diagramms wird von einem Prozess-Manager unterstützt (
Durch ein Doppelklicken an einem Subjekt wird ein Subjektmanager
Durch Betätigen der Schaltfläche „Inputpool” im Subjektmanager wird ein Fenster zum Eingeben von Inputpool Definitionen geöffnet (
Durch Betätigen der Schaltfläche „New” wird ein weiteres Fenster (
Weiterhin kann in dem Feld „Rule” festgelegt werden, wie neue Nachrichten dieser Partition behandelt werden sollen, falls die jeweilige Partition voll ist. Als voreingestellter Standardwert ist „blocked” eingegeben, d. h., neue Nachrichten werden nicht angenommen, wenn diese Partition voll ist. Alternativ können die Werte „discard arriving”, „replace newest” oder „replace oldest” eingegeben werden. Bei „discard arriving” werden die neu eingehenden Nachrichten gelöscht, wenn die Partition voll ist. Bei „replace oldest” wird die jeweils älteste Nachricht dieser Partition durch die neue Nachricht ersetzt, wenn die Partition voll ist. Bei „replace newest” wird die jeweils jüngste Nachricht dieser Partition durch die neue Nachricht ersetzt, wenn die Partition voll ist.Furthermore, the "Rule" field can be used to specify how new messages of this partition should be handled if the respective partition is full. The default value is "blocked". h., new messages will not be accepted if this partition is full. Alternatively, the values "discard arriving", "replace newest" or "replace oldest" can be entered. With "discard arriving", the new incoming messages are deleted when the partition is full. With "replace oldest", the oldest message of this partition is replaced by the new message when the partition is full. With "replace newest", the most recent message of this partition is replaced by the new message when the partition is full.
Zu jedem Subjekt können mit dem Subjektmanager die in dem Subjekt auszuführenden Funktionen in entsprechender Weise festgelegt werden. Das vollständige Subjektdiagramm zum Subjekt OBU_Fahren ist im Subjekt-Manager in
Beim Erzeugen des Prozessdiagramms und der einzelnen Subjektdiagramme wird automatisch eine Prozessdatei in einer Metasprache erzeugt.When creating the process diagram and the individual subject diagrams, a process file is automatically generated in a metalanguage.
Das externe Subjekt kann Bestandteil eines weiteren Prozesses sein, der wiederum mehrere Subjekte umfasst, die miteinander kommunizieren. Mit einem solchen externen Subjekt ist es deshalb möglich, mehrere bestehende Prozesse aneinander zu koppeln.The external subject may be part of another process, which in turn includes several subjects communicating with each other. With such an external subject, it is therefore possible to couple several existing processes together.
Wenn ein bestimmter Prozess mit einem weiteren Prozess kommuniziert, kann auch im Rahmen der Simulation der weitere Prozess lediglich durch ein einzelnes externes Subjekt simuliert werden. D. h., dass von dem weiteren Prozess nur das externe Subjekt besteht. Für den Prozess, der mit dem weiteren Prozess kommuniziert, simuliert dieses externe Subjekt die Kommunikation zu und von dem weiteren Prozess, wodurch für den ursprünglichen Prozess der weitere Prozess alleine durch ein einzelnes externes Subjekt simuliert wird. Hiermit kann die Kommunikation zwischen unterschiedlichen Prozessen simuliert werden, ohne dass alle Prozesse vollständig erstellt werden müssen.If a certain process communicates with another process, the further process can only be simulated within the scope of the simulation by a single external subject. That is to say that of the further process only the external subject exists. For the process communicating with the further process, this external subject simulates the communication to and from the rest of the process, simulating for the original process the further process by a single external subject alone. This allows the communication between different processes to be simulated without having to completely create all the processes.
Weiterhin kann der Typ des Subjektes durch selbständig lauffähig (pure Java) bzw. als nicht selbständig lauffähig (interface) gekennzeichnet sein. Falls das Subjekt nicht selbständig lauffähig ist, wird eine Schnittstelle erzeugt, die von anderen Programmen verwendet werden kann, um mit dem Subjekt zu kommunizieren.Furthermore, the type of the subject can be characterized by independently executable (pure Java) or as non-independently executable (interface). If the subject is not self-sufficient, an interface is created that can be used by other programs to communicate with the subject.
Ein Subjekt kann Bestandteil eines Clusters sein, wie z. B. in einem Prozess, bei dem mehrere an board units zu berücksichtigen sind. Hier wird das Subjekt OBU_Fahren z. B. einmal erstellt und mehrfach kopiert, wobei alle Subjekte OBU_Fahren dann ein Cluster bilden.A subject can be part of a cluster, such. For example, in a process involving multiple board units. Here the subject OBU_Fahren z. Once created and copied multiple times, with all subjects OBU_Fahren then form a cluster.
Weiterhin sind die zu versendenden Nachrichten durch Angabe des Nachrichtenempfängers, durch den Namen der Nachricht und durch den Namen der einzelnen Nachricht enthaltenden Parameter definiert, von welchen optional der Datentyp und Dateninhalt angegeben werden kann. Für jedes Subjekt wird ein Eingangspuffer und dessen Größe festgelegt. Der Eingangspuffer wird als Inputpool bezeichnet und dessen Größe beträgt standardmäßig 1.000 Nachrichten.Furthermore, the messages to be sent are defined by specifying the message recipient, by the name of the message and by the name of each message containing parameters, from which optionally the data type and data content can be specified. For each subject, an input buffer and its size are specified. The input buffer is called an input pool and its size is 1,000 messages by default.
In der Prozessdatei sind die einzelnen Funktionen der Subjekte (
Nachfolgend wird an einem Beispiel das erfindungsgemäße Verfahren erläutert, bei dem ein Quellcode in der Programmiersprache Java® erzeugt wird. Ein Benutzer kann das Verfahren durch den Befehl „Make Classes” starten (Schritt S1 in
Der erzeugte Quellcode wird in einem Prozessorcode compiliert (S3). Wenn der Prozessorcode für ein Subjekt vorliegt, dann ist dieser Verfahrensabschnitt beendet (S4).The generated source code is compiled in a processor code (S3). If the processor code is for a subject, then this process section is completed (S4).
Erfindungsgemäß wird für jedes Subjekt ein separater Quellcode erzeugt. Hierdurch werden sehr komplexe Prozesse in einzelne Teilprozesse zerlegt, für welche einfach ein Quellcode erzeugbar ist.According to the invention, a separate source code is generated for each subject. As a result, very complex processes are broken down into individual sub-processes, for which a source code can easily be generated.
Nachfolgend wird anhand von
Im Schritt S9 wird die Prozessdatei, bzw. eine Kopie davon, zu dem jeweiligen Subjekt gespeichert, für das der Quellcode erzeugt wird. Hiermit ist das Verfahren zum Erzeugen des Quellcodes beendet (S10).In step S9, the process file, or a copy thereof, is stored to the respective subject for which the source code is generated. This completes the process of generating the source code (S10).
Die einzelnen Verfahrensschritte der Methode „Quellcode für Subjekt erzeugen” sind in
Im Schritt S12 wird eine Java®-Klasse für ein Subjekt angelegt. Dieser Java®-Klasse werden die Methoden einer vorprogrammierten Standardklasse vererbt, die durch eine Reihe von Methoden ergänzt ist. Diese Klasse wird als „subject” bezeichnet und ist in der Anlage A dargestellt.In step S12, a Java® class is created for a subject. This Java ® class inherits the methods of a preprogrammed standard class, which is supplemented by a number of methods. This class is called "subject" and is shown in Appendix A.
Im Schritt S13 wird eine Quellcodedatei initialisiert, d. h., dass eine Methode zur Initialisierung der Klasse in den Quellcode geschrieben wird. Diese Methode wird in Java® als Konstruktor bezeichnet. In diesem Konstruktor werden der Prozessdateiname und die Subjekt-ID eingetragen.In step S13, a source code file is initialized, that is, a method for initializing the class is written in the source code. This method is called in Java ® as a constructor. The process file name and the subject ID are entered in this constructor.
Im Schritt S14 wird in den Quellcode die Java®-Methode „main” eingetragen. In dieser main-Methode ist ein Aufruf einer run-Methode enthalten, die von der in Anlage A dargestellten Klasse ererbt worden ist. Optional können auch Methodenaufrufe für Refinement-Funktionen in den Quellcode geschrieben werden (S15). Mit dem Schritt S16 ist dieser Verfahrensabschnitt beendet.In step S14, the Java® method "main" is entered into the source code. This main method contains a call to a run method inherited from the class shown in Appendix A. Optionally, method calls for refinement functions can also be written to the source code (S15). With the step S16, this process section is finished.
Nachfolgend wird der Programmablauf beim Aufrufen des oben erläuterten und automatisch erzeugten Quellcodes für ein Subjekt ohne Refinements anhand des Flussdiagramms aus
Im Schritt S19 wird ein Inputpool und Verbindungen zu entfernten Partnersubjekten initialisiert. Der Inputpool ist ein Puffer. Dieser Puffer wird für jedes Subjekt angelegt und dient zum Empfangen von Daten. Die Initialisierung der Verbindungen zu Partnersubjekten erfolgt durch Anlegen eines Remote-Subjekts für das entsprechende Subjekt, das lediglich zum Senden der Daten zu einem anderen, bestimmten Subjekt dient. Das Remote-Subjekt schreibt somit zu übertragende Daten in den Inputpool eines weiteren Subjektes.In step S19, an input pool and connections to remote partner subjects are initialized. The input pool is a buffer. This buffer is created for each subject and is used to receive data. The initialization of the connections to partner subjects is done by creating a remote subject for the corresponding subject, which serves only to send the data to another, specific subject. The remote subject thus writes to be transferred data in the input pool of another subject.
Alle folgenden Verfahrensschritte werden von der oben angegebenen Methode „run” ausgeführt.All the following steps are performed by the "run" method above.
Im Schritt S20 werden zunächst aus der Prozessdatei die Daten der Startfunktion gelesen und das Programm auf die Startfunktion gesetzt.In step S20, the data of the start function are first read from the process file and the program is set to the start function.
Im Schritt S21 werden mögliche Funktionsübergänge zu weiteren Funktionen ermittelt. In einer Abfrage (S22) wird geprüft, ob derartige Funktionsübergänge vorhanden sind. Sind keine Funktionsübergänge vorhanden, wird das Programm beendet (S23). Sind Funktionsübergänge vorhanden, so wird in der Abfrage S24 der Funktionstyp bestimmt. Es gibt lediglich drei Funktionstypen, nämlich TUN, SENDEN und EMPFANGEN. Ist die Funktion eine TUN-Funktion, so geht der Verfahrensablauf auf den Schritt S25 über. Im Schritt S25 wird ein Standardfenster für die TUN-Funktion geöffnet. In diesem Standardfenster wird der Nutzer beim Vorliegen von mehreren Funktionsübergängen gefragt, welche Funktion folgen soll (S26). Hierdurch wird somit die Handlung des Subjekts durch eine Abfrage bzw. eine Entscheidung des Benutzers ersetzt.In step S21 possible function transitions to further functions are determined. In a query (S22) it is checked whether such function transitions are present. If there are no function transitions, the program is ended (S23). If function transitions are present, the function type is determined in query S24. There are only three types of functions, namely TUN, SEND and RECEIVE. If the function is a TUN function, the procedure goes to step S25. In step S25, a standard window for the TUN function is opened. In this standard window, the user is asked which function should follow when there are several function transitions (S26). As a result, the action of the subject is thus replaced by a query or a decision of the user.
Vom Schritt S26 geht der Verfahrensablauf auf den Schritt S27 über, in dem aus der Prozessdatei die Daten der nächsten Funktion ausgelesen werden und das Programm auf die nächste Funktion gesetzt wird. Der Prozessablauf geht dann wieder auf den Schritt S21 zurück.From step S26, the process flow goes to step S27, in which the data of the next function are read from the process file and the program is set to the next function. The process flow then goes back to the step S21.
Hat die Abfrage in Schritt S24 ergeben, dass die Funktion eine SENDEN-Funktion ist, so werden im Schritt S28 aus der Prozessdatei die Daten zur Übertragung der Nachricht, nämlich der Name der Nachricht, der Empfänger und optionale Parameter eingelesen.If the query in step S24 has shown that the function is a SEND function, then in step S28 the data for transmitting the message, namely the name of the message, the receiver and optional parameters are read in from the process file.
Im Schritt S29 wird ein Standardfenster für die SENDE-Funktion geöffnet.In step S29, a standard window for the SEND function is opened.
Mit dem optionalen Schritt S30 können vom Benutzer Parameterwerte erfragt werden, die mit der Nachricht übermittelt werden sollen. Im Schritt S31 werden die Nachrichten an den Empfänger übermittelt, d. h. dass sie von dem Subjekt an das Remote-Subjekt weitergegeben werden, das die Daten in den Input-Pool des Empfängers schreibt.With the optional step S30, the user can request parameter values that are to be transmitted with the message. In step S31, the messages are transmitted to the recipient, i. H. that they are passed from the subject to the remote subject that writes the data to the recipient's input pool.
Im Schritt S32 werden Übermittlungsfehler behandelt, falls solche auftreten sollten. Die Behandlung von Übermittlungsfehlern erfolgt zum Teil auch im Remote-Subjekt.In step S32, transmission errors are handled, if any should occur. The handling of transmission errors is partly also in the remote subject.
Der Verfahrensablauf geht hier wieder auf den Schritt S27 über, in dem die Daten der folgenden Funktion aus der Prozessdatei gelesen und das Programm auf diese Funktion gesetzt wird.The procedure here goes back to step S27, in which the data of the following function is read from the process file and the program is set to this function.
Ergibt die Abfrage in Schritt S24, dass die Funktion eine EMPFANGEN-Funktion ist, so geht der Verfahrensablauf auf den Schritt S33 über. Im Schritt S33 werden die Daten zu der gültigen Nachricht, nämlich der Name des Senders entsprechend dem gültigen Funktionsübergang eingelesen.If the query in step S24 indicates that the function is a RECEIVE function, the process flow proceeds to step S33. In step S33, the data of the valid message, namely the name of the sender corresponding to the valid function transition is read.
Danach wird ein Standardfenster für die EMPFANGS-Funktion geöffnet (S34).Thereafter, a standard window for the RECEPTION function is opened (S34).
Im Schritt S35 wird ein Nicht-aktives Warten auf die entsprechende Nachricht initiiert. Das Nicht-aktive Warten beruht auf dem sog. Monitorkonzept, das bereits im Oktober 1974 von Hoare C. A. R. in dem Artikel „Monitors: An operating system structuring concept” in Commun. ACM 17,10 beschrieben ist. Vereinfacht kann dieses Monitor-Konzept als eine Verschiebung der Warte-Funktion von der Programmebene in die Betriebssystemebene bzw. Prozessorebene dargestellt werden. Wesentlich ist, dass durch dieses Monitorkonzept verhindert wird, dass eine Vielzahl von Tasks in einem Multitasking-System gleichzeitig aktiv sind und immer wieder Prozessorleistung zum Ausführen des Wartens beanspruchen. Durch das Monitorkonzept wird das Warten von einer Vielzahl von Tasks von lediglich einer einzigen Betriebssystem-Task überwacht. Dieses Monitorkonzept erlaubt auf einfache Art und Weise, dass eine Vielzahl von Programmen bzw. Tasks parallel nebeneinander ablaufen und auf Daten von einer jeweils anderen Task bzw. einem jeweils anderen Programm warten, ohne dass hierdurch die Prozessorleistung nennenswert beeinträchtigt wird. In Java ist das Monitorkonzept durch die Methoden „notify”, „notifyAll” und „wait” implementiert. Diese Methoden werden auch von der oben angegebenen Methode „run” aufgerufen.In step S35, a non-active waiting for the corresponding message is initiated. The non-active waiting is based on the so-called monitor concept already described in October 1974 by Hoare C.A.R. in the article "Monitors: An operating system structuring concept" in Commun. ACM 17.10 is described. Simplified, this monitor concept can be represented as a shift of the wait function from the program level to the operating system level or processor level. What is important is that this monitor concept prevents a large number of tasks in a multitasking system from being active at the same time and repeatedly requiring processor power to execute the wait. The monitor concept monitors the maintenance of a variety of tasks from a single operating system task. This monitor concept makes it possible in a simple manner for a large number of programs or tasks to run in parallel alongside one another and to wait for data from a respective other task or program, without the processor performance being appreciably impaired as a result. In Java, the monitor concept is implemented by the methods "notify", "notifyAll" and "wait". These methods are also called by the "run" method above.
Nach dem Empfang einer Nachricht wird diese aus dem Inputpool im Schritt S36 eingelesen. Danach wird sie auf ihre Gültigkeit überprüft (S37). Ist die Nachricht nicht gültig, so geht der Verfahrensablauf wieder auf den Schritt S35 über. Ist die Nachricht gültig, so wird sie für den Benutzer in dem bereits geöffneten Fenster dargestellt (S38).After receiving a message, it is read from the input pool in step S36. After that, it is checked for validity (S37). If the message is not valid, the process flow returns to step S35. If the message is valid, it will be displayed to the user in the already opened window (S38).
Danach geht der Verfahrensschritt wieder auf den Schritt S27 aus, in dem die Daten der folgenden Funktion aus der Prozessdatei ausgelesen werden und das Programm auf die folgenden Funktion gesetzt wird.Thereafter, the process step goes back to the step S27, in which the data of the following function are read from the process file and the program is set to the following function.
Optional ist es auch möglich, wenn ein Subjekt mehrere unterschiedliche Nachrichten empfangen kann, alle empfangenen Nachrichten im Schritt S38 darzustellen. Hierbei ist es jedoch zweckmäßig, dass der Verfahrensablauf auf den Schritt S27 erst übergeht, nachdem der Benutzer eine einzelne der eingegangenen und dargestellten Nachrichten quittiert, da ansonsten nach dem Eingang der ersten Nachricht keine weiteren Nachrichten mehr in der einen EMPFANGEN-Funktion empfangen werden können. Hierzu müssten ansonsten mehrere EMPFANGEN-Funktionen vorgesehen werden.Optionally, it is also possible, if a subject can receive several different messages, all messages received in the step S38. In this case, however, it is expedient that the method flow only transfers to step S27 after the user acknowledges a single of the received and displayed messages, since otherwise no further messages can be received in the one RECEIVE function after the first message has been received. Otherwise, several RECEIVE functions would have to be provided for this purpose.
Ist die Funktion vom Typ TUN und liegen Refinements vor, so geht der Verfahrensablauf auf den Schritt S42 über, mit dem zumindest automatisch der Übergang auf die nächste Funktion festgelegt ist. Darüber hinaus kann in diesem Schritt auch ein vorbestimmtes Programm aufgerufen werden. Hierbei können insbesondere Programme aus vorgefertigten Bibliotheken in den Prozess eingebunden werden, die dann ausgeführt werden. Das erfindungsgemäße Verfahren ist somit kombinierbar mit existierenden Programmbibliotheken, die für viele Anwendungen bereits vorhanden sind. Typische Anwendungen sind zum Beispiel die Verwaltung und Abfrage von Datenbanken.If the function is of the type TUN and refinements are present, then the method sequence proceeds to step S42, with which the transition to the next function is at least automatically determined. In addition, a predefined program can also be called in this step. In particular, programs from ready-made libraries can be integrated into the process, which are then executed. The method according to the invention can therefore be combined with existing program libraries which are already available for many applications. Typical applications include managing and querying databases.
Ist die Funktion vom Typ SENDEN und liegen Refinements vor, so geht der Verfahrensablauf auf den Schritt S43 über, der identisch zu dem oben erläuterten Schritt S28 ist, bei dem aus der Prozessdatei die Daten zur Übertragung der Nachricht, nämlich der Name der Nachricht, der Empfänger und optional Parameter eingelesen werden.If the function is of the SEND type and there are refinements, the process flow proceeds to step S43, which is identical to step S28 explained above, in which the data for transmitting the message, namely the name of the message, the Receiver and optional parameters are read.
Im Schritt S44 werden Parameterwerte durch eine Methode aus einer Refinement-Datei eingelesen, die mit der Nachricht übermittelt werden soll. Danach werden die Nachrichten zum Empfänger übermittelt (S45) und eventuelle Fehler behandelt (S46). Danach geht der Verfahrensablauf wieder auf den Schritt S27 über.In step S44, parameter values are read in by a method from a refinement file to be transmitted with the message. Thereafter, the messages are transmitted to the receiver (S45) and possible errors are dealt with (S46). Thereafter, the process flow goes back to the step S27.
Ist die Funktion vom Typ EMPFANGEN und liegen Refinements vor, so geht der Verfahrensablauf auf den Schritt S47 über, der dem oben erläuterten Schritt S33 entspricht, bei dem die Daten zu der gültigen Nachricht, nämlich der Name des Senders entsprechend dem gültigen Funktionsübergang eingelesen werden. Die nachfolgenden Schritte S48, S49 und S50 entsprechen den oben beschriebenen Schritten S35, S36 und S37 und dienen zum automatischen Empfang und zum Überprüfen der Gültigkeit der jeweiligen Nachricht. Im Schritt S51 wird eine durch die Refinement-Datei bestimmte Methode zur Verarbeitung der empfangenen Nachrichten aufgerufen. Danach geht der Verfahrensablauf wieder auf den Schritt S27 über.If the function is of the RECEIVE type and there are refinements, the process flow proceeds to step S47, which corresponds to step S33 explained above, in which the data relating to the valid message, namely the name of the sender, is read in according to the valid function transition. Subsequent steps S48, S49 and S50 correspond to the above-described steps S35, S36 and S37 and are for automatically receiving and checking the validity of each message. In step S51, a method determined by the refining file is called to process the received messages. Thereafter, the process flow goes back to the step S27.
Nachfolgend wird an Hand der
Wenn die Quellcode der Subjekte gestartet worden sind, wird für jedes Subjekt ein Fenster
Wenn von einem Subjekt eine Nachricht versendet wird oder empfangen wird, geht das entsprechende Fenster automatisch in den maximierten Zustand über.If a message is sent or received by a subject, it works corresponding window automatically in the maximized state.
Bei dem Zustand des Systems in
Mit diesem Validierungsverfahren kann somit das Entstehen, gegebenenfalls der Inhalt und die Weiterleitung der einzelnen Nachrichten verfolgt werden.This validation process can thus be used to track the emergence, if necessary, the content and the forwarding of the individual messages.
Die Validierung der automatisch erzeugten Quellcodedateien kann sofort nach der automatischen Erzeugung des Quellcodes ausgeführt werden, ohne dass zusätzlich ein Programmcode manuell eingefügt werden muss. Dies ist ein wesentlicher Vorteil des erfindungsgemäßen Verfahrens, der zum einen darauf beruht, dass die Kommunikation zwischen den einzelnen Subjekten vollständig automatisch erzeugt wird und zum anderen, dass die Tätigkeit der einzelnen Subjekte (Funktion TUN) durch eine Anfrage an den Benutzer ersetzt wird, wenn nicht bereits Programmelemente aus Bibliotheken vorhanden sind, die automatisch eingebunden werden.The validation of the automatically generated source code files can be carried out immediately after the automatic generation of the source code, without additionally having to insert a program code manually. This is a significant advantage of the method according to the invention, which is based on the fact that the communication between the individual subjects is generated completely automatically and on the other hand that the activity of the individual subjects (function TUN) is replaced by a request to the user, if there are not already program elements from libraries that are automatically included.
Die Erfindung erlaubt somit das Erzeugen einer automatisch ausführbaren und validierbaren Programmstruktur für sehr komplexe Prozesse mit einigen Hunderten oder Tausenden Subjekten, die dann je nach Bedarf durch manuell erstellte Programme oder durch bereits vorhandene Programme ergänzt werden kann.The invention thus allows the generation of an automatically executable and validatable program structure for very complex processes with several hundreds or thousands of subjects, which can then be supplemented as needed by manually created programs or existing programs.
Das oben beschriebene erfindungsgemäße Verfahren ist durch Software beziehungsweise Computerprogramme realisiert. Diese Software weist als zentrales Programm einen Quellcodegenerator
Ist die Prozessdatei einmal erzeugt, wird sie an den Quellcodegenerator
Mit einem Validierungsprogramm
Ist das erfindungsgemäße System ein Netzwerk mit mehreren Computern, ist es nicht notwendig, dass auf jedem Computer eine Java®-Plattform
Die Erfindung ist oben an Hand eines Ausführungsbeispieles näher erläutert worden, bei welchem ein Quellcode in der Programmiersprache Java® erzeugt wird. Die Erfindung ist selbstverständlich nicht auf diese Programmiersprache beschränkt. Sie ist auch in jeder beliebigen anderen Programmiersprache ausführbar. Die Verwendung von Java® hat jedoch den Vorteil gegenüber anderen Programmiersprachen, dass sie systemunabhängig auf unterschiedlichen Rechnern ausführbar ist, so dass bei einer Anwendung in einem Netzwerk auf einfache Art und Weise sicher gestellt ist, dass die automatisch erzeugten Quellcodedateien überall im Netzwerk ausführbar sind.The invention has been explained above with reference to an embodiment in which a source code in the programming language Java ® is generated. Of course, the invention is not limited to this programming language. It can also be executed in any other programming language. However, the use of Java® has the advantage over other programming languages that it can be executed system-independently on different computers, so that when used in a network in a simple manner it is ensured that the automatically generated source code files are executable anywhere in the network.
Mit der vorliegenden Erfindung wird ein Werkzeug (Methode: Quellcode erzeugen) geschaffen, mit welchem Quellcode automatisch generiert wird. Eine manuelle Bearbeitung des automatisch erzeugten Quellcodes ist nicht notwendig. Der Quellcode ist somit sofort ausführbar.With the present invention, a tool (method: generate source code) is created with which source code is automatically generated. Manual processing of the automatically generated source code is not necessary. The source code is thus immediately executable.
Claims (12)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102005018864.8A DE102005018864B4 (en) | 2004-04-23 | 2005-04-22 | Method and system for generating a source code for a computer program |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102004019958.2 | 2004-04-23 | ||
| DE102004019958 | 2004-04-23 | ||
| DE102005018864.8A DE102005018864B4 (en) | 2004-04-23 | 2005-04-22 | Method and system for generating a source code for a computer program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE102005018864A1 DE102005018864A1 (en) | 2005-11-10 |
| DE102005018864B4 true DE102005018864B4 (en) | 2014-10-30 |
Family
ID=35140255
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102005018864.8A Expired - Lifetime DE102005018864B4 (en) | 2004-04-23 | 2005-04-22 | Method and system for generating a source code for a computer program |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102005018864B4 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102015107150A1 (en) | 2015-05-07 | 2016-11-10 | R. Gniza Praxis Solutions GmbH & Co. KG | Apparatus, methods and computer programs for detecting interconnectable interfaces |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102006029383A1 (en) * | 2006-06-27 | 2008-01-03 | Deutsche Telekom Ag | Method and device for ensuring data protection during offboard toll collection |
| DE102011000185A1 (en) | 2011-01-17 | 2012-07-19 | Metasonic Ag | System and method for generating a source code for a computer program |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040078420A1 (en) * | 2001-03-01 | 2004-04-22 | Paul Marrow | Method and system for distributed processing management |
-
2005
- 2005-04-22 DE DE102005018864.8A patent/DE102005018864B4/en not_active Expired - Lifetime
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040078420A1 (en) * | 2001-03-01 | 2004-04-22 | Paul Marrow | Method and system for distributed processing management |
Non-Patent Citations (4)
| Title |
|---|
| Goelgeli, B.: UML 2.0 Quelltextgenerierung. Seminararbeit im Rahmen des Seminars "Sicherheitskritische Systeme" an der Universität Siegen, Fachgruppe für Praktische Informatik. SS 2004. S. 1 - 11 * |
| Hardt, C.: UML 2.0 und die Modellierung von Realtime-Systemen. Seminararbeit im Rahmen des Seminars "Sicherheitskritische Systeme" an der Universität Siegen, Fachgruppe für Praktische Informatik. SS 2004. S. 1 - 17 * |
| Sundaram, V. S.: Mission-flow Constructur - A Workflow Management System Using Mobile Agents.Thayer School of Engineering, Dartmouth College Hanover, New Hampshire, May 2000.(recherchiert am 13.02.2014) * |
| Sundaram, V. S.: Mission-flow Constructur - A Workflow Management System Using Mobile Agents.Thayer School of Engineering, Dartmouth College Hanover, New Hampshire, May 2000.<http://agent.cs.dartmouth.edu/papers/sundaram:thesis.ps.gz>(recherchiert am 13.02.2014) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102015107150A1 (en) | 2015-05-07 | 2016-11-10 | R. Gniza Praxis Solutions GmbH & Co. KG | Apparatus, methods and computer programs for detecting interconnectable interfaces |
| DE102015107150B4 (en) | 2015-05-07 | 2024-06-13 | R. Gniza Praxis Solutions GmbH & Co. KG | Devices, methods for detecting connectable interfaces |
Also Published As
| Publication number | Publication date |
|---|---|
| DE102005018864A1 (en) | 2005-11-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69626127T2 (en) | Service generating device for a communication network and corresponding method | |
| DE60127795T2 (en) | System and method for metric and status display | |
| DE60038705T2 (en) | METHOD AND DEVICE FOR THE ACTIVITY-BASED COOPERATION OF A COMPUTER SYSTEM EQUIPPED WITH A COMMUNICATION MANAGER | |
| DE69637436T2 (en) | Object-oriented communication system with support for several remote machine types | |
| DE69531689T2 (en) | METHOD FOR MONITORING TELEPHONE AND / OR DATA NETWORKS, IN PARTICULAR MOBILE TELEPHONE NETWORKS | |
| DE60223593T2 (en) | GRAPHIC CONFIGURATION OF PROGRAMMAGE VISION RELATIONS | |
| DE602004011455T2 (en) | Method and system for automatically generating service interfaces for a service-oriented architecture | |
| DE3783042T2 (en) | SYSTEM FOR AUTOMATING TESTS. | |
| US8429611B2 (en) | Method and system for generating a source code for a computer program | |
| DE19712946A1 (en) | Computerised method of automatically expanding specifications of process model in workflow process environment | |
| DE69129536T2 (en) | OBJECT-BASED COMPUTER SYSTEM | |
| EP2648094B1 (en) | Method and system for creating a source code for a computer program for executing and simulating a process | |
| DE19960048A1 (en) | Start condition processing method for computer workflow management system evaluates correctness of control links for each process activity and verifies time interval conditions | |
| DE60114949T2 (en) | routing | |
| DE102005018864B4 (en) | Method and system for generating a source code for a computer program | |
| EP1332438A2 (en) | Method and device for the transfer of electronic data volumes | |
| EP2479664B1 (en) | System and method for generating a source code for a computer program | |
| DE69916458T2 (en) | Automatic configuration of an Internet-like computer network | |
| DE102018205953A1 (en) | Method for operating an operating device of a device in order to determine a display content, as well as operating device and device | |
| DE4310615A1 (en) | Method and device to provide a system which can be configured by the user, and integrates and manages several different tasks and software tools | |
| WO2005064274A1 (en) | Starting up an application of a mobile client | |
| WO2021245247A1 (en) | Method for creating and executing a control program for controlling an automation system, and automation system | |
| DE10339112B4 (en) | Method for generating at least one project reference model, method for generating structured configuration information by means of such a project reference model and device for carrying out, managing and organizing such methods | |
| EP1691275B1 (en) | Method and apparatus for computer-assisted creation of a graphical user interface | |
| EP1044409B1 (en) | Program flow method and method for expanding a program component system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R081 | Change of applicant/patentee |
Owner name: ALLGEIER IT SOLUTIONS GMBH, DE Free format text: FORMER OWNER: JCOM1 AG, 85296 ROHRBACH, DE Effective date: 20110415 Owner name: METASONIC GMBH, DE Free format text: FORMER OWNER: JCOM1 AG, 85296 ROHRBACH, DE Effective date: 20110415 |
|
| R012 | Request for examination validly filed |
Effective date: 20120105 |
|
| R082 | Change of representative |
Representative=s name: PATRONUS IP PATENT- & RECHTSANWAELTE BERNHARD , DE |
|
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R082 | Change of representative |
Representative=s name: PATRONUS IP PATENT- & RECHTSANWAELTE BERNHARD , DE |
|
| R081 | Change of applicant/patentee |
Owner name: ALLGEIER IT SOLUTIONS GMBH, DE Free format text: FORMER OWNER: METASONIC AG, 85276 PFAFFENHOFEN, DE Effective date: 20141016 Owner name: METASONIC GMBH, DE Free format text: FORMER OWNER: METASONIC AG, 85276 PFAFFENHOFEN, DE Effective date: 20141016 |
|
| R082 | Change of representative |
Representative=s name: PATRONUS IP PATENT- & RECHTSANWAELTE BERNHARD , DE Effective date: 20141016 Representative=s name: PATRONUS IP PATENT- & RECHTSANWAELTE BERNHARD , DE Effective date: 20130821 |
|
| R020 | Patent grant now final | ||
| R081 | Change of applicant/patentee |
Owner name: ALLGEIER IT SOLUTIONS GMBH, DE Free format text: FORMER OWNER: METASONIC GMBH, 85276 PFAFFENHOFEN, DE |
|
| R082 | Change of representative |
Representative=s name: HGF EUROPE LLP, DE Representative=s name: PATRONUS IP PATENT- & RECHTSANWAELTE BERNHARD , DE Representative=s name: HGF EUROPE LP, DE |
|
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
| R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009450000 Ipc: G06F0008400000 |
|
| R073 | Re-establishment requested | ||
| R074 | Re-establishment allowed | ||
| R071 | Expiry of right |