DE19637883B4 - Data processing system for executing large program systems - Google Patents

Data processing system for executing large program systems Download PDF

Info

Publication number
DE19637883B4
DE19637883B4 DE19637883A DE19637883A DE19637883B4 DE 19637883 B4 DE19637883 B4 DE 19637883B4 DE 19637883 A DE19637883 A DE 19637883A DE 19637883 A DE19637883 A DE 19637883A DE 19637883 B4 DE19637883 B4 DE 19637883B4
Authority
DE
Germany
Prior art keywords
subsystem
software component
data processing
switching unit
processing system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19637883A
Other languages
German (de)
Other versions
DE19637883A1 (en
Inventor
Hanns-Helmuth Dr.rer.nat. Deubler
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.)
Fujitsu Technology Solutions GmbH
Original Assignee
Fujitsu Technology Solutions GmbH
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 Fujitsu Technology Solutions GmbH filed Critical Fujitsu Technology Solutions GmbH
Priority to DE19637883A priority Critical patent/DE19637883B4/en
Publication of DE19637883A1 publication Critical patent/DE19637883A1/en
Application granted granted Critical
Publication of DE19637883B4 publication Critical patent/DE19637883B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Abstract

Datenverarbeitungsanlage (10), die mindestens einen Prozessor (12, 13) enthält, der Befehle eines gebundenen Programmsystems ausführt, und mit mindestens einem Speicher (20), in dem die Programmbefehle gespeichert sind,
wobei das Programmsystem mehrere gebundene, Softwarebausteine aufweisende Subsysteme (50 bis 54) enthält, die vorgegebene Funktionen der Datenverarbeitungsanlage (10) definieren,
ein Softwarebaustein (74) für mindestens eine Funktion eines ersten Subsystems (50) Bestandteil eines zweiten Subsystems (54) ist,
dadurch gekennzeichnet, dass
a) jedes Subsystem (50 bis 54) mindestens eine gleichartig aufgebaute Vermittlungseinheit (60 bis 64) hat,
b) die ein Verzeichnis (VZ1 bis VZ3) enthält, welches auf im jeweiligen Subsystem (50 bis 54) enthaltene Softwarebausteine (70 bis 76) verweist,
c) zum Ausführen der besagten Funktion das erste Subsystem (50) die Vermittlungseinheit (64) im zweiten Subsystem (54) aufruft (Pfeil 84) und
d) diese Vermittlungseinheit (64) mit Hilfe des in ihr enthaltenen Verzeichnisses (VZ3) den dieser Funktion zugeordneten Softwarebaustein (74) aufruft...
A data processing system (10) comprising at least one processor (12, 13) executing instructions of a bound program system and having at least one memory (20) in which the program instructions are stored,
wherein the program system includes a plurality of bound software modules having subsystems (50 to 54) defining predetermined functions of the data processing system (10),
a software component (74) for at least one function of a first subsystem (50) is part of a second subsystem (54),
characterized in that
a) each subsystem (50 to 54) has at least one similarly structured switching unit (60 to 64),
b) which contains a directory (VZ1 to VZ3) which refers to software modules (70 to 76) contained in the respective subsystem (50 to 54),
c) to execute said function, the first subsystem (50) calls the exchange unit (64) in the second subsystem (54) (arrow 84) and
d) calls this switching unit (64) with the help of the directory contained therein (VZ3) associated with this function software component (74) ...

Figure 00000001
Figure 00000001

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß dem Oberbegriff des Patentanspruchs 1.The The invention relates to a data processing system according to the preamble of claim 1

Unter einem Programmsystem wird im allgemeinen ein Programm mit mehreren Teilen und einer sehr großen Anzahl von Befehlen zur Lösung einer gemeinsamen übergeordneten Aufgabe verstanden. Ein Programmsystem ist zum Beispiel ein Betriebssystem für die Steuerung der Grundfunktionen der Datenverarbeitungsanlage, kurz DV-Anlage. Solche Betriebssysteme sind oft in einer Entwicklungszeit von vielen Jahren, z.B. 10 oder 20 Jahren, entstanden und enthalten mehrere Millionen Befehle. Ein Programmsystem kann auch ein Anwendungsprogramm sein, wie zum Beispiel ein Buchungsprogramm für eine Großbank oder eine Versicherungsgesellschaft. In DV-Anlagen mit mehreren gleichartigen Prozessoren ist auch ein paralleles Abarbeiten von Befehlen eines einzigen oder mehrerer Programmsysteme möglich.Under A program system is generally a program with several Share and a very big one Number of commands to solve a common parent Task understood. For example, a program system is an operating system for the Control of the basic functions of the data processing system, in short DP system. Such operating systems are often in a developmental of many years, e.g. 10 or 20 years, originated and included several million commands. A program system can also be an application program such as a booking program for a major bank or insurance company. In DV systems with several similar processors is also a parallel execution of commands of a single or multiple Program systems possible.

Programmsysteme enthalten gewöhnlich mehrere Subsysteme, die vorgegebene Funktionen der DV-Anlage definieren. Ein Speichersubsystem z.B. übernimmt bei einem Betriebssystem alle Funktionen, die mit Speichervorgängen in Verbindung stehen. Ein Dateisubsystem führt die Funktionen aus, die für das Arbeiten mit den Dateien auf der DV-Anlage benötigt werden. In einer Mehrprozessoranlage hat ein Mehrprozessor-Subsystem die Aufgabe, den parallelen Betrieb der Prozessoren zu steuern.program systems usually contain several Subsystems that define predefined functions of the DP system. A storage subsystem, e.g. takes over For an operating system, all functions that use memory operations in Connection stand. A file subsystem performs the functions that for the Working with the files needed on the DV system. In a multiprocessor plant has a multiprocessor subsystem the task of parallel operation to control the processors.

Jedes Subsystem bietet in der Regel mehrere Funktionen an. Eine Funktion im Dateisubsystem ist z.B. das Anlegen einer neuen Datei im Speicher der DV-Anlage. Zum Ausführen einer Funktion sind häufig mehrere tausend Befehle notwendig. Oft werden demzufolge die Funktionen in Teilfunktionen unterteilt. Die Befehle zum Ausführen einer Funktion oder zum Ausführen einer Teilfunktion sind zu einem Softwarebaustein zusammengefaßt. Ein Softwarebaustein ist zum Beispiel eine Befehlsfolge, auch Prozedur genannt, die an einer Startadresse beginnt und an einer Endadresse endet. Üblich ist das Bereitstellen von Parametern vor dem Ausführen der Prozedur bzw. des Softwarebausteins. Außerdem können beim Ausführen der Prozedur Ergebnisparameter erzeugt werden, die zur weiteren Bearbeitung gespeichert werden.each Subsystem usually offers several functions. A function in the file subsystem is e.g. the creation of a new file in the memory of the DP system. To run a function are common several thousand commands necessary. Often, therefore, the functions divided into subfunctions. The commands to execute a Function or to execute a subfunction are combined to form a software component. One Software module is for example a command sequence, also procedure called, which starts at a start address and an end address ends. Common is the provision of parameters before executing the Procedure or software component. Also, when running the Procedure result parameters are generated for further processing get saved.

Bekannte Verfahren zum Betreiben einer DV-Anlage haben den Nachteil, daß zwischen den Subsystemen eine sehr große Anzahl von verschiedenartigen Abhängigkeiten sowohl beim Erstellen der Softwarebausteine als auch beim Ausführen der Funktionen bestehen. So können Softwarebausteine für die Ausführung von Teilfunktionen einer übergeordneten Funktion in verschiedenen Subsystemen enthalten sein. Für das bereits genannte Beispiel, nämlich das Anlegen einer Datei, kann z.B. eine Teilfunktion für die Vorbereitung des Anlegens der Datei als Softwarebaustein im Dateisubsystem sowie eine andere Teilfunktion, nämlich das Bereitstellen von Speicherplatz zum Anlegen der Datei im Speicher der DV-Anlage, als weiterer Softwarebaustein im Speichersubsystem definiert sein. Wenn nun Änderungen am Softwarebaustein im Speichersubsystem vorgenommen werden, so können sich diese Änderungen auch auf den Softwarebaustein im Dateisubsystem auswirken, z.B. im Hinblick auf die Parameterübergabe. Das Dateisubsystem ist also vom Speichersubsystem abhängig. Diese Abhängigkeit wird unter anderem durch die Anzahl und die Formate zu übergebender Parameter und durch die verwendeten Entwicklungstechniken für die Softwarebausteine bestimmt. Weitere Abhängigkeiten entstehen, wenn auf eine Datenstruktur aus verschiedenen Subsystemen heraus zugegriffen wird, da bei Änderungen der Datenstruktur der Zugriff in allen Subsystemen geändert werden muß, die auf diese Datenstruktur zugreifen. Die Verschieden artigkeit und die Vielzahl der Abhängigkeiten im Programmsystem erschweren die Weiterentwicklung des Programmsystems und sind oft eine Fehlerursache, da das tatsächliche Ausmaß von Änderungen in einem oder mehreren der Subsysteme kaum zu überschauen ist. Durch die verschiedenartigen Abhängigkeiten der Subsysteme untereinander entsteht außerdem ein erhöhter Aufwand bei der Dokumentation, der Fehlersuche und der Pflege des Programmsystems.Known Methods for operating a computer system have the disadvantage that between the subsystems a very large Number of different dependencies both when creating the Software modules as well as while performing the functions exist. So can Software components for execution of subfunctions of a parent Function included in different subsystems. For that already named example, namely the creation of a file, e.g. a subfunction for the preparation creating the file as a software component in the file subsystem as well as another subfunction, namely providing space to create the file in memory DV system, defined as another software component in the storage subsystem be. If changes now on the software component in the storage subsystem, so can these changes also affect the software component in the file subsystem, e.g. with regard to parameter transfer. The file subsystem is thus dependent on the storage subsystem. These dependence is to be handed over, among other things by the number and the formats Parameters and by the development techniques used for the software components certainly. Further dependencies arise when looking at a data structure from different subsystems is accessed, as with changes the data structure of access in all subsystems to be changed must, that access this data structure. The diversity and the variety of dependencies in the program system complicate the further development of the program system and are often a cause of failure because of the actual extent of changes is hard to overlook in one or more of the subsystems. By the different types dependencies The subsystems with each other also creates an increased effort during documentation, troubleshooting and maintenance of the program system.

Da Programmsysteme in der Regel ständig weiterentwickelt werden und sich dabei aufgrund der zunehmenden Zahl von Funktionen in der Regel vergrößern, steigt aufgrund der genannten Abhängigkeiten der Aufwand für Neuentwicklungen und Änderungen im Programmsystem überproportional an. In der Praxis hat sich gezeigt, daß bei einem Betriebssystem z.B. durch Abänderungen und Modifikation etwa eine Million Befehle innerhalb von zwei Jahren zum Programmsystem hinzukommen können. Über die Zeit betrachtet steigt der Aufwand für Änderungen bei dem Betriebssystem in etwa exponentiell an.There Program systems usually evolve constantly and are doing so due to the increasing number of functions usually enlarge, soar due to the mentioned dependencies the effort for New developments and changes disproportionately in the program system at. In practice, it has been shown that in an operating system e.g. by modifications and modify about a million commands within two years can be added to the program system. Over time considered the effort for changes increases at the operating system in about exponential.

Aus der DE 42 11 678 A1 ist eine Betriebssystemarchitektur für Betriebssysteme mit objektorientierter grafischer Benutzeroberfläche bekannt. Dabei ist eine allgemeine Komponente mit Funktionsmodulen zur Durchführung allgemeiner Operationen und spezielle Komponenten mit weiteren Funktionsmodulen vorgesehen. Dadurch ist ein modularer Aufbau gegeben, wobei später einzelne Funktionsmodule entfernt oder hinzugefügt werden können.From the DE 42 11 678 A1 is an operating system architecture for operating systems with object-oriented graphical user interface known. In this case, a general component is provided with functional modules for performing general operations and special components with further functional modules. This gives a modular design, with later individual function modules can be removed or added.

Die EP 0 474 340 A2 offenbart ein Verfahren zur Zusammenwirkung von verschiedenen Computeranwendungen in einem heterogenen Datenverarbeitungsnetzwerk.The EP 0 474 340 A2 discloses a method to the interaction of different computer applications in a heterogeneous data processing network.

Aus der WO 95/03575 A1 ist ein System bekannt, bei dem Anwendungsprogramme über Schnittstellenschichten, sogenannte Wrapper, an ein Betriebssystem angebunden sind. Durch die Wrapper ist es möglich, ein prozedurales Betriebssystem nach Außen als objektorientiert erscheinen zu lassen, so dass objektorientierte Anwendungsprogramme so auf Funktionen des Betriebssystems zugreifen können, als ob es objektorientiert programmierte Schnittstellen anbieten würde.Out WO 95/03575 A1 discloses a system in which application programs via interface layers, so-called wrappers, are connected to an operating system. By the wrapper is it possible a procedural operating system to the outside appear as object-oriented so that object-oriented application programs so on Functions of the operating system can access as if it were object oriented would offer programmed interfaces.

Die EP 0 558 945 A2 offenbart ein Verfahren zum Zugriff auf einen Speicher, der in mehrere Unterspeichergruppen aufgeteilt ist. Innerhalb einer Unterspeichergruppe ist eine Aufteilung in verschiedener Unterspeicherbereiche vorgesehen, wobei auf einen der Bereiche von Außerhalb der Unterspeichergruppe zugegriffen werden kann, während auf die anderen Unterspeicherbereiche nur innerhalb der Unterspeichergruppe zugegriffen werden kann.The EP 0 558 945 A2 discloses a method for accessing a memory which is divided into a plurality of sub memory groups. Within a sub memory group, a division into different sub memory areas is provided, wherein one of the areas can be accessed from outside the sub memory group, while the other sub memory areas can be accessed only within the sub memory group.

Aus der EP 0 381 167 A2 ist ein Verfahren zum Verwalten virtueller Speicherbereiche bekannt, die in Familien aufgeteilt sind.From the EP 0 381 167 A2 For example, a method is known for managing virtual memory areas that are divided into families.

Aufgabe der Erfindung ist es, eine Datenverarbeitungsanlage anzugeben, die bei der Abarbeitung der Befehle eines Programmsystems mit einer Vielzahl von Subsystemen einen fehlerfreien Betrieb gewährleistet und Änderungen im Programmsystem auf einfache Art und Weise gestattet. Diese Änderungen sollen unter Zuhilfenahme modernster Entwicklungstechniken und Programmiersprachen durchgeführt werden können.task The invention is to provide a data processing system, the in the execution of the commands of a program system with a variety Ensures error-free operation of subsystems and changes allowed in the program system in a simple manner. These changes should be using the latest development techniques and programming languages carried out can be.

