DE102005002362A1 - Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration - Google Patents

Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration Download PDF

Info

Publication number
DE102005002362A1
DE102005002362A1 DE200510002362 DE102005002362A DE102005002362A1 DE 102005002362 A1 DE102005002362 A1 DE 102005002362A1 DE 200510002362 DE200510002362 DE 200510002362 DE 102005002362 A DE102005002362 A DE 102005002362A DE 102005002362 A1 DE102005002362 A1 DE 102005002362A1
Authority
DE
Germany
Prior art keywords
source code
binary program
program
event handler
components
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.)
Ceased
Application number
DE200510002362
Other languages
English (en)
Inventor
Detlef Becker
Karlheinz Dorn
Vladyslav Ukis
Hans-Martin von Dr. Stockhausen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE200510002362 priority Critical patent/DE102005002362A1/de
Priority to US11/332,373 priority patent/US8099713B2/en
Priority to CNB200610005035XA priority patent/CN100541428C/zh
Publication of DE102005002362A1 publication Critical patent/DE102005002362A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren und Systemanordnung zum Konfigurieren eines Programmsystems (2), wobei das Verfahren die Schritte aufweist: Initialisieren von Binär-Programmkomponenten (3) des Programmsystems (2), Initialisieren eines Quellcode-Interpretierers (4) zum Interpretieren zumindest eines Quellcode-Ereignishandhabers (5); Erstellen von logischen Verbindungen (8-12) zwischen Schnittstellen der Binär-Programmkomponenten (3) und Schnittstellen des interpretierten Quellcode-Ereignishandhabers (5) zur Verarbeitung von von den Binär-Programmkomponenten (3) erzeugten Ereignissen durch den zumindest einen Quellcode-Ereignishandhaber (5). Vorzugsweise wird zusätzlich eine Konfigurationsdatei (14) ausgewertet.