Diese Aufgabe wird durch eine Datenverarbeitungsanlage gemäß Patentanspruch 1 gelöst.These Task is by a data processing system according to claim 1 solved.

Jedes Subsystem hat bei der Erfindung mindestens eine im wesentlichen gleichartig aufgebaute Vermittlungseinheit, die für das betreffende Subsystem oder einen Teil davon ein Verzeichnis enthält, welches auf im jeweiligen Subsystem enthaltene Softwarebausteine verweist. Zum Ausführen der besagten Funktion ruft das erste Subsystem die Vermittlungseinheit im zweiten Subsystem auf, und diese Vermittlungseinheit ruft mit Hilfe des in ihr enthaltenen Verzeichnisses den dieser Funktion zugeordneten Softwarebaustein auf. Die Vermittlungseinheit übernimmt dabei auch nötigenfalls die Aufgabe, die Verknüpfung zu einer anderen Entwicklungstechnik und Programmiersprache herzustellen. Nach dem Ausführen der Befehle dieses Softwarebausteins wird zum ersten Subsystem zurückgekehrt.each Subsystem in the invention has at least one substantially similarly structured switching unit, for the relevant Subsystem or part of it contains a directory which refers to software modules contained in the respective subsystem. To run of said function, the first subsystem calls the switching unit in the second subsystem, and this switch calls Help of the directory contained in it that of this function assigned software component. The switching unit takes over also if necessary the task, the linkage to make another development technique and programming language. After running The commands of this software component are returned to the first subsystem.

Die Erfindung geht von der Erkenntnis aus, daß Abhängigkeiten zwischen den Subsystemen unvermeidbar sind. So sind für eine Funktion eines ersten Subsystems auch Softwarebausteine, die Bestandteile anderer Subsysteme sind, aufzurufen und deren Befehle auszuführen. Werden die Abhängigkeiten aber übersichtlich realisiert, so können die oben beschriebenen Nachteile verhindert werden. Zu diesem Zweck hat bei der Erfindung jedes Subsystem mindestens eine im wesentlichen gleichartig aufgebaute Vermittlungseinheit. Die Aufrufe von Softwarebausteinen zwischen den Subsystemen erfolgen bei der Erfindung prinzipiell nur noch über die Vermittlungseinheiten. Damit stellen die Vermittlungseinheiten die hauptsächliche Schnittstelle zwischen den Subsystemen dar. Die Abhängigkeiten der Subsysteme sind somit gebündelt und überschaubar. Außerdem werden die Aufrufe zwischen Subsystemen vereinheitlicht und erfolgen bei der Erfindung bezüglich jeder Vermittlungseinheit auf gleiche Art und Weise. Dies ist möglich, da die Vermittlungseinheiten gleichartig aufgebaut sind.The The invention is based on the recognition that dependencies between the subsystems are unavoidable. So are for a function of a first subsystem also software modules that Components of other subsystems are to call and their commands perform. Become the dependencies but clear realized, so can the disadvantages described above are prevented. To this end In the invention, each subsystem has at least one substantially similarly structured switching unit. The calls of software components between the subsystems take place in the invention in principle only over the switching units. This is what the switching units provide the main one Interface between the subsystems. The dependencies the subsystems are thus bundled and manageable. In addition, will the calls between subsystems are unified and made of the invention each switching unit in the same way. This is possible because the switching units have a similar structure.

Aufrufe der Softwarebausteine eines Subsystems von außen, d.h. von anderen Subsystemen oder über Benutzerschnittstellen werden über die Vermittlungseinheit dieses gerufenen Subsystems ausgeführt. Nach außen hin kann dadurch die konkrete Realisierung einer bestimmten Funktion innerhalb des Subsystems verborgen bleiben. Damit kann das gerufene Subsystem geändert werden, ohne daß die Änderung nach außen, d.h. für rufende Subsysteme sichtbar werden muß. Insbesondere werden bei der Erfindung keine direkten Datenzugriffe von einem Subsystem in ein anderes Subsystem durchgeführt. Lesende und modifizierende Zugriffe auf Datenstukturen werden vielmehr durch Zugriffsfunktionen ersetzt, deren Befehle ebenfalls über die Vermittlungseinheit angesteuert werden. Die tatsächliche Realisierung des betreffenden Subsystems ist somit gegenüber der Umgebung, d.h. gegenüber den anderen Subsystemen verborgen. Innerhalb eines Subsystems können deshalb die Datenstrukturen frei gewählt und auch frei geändert werden, ohne daß auf rufende Subsysteme Rücksicht genommen werden muß. Diese Eigenschaft der Erfindung ist von besonderer Bedeutung, wenn innerhalb des Programmsystems oder innerhalb eines Subsystems im Laufe der Zeit zu moderneren Entwicklungstechniken übergegangen wird. So kann zum Beispiel innerhalb eines Subsystems schrittweise von einer prozeduralen Technik zu einer objektorientierten Technik übergegangen werden, wie sie z.B. mit der Sprache C++ möglich ist, ohne daß sogleich im gesamten Programmsystem Änderungen durchzuführen sind.Views the software building blocks of a subsystem from the outside, i. from other subsystems or via user interfaces are transmitted through the switching unit this called subsystem. Outwardly This can be the concrete realization of a specific function remain hidden within the subsystem. This can be the called Subsystem changed be without the change outward, i.e. For Calling subsystems must be visible. In particular, at the Invention no direct data access from a subsystem in a another subsystem. reading and modifying accesses to data structures are rather by Access functions replaced, whose commands also over the Switching unit to be controlled. The actual realization of the concerned Subsystem is thus opposite the environment, i. across from hidden from the other subsystems. Within a subsystem can therefore the data structures freely chosen and also changed freely be without calling on Subsystems consideration must be taken. This feature of the invention is of particular importance when within the program system or within a subsystem in the Over time, advanced to more modern development techniques becomes. For example, within a subsystem, it can be incremental from a procedural technique to an object-oriented technique be as they are e.g. with the language C ++ is possible without immediately throughout the program system changes perform are.

Jede Vermittlungseinheit greift bei der Erfindung auf ein Verzeichnis zu, welches auf im jeweiligen Subsystem enthaltene Softwarebausteine verweist. Dieses Verzeichnis hat bei der Erfindung die Aufgabe, einen einheitlichen Zugriff auf die verzeichneten Softwarebausteine zu gestatten. Während die Vermittlungseinheit, die ebenfalls als Befehlsfolge ausgeführt ist, gleichartig für alle Subsysteme aufgebaut ist, sind die konkreten Inhalte der jeweiligen Verzeichnisse von den konkreten verzeichneten Softwarebausteinen abhängig. Die Struktur der Verzeichnisse ist gleich, so daß gleichartig aufgebaute Befehlsfolgen der Vermittlungseinheiten verwendet werden können und in gleicher Weise auf das jeweilige Subsy stemverzeichnis zugreifen können. Durch diese Maßnahme wird erreicht, daß bei Erweiterungen oder Änderungen der über die Vermittlungseinheiten aufrufbaren Softwarebausteine zwar die Subsystemverzeichnisse zu ändern sind, die Befehlsfolgen der Vermittlungseinheiten jedoch nicht geändert werden müssen.In the invention, each switching unit accesses a directory which refers to software components contained in the respective subsystem. This directory has the invention in the Task to allow unified access to the listed software modules. While the switching unit, which is also executed as a command sequence, is constructed similarly for all subsystems, the concrete contents of the respective directories are dependent on the concrete software components listed. The structure of the directories is the same, so that similarly constructed command sequences of the switching units can be used and can access the same subdirectory directory in the same way. By this measure, it is achieved that in extensions or changes of the software modules which can be called via the switching units, the subsystem directories have to be changed, but the command sequences of the switching units do not have to be changed.

Zum Ausführen einer Funktion greift ein rufendes Subsystem auf die Vermittlungseinheit eines gerufenen Subsystems in der Weise zu, daß mit dem Ausführen der in der Vermittlungseinheit enthaltenen Befehlsfolge begonnen wird. Beim Ausführen dieser Befehlsfolge wird mit Hilfe des jeweiligen Subsystemverzeichnisses der für die Ausführung der Funktion benötigte Softwarebaustein ermittelt. Anschließend werden dessen Befehle ausgeführt. Der Zugriff ist somit einfach zu realisieren. Insbesondere wird die Vermittlungseinheit des rufenden Subsystems nicht benötigt, so daß Kommunikationsprozesse zwischen Vermittlungseinheiten entfallen.To the To run In one function, a calling subsystem accesses the switching unit a called subsystem in such a way that with the execution of the is started in the switching unit contained in the switching unit. When running This command sequence is determined using the respective subsystem directory the for execution needed the function Software component determined. Subsequently, its commands executed. The access is thus easy to realize. In particular, will the switching unit of the calling subsystem not needed, so that communication processes between switching units omitted.

Nach dem Ausführen der Befehle des Softwarebausteins wird in der Regel zum rufenden Subsystem zurückgekehrt. Das Zurückkehren kann mit oder ohne Verwenden der Vermittlungseinheit des gerufenen Systems und ohne Verwenden der Vermittlungseinheit des rufenden Systems erfolgen. Damit ist das Zurückkehren einfach und schnell.To the run The commands of the software component are usually the calling Subsystem returned. The return can with or without using the called party's switching unit Systems and without using the switching unit of the calling Systems take place. So returning is easy and fast.

Bei der Entwicklung, Dokumentation und Fehlerkorrektur können durch die Erfindung Entwicklungszeit, Rechenzeit und damit auch Kosten gespart werden, da eine Technik verwendet wird, bei der die Subsysteme im wesentlichen unabhängig voneinander erstellbar sind.at development, documentation and error correction can be done through the invention development time, computing time and therefore costs be saved as a technique is used in which the subsystems essentially independent can be created from each other.

In einem Ausführungsbeispiel der Erfindung erfolgen die Auswahl und der Aufruf der jeweiligen Vermittlungseinheit über ihren konventionierten Namen. Diese Namen sind Teil der Schnittstellenspezifikation und werden beim Binden des Programmsystems zu Adreßwerten aufgelöst, welche dann in Sprungbefehlen verwendet werden.In an embodiment The invention makes the selection and the call of the respective switching unit on their conventional name. These names are part of the interface specification and become address values when binding the program system resolved which are then used in jump instructions.

Gemäß der Erfindung erfolgt der Aufruf der Vermittlungseinheit unter Verwenden eines Übergabespeicherbereichs, der an einer Startadresse beginnt, die vorzugsweise an diese Vermittlungseinheit in einem Register des Prozessors übermittelt wird. In diesem Übergabespeicherbereich werden beim Aufruf einer Vermittlungseinheit Daten gespeichert, die es ermöglichen, auch bei Verwendung unterschiedlicher Versionen oder verschiedener Arten von Entwicklungstechniken nach einer Veränderung des Programmsystems für den Ablauf in den Vermittlungseinheiten denselben Binärcode zu verwenden. Wird eine Vermittlungseinheit parallel bzw. gleichzeitig mehrfach aufgerufen, so werden unterschiedliche Startadressen verwendet um ein Überschreiben der Übergabespeicherbereiche zu verhindern. Somit ist ein sogenannter Mehrfacheintritt in die Vermittlungseinheiten möglich.According to the invention the switching of the switching unit takes place using a transfer memory area, which starts at a start address, preferably to this switching unit in transmitted to a register of the processor becomes. In this transfer storage area When a switching unit is called, data is stored which make it possible even when using different versions or different Types of development techniques after a change in the program system for the Process in the switching units to the same binary code use. If a switching unit becomes parallel or simultaneous called several times, different start addresses are used overwriting the transfer storage areas to prevent. Thus, a so-called multiple entry into the Switching units possible.

Die Übergabe der Parameter an die aufzurufende Funktion erfolgt mit Hilfe des Übergabespeicherbereichs, welcher eine von den im ersten Subsystem und im zweiten Subsystem verwendeten Entwicklungstechniken und Programmiersprachen unabhängigen Aufbau besitzt.The handover the parameter to the function to be called is made with the help of the transfer memory area, which one of the first subsystem and the second subsystem used development techniques and programming languages independent construction has.

In einem weiteren Ausführungsbeispiel der Erfindung wird die Struktur des Übergabebereichs standardisiert. Sie besteht aus einem allgemeinen Teil, welcher zumindest teilweise von den Vermittlungseinheiten interpretiert wird, und einem speziellen Teil, welcher für die gerufene Funktion spezifisch ist und der nur vom Softwarebaustein interpretiert wird. Um die Abhängigkeiten in den Vermittlungseinheiten von Änderungen in den nachgelagerten Software-Bausteinen zu minimieren, sollte der allgemeine Teil möglichst klein gehalten werden. Falls es für eine Funktion mehrere Versionen des speziellen Teils gibt, kann dies über eine Versionsnummer aufgezeigt werden. Abhängig von dieser Versionsnummer kann der gerufene Softwarebaustein verschiedene Werte zur Startadresse addieren, um auf die Daten des Übergabespeicherbereichs zuzugreifen. Die Vermittlungseinheit soll Versionsabhängigkeiten nicht zur Kenntnis nehmen. Für den allgemeinen Teil gibt es nur eine Version. Die Versionsnummer gestattet es auch, bereits ausgelieferte Subsysteme ohne neues Compilieren und Linken über einen längeren Zeitraum zu verwenden, auch wenn es bereits neuere Versionen gibt. Dadurch kann der Nutzer der Subsysteme entscheiden, wann er für ein jeweiliges Subsystem eine neue Version verwenden möchte.In a further embodiment According to the invention, the structure of the transfer area is standardized. It consists of a general part, which at least partially is interpreted by the switching units, and a special one Part, which for the called function is specific and only the software component is interpreted. To the dependencies in the switching units of changes in the downstream To minimize software building blocks, the general part should be as possible kept small. If there are multiple versions for one feature of the special part, this can be indicated by a version number. Dependent From this version number, the called software component can different Add values to the start address to access the data of the transfer memory area access. The switching unit should have version dependencies do not take note. For the general part has only one version. The version number It also allows already delivered subsystems without recompiling and left over a longer one Period, even if there are already newer versions. This allows the user of the subsystems to decide when to go for a particular one Subsystem wants to use a new version.

Im allgemeinen Teil des Übergabespeicherbereich wird ein Namensdatum gespeichert, das den aufzurufenden Softwarebaustein nach Art eines Namens eindeutig kennzeichnet. Die, jeweilige Vermittlungseinheit kann anhand des Namensdatums feststellen, welcher Softwarebaustein aufgerufen werden soll. Da diese Daten standardisiert, immer an der selben Stelle relativ zur Startadresse gespeichert sind, braucht die Vermittlungseinheit nur diese Startadresse, um durch Addition eines vorgegebenen Werts auf die Namensdaten zuzugreifen.in the general part of the transfer memory area a name data is saved, which is the software component to be called clearly marked in the manner of a name. The, respective switching unit can use the name date to determine which software component should be called. Because these data are standardized, always on the same place are stored relative to the starting address needs the switching unit only this start address, by addition of a given value to access the name data.

In einem weiteren Ausführungsbeispiel der Erfindung wird im Subsystemverzeichnis ein Artkennzeichen gespeichert, dessen Wert die zum Erstellen des jeweiligen Softwarebausteins verwendete Entwicklungstechnik kennzeichnet. Der Zugriff auf den jeweiligen aufzurufenden Softwarebaustein erfolgt in einer durch die Befehlsfolge der Vermittlungseinheit definierten Art, abhängig vom Wert des Artkennzeichens. Die Erfindung berücksichtigt die Erkenntnis, daß es vorteilhaft ist, für die Entwicklung großer Programmsysteme je nach konkreter Funktion eines Softwarebausteins die jeweils zweckmäßigste Entwicklungstechnik zu verwenden. Insbesondere sollen im Laufe der Zeit entstehende neuere Entwicklungstechniken verwendbar sein. Deshalb wird bei diesem Ausführungsbeispiel das Artkennzeichen gespeichert. In diesem Artkennzeichen ist festgelegt, mit welcher Programmiertechnik und welcher Sprache inklusive Compilerversion die Befehle eines Softwarebausteins erstellt wurden.In a further embodiment the invention stores a type indicator in the subsystem directory, its value is the development technique used to create the respective software component features. Access to the respective software component to be called takes place in a through the command sequence of the switching unit defined type, dependent the value of the style mark. The invention takes into account the knowledge that it is advantageous for the development big Program systems depending on the specific function of a software component the most appropriate development technique to use. In particular, should arise over time newer development techniques can be used. That's why with this embodiment the style indicator is saved. In this type indicator is determined with which programming technique and which language including the compiler version the commands of a software component were created.

Mit Hilfe des Artkennzeichens und des sprachunabhängigen Aufbaus des Übergabespeicherbereichs ist es auf einfache Art und Weise möglich zwischen verschiedenen Entwicklungstechniken und Programmiersprachen umzuschalten. Damit übernimmt die Vermittlungseinheit eine Transformationsfunktion zwischen verschiedenen Entwicklungstechniken und Programmiersprachen in einem Programmsystem oder auch in einem Subsystem. Durch die Transformationsfunktion können z.B. bisher notwendige Kopiervorgänge von Übergabeparametern des Übergabespeicherbereichs oder eine Übergabe einer Vielzahl von Übergabeparametern in Registern des Prozessors entfallen. Als Entwicklungstechnik für die Softwarebausteine kann zum Beispiel eine prozedurale Programmiertechnik in der Sprache C und/oder eine objektorientierte Programmiertechnik in der Sprache C++ verwendet werden.With Help of type flag and language independent construction of transfer storage area is it possible in a simple way between different ones Switch development techniques and programming languages. With it takes over the switching unit has a transformation function between different ones Development techniques and programming languages in a program system or even in a subsystem. Through the transformation function can e.g. Previously necessary copying processes of transfer parameters of the transfer memory area or a handover a variety of transfer parameters in registers of the processor accounts. As a development technique for the software components For example, a procedural programming technique can be used in the language C and / or an object-oriented programming technique in the language C ++ can be used.

Durch das Artkennzeichen ist es möglich, in den Vermittlungseinheiten eine einheitliche Befehlsfolge zu verwenden. Abhängig vom Artkennzeichen wird beim Abarbeiten dieser Befehlsfolgen je nach Softwarebaustein unterschiedlich verzweigt.By the style indicator makes it possible to use in the switching units a uniform command sequence. Dependent The type tag is used when executing these command sequences Branched differently depending on the software component.

Werden beim Betreiben der DV-Anlage die Vermittlungseinheiten in einem Arbeitsspeicher ständig vorrätig gehalten, so müssen die Softwarebausteine eines gerufenen Subsystems erst dann in den Arbeitsspeicher kopiert werden, wenn das Subsystem aufgerufen wird. Durch diese Maßnahme läßt sich der meist begrenzte Arbeitsspeicher gut ausnutzen.Become when operating the computer system, the switching units in one Main memory all the time available kept, so must the software modules of a called subsystem only then into the main memory be copied when the subsystem is called. Through this measure let yourself Use the most limited memory well.

Vor dem Ausführen der Befehle eines gerufenen Softwarebausteins werden in einem weiteren Ausführungsbeispiel der Erfindung die im folgenden genannten Prüfschritte ausgeführt. Erstens wird geprüft, ob das zweite Subsystem momentan im Arbeitsspeicher der DV-Anlage gespeichert ist. Ist dies nicht der Fall, so wird das Subsystem z.B. von einer Festplatte in den Arbeitsspeicher kopiert. Das Kopieren kann entfallen, wenn das Subsystem bereits im Arbeitsspeicher gespeichert ist. In einem zweiten Prüfschritt beim Ausführen der Befehlsfolge der Vermittlungseinheit wird geprüft, ob der rufende Prozeß eine Kommunikationsverbindung zum gerufenen Subsystem hat. Diese Kommunikationsverbindung ist z.B. als Tabelle realisiert, mit deren Hilfe das betreffende Subsystem aus einem Prozeß aufgerufen werden kann. Wird im zweiten Prüfschritt festgestellt, daß eine Kommunikationsverbindung noch nicht besteht, so wird diese aufgebaut, so daß später die Befehle des gerufenen Softwarebausteins ausgeführt werden können. Ist eine Kommunikationsverbindung zum gerufenen Subsystem bereits vorhanden, so wird diese genutzt, womit ein zweiter Aufbau der Kommunikationsverbindung entfällt.In front the run the commands of a called software component are in a further embodiment the invention carried out in the following test steps. First is checked, whether the second subsystem currently in the main memory of the DV system is stored. If this is not the case, then the subsystem will be e.g. copied from a hard disk into the main memory. The copying may be omitted if the subsystem is already stored in memory is. In a second test step when running the command sequence of the switching unit is checked whether the calling process one Has a communication connection to the called subsystem. This communication connection is e.g. implemented as a table, with the help of which subsystem be called from a process can. Will in the second test step found that a Communication connection does not exist yet, then this is set up, so that later the Commands of the called software component can be executed. is a communication connection to the called subsystem already exists, so this is used, bringing a second structure of the communication link eliminated.

In einem dritten Prüfschritt wird geprüft, ob das gerufene Subsystem die gewünschte Funktionalität überhaupt anbietet, d.h., ob der über einen Namen bezeichnete Softwarebaustein im Verzeichnis der betreffenden Vermittlungseinheit verzeichnet ist. Ist dies nicht der Fall, so wird der Aufruf durch die Vermittlungseinheit mit einer entsprechenden Fehlermeldung zurückgewiesen.In a third test step is checked, whether the called subsystem has the desired functionality at all offers, that is, whether the over a name called software component in the directory of the respective Switching unit is listed. If this is not the case, then is the call by the switching unit with a corresponding Error message rejected.

In einem vierten Prüfschritt wird geprüft, ob der Softwarebaustein ordnungsgemäß initialisiert ist. Initialisiert bedeutet dabei, daß der Softwarebaustein in einem Anfangszustand ist, aus dem heraus er sofort ausgeführt werden kann. Zweckmäßigerweise wird der Anfangszustand nur dann hergestellt, wenn sich der Softwarebaustein noch nicht im Anfangszustand befindet, da so eine überflüssige Initialisierung vermieden wird.In a fourth test step is checked, whether the software module is initialized correctly. initializes means that the Software component is in an initial state, out of which he executed immediately can be. Appropriately, will the initial state is only established when the software component not yet in the initial state, since such a superfluous initialization avoided becomes.

Die genannten Prüfschritte ermöglichen es, Fehler frühzeitig zu erkennen und gegebenenfalls zu beseitigen. Somit ist ein sicheres Betreiben der DV-Anlage möglich. Durch die Prüfschritte wird außerdem erreicht, daß bereits durchgeführte Schritte nicht unnötig wiederholt werden. The mentioned test steps enable it, mistakes early and, if necessary, eliminate it. Thus, a safe Operating the computer system possible. Through the test steps will also achieved that already conducted Do not step unnecessarily be repeated.

Die Erfindung ermöglicht es, Abhängigkeiten in bereits bestehenden Programmsystemen zu verringern oder aber Abhängigkeiten, welche eine spätere Weiterentwicklung behindern könnten, beim Erstellen des Programmsystems von vorn herein zu vermeiden.The Invention allows it, dependencies in already existing program systems or dependencies, which one later Could hinder further development, when creating the program system from the beginning to avoid.

Die beschriebenen Wirkungen der Erfindung treten um so mehr hervor, je mehr Teile des Programmsystems in Subsystemen realisiert sind, denen jeweils mindestens eine Vermittlungseinheit zugeordnet ist.The described effects of the invention are the more apparent the more parts of the program system are implemented in subsystems, each of which at least one switching unit is assigned.

In einem weiteren Ausführungsbeispiel der Erfindung werden die Vermittlungseinheiten bzw. die Schnittstellen des Programmsystems klassifiziert nach Vermittlungseinheiten bzw. Schnittstellen, die von jedem Subsystem, von einigen Subsystemen oder nur von dem zugehörigen Subsystems aus aufrufbar sind. Mit Hilfe dieser Klassifizierung ist es möglich, die Abhängigkeiten der Subsysteme voneinander je nach Klasse in einem vorgegebenen Rahmen zu halten.In a further embodiment of the According to the invention, the switching units or the interfaces of the program system are classified according to switching units or interfaces which can be called up by each subsystem, by some subsystems or only by the associated subsystem. With the help of this classification, it is possible to keep the dependencies of the subsystems on a given framework, depending on the class.

Ausführungsbeispiele der Erfindung werden im folgenden anhand der Zeichnungen erläutert. Darin zeigen:embodiments The invention will be explained below with reference to the drawings. In this demonstrate:

1 wesentliche elektronische Funktionseinheiten einer DV-Anlage mit mehreren Prozessoren, 1 essential electronic functional units of a multi-processor computer system,

2 eine schematische Darstellung der Reihenfolge des Ausführens von Befehlen verschiedener Subsysteme, 2 a schematic representation of the order of execution of commands of various subsystems,

3 eine schematische Darstellung der in zwei Subsystemen enthaltenen Softwarebausteine, 3 a schematic representation of the software components contained in two subsystems,

4 eine schematische Darstellung eines Übergabespeicherbereichs und einer Vermittlungseinheit, 4 a schematic representation of a transfer storage area and a switching unit,

5 eine Darstellung einer Befehlsfolge, bei deren Abarbeiten die Vermittlungseinheit aufgerufen wird, und 5 a representation of a command sequence, in the execution of which the switching unit is called, and

6A und 6B Flußdiagramme für die Schritte, die in der Vermittlungseinheit ausgeführt werden. 6A and 6B Flowcharts for the steps performed in the switch.

1 zeigt wesentliche elektronische Funktionseinheiten einer Datenverarbeitungsanlage 10, im folgenden kurz DV-Anlage genannt. Diese DV-Anlage 10 enthält zwei Zentralprozessoren 12 und 13, die über Leitungen 14 bzw 15 mit einem Ein-/Ausgabeprozessor 16 verbunden sind. Die Zentralprozessoren 12, 13 sind gleichartig aufgebaut und jeweils über Leitungen 17 bzw. 18 mit einem Arbeitsspeicher 20 verbunden. Der Ein-/Ausgabeprozessor 16 ist mit dem Arbeitsspeicher 20 über Leitungen 19 verbunden. Über Leitungen 22 ist mit dem Ein-/Ausgabeprozessor 16 ein Festplattenspeicher 24 mit zugehöriger Steuerung verbunden, in dem das Betriebssystem BS der DV-Anlage 10 gespeichert ist. Das Betriebssystem BS hat u.a. die Aufgabe, das Ausführen von Anwendungsprogrammen auf den Zentralprozessoren 12, 13 zu verwalten. Bei Bedarf werden vom Festplattenspeicher 24 Teile des Betriebssystems BS in den Arbeitsspeicher 20 kopiert, um dort von einem oder mehreren Zentralprozessoren 12, 13 ausgeführt zu werden. Im Festplattenspeicher 24 sind auch Anwendungsprogramme und -daten gespeichert. 1 shows essential electronic functional units of a data processing system 10 , in the following called DV system. This DV system 10 contains two central processors 12 and 13 passing through lines 14 respectively 15 with an input / output processor 16 are connected. The central processors 12 . 13 are of similar construction and in each case via lines 17 respectively. 18 with a working memory 20 connected. The input / output processor 16 is with the working memory 20 via lines 19 connected. Via cables 22 is with the input / output processor 16 a hard disk space 24 associated with associated control, in which the operating system BS of the DV system 10 is stored. The operating system BS has, among other things, the task of executing application programs on the central processors 12 . 13 manage. If necessary, the disk space 24 Parts of the operating system BS in the main memory 20 copied to there by one or more central processors 12 . 13 to be executed. In hard disk space 24 also application programs and data are stored.

Der Ein-/Ausgabeprozessor 16 ist über Leitungen 25 mit einer Schnittstelle 26 verbunden. An die Schnittstelle könnte periphere Geräte angeschlossen werden, wie z.B. weitere Festplat ten, Bänder zum Speichern digitaler Daten oder Drucker. In der 1 sind an die Schnittstelle 26 über Leitungen 28 Ein-/Ausgabegeräte 30 bis 34 angeschlossen. Jedes der Ein-/Ausgabegeräte 30 bis 34 hat einen Bildschirm zum Anzeigen von Daten und eine Tastatur zum Eingeben von Daten. Die Ein-/Ausgabegeräte 30 bis 34 werden u.a. zum Ausführen der Anwendungsprogramme sowie zum Einrichten und zur Pflege des Betriebssystems BS verwendet.The input / output processor 16 is via lines 25 with an interface 26 connected. Peripheral devices could be connected to the interface, such as other hard disks, tapes for storing digital data or printers. In the 1 are at the interface 26 via lines 28 Input / output devices 30 to 34 connected. Each of the input / output devices 30 to 34 has a screen for displaying data and a keyboard for entering data. The input / output devices 30 to 34 are used, among other things, for executing the application programs and for setting up and maintaining the operating system BS.