Description

  • Die vorliegende Erfindung ist auf ein Verfahren und Systemanordnung zur Konfiguration eines aus Binärprogrammkomponenten und interpretierten Ereignishandhabern zusammengesetzten Programmsystems und auf das Programmsystem gerichtet.
  • Der derzeitige Stand der Softwaretechnik zeichnet sich dadurch aus, dass im allgemeinen verschiedene Applikationen auf Basis bestehender Software-Frameworks programmiert werden. Es bestehen ebenfalls Erweiterungsmöglichkeiten für bestehende Frameworks.
  • Ein Paradigma bei der Erstellung von Programmen ist die so genannte Komponenten-basierte Programmierung, bei der – ähnlich wie bei der objekt-orientierten Programmierung – ein Programm aus in sich geschlossenen Entitäten erstellt wird. Im Gegensatz zur objekt-orientierten Programmierung werden jedoch die Komponenten von Anbietern bereit gestellt und sind bereits kompilierte und damit binär vorliegende Programmelemente, von denen dem jeweiligen Programmierer lediglich die Schnittstellendefinitionen zur Interaktion mit anderen Komponenten bekannt sind. Erweiterungen von Frameworks sind in der Regel binär, insbesondere bei Komponenten, so dass ein binäres, nach den Regeln des erweiterten Frameworks geschaffenes Modul erzeugt und angeschlossen werden muss, um das Framework insgesamt erweitern zu können.
  • Ein Programmsystem im Sinne der vorliegenden Beschreibung ist als ein aus mehreren Programmelementen bestehendes Gesamtprogramm zu verstehen, in dem die einzelnen Programmelemente, beispielsweise Komponenten etc. miteinander durch Softwareschnittstellen verbunden sind, um ihre Interaktion zu gestatten. Typischerweise besteht eine Applikation aus einer Reihe solcher interagierenden Komponenten. Wenn die Komponenten einer Applikation bzw. eines Programmsystems logisch miteinander verbunden sind, ist es unmöglich, die Verbindungen an die sich ändernden Anforderungen für das Programmsystem anzupassen, ohne den Quellcode des Programmsystems zu ändern und anschließend neu kompilieren zu müssen.
  • Bei Anforderungsänderungen musste das Programmsystem im Quelltext angepasst und neu übersetzt werden, was ohne Verfügung über den Quellcode des Programmsystems bzw. der zu ändernden Komponenten unmöglich war. Falls sich beispielsweise ein Darstellungsprogramm für visuelle Elemente in einem bestimmten Format auch zur Darstellung visueller Elemente in einem anderen Format eignet, so dass beispielsweise eine NMR-Applikation auch zur Anzeige von AX-Bildern geeignet ist, jedoch einer gewissen Anpassung bedarf, um die anderen Darstellungsformate anzeigen zu können, war es bislang unmöglich, das Programm zu verändern, wenn der Quelltext nicht verfügbar war, was in der Regel gegeben war. Damit musste eine vollständig neue Anzeige für die neuen visuellen Daten programmiert werden.
  • Bei objekt-orientierten Systemen, bei denen die Verknüpfung der Elemente (das sogenannte Linken) erst während der Laufzeit des Programmsystems vorgenommen wird, ist es möglich, Objekte noch beim Programmstart durch andere Objekte mit anderen, beispielsweise erweiterten Fähigkeiten zu ersetzen. Auf diese Weise lässt sich das Verhalten einer Anwendung insoweit beeinflussen, als das objekt-interne Verhalten einzelner Objekte betroffen ist. Auch bei einem solchen Objektorientierten System mit einem Linken zur Programmstartzeit (oder sogar erst während des Programmlaufs) ist es jedoch nicht möglich, ohne Kenntnis des Quelltexts die Interaktion zwischen verschiedenen Objekten zu ändern. Objekt-orientierte und komponenten-orientierte Programmsysteme sind in aller Regel Ereignis-getrieben. Dies bedeutet, dass die einzelnen Komponenten oder Objekte eines Programmsystems bei Ablaufen des Programmsystems sogenannte Ereignisse (Events) erzeugen können, die über einen oder mehrere Ereigniswarteschlangen (event queues) an andere, durch die Programmierung vorgegebene Objekte gesendet werden, wo die mit dem Ereignis verknüpften Daten gemäß der Art des Ereignisses weiterverarbeitet werden. Das Weiterleiten der Ereignisse wird im Rahmen der Applikationserstellung fest verknüpft, wie oben beschrieben. Auch die Reaktion von Ereignishandhabern auf die an sie geleiteten Ereignisse ist nicht beeinflussbar, da auch diese mit den zur Verfügung stehenden Programmierwerkzeugen erstellt und kompiliert werden. Dies gilt wiederum insbesondere für die Rückreaktion der Ereignishandhaber, die neue Ereignisse generieren und an andere Objekte bzw. Komponenten eines Programmsystems weiterleiten.
  • Um das Verhalten eines solchen Programmsystems tatsächlich ändern zu können, wäre es notwendig, die Verteilung der Ereignisse, d.h. die Verbindung zwischen den einzelnen vorhandenen Schnittstellen, sowie die Reaktion der Ereignishandhaber verändern zu können.
  • Es ist daher die Aufgabe der vorliegenden Erfindung, ein entsprechendes System bereitzustellen, um auch ohne Kenntnis des Quellcodes der verwendeten Komponenten eine Veränderung der die Komponenten verwendenden Applikation bzw. des Programmsystems zu gestatten.
  • Diese Aufgabe wird erfindungsgemäß gelöst durch die Bereitstellung eines Verfahrens zur Konfiguration des Programmsystems gemäß dem unabhängigen Patentanspruchs 1, durch eine Systemanordnung zur Konfiguration eines Programmsystems gemäß dem unabhängigen Patentanspruch 12 sowie durch eine Frameworksystemanordnung gemäß dem unabhängigen Patentanspruch 19.
  • Der Erfindung liegt die Idee zugrunde, die tatsächliche Ausgestaltung der Ereignis-Handhaber und gegebenenfalls die Ver knüpfung von Komponenten mit den Ereignis-Handhabern einfach konfigurierbar und nachträglich anpassbar zu gestalten.
  • Daher ist die Erfindung zunächst auf ein Verfahren zum Konfigurieren eines Programmsystems gerichtet, das die folgenden Schritte aufweist:
    • – Initialisieren von Binär-Programmkomponenten des Programmsystems, die dazu bestimmt sind, Ereignisse zu erzeugen,
    • – Initialisieren eines Quellcode-Interpretierers, der zumindest einen Quellcode-Ereignishandhaber interpretiert;
    • – Herstellen von logischen Verbindungen zwischen Schnittstellen der Binär-Programmkomponenten und Schnittstellen des interpretierten Quellcode-Ereignishandhabers zur Verarbeitung von Ereignissen durch zumindest einen Quellcode-Ereignishandhaber.
  • Hierbei ist unter einem Programmsystem ein ausführbares Computerprogramm zu verstehen, dass aus mehreren, isolierten und über Schnittstellen interagierenden Komponenten besteht. Unter einer Laufzeitumgebung ist die Gesamtheit des Programmcodes zu verstehen, der von einem Betriebssystem bereitgestellt wird, um Programme einer bestimmten Machart ablaufen zu lassen. Sie umfasst neben Systemfunktionsaufrufen (system calls) auch für eine bestimmte Programmierumgebung spezifische Bibliotheken etc. und beinhaltet grundsätzlich alle Vorkehrungen, die notwendig sind, um das Programmsystem auf der gewählten Datenverarbeitungsanlage ablaufen zu lassen. Unter Binärprogrammkomponenten sind solche komponenten-artigen Bestandteile eines Programms zu verstehen, die bereits vor dem Starten des Programmes mittels eines Compilers kompiliert, d.h. in eine binär von dem verwendeten Prozessor ausführbare Form umgewandelt worden sind. Hierzu zählen klassische Komponenten und Objekte genauso wie neuartige Variationen dieser Konstrukte.
  • Ein Ereignis-Handhaber (Eventhandler) ist ein Programm oder Teilprogramm, das der Bearbeitung eines von einer anderen Komponente gesendeten Ereignisses und ggf. der Ausgabe eines Ergebnisses, z.B. eines Ergebnisereignisses dient. Ein Quellcode-Interpretierer ist ein Programm, ein Programmteil oder eine Programmkomponente, beispielsweise eine weitere Binärprogrammkomponente, die in der Lage ist, einen Quellcode zu interpretieren, die im Quellcode enthaltenen Anweisungen sukzessive abzuarbeiten und direkt in binär arbeitende Befehle umzusetzen, wobei dieser Vorgang im Gegensatz zu Kompilation schrittweise bei jeder Ausführung des Quellcodeprogrammes durchgeführt wird. Klassische Beispiele von interpretierten Programmen sind in der Programmsprache "BASIC" geschriebene Programme oder in Skriptsprachen geschriebene Skripte. Im Sinne der Erfindung soll ein Quellcode-Interpretierer auch ein Programm sein, das in der Lage ist, bei Aufruf einer Quellcode-Datei aus dieser in einem Durchgang ein binäres Programm zu erstellen, sofern bei dieser Programmerstellung bei jedem Aufruf der Quellcode-Datei erneut vorgenommen wird und kein Wert darauf gelegt wird, als Ergebnis der Interpretation ein in der Laufzeitumgebung selbständig ablauffähiges Programm zu generieren.
  • Unter einer Schnittstelle ist ein softwaretechnisches Konstrukt zu verstehen, welches über einen vordefinierten Mechanismus den Austausch von Informationen zwischen zwei Komponenten, Objekten oder Programmen gestattet. Im vorliegenden Fall sind die ausgetauschten Informationen Ereignisse, wobei ein Ereignis zumindest aus einem Identifikator für die Art des Ereignisses, ggf. Meta-Informationen sowie ggf. Daten, die mit dem Ereignis zusammenhängen, besteht. Ereignisse können in Reaktion auf bestimmte Vorkommnisse erzeugt werden, die entweder hardware-seitig (Tastaturtaste gedrückt, Maus geklickt, Füllung eines Puffers der seriellen Schnittstelle etc.) oder innerhalb einer Komponente (Abarbeitung einer Unterfunktion, Feststellen eines Grenzwerts innerhalb eines Algorithmus, Fehlerbedingung etc.) auftreten können.
  • In einer besonders bevorzugten Ausführungsform der Erfindung umfasst das Verfahren ein Auswerten einer Konfigurationsdatei durch eine in einer Laufzeitumgebung laufende Konfigurations-Binär-Programmkomponente, wobei die Konfigurationsdatei Informationen über die Binar-Programmkomponenten, den zumindest einen Quellcode-Ereignishandhaber und deren logische Verbindungen zueinander enthält.
  • Eine Konfigurationsdatei ist im Sinne der vorliegenden Erfindung eine Datei, die in einer editierbaren, also im Klartext vorliegenden, Art und Weise Informationen darüber enthält, welche Binärprogrammkomponenten und Quellcode-Ereignishandhaber das Programmsystem bilden und wie diese miteinander verbunden werden sollen, um den Austausch von Ereignissen zu gestatten.
  • Durch das erfindungsgemäße Verfahren ist es nunmehr möglich, weitgehend in die Funktionalität eines Programmsystems einzugreifen, indem sowohl die Art und Weise, in der Ereignisse vom Programmsystem behandelt, bedient, abgearbeitet oder beantwortet wird, in einem leicht editierbaren Quelltextformat im System enthalten ist, als auch optional die Interaktion der einzelnen Komponenten des Programmsystems in einer leicht editierbaren Konfigurationsdatei enthalten sind. Damit sind gerade die Aspekte eines Programmsystems, bei denen praxisbezogene Änderungen am häufigsten vorkommen dürften, einer einfachen Anpassung auch ohne Kenntnis eines Quellcodes der einzelnen Programmkomponenten möglich.
  • Anders ausgedrückt, wird die gesamte logische Verschaltung der das Programmsystem bildenden Programmkomponenten erst zur Laufzeit des Programms, vorzugsweise beim Programmstart, konfiguriert und in der Laufzeitumgebung eingerichtet.
  • Vorzugsweise erfolgt das Herstellen der logischen Verbindungen durch Konfigurieren eines Ereignis-Verteilers, dessen Aufgabe darin besteht, Ereignisse zentral zu empfangen und anhand einer Verteilungstabelle o.ä. an die vorab zugewiesenen Ereignis-Handhaber weiterzuleiten. Der Ereignis-Verteiler kann der üblicherweise in der Laufzeitumgebung verwendete Verteiler oder ein spezieller, in das Programmsystem eingebauter (beispielsweise durch eine weitere Programmkomponente) Verteiler sein.
  • Die erfindungsgemäß bereitgestellten neuen Komponenten Konfigurations-Binär-Programmkomponente, Quellcode-Interpretierer und Ereignis-Verteiler können voneinander getrennte Komponenten sein oder können zumindest teilweise in einer einzelnen Komponente zusammengefasst sein, welche beispielsweise dann sowohl in der Lage ist, die Konfigurationsdatei zu lesen, als auch, die Scripte auszuführen und gegebenenfalls sogar, die Ereignisse weiterzuleiten. So ist es vorstellbar, dass alle beteiligten Binärkomponenten ihre Ereignisse automatisch an die erfindungsgemäße neue Komponente weiterleiten, und diese eine Verteilung an die einzelnen Ereignis-Handhaber vornimmt.
  • Die Auswertung der Konfigurationsdatei zur Verknüpfung von Programmkomponenten und Ereignishandhabern durch die Konfigurations-Binär-Programmkomponente erfolgt vorzugsweise beim Starten des Programmsystems. In einer alternativen Ausführungsform erfolgt die Auswertung der Konfigurationsdatei durch die Konfigurations-Binär-Programmkomponente in zeitlich vorgegebenen Abständen während der Ausführung des Programmsystems. Während die erste der beiden möglichen Varianten zur Auswertung der Konfigurationsdatei die Leistung des Programmsystems verbessert, da eine entsprechende Konfiguration der Komponenten nur einmal durchgeführt werden muss, gestattet die komplexere, aufwendigere und langsamere zweite Variante einen Eingriff selbst in laufende Programmsysteme, beispielsweise bei Anwendungen, die rund um die Uhr laufen müssen und nicht abgeschaltet werden können.
  • Bei bestimmten Ausführungsformen der Erfindung ist der Quellcode-Interpretierer ebenfalls eine Binärprogrammkomponente, die in derselben Laufzeitumgebung ablaufen kann, wie die Binärprogrammkomponenten. Diese Maßnahme dient der Integration des Gesamtsystems, da innerhalb einer Laufzeitumgebung bereits Mechanismen zum Austauschen von Informationen zwischen Komponenten existieren und damit nicht eigens für die vorliegende Erfindung neu implementiert werden müssen. Der Quellcode-Interpretierer kann ein handelsüblicher Interpretierer sein, der mit entsprechenden Ergänzungen so ummantelt ist, dass er autark in der Laufzeitumgebung und unter Verbindungsaufnahme mit den anderen Programmkomponenten lauffähig ist. Zur Implementierung der Quellcodeereignis-Handhaber können der Laufzeitumgebung angepasste Sprachen verwendet werden. Es können vollwertige Programmiersprachen verwendet werden, die interpretiert werden, wie beispielsweise BASIC oder FORTH, bevorzugterweise allerdings leicht zu programmierende, in modernen Laufzeitumgebungen in der Regel enthaltene bzw. durch Dritte integrierte Script-Sprachen. Demzufolge ist der Quellcode des Ereignis-Handhabers ein in einer Script-Sprache geschriebenes Script. Mögliche Scriptsprachen können beispielsweise Javascript, Jscript.NET, VBScript, Perl, VBScript.NET, Python, Ruby, Tcl, C# und dergleichen sein.
  • Die Konfigurationsdatei ist vorzugsweise eine Klartextdatei mit einer vorgegebenen, von der Konfigurations-Binärprogrammkomponente auswertbaren Syntax. Auch hier bietet es sich an, auf bereits existierende Modelle zurückzugreifen, um den programmtechnischen Aufwand bei der Implementierung der vorliegenden Erfindung zu minimieren. So kann es beispielsweise möglich sein, Dateibrowser zu verwenden, die bereits auf dem Markt existieren, beispielsweise Browser für sogenannte Auszeichnungssprachen, wie SGML oder XML. Dementsprechend ist die Konfigurationsdatei eine Datei, welche der XML-Syntax gehorchen muss. Zur Implementierung der Erfindung kann ein Standard-XML-Browser verwendet werden, dem wiederum eine Dokumententypdefinition oder dergleichen an die Seite gestellt wird, welche die Interpretation der XML-Daten der Konfigurationsdatei festlegt.
  • Die Erfindung ist weiterhin auf ein System zur Erzeugung eines Programmsystems gerichtet. Alles bezüglich des erfindungsgemäßen Verfahrens Gesagte gilt sinngemäß auch für das System und umgekehrt, so dass wechselweise Bezug genommen wird.
  • Die Erfindung ist daher auf ein System zur Erzeugung des Programmsystems gerichtet, welches aufweist:
    • – einen Quellcodeinterpretierer zur Interpretation zumindest eines Quellcode-Ereignishandhabers;
    • – eine Laufzeitumgebung zum Initialisieren und Ausführen von Binär-Programmkomponenten für das Programmsystem; und zum Ausführen des Quellcode-Interpretierers, und
    • – eine Vorrichtung zur Herstellung von logischen Verbindungen zwischen Schnittstellen der Binär-Programmkomponenten und Schnittstellen des interpretierten Quellcode-Ereignishandhabers zur Verarbeitung von, von den Binär-Programmkomponenten erzeugten, Ereignissen durch zumindest einen Quellcode-Ereignishandhaber.
  • Die Begrifflichkeiten entsprechen den oben bereits erläuterten.
  • Das erfindungsgemäße System kann dadurch gekennzeichnet sein, dass die Verbindungsvorrichtung eine Konfigarations-Binär-Programmkomponente zur Auswertung einer Konfigurationsdatei aufweist, die Informationen über die Binar-Programmkomponenten des zu erzeugenden Programmsystems, über zumindest einen Quellcode-Ereignishandhaber für das Programmsystem und über deren Verbindung zueinander enthält.
  • Wie ersichtlich, wird bei dem erfindungsgemäßen System darauf Wert gelegt, dass die verschiedenen Komponenten in einer ge meinsamen Laufzeitumgebung lauffähig sind. Auf diese Weise wird die Integration der einzelnen Bestandteile, beispielsweise der Binärprogrammkomponenten, des XML-Browsers und der Komponente mit dem Script-Interpretierer, ermöglicht. Wie zuvor erläutert, ist der Quellcode-Interpretierer vorzugsweise eine Binär-Programmkomponente, die in derselben Laufzeitumgebung abläuft wie die Binär-Programmkomponenten, und der Quellcodeereignis-Handhaber ist vorzugsweise ein in einer Scriptsprache, beispielsweise Javascript, Jscript.NET, VBScript, Perl, VBScript.NET, Python, Ruby, Tcl oder C# etc. geschriebenen Script.
  • Die Konfigurationsdatei ist wiederum vorzugsweise eine Klartextdatei mit einer vorgegebenen, von der Konfigurationsbinärprogrammkomponente auswertbaren Syntax, beispielsweise einer XML-Syntax.
  • Schließlich ist die Erfindung auf ein mittels der obigen Mechanismen erstelltes Programmsystem gerichtet, welches aufweist:
    • – eine Mehrzahl von Binär-Programmkomponenten, die während der Ausführung Ereignisse erzeugen können und über Schnittstellen nach außen abgeben können;
    • – zumindest ein interpretierter Quellcode-Ereignishandhaber, der zur Bearbeitung von, von zumindest einer der Binärprogrammkomponenten über logische Verbindungspfade empfangenen, Ereignissen bestimmt ist, wobei der Quellcode-Ereignishandhaber zur Laufzeit oder/und zur Startzeit des Programmsystems durch einen Quellcode-Interpretierer interpretiert wird, und wobei die Binär-Programmkomponenten und zumindest ein interpretierter Quellcode-Ereignishandhaber zur Ausführung in einer Laufzeitumgebung bestimmt sind.
  • Der interpretierte Quellcode-Ereignishandhaber ist in einer bevorzugten Ausführungsform zur Abgabe von Ergebnissen der Reaktion auf empfangene Ereignisse als Ergebnisereignisse an Binärprogrammkomponenten bestimmt. Dies stellt einen Rückkanal dar, der es gestattet, dass nicht nur Ereignisse an die entsprechenden Ereignis-Handhaber gesendet werden, sondern dass umgekehrt auch die Ereignis-Handhaber als Ergebnis ihrer Ereignisbearbeitung neue Ereignisse oder andere Vorgänge erzeugen können, die wiederum an andere Binärprogrammkomponenten gesandt werden können. So ist es beispielsweise möglich, zum Auftreten eines bestimmten Berechnungsereignisses vom Ereignis-Handhaber eine Bearbeitung des Ereignisses durchführen zu lassen, die dann in einer Anzeigenprogrammkomponente dargestellt werden soll, wozu das Ereignis mit den Ergebnissen der Kalkulation an diese Anzeigenkomponente geschickt wird.
  • Zum Programmsystem kann weiterhin eine Konfigurations-Binär-Programmkomponente gehören, die zur Herstellung von logischen, gerichteten Verbindungspfaden zwischen Schnittstellen der Binärprogrammkomponenten und Schnittstellen der Ereignis-Handhaber anhand der ausgewerteten Konfigurationsdatei bestimmt ist. Der Zweck der Konfigurationsbinärprogrammkomponente ist bereits oben erläutert worden. Die Verbindungpfade zwischen den Schnittstellen sind als programmtechnische bzw. logische Verbindungspfade aufzufassen und nicht als physikalische. Sie sind gerichtet, weil der Informationsfluss in eine bestimmte Richtung erfolgt, wobei es durchaus vorstellbar ist, dass eine im System vorhandene Binär-Programmkomponente sowohl Daten an einen Ereignis-Handhaber ausgibt als auch von diesem wiederum bearbeitete Daten als Ergebnisereignis empfängt. Wie erläutert, wird üblicherweise beim Start des Programmsystems die Konfigurationsdatei ausgewertet. Damit muss die Konfigurations-Binär-Programmkomponente im strengen Sinne kein Bestandteil des konfigurierten Programmsystems sein, da sie für die Ausführung des Programmsystems zur Laufzeit nicht mehr notwendig wäre. Soll jedoch auch während des Programmlaufs ein Eingriff möglich sein, muss die Konfigurations-Binär-Programmkomponente zum Programmsystem gehören, um in vorgegebenen Zeitabständen dynamisch die Konfigurationsdatei neu auswerten und die Verbindungspfade entsprechend neu an passen zu können. Wie bereits bezüglich des Verfahrens ausgeführt, kann der Quellcode-Interpretierer in einer bevorzugten Ausführungsform ebenfalls eine Binär-Programmkomponente sein, die in derselben Laufzeitumgebung ablaufen kann wie die Binär-Programmkomponenten.
  • Der Quellcodeereignis-Handhaber kann ein in einer Script-Sprache geschriebenes Script sein, beispielsweise in Javascript, Jscript.NET, VBScript, Perl, VBScript.NET, Python, Ruby, Tcl, C# usw. Die erfindungsgemäß eingesetzte Konfigurationsdatei ist vorzugsweise eine Klartextdatei mit einer vorgegebenen, in der Konfigurations-Binärprogrammkomponente auswertbaren Syntax, beispielsweise einer XML-Syntax.
  • Durch die Einführung zumindest einer Komponente, die die Interaktionen anderer Komponenten untereinander abkapselt, werden diese Interaktionen lokalisiert. Zudem ist es möglich, die Interaktionen in einer Scriptsprache zu spezifizieren. Durch die Anpassung vom Scriptcode kann das Verhalten der Applikation angepasst werden, ohne den Quellcode der ganzen Applikation verfügbar zu haben. Außerdem ist es möglich, die Applikation durch die Konfiguration der Komponenten zu erweitern und ihre Komponenten auszutauschen.
  • Mit dem erfindungsgemäßen System und Verfahren wird es möglich, Applikationen (Programmsysteme) zu bauen, deren Business-Logik erweitert, ausgetauscht und sogar adaptiert werden kann. Die Verdrahtung der Komponenten einer Applikation kann durch den Einsatz eines Scripts von außen flexibel verändert werden. Damit kann eine Applikation, beispielsweise eine Applikation auf dem Gebiet der Medizintechnik, auf eine einfache Weise an die Gegebenheiten ihres Einsatzes angepasst werden, ohne dass der Quellcode der Applikation verändert werden muss.
  • Das vorstehend beschriebene, erfindungsgemäße Verfahren und die Systeme können insbesondere als Computerprogrammprodukt ausgebildet sein, mit einem von einem Computer lesbaren Medium und einem Computerprogramm und zugehörigen Programmcodemitteln, wobei der Computer nach Daten des Computerprogramms, also des Programmsystems, zur Durchführung des oben beschriebenen, erfindungsgemäßen Verfahrens veranlasst wird.
  • Eine alternative Aufgabenlösung sieht ein Speichermedium vor, das zur Speicherung des vorstehend beschriebenen, computerimplementierten Verfahrens bzw. Systems bestimmt ist und von einem Computer lesbar ist.
  • Weitere vorteilhafte Ausgestaltungen, Aspekte und Details der vorliegenden Erfindung ergeben sich aus den abhängigen Patentansprüchen, der detaillierten Beschreibung und den beigefügten Zeichnungen.
  • In der folgenden, detaillierten Figurenbeschreibung werden nicht einschränkend zu verstehende Ausführungsbeispiele mit deren Merkmal und weiteren Vorteilen anhand der Zeichnung besprochen. Hierbei zeigt:
  • 1 eine übersichtsartige Darstellung eines Systems zur Erzeugung eines Programmsystems, einschließlich des zu erzeugenden Programmsystems.
  • 1 zeigt in einer schematischen Darstellung ein in eine Laufzeitumgebung 1 eingebettetes Programmsystem 2. Dieses besteht aus einer Reihe von Binär-Programmkomponenten 3. Diese Softwarekomponenten 3 sind binär, d.h bereits kompiliert, und können vom Anbieter der Laufzeitumgebung oder weiteren Herstellern fertig bezogen werden, können jedoch auch selbst programmiert werden, je nach Notwendigkeit. Ein Quellcode-Interpretierer 4 führt in einer Scriptsprache oder einer anderen geeigneten interpretierbaren Sprache geschriebene Event-Handler (Ereignis-Handhaber) 5 aus. Des weiteren wird ein Event-Verteiler 6 benötigt, der in die Laufzeitumgebung oder/und in das Programmsystem eingebettet und die von den Kom ponenten erzeugten Ereignisse an den Ausgängen 7 über logische Verbindungspfade 8, 9, 10, beispielsweise an die Interpretierkomponente 4 weiterleitet, die sie dann an die Scripten gibt. Es ist auch möglich, die Erfindung so zu implementieren, dass die Ereignisse logisch direkt an die Scripte weitergeleitet werden (vgl. Pfeil 8). Die Verbindung 11 zeigt, dass durch die Konfiguration des Systems auch Verbindungen zwischen Binär-Programmkomponenten 3 hergestellt werden können. Wie mit 12 dargestellt, ist es ebenfalls möglich, dass die Ereignisse von Ereignissen wieder an die gleichen oder andere Binär-Programmkomponenten 3 zurückgeleitet werden, wo sie weiterverarbeitet werden. Auf diese Weise wird beim erfindungsgemäßen Programmsystem eine Verknüpfung und auch eine Bearbeitung der Ereignisse der einzelnen Komponenten über die Vermittlerstelle der Scripte erreicht.
  • Darüber hinaus sind in 1 diejenigen Komponenten des erfindungsgemäßen Systems zur Konfiguration eines Betriebssystems, die zusätzlich hinzukommen müssen, um das Programmsystem zu konfigurieren, dargestellt. Gezeigt ist eine Konfigurationsbinärkomponente 13, die eine Konfigurationsdatei 14 einliest und anhand der in dieser enthaltenen Informationen die benötigten Binärkomponenten aufruft, wobei dies beispielsweise über Verbindung 15 und mit Hilfe von üblichen Aufrufen der Laufzeitumgebung geschehen kann. Desgleichen wird über Verbindung 16 der Verteiler 6 entsprechend den Vorgaben so konfiguriert, dass die korrekten Verbindungen für die Ereignisse zwischen den Komponenten und den Ereignis-Handhabern hergestellt werden können. Über Verbindung 17 schließlich werden die notwendigen Ereignis-Handhaber aufgerufen. Es versteht sich, dass die Darstellung stark schematisiert ist, um die Grundprinzipien der vorliegenden Erfindung zu verdeutlichen, es wird jedoch davon ausgegangen, dass anhand der hier präsentierten Informationen der Fachmann in der Lage ist, die Erfindung für konkrete Laufzeitumgebungen, Betriebssysteme, Programmiersprachen und Entwickungsumgebungen ohne weiteres Zutun auszuführen.
  • Das System kann eine XML-Spezifikation in Form einer Konfigurationsdatei von Komponenten des Programmsystems umfassen, wie nachfolgendes Listing zeigt:
    Figure 00150001
    Figure 00160001
  • Das Listing zeigt eine beispielhafte Spezifikation der Komponenten einer Applikation und der Zuordnung zu Ereignis-Handhabern. Die Datei spezifiziert zwei sogenannte Business-Components, nämlich zum einen die Business-Komponente "Viewing", die der Darstellung von Objekten dient, sowie andererseits der Business-Komponente "Fusion", die Dateien fusioniert. Die Implementierung dieser Business-Komponente erfolgt über die dynamische Link-Library "MyComponents.Businesscomponent.viewing.dll", während die Implementierung der Komponente "Fusion" über die dynamische Link-Library "MyComponents.Businesscomponent.fusion.dll" erfolgt. In den einzelnen Unterabschnitten werden noch konkret zu verwendende Businessobjekte definiert, sowie Schnittstellen angegeben. Im Abschnitt mit dem Tag "Connection" werden zwei Event-Handler definiert, nämlich ein Drawing-Handler und ein Computing-Handler. Mit dem Tag "Event" werden dann die eigentlichen Verknüpfungen vorgenommen. Wie der Auflistung zu entnehmen, wird beim Auftreten eines Ereignisses "Draw Graphics" der Komponente "Viewing" das Ereignis an den Event-Handler "Drawing-Handler" weitergeleitet, wobei die Methode "Draw" innerhalb des Handlers verwendet werden soll. In ähnlicher Weise wird beim Auftreten des Ereignisses "Fuse-Images" der Businesskomponente "Fusion" der Event-Handler "Computing Handler" mit der Methode "Compute" aufgerufen.
  • Durch die Implementation dieser Funktionalität mit Hilfe einer XML-Datei ist es in einfachster Weise möglich, diese erfolgten Zuweisungen bedarfsweise zu verändern.
  • Ein Event-Handler stellt eine Reihe von Funktionen bereit, die bei bestimmten Ereignissen automatisch aufgerufen werden. Der Event-Handler wird dabei vorzugsweise in einer Script-Sprache geschrieben, wie z.B. Jscript, VBScript oder in .NET entsprechend Jscript.NET, VB.NET oder C#. Der Vorteil einer Script-Sprache liegt darin, dass das Script zur Laufzeit interpretiert wird und deswegen noch nach Auslieferung des Systems angebracht werden kann.
  • Das nachfolgende Listing veranschaulicht einen Event-Handler in Jscript.NET:
    Figure 00170001
  • In diesem Fall handelt es sich um einen Event-Handler aus dem Paket "MyComponents.Event-Handler", konkret wie durch "Public Class" veranschaulicht, den Event-Handler "Computing", der in dem ersten Listing bereits als Computing-Handler bezeichnet wurde und auf den durch das entsprechende progID "My Components.eventhandler.computing" Referenz genommen worden ist. Als Erstes wird die INIT()-Funktion des Event-Handlers aufgerufen und dort kann der Handler Zugriff auf die ihm verbundenen Komponenten erlangen. Anschließend wird die Compute-Funktion aufgerufen, wenn die Komponente "Fusion" das Ereignis "fusion image" erzeugt, vgl. das erste Listing. In der Funktion selbst wird die Fusion durchgeführt und die Datenbank ID vom fusionierten Bild wird an die Komponente "Viewing" zur Anzeige übergeben.
  • In einem Event-Handler hat man Zugriff auf alle konfigurierten Komponenten, so dass ihre Verbindung im Script stattfinden kann. Dies bedeutet, dass die Verdrahtung der Komponenten flexibel angepasst werden kann, ohne den Quellcode der eigentlichen Komponenten zu modifizieren, so dass die Funktionslogik eines Programmsystems, d.h. eine Applikation anpassbar ist. Um diese Funktionslogik erweitern zu können, können während der Konfiguration neue Komponenten in das Programmsystem einkonfiguriert werden. Es ist aber ebenfalls möglich, im Script-Code zur Laufzeit neue Komponenten hinzuzufügen. Bei Bedarf können die zur Laufzeit mitgebrachten Komponenten im Script weiter erneuert werden, d.h. die Funktionslogik kann sowohl statisch durch Konfiguration oder dynamisch durch Aufruf bestimmter Methoden im Script erweitert werden. Um solche dynamischen Erweiterungen durchführen zu können, wird im Script ein Handling zur Verfügung gestellt. Auch die eigentliche Funktionslogik ist ersetzbar. Dies kann dadurch erreicht werden, dass bestimmte Komponenten in der Konfigurationsdatei ausgetauscht werden. Beispielsweise kann eine Komponente zum Anzeigen der medizinischen Bilder eines bestimmten Typs (z.B. MR–Magentresonanz) durch eine andere Komponente zum Anzeigen der Bilder eines anderen Typs (z.B. CT–Computertomtographie) er setzt werden. Es ist aber möglich, dass beide Komponenten CT und MR konfiguriert werden und gleichzeitig im Script verwendet werden.