Als Betriebssystem BS wird das Betriebssystem BS2000/OSD Version 1.0 der Firma SIEMENS NIXDORF INFORMATIONSSYSTEME AG verwendet. Dieses Betriebssystem BS enthält mehr als fünf Millionen Befehle, und seine ältesten Softwarebausteine wurden bereits vor etwa 20 Jahren erstellt. Das Betriebssystem BS ist in mehrere Subsysteme unterteilt, denen jeweils bestimmte Funktionen zugeordnet sind. Diese Funktionen sind u.a. die Verwaltung des Arbeitspeichers 20, die Verwaltung der Zentralprozessoren 12, 13; die Verwaltung der Ein- und Ausgaben sowie die Dateiverarbeitung in der DV-Anlage 10.As operating system BS the operating system BS2000 / OSD version 1.0 of the company SIEMENS NIXDORF INFORMATIONSSYSTEME AG is used. This OS includes more than five million commands, and its oldest software building blocks were created about 20 years ago. The operating system BS is subdivided into several subsystems, each of which has certain functions assigned to it. These functions include the management of the working memory 20 , the administration of the central processors 12 . 13 ; the administration of the inputs and outputs as well as the file processing in the DV system 10 ,

2 zeigt eine schematische Darstellung der Reihenfolge der Ausführung von Befehlen verschiedener Subsysteme. Im Arbeitsspeicher 20 sind drei Subsysteme 50 bis 54 des Betriebssystems BS gespeichert. Das Subsystem 50 definiert Funktionen der DV-Anlage 10, die beim Zugriff auf Dateien verwendet werden. Das Subsystem 52 definiert Funktionen zum Starten und Beenden von Befehlsfolgen auf den Zentralprozessoren 12, 13. Das Subsystem 54 definiert Funktionen, die für das Verwalten des Festplattenspeichers 24 benötigt werden. 2 shows a schematic representation of the order of execution of commands of various subsystems. In memory 20 are three subsystems 50 to 54 of the operating system BS stored. The subsystem 50 defines functions of the DV system 10 that are used when accessing files. The subsystem 52 defines functions for starting and stopping commands on the central processors 12 . 13 , The subsystem 54 defines functions necessary for managing the disk space 24 needed.

Jedes Subsystem 50, 52 bzw. 54 enthält einen Vermittlungsbaustein 60, 62 bzw. 64. Der Vermittlungsbaustein 60 enthält eine Befehlsfolge, die Vermittlungseinheit VE1 genannt wird. Außerdem enthält der Vermittlungsbaustein 60 ein Verzeichnis VZ1, das anhand der 4 weiter unten näher erläutert wird. Die Vermittlungsbausteine 62 bzw. 64 enthalten jeweils eine Befehlsfolge, die Vermittlungseinheit VE2 bzw. Vermitt lungseinheit VE3 genannt wird. Die Vermittlungseinheiten VE1, VE2 und VE3 sind identisch aufgebaut bzw. strukturiert. Außerdem enthält der Vermittlungsbaustein 62 bzw. der Vermittlungsbaustein 64 ein Verzeichnis VZ2 bzw. ein Verzeichnis VZ3, mit dem anhand der 4 weiter unten erläuterten Aufbau.Every subsystem 50 . 52 respectively. 54 contains a switching module 60 . 62 respectively. 64 , The switching module 60 contains a command sequence called the exchange unit VE1. In addition, the switching module contains 60 a directory VZ1, which is based on the 4 will be explained in more detail below. The switching modules 62 respectively. 64 each contain a command sequence, the switching unit VE2 or mediation unit VE3 is called. The switching units VE1, VE2 and VE3 are structured identically or structured. In addition, the switching module contains 62 or the switching module 64 a directory VZ2 or a directory VZ3, with the basis of 4 explained below construction.

In jedem der Subsysteme 50 bis 54 sind eine Vielzahl von Softwarebausteinen enthalten. Davon sind in 2 ein Softwarebaustein 70 des Subsystems 50, ein Softwarebaustein 72 des Subsystem 52 und zwei Softwarebausteine 74 und 76 des Subsystems 54 dargestellt. Als Softwarebaustein wird eine Befehlsfolge bezeichnet, die eine bestimmte Funktion realisiert in einer bestimmten Entwicklungstechnik erstellt wurde und die im jeweiligen Verzeichnis VZ1, VZ2 bzw. VZ3 eingetragen ist. Die Softwarebausteine 70 bis 76 wurden mit einer prozeduralen Entwicklungstechnik in C erstellt. Alternativ können auch andere Programmiersprachen verwendet werden, z.B. Assembler.In each of the subsystems 50 to 54 are a variety of software components included. From that are in 2 a software component 70 of the subsystem 50 , a software component 72 of the subsystem 52 and two software modules 74 and 76 of the subsystem 54 shown. As a software component, a command sequence is called, which was created a specific function realized in a particular development technique and which is registered in the respective directory VZ1, VZ2 or VZ3. The software components 70 to 76 were created with a procedural development technique in C. Alternatively, other programming languages can be used, eg assembler.

Soll zum Beispiel durch das Betriebssystem BS eine Datei erstellt werden, so müssen die Befehle des Softwarebausteins 70 ausgeführt werden. Beginnend mit einem Startbefehl (Pfeil 80) werden die Befehle des Softwarebausteins 70 durch einen der Zentralprozessoren 12, 13 ausgeführt – dargestellt durch Pfeile 80 und 82. Da zum Erstellen der Datei auch Speicherplatz im Festplattenspeicher 24 bereitgestellt werden muß, diese Funktion aber im Subsystem 54 definiert ist, ist ein Verzweigen vom Subsystem 50 zum Subsystem 54 notwendig. Diese Verzweigung erfolgt durch einen Sprungbefehl im Softwarebaustein 70 (Pfeil 84). Die Ausführung des Sprungbefehls bewirkt, daß der Zentralprozessor 12, 13 zum Vermittlungsbaustein 64 verzweigt und dort mit der Ausführung der Befehlsfolge der Vermittlungseinheit VE3 beginnt. Beim Ausführen der Befehle der Vermittlungseinheit VE3 bereitet diese den Aufruf des benötigten Softwarebausteins 74 unter Verwendung des Verzeichnisses VZ3 vor (Pfeil 86). Die Verfahrensschritte in der Vermittlungseinheit VE3 werden weiter unten anhand der 6A und 6B erläutert.If, for example, a file is to be created by the operating system BS, then the commands of the software component must 70 be executed. Starting with a start command (arrow 80 ) are the commands of the software component 70 through one of the central processors 12 . 13 executed - represented by arrows 80 and 82 , Because to create the file also disk space 24 must be provided, but this function in the subsystem 54 is a branching from the subsystem 50 to the subsystem 54 necessary. This branch is made by a jump command in the software block 70 (Arrow 84 ). The execution of the jump instruction causes the central processor 12 . 13 to the switching module 64 branches and begins there with the execution of the command sequence of the switching unit VE3. When executing the commands of the switching unit VE3 this prepares the call of the required software block 74 using the directory VZ3 before (arrow 86 ). The method steps in the switching unit VE3 are described below on the basis of 6A and 6B explained.

Hat die Vermittlungseinheit VE3 den Aufruf des Softwarebausteins 74 vorbereitet, so erfolgt ein Sprung zum Start des Softwarebausteins 74 (Pfeil 88). Der Zentralprozessor 12, 13 beginnt mit dem Ausführen der Befehle des Softwarebausteins 74 und arbeitet diese ab, wobei Speicherplatz für die zu erstellende Datei bereitgestellt wird (Pfeil 90). Anschließend erfolgt ein Rücksprung zu einer Rücksprungadresse im Softwarebaustein 70 (Pfeil 92). Diese Rücksprungadresse befindet sich unmittelbar hinter dem Sprungbefehl, mit dem zur Vermittlungseinheit VE3 verzweigt wurde. Durch Ausführen weiterer Befehle des Softwarebausteins 70 wird das Erstellen der Datei anschließend beendet (Pfeil 94).Does the switching unit VE3 the call of the software component 74 prepared, a jump takes place to the start of the software module 74 (Arrow 88 ). The central processor 12 . 13 starts by executing the commands of the software component 74 and process them, providing space for the file to be created (arrow 90 ). This is followed by a return to a return address in the software block 70 (Arrow 92 ). This return address is located immediately after the jump instruction with which branching was made to the switching unit VE3. By executing further commands of the software component 70 then the creation of the file is terminated (arrow 94 ).

Die Befehlsfolge der Vermittlungseinheit VE3 wird immer dann ausgeführt, wenn das Subsystem 54 ein gerufenes Subsystem ist, d.h. wenn auf Anforderung eines der Subsysteme 50 oder 52 ein Softwarebaustein 74, 76 des Subsystems 54 auszuführen ist. Zum Beispiel ist beim Ausführen des Softwarebausteins 72 im Subsystem 52 eine Funktion notwendig, die im Softwarebaustein 76 des Subsystems 54 definiert ist. Folglich wird beim Ausführen des Subsystems 72 die Vermittlungseinheit VE3 aufgerufen (Strichlinienpfeil 96).The command sequence of the switching unit VE3 is always executed when the subsystem 54 is a called subsystem, ie if requested by one of the subsystems 50 or 52 a software component 74 . 76 of the subsystem 54 is to execute. For example, when running the software component 72 in the subsystem 52 a function necessary in the software component 76 of the subsystem 54 is defined. Consequently, when running the subsystem 72 the switching unit VE3 called (dashed line arrow 96 ).

Auch vom Subsystem 54 aus können Softwarebausteine 70, 72 im Subsystem 50 bzw. 52 aufgerufen werden. Ein Strichlinienpfeil 98 zeigt einen Aufruf der Vermittlungseinheit VE1 des Subsystems 50 durch das Subsystem 54 beim Ausführen des Softwarebausteins 76. Anhand der 2 wird somit deutlich, daß durch die Erfindung die Aufrufe zwischen den Subsystemen 50 bis 54 an den Vermittlungsbausteinen 60 bis 64 gebündelt werden (z.B. Pfeile 84 und 96), d.h., daß die Aufrufe zwischen den Subsystemen 50 bis 54 prinzipiell nur über die Vermittlungsbausteine 60 bis 64 erfolgen. Dies gilt auch für Zugriffe auf Datenstrukturen. Die jeweilige Vermittlungseinheit VE1, VE2 bzw. VE3 verteilt die Aufrufe dann innerhalb des gerufenen Subsystems 50, 52 bzw. 54. Wie diese Verteilung realisiert wird, ist für das rufende Subsystem 50 bis 54 nicht sichtbar. Jedes Subsystem 50 bis 54 kann somit unabhängig von den anderen Subsystemen 50 bis 54 erstellt und verändert werden, wenn bestimmte Vorgaben bzw. Standards bezüglich der Vermittlungsbausteine 60 bis 64 eingehalten werden. Ein Beispiel für eine solche Vorgabe ist der folgenden Beschreibung zu entnehmen. Die jeweilige Vorgabe hängt vom konkreten Zweck des betreffenden Programmsystems ab und wird vorzugsweise so gewählt, daß später Erweiterungen leicht durchgeführt werden können.Also from the subsystem 54 out can software blocks 70 . 72 in the subsystem 50 respectively. 52 be called. A dashed line arrow 98 shows a call to the switching unit VE1 of the subsystem 50 through the subsystem 54 when executing the software component 76 , Based on 2 Thus it becomes clear that the calls between the subsystems 50 to 54 at the switching modules 60 to 64 bundled (eg arrows 84 and 96 ), that is, the calls between the subsystems 50 to 54 in principle only via the switching modules 60 to 64 respectively. This also applies to accesses to data structures. The respective switching unit VE1, VE2 or VE3 then distributes the calls within the called subsystem 50 . 52 respectively. 54 , How this distribution is realized is for the calling subsystem 50 to 54 not visible. Every subsystem 50 to 54 can thus be independent of the other subsystems 50 to 54 be created and changed if certain guidelines or standards regarding the switching modules 60 to 64 be respected. An example of such a specification can be found in the following description. The respective specification depends on the specific purpose of the relevant program system and is preferably chosen so that later extensions can be easily performed.

Beim Aufruf von Softwarebausteinen 70 bis 76 mit Hilfe der Vermittlungsbausteine 60 bis 64 werden Übergabespeicherbereiche 97 und 99 verwendet, die bei jedem Aufruf an verschiedenen Adressen im Arbeitsspeicher 20 beginnen können. Der Übergabespeicherbereich 97 beginnt z.B. an einer Adresse ADR0. Sein Aufbau wird unten anhand des Teiles a der 4 erläutert.When calling software modules 70 to 76 with the help of the switching modules 60 to 64 become transfer memory areas 97 and 99 used on each call to different addresses in memory 20 can start. The transfer storage area 97 starts, for example, at an address ADR0. Its construction is described below on the basis of part a 4 explained.

3 zeigt eine detailliertere schematische Darstellung der Subsysteme 50 und 54. Im Subsystem 50 sind neben dem genannten Softwarebaustein 70 weitere Softwarebausteine 100 und 102 enthalten, die jedoch in der objektorientierten Entwicklungstechnik in der Sprache C++ erstellt wurden, deren compilierte Befehle im Arbeitsspeicher 20 abgelegt sind. Die Verwendung der objektorientierten Entwicklungstechnik hat mehrere Vorzüge. Zu diesen Vorzügen gehören zum Beispiel Datenkapselung, Vererbung und Überladen von Operatoren. Außerdem sind im Subsystem 50 Softwarebausteine enthalten, z.B. der Softwarebaustein 70, die in der prozeduralen Entwicklungstechnik erstellt wurden. Hierfür können z.B. Compiler für die Sprachen C, C++, SPL (Derivat von PL/I der SIEMENS NIXDORF INFORMATIONSSYSTEME AG), Assembler oder auch Interpreter verwendet werden. Die Softwarebausteine, von denen nur der Softwarebaustein 70 eingezeichnet ist, die in der prozeduralen Entwicklungstechnik erstellt wurden, sind in einem Block 104 zusammengefaßt. Durch den Vermittlungsbaustein 60 werden durch einen Pfeil 120 angedeutete Aufrufe zum Softwarebaustein 100, Aufrufe (Pfeil 122) zum Softwarebaustein 102 und Aufrufe (Pfeil 124) zu den im Block 104 zusammengefaßten Softwarebausteinen 70 vermittelt. 3 shows a more detailed schematic representation of the subsystems 50 and 54 , In the subsystem 50 are next to the mentioned software component 70 further software modules 100 and 102 However, they were created in object-oriented development engineering in the C ++ language, whose compiled commands are in memory 20 are stored. The use of object-oriented development technology has several advantages. These benefits include, for example, data encapsulation, inheritance, and operator overloading. Besides, in the subsystem 50 Software modules contain, for example, the software component 70 that were created in the procedural development technique. Compilers for the languages C, C ++, SPL (derivative of PL / I from SIEMENS NIXDORF INFORMATIONSSYSTEME AG), assembler or interpreter can be used for this purpose. The software components, of which only the software component 70 turned that were created in the procedural development technique are in one block 104 summarized. Through the switching module 60 be by an arrow 120 indicated calls to the software component 100 , Calls (arrow 122 ) to the software component 102 and calls (arrow 124 ) to those in the block 104 combined software components 70 taught.

Beim Ausführen der Befehle des Softwarebausteins 100 wird mindestens ein Softwarebaustein des Subsystems 54 aufgerufen (Pfeil 150). Ein solcher Aufruf zwischen zwei Subsystemen 50, 54 wird im folgenden auch als externer Aufruf bezeichnet. Außerdem werden durch den Softwarebaustein 100 weitere nicht dargestellte Softwarebausteine des Subsystems 50 intern aufgerufen, d.h. innerhalb des Subsystems 50 (Pfeile 152) . Auch der Softwarebaustein 102 ruft intern weitere Softwarebausteine des Subsystems 50 auf (Pfeile 154). Beim Abarbeiten eines Softwarebausteins des Blocks 104 wird mindestens ein Softwarebaustein des Subsystems 54 extern aufgerufen (Pfeil 84).When executing the commands of the software component 100 becomes at least one software component of the subsystem 54 called (arrow 150 ). Such a call between two subsystems 50 . 54 is also referred to as external call in the following. In addition, through the software component 100 further software modules, not shown, of the subsystem 50 called internally, ie within the subsystem 50 (arrows 152 ). Also the software component 102 calls internally further software components of the subsystem 50 on (arrows 154 ). When processing a software block of the block 104 becomes at least one software component of the subsystem 54 called externally (arrow 84 ).

Im Subsystem 54 sind neben den bereits genannten Softwarebausteinen 74 und 76 Softwarebausteine 106 und 108 enthalten, die in der objektorientierten Entwicklungstechnik erstellt wurden. In einem Block 110 sind die Softwarebausteine, z.B. 74, 76 enthalten, die in der prozeduralen Entwicklungstechnik erstellt wurden. Der Vermittlungsbaustein 64 vermittelt Aufrufe zum Softwarebaustein 106 (Pfeil 126), zum Softwarebaustein 108 (Pfeil 128) und zu den im Block 110 zusammengefaßten Softwarebausteinen 74 und 76 (Pfeil 130).In the subsystem 54 are in addition to the already mentioned software components 74 and 76 software modules 106 and 108 contained in the object-oriented development technique. In a block 110 are the software components, eg 74 . 76 contained in the procedural development technique. The switching module 64 conveys calls to the software component 106 (Arrow 126 ), to the software component 108 (Arrow 128 ) and to those in the block 110 combined software components 74 and 76 (Arrow 130 ).

Beim Ausführen der Befehle des Softwarebausteins 106 bzw. beim Ausführen von im Block 110 enthaltenen Softwarebausteinen 74, 76 werden auch Softwarebausteine des Subsystems 50 aufgerufen. Zwei dieser externen Aufrufe sind durch Pfeile 98 und 156 in der 3 angedeutet. Außerdem können beim Ausführen der Befehle des Softwarebausteins 106 weitere Softwarebausteine des Subsystems 54 intern aufgerufen werden (Pfeile 158). Auch der Softwarebaustein 108 ruft intern weitere Softwarebausteine des Subsystems 54 auf (Pfeile 160). Beim Ausführen der Befehle des Softwarebausteins 108 erfolgt ein weiterer interner Aufruf zu einem der prozeduralen Softwarebausteine 74, 76 (Pfeil 162).When executing the commands of the software component 106 or when executing in the block 110 contained software blocks 74 . 76 also become software components of the subsystem 50 called. Two of these external calls are by arrows 98 and 156 in the 3 indicated. In addition, when executing the commands of the software component 106 Further software components of the subsystem 54 be called internally (arrows 158 ). Also the software component 108 calls internally further software components of the subsystem 54 on (arrows 160 ). When executing the commands of the software component 108 another internal call is made to one of the procedural software modules 74 . 76 (Arrow 162 ).

Ein Pfeil 164 symbolisiert einen internen Aufruf im Subsystem 54, bei dem ein prozeduraler Softwarebaustein 74, 76 einen objektorientierten Softwarebaustein 106, 108 desselben Subsystems 54 aufruft. Bei diesem Aufruf wird die Transformatoreigenschaft bzgl. verschiedener Entwicklungstechniken des Vermittlungsbausteins 64 des Subsystems 54 verwendet. Die Transformatoreigenschaft wird dabei über ein weiter unten anhand der 4 erläutertes Artkennzeichen realisiert. Das bedeutet letztlich, daß der interne Aufruf wie ein externer Aufruf behandelt wird. Normalerweise ist es nicht möglich, abgesehen von hybriden Programmiersprachen wie C++, daß ein prozeduraler Software-Baustein einen objektorientierten Software-Baustein aufruft. Bei dem hier erläuterten Ausführungsbeispiel der Erfindung ist dies jedoch möglich.An arrow 164 symbolizes an internal call in the subsystem 54 in which a procedural software component 74 . 76 an object-oriented software component 106 . 108 same subsystem 54 calls. In this call, the transformer property is related to various development techniques of the switching module 64 of the subsystem 54 used. The transformer property is about a below based on the 4 illustrated type identification realized. This ultimately means that the internal call is treated like an external call. Normally, apart from hybrid programming languages such as C ++, it is not possible for a procedural software building block to call an object-oriented software building block. In the illustrated embodiment of the invention, however, this is possible.

Ein Adreßwert ADR1 kennzeichnet in der 3 die Anfangsadresse des Vermittlungsbausteins 64 im Arbeitsspeicher 20. Außerdem beginnt am Adreßwert ADR1 die Befehlsfolge für die Vermittlungseinheit VE3, die unten anhand der 6A und 6B weiter beschrieben wird.An address value ADR1 denotes in the 3 the start address of the switching module 64 in memory 20 , In addition, the instruction sequence for the switching unit VE3, which is described below on the basis of the 6A and 6B will be described further.

4 zeigt in einem Teil a eine schematische Darstellung des Übergabespeicherbereichs 97 und in einem Teil b eine schematische Darstellung des Vermittlungsbausteins 64. Der Übergabespeicherbereich 99 gemäß 2 ist ebenfalls wie der Übergabespeicherbereich 97 strukturiert, beginnt jedoch an einer anderen Adresse im Arbeitsspeicher 20 und enthält andere Daten. Der Übergabespeicherbereich 97 hat einen allgemeinen Teil 200 auf den die Vermittlungseinheit VE1 bis VE3 zugreift. Der allgemeine Teil 200 wird immer in der gleichen Weise unabhängig vom gerufenen Softwarebaustein interpre tiert. Außerdem enthält der Übergabespeicherbereich 97 einen spezifischen Teil 201, auf den beim Ausführen des gerufenen Softwarebausteins zugegriffen wird. Der spezifische Teil 201 kann dabei abhängig vom jeweils gerufenen Softwarebaustein und von einer weiter unten noch erläuterten Versionsnummer 204 auf unterschiedliche Weise interpretiert werden. Der Übergabespeicherbereich 97 beginnt im Arbeitsspeicher 20 an der Adresse ADR0, an der ein Softwarebausteinname 202 gespeichert wird, der den aufzurufenden Softwarebaustein nach Art eines Namens eindeutig kennzeichnet. 4 shows in a part a a schematic representation of the transfer memory area 97 and in part b a schematic representation of the switching module 64 , The transfer storage area 99 according to 2 is also like the transfer memory area 97 structured, but starts at a different address in memory 20 and contains other data. The transfer storage area 97 has a general part 200 to which the switching unit VE1 to VE3 accesses. The general part 200 is always interpreted in the same way regardless of the called software component. In addition, the transfer memory area contains 97 a specific part 201 , which is accessed when executing the called software component. The specific part 201 can depend on the respectively called software component and on a version number explained below 204 be interpreted in different ways. The transfer storage area 97 starts in memory 20 at the address ADR0, at which a software module name 202 is stored, which uniquely identifies the software component to be called in the manner of a name.

In einer auf die Speicherzelle mit der Adresse ADR0 folgenden Speicherzelle mit der Adresse ADR0+1 ist die Versionsnummer 204 gespeichert, die den Aufbau des spezifischen Teils des Übergabespeicherbereichs 97 eindeutig kennzeichnet. In einer darauf folgenden Speicherzelle mit einer Adresse ADR0+2 wird ein Fehlername 206 gespeichert; falls der Aufruf des jeweils gerufenen Softwarebausteins nicht fehlerfrei abläuft oder die Vermittlungseinheit einen Fehler erkannt hat (vgl. 6), kennzeichnet der Fehlername 206 die Art des aufgetretenen Fehlers.In a memory cell having the address ADR0 + 1 following the memory cell having the address ADR0 is the version number 204 stored, the structure of the specific part of the transfer memory area 97 clearly identifies. In a subsequent memory cell with an address ADR0 + 2 becomes an error name 206 saved; if the call of the respectively called software component does not run without error or the switching unit has detected an error (cf. 6 ), indicates the error name 206 the type of error that has occurred.

In einer weiteren Speicherzelle mit der Adresse ADR0+3, die drei Speicherplätze von der Adresse ADR0 entfernt ist, wird ein Prozeßname 208 gespeichert, welcher den Prozeß kennzeichnet, in dem das gerufene Subsystem ablaufen soll. Der Softwarebausteinname 202, die Versionsnummer 204, der Fehlername 206 und der Prozeßname 208 gehören zum allgemeinen Teil 200 des Übergabespeicherbereichs 97.In another memory cell with the address ADR0 + 3, which is three memory locations away from the address ADR0, becomes a process name 208 stored, which identifies the process in which the called subsystem is to run. The software component name 202 , the version number 204 , the error name 206 and the process name 208 gehö to the general part 200 of the transfer storage area 97 ,

Beginnend mit der folgenden Speicherzelle an einer Adresse ADR0+4 werden spezifische Übergabewerte 210 gespeichert, die beim Ausführen des jeweils gerufenen Softwarebausteins benötigt werden. Außerdem können beginnend ab der Speicherzelle mit der Adresse ADR0+4 Ergebniswerte gespeichert werden, die beim Ausführen des gerufenen Softwarebausteins berechnet wur den. Die Nutzung des Übergabespeicherbereichs 97 wird anhand der 5 weiter unten an einem Beispiel erläutert.Starting with the following memory cell at an address ADR0 + 4 will be specific transfer values 210 stored, which are required when executing the respectively called software component. In addition, starting from the memory cell with the address ADR0 + 4, result values can be stored which were calculated when the called software component was executed. The use of the transfer memory area 97 is determined by the 5 explained below using an example.

Teil b der 4 zeigt den Vermittlungsbaustein 64. Beginnend ab der Startadresse ADR1 sind die Befehle der Vermittlungseinheit VE3 gespeichert. Das durch diese Befehle definierte Verfahren wird wie bereits erwähnt, unten anhand der 6A und 6B erläutert.Part b of the 4 shows the switching module 64 , Starting from the start address ADR1, the commands of the switching unit VE3 are stored. The method defined by these commands is, as already mentioned, below using the 6A and 6B explained.

Beginnend an einer Adresse ADR2 des Arbeitsspeichers 20 liegt das Verzeichnis VZ3. Das Verzeichnis VZ3 wird im Anschluß an das Laden des Subsystems 54 in den Arbeitsspeicher 20 mit konkreten Werten belegt (vgl. Schritt 402 der 6A). Im Teil b der 4 sind drei Verzeichniseinträge 220, 250 und 270 mit gleicher Struktur dargestellt. Als erstes ist jeweils ein Eintragsname 222, 252 bzw. 272 gespeichert, welcher den jeweils verzeichneten Softwarebaustein nach Art eines Namens kennzeichnet. Danach wird jeweils ein Prozeßname 224, 254 bzw. 274 gespeichert, der durch das Betriebssystem BS spezifiziert wird und einen Prozeß bezeichnet, in dem der jeweilige Softwarebaustein ablaufen soll. In einem weiteren Feld der Verzeichniseinträge 220, 250 bzw. 270 werden Artkennzeichen 226, 256 bzw. 276 zum Kennzeichen des jeweiligen Softwarebausteins bezüglich Entwicklungstechnik und Programmiersprache gespeichert. In den sich daran anschließenden Feldern des jeweiligen Verzeichnisses 220, 250, 270 werden je nach Artkennzeichen 226, 256 bzw. 276 sogenannte artspezifische Daten 228, 258 bzw. 278 sowie artspezifische Daten 230, 260 bzw. 280 gespeichert.Starting at an address ADR2 of the working memory 20 is the directory VZ3. The directory VZ3 is following the loading of the subsystem 54 in the main memory 20 with concrete values (see step 402 of the 6A ). In part b of the 4 are three directory entries 220 . 250 and 270 represented with the same structure. The first is an entry name 222 . 252 respectively. 272 stored, which identifies the respective recorded software component in the manner of a name. Thereafter, each becomes a process name 224 . 254 respectively. 274 stored, which is specified by the operating system BS and denotes a process in which the respective software component is to run. In another field of directory entries 220 . 250 respectively. 270 become style marks 226 . 256 respectively. 276 stored to the mark of the respective software component with regard to development technology and programming language. In the subsequent fields of the respective directory 220 . 250 . 270 are depending on the type indicator 226 . 256 respectively. 276 so-called species-specific data 228 . 258 respectively. 278 as well as species-specific data 230 . 260 respectively. 280 saved.