Claims (21)

  1. Verfahren zum Konfigurieren eines Programmsystems (2), aufweisend die Schritte: – Initialisieren von Binär-Programmkomponenten (3) des Programmsystems (2), die dazu bestimmt sind, Ereignisse zu erzeugen, – Initialisieren eines Quellcode-Interpretierers (4), der dazu bestimmt ist, zumindest einen Quellcode-Ereignishandhaber (5) zu interpretieren; – Herstellen von logischen Verbindungen (812) zwischen Schnittstellen der Binär-Programmkomponenten (3) und Schnittstellen des interpretierten Quellcode-Ereignishandhabers (5) zur Verarbeitung der erzeugten Ereignisse durch den Quellcode-Ereignishandhaber (5).
  2. Verfahren nach Anspruch 1, gekennzeichnet durch den Schritt: Auswerten einer Konfigurationsdatei (14) durch eine in einer Laufzeitumgebung (1) laufende Konfigurations-Binär-Programmkomponente (13), wobei die Konfigurationsdatei (14) Informationen über die Binar-Programmkomponenten (3), über zumindest einen Quellcode-Ereignishandhaber (5) und über deren logische Verbindungen (812) zueinander enthält.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass das Herstellen der logischen Verbindungen (812) durch Konfigurieren eines Ereignis-Verteilers (6) erfolgt.
  4. Verfahren nach Anspruch 2 oder 3, dadurch gekennzeichnet, dass zumindest zwei der Bestandteile Konfigurations-Binär-Programmkomponente (13), Quellcode-Interpretierer (4) und Ereignis-Verteiler (6) in einer Binär-Programmkomponente (3) zusammengefasst sind.
  5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, dass die Auswertung der Konfigurationsdatei (14) durch die Konfigurations-Binär-Programmkomponente (13) beim Starten des Programmsystems (2) erfolgt.
  6. Verfahren nach einem der Ansprüche 2 bis 5, dadurch gekennzeichnet, dass die Auswertung der Konfigurationsdatei (14) durch die Konfigurations-Binär-Programmkomponente (13) in zeitlich vorgegebenen Abständen während der Ausführung des Programmsystems (2) erfolgt.
  7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass der Quellcode-Interpretierer (4) ebenfalls eine binär Programmkomponente ist, die in derselben Laufzeitumgebung (1) ablaufen kann wie die Binär-Programmkomponenten (3).
  8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der Quellcode-Ereignishandhaber (5) ein in einer Scriptsprache geschriebenes Script umfasst.
  9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass die Scriptsprache u.a. Javascript, Jscript.NET, VBScript, Perl, VBScript.NET, Python, Ruby, Tcl oder C# ist.
  10. Verfahren nach einem der Ansprüche 2 bis 9, dadurch gekennzeichnet, dass die Konfigurationsdatei (14) eine Klartextdatei mit einer vorgegebenen, von der Konfigurations-Binär-Programmkomponente (13) auswertbaren Syntax ist.
  11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die Konfigurationsdatei (14) der XML-Syntax entspricht.
  12. Systemanordnung zur Erzeugung eines Programmsystems, umfassend: – zumindest einen Quellcode-Interpretierer (4) zur Interpretation zumindest eines Quellcode-Ereignishandhabers (5); – eine Laufzeitumgebung (1) zum Initialisieren und Ausführen von Binär-Programmkomponenten (3) für das Programmsystem (2) und zum Ausführen des Quellcode-Interpretierers (4), und – zumindest eine Verbindungsvorrichtung zur Herstellung von logischen Verbindungen (812) zwischen Schnittstellen der Binär-Programmkomponenten (3) und Schnittstellen des interpretierten Quellcode-Ereignishandhabers (5) zur Verarbeitung von, von den Binär-Programmkomponenten erzeugten, Ereignissen durch zumindest einen Quellcode-Ereignishandhaber (5).
  13. Systemanordnung nach Anspruch 12, dadurch gekennzeichnet, dass die Verbindungsvorrichtung eine Konfigurations-Binär-Programmkomponente (13) zur Auswertung einer Konfigurationsdatei (14) aufweist, die Informationen über die Binar-Programmkomponenten (3) des zu erzeugenden Programmsystems (2), über zumindest einen Quellcode-Ereignishandhaber (5) für das Programmsystem (2) und über deren Verbindung zueinander enthält.
  14. Systemanordnung nach Anspruch 12 oder 13, dadurch gekennzeichnet, dass der Quellcode-Interpretierer (4) ebenfalls eine binäre Programmkomponente ist, die in derselben Laufzeitumgebung (1) ablaufen kann wie die Binär-Programmkomponmenten (3).
  15. Systemanordnung nach einem der Ansprüche 12 bis 14, dadurch gekennzeichnet, dass der Quellcode-Ereignishandhaber (5) ein in einer Scriptsprache geschriebenes Script umfasst.
  16. Systemanordnung nach Anspruch 15, dadurch gekennzeichnet, dass die Scriptsprache u.a. Javascript, Jscript.NET, VBScript, Perl, VBScript.NET, Python, Ruby, Tcl oder C# ist.
  17. Systemanordnung nach einem der Ansprüche 13 bis 16, dadurch gekennzeichnet, dass die Konfigurationsdatei (14) eine Klartextdatei mit einer vorgegebenen, von der Konfigurations-Binär-Programmkomponente (13) auswertbaren Syntax ist.
  18. Systemanordnung nach Anspruch 17, dadurch gekennzeichnet, dass die Konfigurationsdatei (14) der XML-Syntax entspricht.
  19. Frameworksystemanordnung, umfassend: – eine Mehrzahl von Binär-Programmkomponenten (3), die auch während der Ausführung Ereignisse über logische Verbindungspfade (812) empfangen oder erzeugen können und über Schnittstellen nach außen abgeben können; – zumindest ein interpretierter Quellcode-Ereignishandhaber (5), der zur Bearbeitung von Ereignisse bestimmt ist, wobei der Quellcode-Ereignishandhaber (5) zur Laufzeit und/oder zur Startzeit des Programmsystems (2) durch einen Quellcode-Interpretierer (4) interpretiert wird, und wobei die Binär-Programmkomponenten (3) und zumindest ein interpretierter Quellcode-Ereignishandhaber (5) zur Ausführung in einer Laufzeitumgebung (1) bestimmt sind.
  20. Frameworksystemanordnung nach Anspruch 19, dadurch gekennzeichnet, dass der Quellcode-Ereignishandhaber (5) zur Abgabe von Ergebnissen als seine Reaktion auf empfangene Ereignisse als Ergebnisereignisse an Binar-Programmkomponenten (3) bestimmt ist.
  21. Frameworksystemanordnung nach Anspruch 19 oder 20, dadurch gekennzeichnet, dass es weiterhin eine Konfigurations-Binär-Programmkomponente (13) aufweist, die zur Herstellung der logischen, gerichteten Verbindungspfade (812) zwischen Schnittstellen (7) der Binar-Programmkomponenten (3) und Schnittstellen der Quellcode-Ereignishandhaber (5) anhand einer ausgewerteten Konfigurationsdatei (14) bestimmt ist.