Der Verzeichniseintrag 220 betrifft beispielsweise einen Teil des Softwarebausteins 106, der durch den Eintragsnamen 222 mit dem numerischen Wert "1" gekennzeichnet ist. Der Prozeßname 224 ist im Teil b der 4 nicht spezifiziert, da er gleich dem Prozeß des Aufrufers sein soll. Im Artkennzeichen 226 des Softwarebausteins 106 ist mit Hilfe eines Zahlenwertes die objektorientierte Entwicklungstechnik in der Sprache C++ verschlüsselt. Das artspezifische Datum 228 definiert eine Adresse ADR5, an der der Softwarebaustein 106 im Arbeitsspeicher 20 beginnt und das artspezifische Datum 230 definiert eine Adresse ADR6, an der die Befehle beginnen, die im Softwarebaustein 106 enthalten sind. Die Adressen ADR5 und ADR6 unterscheiden sich, da der Softwarebaustein 106 in objektorientierter Entwicklungstechnik erstellt wurde und seinerseits mehrere Unter-Softwarebausteine enthält. Die Befehlsfolgen der Unter-Softwarebausteine werden unter dem Namen "Mitgliedsfunktionen" (member functions) des durch den jeweiligen übergeordneten Softwarebaustein spezifizierten Objekts zusammengefaßt. Die Adresse ADR6 ist die Startadresse des im Verzeichniseintrag 220 spezifizierten Unter-Softwarebausteins des Softwarebausteins 106.The directory entry 220 for example, concerns a part of the software component 106 that by the entry name 222 is marked with the numerical value "1". The process name 224 is in part b of the 4 unspecified, since it should be equal to the caller's process. In style mark 226 of the software component 106 is using a numerical value, the object-oriented development technology in the C ++ language encrypted. The species-specific date 228 defines an address ADR5 at which the software component 106 in memory 20 starts and the species-specific date 230 defines an address ADR6 at which the commands begin, which are in the software block 106 are included. The addresses ADR5 and ADR6 differ because the software component 106 was created in object-oriented development technology and in turn contains several sub-software modules. The command sequences of the sub-software modules are combined under the name "member functions" of the object specified by the respective higher-level software component. The address ADR6 is the starting address of the directory entry 220 specified sub-software component of the software component 106 ,

Der Verzeichniseintrag 250 verweist auf den Softwarebaustein 74. Der Eintragsname 252 hat den numerischen Wert "2". Der Prozeßname 254 ist aus den bereits genannten Gründen nicht spezifiziert. Da der Softwarebaustein 74 mit der Programmiersprache C erstellt wurde, wird das Artkennzeichen 256 so festgelegt, daß die prozedurale Programmiersprache C im konkreten Zahlenwert für das Artkennzeichen 256 verschlüsselt ist. Das artspezifische Datum 258 enthält einen Adreßwert ADR7, der die Startadresse der Befehle des Softwarebausteins 74 nennt, und das artspezifische Datum 230 ist nicht spezifiziert, da zum Ausführen des Softwarebausteins 74 nur die Adresse ADR7 bekannt sein muß.The directory entry 250 refers to the software component 74 , The entry name 252 has the numerical value "2". The process name 254 is not specified for the reasons already mentioned. As the software component 74 created with the C programming language becomes the style identifier 256 set so that the procedural programming language C in concrete numeric value for the species identifier 256 is encrypted. The species-specific date 258 contains an address value ADR7, which is the start address of the commands of the software component 74 names, and the species-specific date 230 is not specified because to run the software component 74 only the address ADR7 must be known.

Der Verzeichniseintrag 270 verweist auf den Softwarebaustein 76. Dieser Softwarebaustein hat den Eintragsnamen 272 mit dem numerischen Wert "3" und einen in 4 unspezifizierten Prozeßnamen 274. Das Artkennzeichen 276 des Softwarebausteins 76 enthält einen Zahlenwert für die prozedurale Programmiersprache ASSEMBLER. Das artspezifische Datum 278 enthält einen Adreßwert ADR8, der auf den Beginn der Befehle des Softwarebausteins 76 verweist und das artspezifische Datum 280 ist nicht spezifiziert, da es beim Zugriff auf den Softwarebaustein 76 nicht notwendig ist.The directory entry 270 refers to the software component 76 , This software component has the entry name 272 with the numerical value "3" and an in 4 unspecified process name 274 , The style mark 276 of the software component 76 contains a numerical value for the procedural programming language ASSEMBLER. The species-specific date 278 contains an address value ADR8, which indicates the beginning of the instructions of the software component 76 refers and the species-specific date 280 is not specified as it is when accessing the software component 76 is not necessary.

5 zeigt eine schematische Darstellung von Befehlen 300 bis 318 für den Softwarebaustein 70, welche in der prozeduralen Programmiersprache C geschrieben sind. Die vor dem Befehl 308 liegenden Befehle 300 bis 306 dienen der Vorbereitung des Anlegens der Datei. Der Befehl 308 dient dem Bereitstellen von Speicherplatz auf der Festplatte 24 für das Anlegen der Datei. Dazu müssen die compilierten Befehle des Softwarebausteins 74 im Subsystem 54 ausgeführt werden. Für den C-Compiler wird durch ein Rautenzeichen 320 gefolgt von dem Schlüsselwort "include" signalisiert, daß beim Compilieren eine weiter unten erläuterte Befehlsfolge aus Maschinenbefehlen 330 bis 340 anstelle des Befehls 308 einzufügen ist, angedeutet durch einen Pfeil 350. Die Maschinenbefehle 330 bis 340 werden beim Ausführen des Softwarebausteins 70 direkt von einem der Zentralprozessoren 12, 13 abgearbeitet. Die nach dem Befehl 308 folgenden Befehle 310 bis 318 beziehen sich auf Funktionen nach dem Erstellen einer Datei. Es kann z.B. hierbei überprüft werden, ob das Erstellen der jeweiligen Datei erfolgreich war. 5 shows a schematic representation of commands 300 to 318 for the software component 70 , which are written in the procedural programming language C. The before the command 308 lying commands 300 to 306 serve the preparation of creating the file. The command 308 is used to provide space on the hard disk 24 for creating the file. This requires the compiled commands of the software component 74 in the subsystem 54 be executed. For the C compiler is indicated by a diamond 320 followed by the keyword "include" signals that during compilation, a sequence of commands, explained below, consists of machine instructions 330 to 340 instead of the command 308 is to be inserted, indicated by an arrow 350 , The machine commands 330 to 340 are used when executing the software component 70 directly from one of the central processors 12 . 13 processed. The after the command 308 following commands 310 to 318 refer to features after creating ei ner file. For example, it can be checked whether the creation of the respective file was successful.

Im Befehl 308 wird durch das Rautenzeichen 320 gefolgt von dem Schlüsselwort "include" und der Bezeichnung "Dateispeicher" der Compiler angewiesen, die Maschinenbefehle 330 bis 340 so zu generieren, daß der Softwarebaustein 74 unter Einbeziehung der Vermittlungseinheit 64 des Subsystems 54 ausgeführt wird. Dazu verarbeitet der Compiler den im Befehl 308 angegebenen Dateinamen der zu erstellenden Datei und die angegebene Zugriffsart. Die Zugriffsart kann z.B. so festgelegt werden, daß auf die erstellte Datei sowohl lesend als auch schreibend zugegriffen werden kann.In command 308 is indicated by the diamond sign 320 followed by the keyword "include" and the label "file store" instructing the compiler to execute the machine commands 330 to 340 to generate so that the software component 74 involving the switching unit 64 of the subsystem 54 is performed. To do this, the compiler processes the command in the command 308 specified file name of the file to be created and the specified access type. The access type can be defined, for example, so that the created file can be accessed both read and write.

Der Maschinenbefehl 330 bewirkt, daß der Softwarebausteinname (SB-Name) 202 (vgl. Teil a 4) im Übergabespeicherbereich (ÜSB) einen Wert erhält, z.B. im Fall des Softwarebausteins 74 den numerischen Wert "2", und damit den zur Ausführung des jeweiligen Befehls, z.B. "Dateispeicher", benötigten Softwarebaustein kennzeichnet.The machine command 330 causes the software device name (SB name) 202 (see part a 4 ) receives a value in the transfer memory area (ÜSB), for example in the case of the software component 74 the numerical value "2", and thus the software component required for the execution of the respective command, eg "file memory".

Die Maschinenbefehle 332 und 334 bewirken, daß der konkrete Dateiname der anzulegenden Datei in den jeweiligen Übergabespeicherbereich (ÜSB), z.B. 97 gemäß Teila 4, als erster Übergabewert 210 und die Zugriffsart als zweiter Übergabewert 210 gespeichert werden. Durch den Befehl 336 wird die Adresse, z.B. ADR0, an der der Übergabespeicherbereich 97 beginnt, in ein Register R1 des Zentralprozessors 12, 13 geladen. Durch den Befehl 338 wird die Adresse ADR1 in ein Register R15 des Zentralprozessors 12, 13 geladen. Das Ermitteln der Adresse ADR1 erfolgt dabei in zwei Schritten. Anbieter und Nutzer einer Schnittstelle arbeiten mit Namen der Vermittlungseinheiten, die in einer Spezifikation hinterlegt sind. Erst beim Linken wird der Name einer jeweiligen Vermittlungseinheit durch die konkrete Adresse ersetzt. Die Adresse ADR1 stimmt mit der Anfangsadresse der Vermittlungseinheit VE3 des Vermittlungsbausteins 64 überein. Durch den Befehl 340 erfolgt anschließend ein Sprung zur Adresse, die im Register R15 enthalten ist, nämlich zur Adresse ADR1. Somit wird nach Ausführen des Sprunges mit dem Abarbeiten der Befehle der Vermittlungseinheit VE3 begonnen. In diesem Ausführungsbeispiel ist die Verwendung der Register R1 und R15 konventioniert.The machine commands 332 and 334 cause the concrete file name of the file to be created in the respective transfer memory area (ÜSB), eg 97 according to Parta 4 , as the first transfer value 210 and the access type as the second transfer value 210 get saved. By the command 336 becomes the address, eg ADR0, at which the transfer memory area 97 begins in a register R1 of the central processor 12 . 13 loaded. By the command 338 the address ADR1 becomes a register R15 of the central processor 12 . 13 loaded. The determination of the address ADR1 takes place in two steps. Providers and users of an interface work with names of the switching units that are stored in a specification. Only when linking the name of a respective switching unit is replaced by the specific address. The address ADR1 agrees with the start address of the switching unit VE3 of the switching module 64 match. By the command 340 followed by a jump to the address contained in the register R15, namely the address ADR1. Thus, after execution of the jump, the execution of the commands of the switching unit VE3 is started. In this embodiment, the use of registers R1 and R15 is conventional.

Die 6A und 6B zeigen ein Flußdiagramm für die Verfahrensschritte, die beim Abarbeiten der Befehle der Vermittlungseinheit VE3 ausgeführt werden. Im Schritt 400 beginnen die Verfahrensschritte der Vermittlungseinheit VE3 an der oben bezeichneten Adresse ADR1. Zu diesem Zeitpunkt sind im Übergabespeicherbereich 97 gemäß Teil a 4 der Softwarebausteinname 202 und gegebenenfalls ein oder mehrere Übergabewerte 210 festgelegt.The 6A and 6B show a flowchart for the process steps that are executed when processing the commands of the switching unit VE3. In step 400 The processing steps of the switching unit VE3 begin at the above-mentioned address ADR1. At this time are in the transfer memory area 97 according to part a 4 the software component name 202 and optionally one or more transfer values 210 established.

Im Schritt 402 wird geprüft, ob sich das zur Vermittlungseinheit VE3 gehörende Subsystem 54 bereits im Arbeitsspeicher 20 befindet und ausgeführt werden kann. Ist dies nicht der Fall, so wird im Schritt 403 das Laden des Subsystems 54 in den Arbeitsspeicher 20 veranlaßt. Im Schritt 404 wird geprüft, ob das Laden des Subsystems 54 (vgl. 2) erfolgreich war. Ist dies nicht der Fall, so wird im Schritt 404 der Fehlername 206 (vgl. Teil a 4) mit einem ersten Fehlerwert belegt. Nach dem Schritt 405 wird zu einem weiter unten erläuterten Schritt 444 verzweigt. Wird im Schritt 402 bzw. im Schritt 404 jedoch festgestellt, daß das Subsystem 54 im Arbeitsspeicher 20 ausgeführt werden kann, so wird unmittelbar nach dem Schritt 402 bzw. nach dem Schritt 404 der Verfahrensschritt 406 ausgeführt.In step 402 it is checked whether the belonging to the switching unit VE3 subsystem 54 already in the main memory 20 is located and can be executed. If this is not the case, then in step 403 loading the subsystem 54 in the main memory 20 causes. In step 404 it checks for loading the subsystem 54 (see. 2 ) was successful. If this is not the case, then in step 404 the error name 206 (see part a 4 ) is assigned a first error value. After the step 405 becomes a step explained below 444 branched. Will in step 402 or in the step 404 however, found that the subsystem 54 in memory 20 can be executed, then immediately after the step 402 or after the step 404 the process step 406 executed.

Im Schritt 406 wird geprüft, ob das gerufene Subsystem 54 mit dem rufenden Prozeß verbunden ist, d.h. es wird geprüft, ob eine Kommunikationsverbindung zwischen dem rufenden Prozeß und dem Subsystem 50 existiert. Ist dies nicht der Fall, so wird in Schritt 407 das Herstellen dieser Kommunikationsverbindung veranlaßt. In einem sich daran anschließenden Schritt 408 wird geprüft, ob die Kommunikationsverbindung erfolgreich hergestellt werden konnte. Ist dies nicht der Fall, so wird in Schritt 409 der Fehlername 206 (vgl. Teil a 4) mit einem zweiten Fehlerwert spezifiziert. Anschließend wird das Verfahren im Schritt 444 fortgesetzt. Wird im Schritt 406 bzw. im Schritt 408 jedoch festgestellt, daß das gerufene Subsystem 54 mit dem rufenden Prozeß verbunden ist, so wird unmittelbar auf den Schritt 406 folgend der Schritt 410 ausgeführt.In step 406 it checks if the called subsystem 54 is connected to the calling process, that is, it is checked whether a communication link between the calling process and the subsystem 50 exist. If this is not the case, then in step 407 causes the establishment of this communication connection. In a subsequent step 408 a check is made as to whether the communication connection could be successfully established. If this is not the case, then in step 409 the error name 206 (see part a 4 ) with a second error value. Subsequently, the procedure in step 444 continued. Will in step 406 or in the step 408 however, found that the called subsystem 54 is connected to the calling process, so is immediately on the step 406 following the step 410 executed.

Im Schritt 410 wird geprüft, ob der durch den Softwarebausteinnamen 202 (vgl. Teil a 4) spezifizierte Softwarebaustein im zugehörigen Subsystem 54 (vgl. 2) vorhanden ist, indem die Verzeichniseinträge 222, 252 und 272 (vgl. Teil b 4) mit dem Softwarebausteinnamen 202 verglichen werden. Der Softwarebausteinname 202 kann durch die Vermitt lungseinheit VE3 ermittelt werden, da die Adresse ADR0, an der der Übergabespeicherbereich beginnt, konventionsgemäß im Register R1 des Zentralprozessors 12, 13 verfügbar ist. Wird der gerufene Softwarebaustein nicht im Verzeichnis VZ3 gefunden, so wird der Fehlername 206 (vgl. Teil a 4) mit einem dritten Fehlerwert belegt (Schritt 412). Anschließend wird das Verfahren im Schritt 444 fortgesetzt. Wird im Schritt 410 jedoch festgestellt, daß der Softwarebaustein im gerufenen Subsystem vorhanden ist, so wird unmittelbar nach dem Schritt 410 der Verfahrensschritt 414 ausgeführt. Der Softwarebaustein "Dateispeicher", dessen Eintragsname den numerischen Wert "2" hat wird beispielsweise als zweiter Verzeichniseintrag 250 (vgl. Teil b der 4) lokalisiert.In step 410 is checked, whether by the software component name 202 (see part a 4 ) specified software component in the associated subsystem 54 (see. 2 ) is present by the directory entries 222 . 252 and 272 (see part b 4 ) with the software component name 202 be compared. The software component name 202 can be determined by the switching unit VE3, since the address ADR0 at which the transfer memory area starts conventionally in the register R1 of the central processor 12 . 13 is available. If the called software component is not found in directory VZ3, the error name becomes 206 (see part a 4 ) is assigned a third error value (step 412 ). Subsequently, the procedure in step 444 continued. Will in step 410 however, if the software component is found in the called subsystem, then immediately after the step 410 the process step 414 executed. The "file storage" software module whose entry name has the numerical value "2" becomes, for example, a second directory entry 250 (see part b of the 4 ) isolated.

Im Schritt 414 wird geprüft, ob der gerufene Softwarebaustein in einem anderen Prozeß ablaufen soll, indem die Prozeßnamen 208 und 254 (vgl. Teil b der 4) mit dem der Vermittlungseinheit VE3 momentan zugeordneten Prozeßnamen verglichen werden. Wird im Schritt 414 festgestellt, daß der Softwarebaustein in einem anderen Prozeß ablaufen soll, so wird im Schritt 418 zu diesem anderen Prozeß umgeschaltet. Anschließend wird der Schritt 420 ausgeführt. Wird jedoch im Schritt 414 festgestellt, daß der Softwarebaustein im gleichen Prozeß zur Verfügung steht, so entfällt das Umschalten im Schritt 418 und unmittelbar nach dem Schritt 414 wird der Schritt 420 ausgeführt.In step 414 it checks if the called Software component in another process should run by the process name 208 and 254 (see part b of the 4 ) are compared with the process name currently assigned to the switching unit VE3. Will in step 414 determined that the software component is to run in another process, so in step 418 switched to this other process. Then the step 420 executed. However, in step 414 determined that the software component in the same process is available, so eliminates the switching in step 418 and immediately after the step 414 becomes the step 420 executed.

Im Schritt 420 wird geprüft, ob der jeweilige Softwarebaustein, z.B. 74 (vgl. 2), bereits initialisiert ist. Die Initialisierung umfaßt z.B. das Anlegen und Versorgen von Verwaltungstabellen mit konkreten Werten, welche für den gerufenen Softwarebaustein spezifisch sind. Gegebenenfalls erfolgt im Schritt 422 die Initialisierung des Softwarebausteins und in einem anschließenden Schritt 424 wird überprüft, ob die Initialisierung erfolgreich durchgeführt wurde. Wird im Schritt 424 festgestellt, daß die Initialisierung nicht oder nicht vollständig durchgeführt werden konnte, so wird im Schritt 426 der Fehlername 206 (vgl. Teil a 4) durch einen vierten Fehlerwert spezifiziert und das Verfahren im Schritt 444 fortgesetzt.In step 420 is checked whether the respective software component, eg 74 (see. 2 ), already initialized. The initialization includes, for example, the creation and maintenance of management tables with specific values that are specific to the called software component. If necessary, takes place in the step 422 the initialization of the software component and in a subsequent step 424 Checks whether the initialization was successful. Will in step 424 determined that the initialization could not or not completely performed, so in step 426 the error name 206 (see part a 4 ) is specified by a fourth error value and the method in step 444 continued.

Wird im Schritt 424 festgestellt, daß die Initialisierung erfolgreich durchgeführt wurde, so wird das Verfahren im Schritt 428 fortgesetzt. Der Schritt 428 folgt jedoch unmittelbar auf den Schritt 420, wenn in diesem Schritt 420 festgestellt wird, daß der gerufene Softwarebaustein bereits initialisiert ist.Will in step 424 If it has been determined that the initialization has been carried out successfully, the method in step 428 continued. The step 428 however, follows immediately to the step 420 if in this step 420 it is determined that the called software component is already initialized.

Im Schritt 428 wird die Art des Softwarebausteins bestimmt, indem das Artkennzeichen, z.B. 256 (vgl. Teil b 4) gelesen wird. Im Fall des Softwarebausteins 74 wird ermittelt, daß der Softwarebaustein 74 in der Sprache C erstellt wurde. Anschließend wird in einem Schritt 430 gefragt, ob der gerufene Softwarebaustein mit der Sprache C erstellt wurde. Ist dies der Fall, so werden im Schritt 432 die im Softwarebaustein enthaltenen Befehle aufgerufen. Damit ist das Verfahren in einem Schritt 441 beendet. Wird im Schritt 430 jedoch festgestellt, daß der Softwarebaustein nicht in der Sprache C erstellt wurde, so folgt unmittelbar nach dem Schritt 430 der Schritt 434.In step 428 The type of software component is determined by the type indicator, eg 256 (see part b 4 ) is read. In the case of the software component 74 it is determined that the software component 74 was created in the language C. Subsequently, in one step 430 asked whether the called software component was created with the C language. If this is the case, then in step 432 calls the commands contained in the software block. This completes the process in one step 441 completed. Will in step 430 however, if it is determined that the software component was not created in language C, it follows immediately after the step 430 the step 434 ,

Im Schritt 434 wird geprüft, ob der gerufene Softwarebaustein mit der Sprache C++ erstellt wurde. Ist dies der Fall, so wird im Schritt 436 der Softwarebaustein aufgerufen. Zum Aufrufen des Softwarebausteins wird u.a. das artspezifische zweite Datum, z.B. 230 (vgl. Teil b 4), gelesen, um den Anfang des auszuführenden Softwarebausteins zu ermitteln. Damit ist das Verfahren im Schritt 441 beendet. Wird im Schritt 434 jedoch festgestellt, daß der Softwarebaustein nicht mit der Sprache C++ erstellt worden ist, so wird unmittelbar nach dem Schritt 434 der Schritt 438 ausgeführt.In step 434 Checks whether the called software component has been created with the C ++ language. If this is the case, then in step 436 called the software block. To call up the software component, the species-specific second date, eg 230 (see part b 4 ), to determine the beginning of the software component to be executed. This is the process in step 441 completed. Will in step 434 however, if it is determined that the software component has not been created with the C ++ language, then immediately after the step 434 the step 438 executed.

Im Schritt 438 wird geprüft, ob der jeweils gerufene Softwarebaustein mit der Programmiersprache ASSEMBLER erstellt wurde. Ist dies der Fall, so wird im Schritt 440 der gerufene Softwarebaustein aufgerufen, womit das Verfahren im Schritt 441 beendet ist.In step 438 It checks whether the software module called in each case has been created using the ASSEMBLER programming language. If this is the case, then in step 440 called the called software module, which the method in step 441 finished.

Wird im Schritt 438 jedoch festgestellt, daß der jeweils gerufene Softwarebaustein auch nicht mit der Programmiersprache ASSEMBLER erstellt wurde, so erfolgt unmittelbar nach dem Schritt 438 der Schritt 442, in dem der Fehlername 206 (vgl. Teil a 4) mit einem fünften Fehlerwert belegt wird. Anschließend erfolgt das Ausführen des bereits mehrfach erwähnten Schrittes 444.Will in step 438 However, if it has been determined that the respectively called software component has not been created with the programming language ASSEMBLER, it is done immediately after the step 438 the step 442 in which the error name 206 (see part a 4 ) is assigned a fifth error value. Subsequently, the execution of the already mentioned several times step 444 ,

Das beschriebene Verfahren ist auf einfache Art und Weise auf andere als die genannten Entwicklungstechniken und Programmiersprachen erweiterbar, indem zwischen den Schritten 438 und 442 zusätzliche Schritte eingefügt werden.The described method is easily extendable to other than the mentioned development techniques and programming languages, by intervening between the steps 438 and 442 additional steps are inserted.

Im Schritt 444 wird das durch die Befehle der Vermittlungseinheit VE3 vorgegebene Verfahren für Fehlerfälle beendet. In einem der Schritte 405, 409, 412, 426 oder 442 wurde der Fehlername 206 (vgl. Teil a 4) spezifiziert. Im Schritt 444 erfolgt ein Rücksprung in das rufende Subsystem, z.B. 50. Dort wird anhand der Werte im Übergabespeicherbereich 97 (vgl. Teil a 4) festgestellt, ob der Softwarebaustein erfolgreich ausgeführt werden konnte. In diesem Falle ist der Fehlername 206 (vgl. Teil a 4) ein Standardwert, z.B. Null. Hat der Fehlername 206 jedoch einen vom Standardwert abweichenden Wert, so kann anhand dieses Wertes festgestellt werden, welcher Fehler aufgetreten ist. Dieser Fehler kann anschließend durch den Aufrufer behoben werden, und es kann ein nochmaliger Aufruf der Vermittlungseinheit erfolgen.In step 444 the error procedure specified by the instructions of the switching unit VE3 is terminated. In one of the steps 405 . 409 . 412 . 426 or 442 became the error name 206 (see part a 4 ). In step 444 a return to the calling subsystem takes place, eg 50 , There is based on the values in the transfer memory area 97 (see part a 4 ) determined whether the software component could be executed successfully. In this case, the error name 206 (see part a 4 ) a default value, eg zero. Has the error name 206 however, if the value deviates from the standard value, this value can be used to determine which error has occurred. This error can then be corrected by the caller, and the switching unit can be called again.

Beim Ausführen des jeweils gerufenen Softwarebausteins im Schritt 432, 436 oder 440 kann der Rücksprung direkt vom Softwarebaustein zum rufenden Subsystem. oder indirekt über die Vermittlungseinheit des gerufenen Subsystems erfolgen. Schritt 444 wird in diesem Fall nicht ausgeführt. Gegebenen falls sind auch Ergebniswerte als Übergabewerte 210 (vgl. Teil a 4) spezifiziert worden, die im rufenden Subsystem weiterverwendet werden können.When executing the respectively called software component in the step 432 . 436 or 440 The return can be made directly from the software component to the calling subsystem. or indirectly via the switching unit of the called subsystem. step 444 will not be executed in this case. If applicable, result values are also available as transfer values 210 (see part a 4 ), which can be reused in the calling subsystem.

Claims (17)