DE200510002362 2005-01-18 2005-01-18 Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration Ceased DE102005002362A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE200510002362 DE102005002362A1 (de) 2005-01-18 2005-01-18 Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration
US11/332,373 US8099713B2 (en) 2005-01-18 2006-01-17 Program system, and method and system arrangement for configuring it
CNB200610005035XA CN100541428C (zh) 2005-01-18 2006-01-18 程序系统以及针对其配置的方法和系统装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200510002362 DE102005002362A1 (de) 2005-01-18 2005-01-18 Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration

Publications (1)

Publication Number Publication Date
DE102005002362A1 true DE102005002362A1 (de) 2006-07-27

Family

ID=36650415

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200510002362 Ceased DE102005002362A1 (de) 2005-01-18 2005-01-18 Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration

Country Status (2)

Country Link
CN (1) CN100541428C (de)
DE (1) DE102005002362A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943482B2 (en) 2009-05-15 2015-01-27 International Business Machines Corporation Incrementally constructing executable code for component-based applications
WO2013048440A1 (en) 2011-09-30 2013-04-04 Siemens Aktiengesellschaft Tool and method for dynamic configuration and implementation of device firmware utilizing defined components
CN113434874B (zh) * 2021-06-11 2022-05-20 湖南大学 一种基于pyc加密的Python源代码保护方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Boudreaux Bodine, Microsoft, Windows Media: Handling Events, 19.02.2002, S. 1 [www.msd2dcom, NET Tips, XML, windows media: handling events] (recherchiert am 17.10.05) *