Datenverarbeitungsanlage (10), die mindestens einen Prozessor (12, 13) enthält, der Befehle eines gebundenen Programmsystems ausführt, und mit mindestens einem Speicher (20), in dem die Programmbefehle gespeichert sind, wobei das Programmsystem mehrere gebundene, Softwarebausteine aufweisende Subsysteme (50 bis 54) enthält, die vorgegebene Funktionen der Datenverarbeitungsanlage (10) definieren, ein Softwarebaustein (74) für mindestens eine Funktion eines ersten Subsystems (50) Bestandteil eines zweiten Subsystems (54) ist, dadurch gekennzeichnet, dass a) jedes Subsystem (50 bis 54) mindestens eine gleichartig aufgebaute Vermittlungseinheit (60 bis 64) hat, b) die ein Verzeichnis (VZ1 bis VZ3) enthält, welches auf im jeweiligen Subsystem (50 bis 54) enthaltene Softwarebausteine (70 bis 76) verweist, c) zum Ausführen der besagten Funktion das erste Subsystem (50) die Vermittlungseinheit (64) im zweiten Subsystem (54) aufruft (Pfeil 84) und d) diese Vermittlungseinheit (64) mit Hilfe des in ihr enthaltenen Verzeichnisses (VZ3) den dieser Funktion zugeordneten Softwarebaustein (74) aufruft (Pfeil 88), e) und wobei nach dem Ausführen der Befehle dieses Softwarebausteins (74) zum ersten Subsystem (50) zurückgekehrt wird (Pfeil 92), f) wobei der Aufruf der Vermittlungseinheit (60 bis 64) unter Verwenden eines Übergabespeicherbereichs (97, 99) erfolgt, der an einer Startadresse (ADR0) beginnt, die beim Aufruf der Vermittlungseinheit (60 bis 64) an diese übermittelt wird, wobei der Übergabespeicherbereich (97, 99) einen allgemeinen Teil (200), welcher zumindest teilweise von den Vermittlungseinheiten interpretiert wird, und einen softwarebausteinspezifischen Teil (201) enthält, auf den beim Ausführen des Softwarebausteins (70 bis 76) zugegriffen wird.Data Processing System ( 10 ), the at least one processor ( 12 . 13 ) executing commands of a bound program system, and with at least one memory ( 20 ), in which the program instructions are stored, wherein the program system has a plurality of bound subsystems (comprising software components) ( 50 to 54 ), the predetermined functions of the data processing system ( 10 ) define a software component ( 74 ) for at least one function of a first subsystem ( 50 ) Part of a second subsystem ( 54 ), characterized in that a) each subsystem ( 50 to 54 ) at least one similarly structured switching unit ( 60 to 64 ), b) which contains a directory (VZ1 to VZ3) which is available in the respective subsystem ( 50 to 54 ) contained software components ( 70 to 76 c) to perform said function the first subsystem ( 50 ) the switching unit ( 64 ) in the second subsystem ( 54 ) calls (arrow 84 ) and d) this switching unit ( 64 ) using the directory (VZ3) contained in it, the software component assigned to this function ( 74 ) calls (arrow 88 ), e) and after executing the commands of this software component ( 74 ) to the first subsystem ( 50 ) is returned (arrow 92 ), f) wherein the call of the switching unit ( 60 to 64 ) using a transfer memory area ( 97 . 99 ), which starts at a start address (ADR0) which, when the switching unit is called ( 60 to 64 ) is transmitted to it, wherein the transfer memory area ( 97 . 99 ) a general part ( 200 ), which is at least partially interpreted by the switching units, and a software component-specific part ( 201 ) when executing the software component ( 70 to 76 ) is accessed. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Vermittlungseinheit (60 bis 64) einen eindeutigen Namen hat, der zur Auswahl und zum Aufruf der Vermittlungseinheit (60 bis 64) verwendet wird.Data processing installation according to Claim 1, characterized in that the switching unit ( 60 to 64 ) has a unique name that can be used to select and call the exchange unit ( 60 to 64 ) is used. Datenverarbeitungsanlage nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Aufbau des Übergabespeicherbereichs (97, 99) unabhängig von den im ersten Subsystem (50) und im zweiten Subsystem (54) verwendeten Entwicklungstechniken und Programmiersprachen ist.Data processing system according to claim 1 or 2, characterized in that the structure of the transfer memory area ( 97 . 99 ) independent of those in the first subsystem ( 50 ) and in the second subsystem ( 54 ) used development techniques and programming languages. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß an einer bezüglich der Startadresse (ADR0) fest vorgegebenen ersten Adresse (ADR0; ein Namensdatum (202) gespeichert wird, das den Softwarebaustein (70 bis 74) nach Art eines Namens kennzeichnet.Data processing system according to one of Claims 1 to 3, characterized in that a first address (ADR0; 202 ) containing the software component ( 70 to 74 ) in the manner of a name. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß an einer bezüglich der Startadresse (ADR0) fest vorgegebenen zweiten Adresse (ADR0+1) eine Versionsnummer (204) gespeichert wird, die die Aufteilung des Übergabespeicherbereichs (97, 98) kennzeichnet.Data processing system according to one of Claims 1 to 4, characterized in that a version number (ADR0 + 1) is assigned to a second address (ADR0 + 1) fixedly specified with respect to the start address (ADR0). 204 ), the division of the transfer memory area ( 97 . 98 ). Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß an einer bezüglich der Startadresse (ADR0) fest vorgegebenen dritten Adresse (RDR0+2) im Fehlerfalle ein Fehlerdatum (20b) gespeichert wird.Data processing system according to one of Claims 1 to 5, characterized in that, in the event of an error, an error data (RDR0 + 2) is applied to a third address (RDR0 + 2) permanently fixed with respect to the starting address (ADR0). 20b ) is stored. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß an einer bezüglich der Startadresse (ADR0) fest vorgegebenen vierten Adresse (ADR0+3) ein Prozeßdatum (208) gespeichert wird, das einen prozessübergreifende Ausführung des Softwarebausteins (74) gestattet.Data processing system according to one of Claims 1 to 6, characterized in that a process data item (ADR0 + 3) is applied to a fourth address (ADR0 + 3) fixedly specified with respect to the start address (ADR0). 208 ) that executes a cross-process execution of the software component ( 74 ). Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß im softwarebausteinspezifischen Teil beginnend an einer bezüglich der Startadresse (ADR0) fest vorgegebenen fünften Adresse (ADR0+4) mindestens ein Eingabedatum (210) und/oder mindestens ein Ausgabedatum des Softwarebausteins (70 bis 76) in vorgegebener Reihenfolge gespeichert werden.Data processing system according to one of Claims 1 to 7, characterized in that at least one input data item (ADR0 + 4) is entered in the software component-specific part starting at a fifth address (ADR0 + 4) fixedly assigned with respect to the start address (ADR0). 210 ) and / or at least one issue date of the software component ( 70 to 76 ) are stored in a predetermined order. Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß für den Softwarebaustein (70 bis 76) im Subsystemverzeichnis (VZ1 bis VZ3) ein Artkennzeichen (226, 256, 276) gespeichert ist, dessen Wert die zum Erstellen des Softwarebausteins (70 bis 76) verwendete Entwicklungstechnik und Programmiersprache kennzeichnet und daß der Zugriff auf den Softwarebaustein (70 bis 76) in einer durch die Vermittlungseinheit (60 bis 64) definierten Art abhängig vom Wert des Artkennzeichens (226, 256, 276) erfolgt.Data processing system according to one of the preceding claims, characterized in that for the software component ( 70 to 76 ) in the subsystem directory (VZ1 to VZ3) a type indicator ( 226 . 256 . 276 ), the value of which is used to create the software component ( 70 to 76 ) and that the access to the software component ( 70 to 76 ) in one by the switching unit ( 60 to 64 ) defined type depending on the value of the type indicator ( 226 . 256 . 276 ) he follows. Datenverarbeitungsanlage nach Anspruch 9, dadurch gekennzeichnet, daß als Entwicklungstechnik eine prozedurale Technik eingesetzt wird und/oder daß als Entwicklungstechnik eine objektorientierte Technik eingesetzt wird.Data processing system according to claim 9, characterized characterized in that when Development Technique is a procedural technique is used and or that as Development technology an object-oriented technique is used. Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vermittlungseinheit (60 bis 64) ständig in einem Arbeitsspeicher (20) der Datenverarbeitungsanlage (10) gespeichert ist.Data processing system according to one of the preceding claims, characterized in that the switching unit ( 60 to 64 ) constantly in a main memory ( 20 ) of the data processing system ( 10 ) is stored. Datenverarbeitungsanlage nach einem der vorgehenden Ansprüche, dadurch gekennzeichnet, daß der Softwarebaustein (74) nur dann aufgerufen wird, wenn das zweite Subsystem (54) auf der Datenverarbeitungsanlage (10) momentan ausführbar ist (Schritt 402).Data processing system according to one of the preceding claims, characterized in that the software component ( 74 ) is called only if the second subsystem ( 54 ) on the data processing system ( 10 ) is currently executable (step 402 ). Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Softwarebaustein (74) nur dann aufgerufen wird, wenn der rufende Prozeß eine Kommunikationsverbindung zum zweiten Subsystem (54) hat (Schritt 406).Data processing system according to one of the preceding claims, characterized in that the software component ( 74 ) is called only if the calling process has a communication connection to the second subsystem ( 54 ) has (step 406 ). Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Softwarebaustein (74) nur dann aufgerufen wird, wenn der Softwarebaustein (74) im Verzeichnis (VZ3) der Vermittlungseinheit (64) des zweiten Subsystems (54) verzeichnet ist (Schritt 410).Data processing system according to one of the preceding claims, characterized in that the software component ( 74 ) is called only if the software component ( 74 ) in the directory (VZ3) of the switching unit ( 64 ) of the second subsystem ( 54 ) (step 410 ). Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß vor dem Aufrufen des Softwarebausteins (74) geprüft wird, ob der Softwarebaustein (74) ordnungsgemäß initialisiert ist (Schritt 420).Data processing system according to one of the preceding claims, characterized in that prior to calling the software component ( 74 ) is checked, whether the software component ( 74 ) is properly initialized (step 420 ). Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zumindest ein großer Teil des Programmsystems in Subsystemen (50 bis 54) mit zugehörigen Vermittlungseinheiten (60 bis 64) realisiert ist.Data processing system according to one of the preceding claims, characterized in that at least a large part of the program system in subsystems ( 50 to 54 ) with associated switching units ( 60 to 64 ) is realized. Datenverarbeitungsanlage nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die Vermittlungseinheit (60 bis 64) in einer ersten Klasse von Vermittlungseinheiten (60 bis 64) enthalten ist, wobei eine Vermittlungseinheit der ersten Klasse von allen Subsystemen (50 bis 54) aufrufbar ist, oder daß die Vermittlungseinheit (60 bis 64) in einer zweiten Klasse von Vermittlungseinheiten (60 bis 64) enthalten ist, wobei eine Vermittlungseinheit (60 bis 64) der zweiten Klasse nur von einigen der Subsysteme (50 bis 54) aufrufbar ist, oder daß die Vermittlungseinheit (60 bis 64) in einer dritten Klasse von Vermittlungseinheiten (60 bis 64) enthalten ist, wobei eine Vermittlungseinheit (60 bis 64) der dritten Klasse nur von ihrem zugehörigen Subsystem aus (50 bis 54) aufrufbar ist.Data processing system according to one of the preceding claims, characterized in that the switching unit ( 60 to 64 ) in a first class of switching units ( 60 to 64 ), wherein a first-class switching unit of all subsystems ( 50 to 54 ), or that the switching unit ( 60 to 64 ) in a second class of switching units ( 60 to 64 ), wherein a switching unit ( 60 to 64 ) of the second class only of some of the subsystems ( 50 to 54 ), or that the switching unit ( 60 to 64 ) in a third class of switching units ( 60 to 64 ), wherein a switching unit ( 60 to 64 ) of the third class only from its associated subsystem (50 to 54) is callable.
DE19637883A 1996-09-17 1996-09-17 Data processing system for executing large program systems Expired - Fee Related DE19637883B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE19637883A DE19637883B4 (en) 1996-09-17 1996-09-17 Data processing system for executing large program systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19637883A DE19637883B4 (en) 1996-09-17 1996-09-17 Data processing system for executing large program systems

Publications (2)

Publication Number Publication Date
DE19637883A1 DE19637883A1 (en) 1998-03-26
DE19637883B4 true DE19637883B4 (en) 2005-06-16

Family

ID=7805901

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19637883A Expired - Fee Related DE19637883B4 (en) 1996-09-17 1996-09-17 Data processing system for executing large program systems

Country Status (1)

Country Link
DE (1) DE19637883B4 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191434B2 (en) 1999-09-14 2007-03-13 Tao Group Limited Loading object-oriented computer programs

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1079302A1 (en) * 1999-08-23 2001-02-28 Siemens Aktiengesellschaft Method for operating a data processing system, module, exchange and corresponding computer program
EP1253532A1 (en) * 2001-04-25 2002-10-30 Siemens Aktiengesellschaft Data processing method and apparatus

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0381167A2 (en) * 1989-02-01 1990-08-08 Hitachi, Ltd. Method for managing multiple virtual storages divided into families
EP0474340A2 (en) * 1990-08-14 1992-03-11 Digital Equipment Corporation Methods and apparatus for providing dynamic invocation of applicatons in a distributed heterogeneous environment
EP0558945A2 (en) * 1992-03-06 1993-09-08 International Business Machines Corporation Storage isolation with subspace-group facility
DE4211678A1 (en) * 1992-04-07 1993-10-14 Siemens Ag Operating system architecture for system with object=oriented graphic user interface - contains general and special components with function modules for use with any open document
WO1995003575A1 (en) * 1993-07-19 1995-02-02 Taligent, Inc. Objet-oriented host system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0381167A2 (en) * 1989-02-01 1990-08-08 Hitachi, Ltd. Method for managing multiple virtual storages divided into families
EP0474340A2 (en) * 1990-08-14 1992-03-11 Digital Equipment Corporation Methods and apparatus for providing dynamic invocation of applicatons in a distributed heterogeneous environment
EP0558945A2 (en) * 1992-03-06 1993-09-08 International Business Machines Corporation Storage isolation with subspace-group facility
DE4211678A1 (en) * 1992-04-07 1993-10-14 Siemens Ag Operating system architecture for system with object=oriented graphic user interface - contains general and special components with function modules for use with any open document
WO1995003575A1 (en) * 1993-07-19 1995-02-02 Taligent, Inc. Objet-oriented host system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191434B2 (en) 1999-09-14 2007-03-13 Tao Group Limited Loading object-oriented computer programs

Also Published As

Publication number Publication date
DE19637883A1 (en) 1998-03-26

Similar Documents

Publication Publication Date Title
DE69730276T2 (en) Apparatus and method for facilitating the avoidance of exceptional specific conditions during the course of a program
DE60006410T2 (en) METHOD AND SYSTEM FOR DISTRIBUTING OBJECT-ORIENTED COMPUTER PROGRAMS
DE69814174T2 (en) JAVA RUNTIME SYSTEM WITH CHANGED CONSTANT COLLECTION
DE2839726A1 (en) DATA PROCESSING SYSTEM WITH DISTRIBUTED CONTROL ARCHITECTURE IN A MULTIPROCESSOR SYSTEM
DE2630323B2 (en) Data storage device with a main memory, an auxiliary memory and a look-ahead logic
DE102010011658A1 (en) Application platform and method for operating a data processing device with such
DE69734348T2 (en) DISTRIBUTED PROCESSING
DE10041072A1 (en) Automatic generation of program code involves forming symbol for component with interfaces in graphical editor, offering selection, generating code combining components
DE4104568A1 (en) Distributed program processing for processing system - examining input and output commands to organise data flow
EP0838054B1 (en) Graphic control process and device for controlling operations in a network management system
EP1005215A2 (en) Method and system for editing configuration data in telecommunications systems
DE102005026256A1 (en) Method for carrying out the data transfer between program elements of a process, buffer object for carrying out the data transfer, and printing system
DE19637883B4 (en) Data processing system for executing large program systems
DE2245284A1 (en) DATA PROCESSING SYSTEM
DE2108157A1 (en) Data processing system with superimposed memory traffic
EP1119801A1 (en) Method for operating an automation system
DE102012106913A1 (en) Modular tool for building a link to a rights program of article information
DE102007015507A1 (en) Processor with first and second modes of operation and method of operation
EP2093663A1 (en) Engineering system for developing a project and method
DE102018104752A1 (en) Method for executing and translating a computer program in a computer network, in particular for controlling a microscope
EP1044409B1 (en) Program flow method and method for expanding a program component system
EP1318451B1 (en) Method to execute a program on a computer
EP0996888B1 (en) Method and data processing system for testing an assembler program for transferability
DE1774866C3 (en) Circuit for determining the address of a piece of information contained in a memory of a data processing system
EP0568717A1 (en) Method for tracing calls made to a target program by other programs

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: FUJITSU SIEMENS COMPUTERS GMBH, 81739 MUENCHEN, DE

8120 Willingness to grant licences paragraph 23
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110401