Also Published As

Publication number Publication date
CN100541428C (zh) 2009-09-16
CN1808378A (zh) 2006-07-26

Similar Documents

Publication Publication Date Title
DE10351351B4 (de) Verfahren und System zur dynamischen Generierung von User Interfaces
DE60011479T2 (de) Xml-roboter
DE19960050A1 (de) Grafische Benutzerschnittstelle zur Entwicklung von Anwendungsbeispielen unter Verwendung einer Testobjektbibliothek
EP1061422A1 (de) Informationstechnisches System zur Definition, Optimierung und Steuerung von Prozessen
DE10206903A1 (de) Softwareapplikation, Softwarearchitektur und Verfahren zur Erstellung von Softwareapplikationen, insbesondere für MES-Systeme
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
DE69907714T2 (de) Komponentbasiertes quellcodegeneratorverfahren
EP3543844A1 (de) Verfahren zum durchführen von änderungen an einer software-anwendung
EP1634130B1 (de) Vorrichtung und verfahren zur programmierung und/oder ausführung von programmen für industrielle automatisierungssysteme
DE102004009676A1 (de) Verfahren und Systeme zum Erzeugen von Unterstützungsdateien für Befehle
EP0838054B1 (de) Verfahren und steuereinrichtung für eine graphische steuerung von abläufen in einem netzwerkmanagementsystem
DE102012102883A1 (de) Verfahren und System zum Erzeugen eines Quellcodes für ein Computerprogramm zur Ausführung und Simulation eines Prozesses
DE102021116315A1 (de) Verfahren zum Zusammenführen von Architekturinformationen
DE102005002362A1 (de) Programmsystem sowie Verfahren und Systemanordnung zu seiner Konfiguration
EP1202167B1 (de) Verfahren zur modellbasierten objektorientierten Entwicklung von externen Schnittstellen für verteilte Softwaresysteme
EP1862901A1 (de) Eingabe von Programm-Anweisungen bei imperativen Programmiersprachen
EP1745375A1 (de) Verfahren zur bestimmung von verklemmungen in nebenläufigen prozessen
DE102012106913A1 (de) Modulares Werkzeug zum Aufbau eines Links zu einem Rechte-Programm von Artikelinformationen
DE102004012315A1 (de) Verfahren zur automatischen Anpassung von Software
DE102005009529A1 (de) Datenverarbeitungssystem zur Integration zweier Frameworks
EP2998805A1 (de) Verfahren und Vorrichtung zur Erzeugung eins Überwachungs-Funktionsbausteins für die Überwachung einer Automatisierungsanordnung
EP3007017A1 (de) Produktions- oder Werkzeugmaschine sowie Verfahren zum Betrieb einer solchen Maschine
DE19637883B4 (de) Datenverarbeitungsanlage zur Ausführung großer Programmsysteme
DE102004023634B4 (de) Verfahren zur Vollständigkeits- und Konsistenzprüfung einer Informationsbibliothek
EP1691275B1 (de) Verfahren und Vorrichtung zum rechnergestützten Erzeugen einer graphischen Benutzeroberfläche

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection