-
Softwarekonfiguration in einem Telekommunikationsgerät
Die vorliegende Erfindung bezieht sich auf ein
Telekommunikationsgerät mit Software zur Steuerung von Funktionsabläufen, wobei diese Software aus
mehreren einzeln kompilierbaren Programmeinheiten besteht.
-
Digitale Telekommunikationsgeräte, insbesondere digitale
Vermittlungsstellen, werden oft mit Software gesteuert, wobei diese Software einen
beträchtlichen Umfang von beispielsweise mehreren Megabyte umfassen kann. Solche
Software setzt sich aus mehreren Programmeinheiten zusammen, die einzeln kompiliert
und gebunden werden. Ausgehend von verschiedenen Einsatzfällen solcher
Telekommunikationsgeräten, werden verschiedene Softwarekonfigurationen eingesetzt, die
unterschiedliche Untermengen der verfügbaren Programmeinheiten aufweisen.
Unterschiedliche Softwarekonfigurationen lassen sich so mit geringem
programmtechnischen Aufwand erstellen. Die verfügbaren Programmeinheiten sind in einer Bibliothek
des verwendeten Softwareentwicklungssystems gespeichert. Sie weisen einen hohen
Wiederverwendungsgrad auf.
-
Bei der Produktion des Telekommunikationsgerats werden die
benötigten Programmeinheiten aus der Bibliothek selektiert. Nach dem Binden mit Hilfe
eines Binders ("Linker") wird die Software auf ein nichtflüchtiges Speichermedium
des Telekommunikationsgeräts kopiert, beispielsweise auf Disketten oder einen
Magnetplattenspeicher. Das Kompilieren und Binden nimmt bei einer Software mit
umfangreichen Programmeinheiten ein erhebliches Maß an Zeit in Anspruch. So sind bei
mehreren Megabyte Software für das Kompilieren und Binden der Programmeinheiten
einige Stunden Verarbeitungszeit notwendig. Weiterhin ergeben sich beim Austausch
von Programmeinheiten beispielsweise zu Reparaturzwecken oder bei der
Hinzufügung neuer Programmeinheiten hohe Durchlaufzeiten für die Implementierung der
geänderten Software in das Telekommunikationsgerät.
-
In der US-A-5.291.601 wird ein Ladezeitbinder beschrieben zum
Erhalten einer Kürzung der Zeit, erforderlich zum herstellen verschiedener
Softwarekonfigurationen und der Zeit, erforderlich zum Implementieren von Softwareänderungen.
In US-A-5.375.241 wird dazu eine dynamische Binderbibliothek beschrieben. In US-
A-5.291.601 sowie in US-A-5.375.241 werden Adressenbinder für die
Programmeinheiten mit Bezugsroutinen und/oder Daten einer geteilten Bibliothek anders als die
betreffenden Programmeinheiten beschrieben.
-
Es ist daher u. a. eine Aufgabe der vorliegenden Erfindung das
Telekommunikationsgerät der eingangs beschriebenen Art derart zu verbessern, dass ihre
Produktionsdauer und die Dauer zur Durchführung von Softwareänderungen verkürzt
werden.
-
Diese Aufgabe wird dadurch gelöst, dass die Programmeinheiten
jeweils einen Kopf mit zur Adressierung von in den Programmeinheiten
zusammengefassten Prozeduren und/oder Daten dienenden Adressen aufweisen und dass ein für
alle geladenen Programmeinheiten verfügbarer Katalog vorgesehen ist, der Referenzen
zur Adressierung der Köpfe der Programmeinheiten enthält.
-
Bei einer derart gestalteten Software reicht es im Rahmen der
Produktion des Telekommunikationsgeräts aus, die benötigten kompilierten und für sich
gebundenen Programmeinheiten direkt aus der Bibliothek des
Softwareentwicklungssystems auf das vorgesehene nichtflüchtige Speichermedium des
Telekommunikationsgeräts zu kopieren und den Katalog zu aktualisieren. Ein vorheriges zeitintensives
Kompilieren und Binden der zusammenwirkenden Programmeinheiten ist nicht
erforderlich, da die Programmeinheiten in kompilierter Form in der Bibliothek vorliegen
und der Zusammenhang zwischen den Programmeinheiten durch den Katalog in
Verbindung mit den Köpfen der Programmeinheiten hergestellt wird. In den
Programmeinheiten sind ein oder mehrere Prozeduren, die innerhalb der jeweiligen
Programmeinheiten gebunden sind, und/oder Daten zusammengefasst.
-
Als Daten können auch in einer Sprungtabelle zusammengefasste
Sprungadressen aufgefasst werden. Beispielsweise erfolgt der Aufruf einer Prozedur
einer ersten Programmeinheit durch eine Prozedur einer zweiten Programmeinheit
dadurch, dass mit Hilfe einer Referenz in dem die Programmeinheiten
katalogisierenden Katalog zunächst die Position des Kopfes der ersten Programmeinheit mit der
aufzurufenden Prozedur im Arbeitsspeicher ermittelt wird. Der aufrufenden Prozedur
bzw. der zugehörigen zweiten Programrneinheit ist bekannt, an welcher Stelle im Kopf
der ersten Programmeinheit die Adresse zur Adressierung der aufzurufenden Prozedur
abgelegt ist, so dass mit Hilfe dieser Adresse die aufzurufende Prozedur adressierbar
ist. Ein weiterer Vorteil ist die leichte Austauschbarkeit von Programmeinheiten ohne
zusätzliche Kompilier- und Bindevorgänge. Fehlerhafte oder zu ergänzende
Prozeduren oder Daten einer Programmeinheit können berichtigt oder ergänzt werden, wobei
die Programmeinheit durch ihre geänderte Fassung ohne ein erneuertes Kompilieren
und Binden der implementierten Programmeinheiten austauschbar ist. Der
Zeitaufwand für Korrekturen der Software wird erheblich reduziert. Die vorliegende
Erfindung ist insbesondere in Vermittlungsstellen, aber auch beispielsweise in
Übertragungsanordnungen einsetzbar.
-
In einer Ausgestaltung der vorliegenden Erfindung ist vorgesehen, dass
die Köpfe der genannten Programmeinheiten jeweils einen ersten Abschnitt aufweisen,
dessen Struktur a priori für die Software festgelegt ist.
-
Die Struktur des ersten Abschnitts des Kopfes einer der genannten
Programmeinheiten wird per Konvention schon vor der Entwicklung der ältesten
Programmeinheiten der Software festgelegt, die insbesondere Programmeinheiten des
Betriebssystems sind. Insbesondere Betriebssystem-Programmeinheiten, die von den
Programmeinheiten der Software als erste erstellt werden, sind somit in der Lage, über
die Einsprungadressen des jeweiligen ersten Abschnitts eines Programmeinheitskopfes
auch Programmeinheiten zu benutzen, die bei der Erstellung der
Betriebssystem-Programmeinheiten bis auf den ersten Abschnitt ihres jeweiligen Programmeinheitskopfes
noch gar nicht definiert waren.
-
In einer weiteren Ausgestaltung ist vorgesehen, dass die Köpfe der
genannten Programmeinheiten jeweils einen zweiten Abschnitt aufweisen, dessen
Struktur spezifisch für die zugehörige Programmeinheit ist.
-
Im jeweils zweiten Abschnitt der Köpfe von Programmeinheiten stehen
Einsprungadressen, die nur von gleichzeitig oder später entwickelten
Programmeinheiten benutzbar sind, da die Struktur des zweiten Abschnitts nicht a priori wie der
entsprechende erste Abschnitt eines Programmeinheitskopfes feststeht. Die Struktur
des zweiten Abschnitts wird erst bei der Entwicklung der zugehörigen
Programmeinheit festgelegt. Die über den zweiten Abschnitt aufrufbaren Prozeduren oder Daten
können somit anwendungsspezifischer als die dem ersten Abschnitt des
entsprechenden Kopfes zugeordneten Prozeduren und Daten sein. Die Software ist auf diese
Weise an die jeweilige spezifische Anwendung des Telekommunikationsgeräts anpassbar.
Die anwendungsspezifische Ausführung der Software wird dabei insbesondere von
den jüngeren Programmeinheiten bestimmt, um die sich unterschiedliche
Softwarekonfigurationen unterscheiden.
-
Die vorliegende Erfindung wird weiterhin dadurch ausgestaltet, dass
der Kopf einer Programmeinheit Adressen zur Adressierung einer Sprungtabelle
enthält, die zur Adressierung von Prozeduren dieser Programmeinheit dient.
-
Diese Ausgestaltung wird dann angewendet, wenn mit Hilfe einer
einzigen Einsprungadresse im Kopf der Programmeinheit eine je nach
Softwarekonfiguration variable Menge an aufzurufenden Prozeduren adressierbar sein soll. So kann die
Menge der aufzurufenden Prozeduren geändert werden, ohne dass der Kopf der
zugehörigen Programmeinheit geändert werden muss. Dies ist insbesondere für aufrufende
Betriebssystem-Prozeduren vorteilhaft, da diese bei Softwareänderungen nicht
mitgeändert werden.
-
Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt
und werden im Folgenden näher beschrieben. Es zeigen:
-
Fig. 1 ein Blockschaltbild einer Vermittlungsstelle,
-
Fig. 2 ein Blockschaltbild einer Software für die Vermittlungsstelle,
-
Fig. 3 und 4 Blockschaltbilder des Zusammenwirkens verschiedener
Programmeinheiten.
-
Die in Fig. 1 dargestellte Vermittlungsstelle 1 enthält eine
Peripheriebaugruppeneinheit 2, die einen eine oder mehrere Netzschnittstellen aufweisende
Funktionsblock 3, einen Servicefunktionsblock 4 und einen mindestens eine
Teilnehmerschnittstelle aufweisenden Funktionsblock 5 enthält. Der Funktionsblock 3 koppelt
die Vermittlungsstelle 1 mit einem Kommunikationsnetz 6, wobei die Kopplung
insbesondere über eine der im Kommunikationsnetz 6 integrierten Vermittlungsstellen
erfolgt, die, in der Fig. 1 als Knotenpunkte angedeutet sind. Der Servicefunktionsblock
4 generiert beispielsweise Sprachansagen oder Signaltöne oder dient zur Bereitstellung
spezieller Dienste, wie beispielsweise der Unterstützung von Rufen für den Aufbau
von Konferenzschaltungen. Der Funktionsblock 5 koppelt Teilnehmervorrichtungen 7,
beispielsweise Telephone oder Faxgeräte, über jeweils eine in den Funktionsblock 5
integrierte Schnittstelle mit der Vermittlungsstelle 1. Über einen Bus 8 sind die
Funktionsblöcke 3, 4 und 5 der Peripheriebaugruppeneinheit 2 mit einem Koppelfeld 9
gekoppelt. Dieses Koppelfeld 9 wiederum kommuniziert über einen Bus 10 mit einer
zentralen Steuereinheit 11. Die Steuereinheit 11 weist zwei unabhängig voneinander
arbeitende Mikroprozessoreinheiten 12 und 13 auf, die unabhängig voneinander
arbeiten, so dass im Fall des Ausfalls einer der beiden Mikroprozessoreinheiten 12 oder
13 die jeweils andere Mikroprozessoreinheit die Steuerung der Vermittlungsstelle 1
allein übernimmt. Die Kommunikation der zentralen Steuereinheit 11 mit der
Peripheriebaugruppeneinheit 2 erfolgt über das Koppelfeld 9. Die Mikroprozessoreinheiten 12
und 13 enthalten Mikroprozessoren und Arbeitsspeicher (flüchtiger Speicher, RAM).
Auch nicht dargestellte Speichereinheiten mit einem nichtflüchtigen Speicher
(EPROM, Disketten, Magnetplattenspeicher) sind vorgesehen. Weiterhin ist als
Bestandteil der Steuereinheit 11 ein Funktionsblock 14 dargestellt, der Schnittstellen zu
in einem Funktionsblock 15 zusammengefassten Einheiten enthält, mit denen zum
Zwecke der Inbetriebnahme und Wartung von außen über Tatstaturen und Bildschirme
auf die Vermittlungsstelle 1 eingewirkt werden kann.
-
In Fig. 2 ist die Struktur einer Software dargestellt, welche die
Steuerungsabläufe in den Mikroprozessoreinheiten 12 und 13 und somit Funktionsabläufe
der Vermittlungsstelle 1 bestimmt. Die Software besteht aus Programmeinheiten 20,
die jeweils mindestens eine Prozedur und/oder mindestens einen Datenblock
zusammenfassen. Die Software ist hierarchisch in Schichten L0, L1, ... Ln gegliedert, die
jeweils mehrere Programmeinheiten 20 zusammenfassen. Je tiefer eine Schicht in
diesem Schema angeordnet ist, desto abstrakter, anwendungsunabhängiger und älter sind
die in dieser Schicht angeordneten Programmeinheiten 20. So sind beispielsweise in
der untersten Schicht L0 im Wesentlichen Programmeinheiten 20 angeordnet, die zur
Realisierung von Betriebssystemfunktionen dienen und somit für alle
Softwarekonfigurationen gleich sind. Diese werden bei der Softwareentwicklung als erste definiert
und erstellt. Die in der obersten Schicht Ln angeordneten Programmeinheiten 20
bestimmen im Wesentlichen die spezielle Ausführungsform der Vermittlungsstelle 1
bzw. der verwendeten Softwarekonfiguration und werden somit je nach
Anwendungfall ausgetauscht oder weggelassen. Die Programmeinheiten 20 sind getrennt
voneinander kompilierbar und bindbar. Sie können in kompilierter und gebundener Form aus
einer Bibliothek, die alle verfügbaren entwickelten Programmeinheiten 20 umfasst, je
nach Anwendungsfall entnommen und in die Software der Vermittlungsstelle 1
integriert werden. Durch Pfeile zwischen den Programmeinheiten 20 sind mögliche
Aufrufmöglichkeiten der Programmeinheiten 20 exemplarisch dargestellt. Im Regelfall
wird eine Programmeinheit 20 von einer anderen Programmeinheit 20 aufgerufen, die
einer über ihr liegenden Schicht zugeordnet ist. Doch insbesondere die
Programmeinheiten 20 der untersten Schicht L0 rufen auch andere Programmeinheiten 20 aus über
ihnen liegenden Schichten auf. Dieser Fall ist durch Fig. 4 näher erläutert.
-
Anhand von Fig. 3 soll das Zusammenwirken der Programmeinheiten
20 der Vermittlungsstelle 1 am Beispiel von drei Programmeinheiten 20a, 20b und 20c
erläutert werden, deren Bezugszeichen zur besseren Unterscheidbarkeit neben der Zahl
20 die Buchstaben a, b und c enthalten. Jede Programmeinheit weist wie die
Programmeinheit 20c einen Kopf 21 auf, der aus einem ersten Abschnitt 22 und einem
zweiten Abschnitt 23 besteht. Bei den Programmeinheiten 20a und 20b ist der jeweils
zugehörige Programmeinheitskopf nicht dargestellt. Der erste Abschnitt 22 enthält
Bereiche 24, 25 und 26. Im Bereich 24 sind Daten zur Programmfehlerbeseitigung
oder auch Administationsdaten abgelegt. Der Bereich 25 enthält Adressen zur
Adressierung von Prozeduren, der Bereich 26 enthält Adressen zur Adressierung von Daten
bzw. Datenfeldern. Der Bereich 27 enthält wie der Bereich 25 ebenfalls Adressen zur
Adressierung von Prozeduren.
-
Der erste Abschnitt 22 des Kopfes 21 ist per Konvention und somit a
priori festgelegt und somit von der jeweils zu implementierenden
Programmeinheitsversion unabhängig. Änderungen bei neuen Versionen der Programmeinheit 20c haben
keinen Einfluss auf die Struktur des ersten Abschnitts 22. Die Struktur des ersten
Abschnitts 22 einer beliebigen Programmeinheit steht somit auch für noch nicht
entwickelte Programmeinheiten schon fest. Der zweite Abschnitt 23 des Kopfes 21 ist
spezifisch für die Programmeinheit 20c. Bei Änderungen der Programmeinheit 20c kann
der zweite Abschnitt 23 geändert werden. Beispielsweise können für zusätzliche
Prozeduren der Programmeinheit 20c entsprechende Einsprungadressen an den Abschnitt
23 geändert werden. Einsprungadressen des zweiten Abschnitts 23 der
Programmeinheit 20c können nur von Programmeinheiten aufgerufen werden, die entsprechend Fig.
2 in der glichen oder einer höheren Schicht liegen und die somit gleichzeitig oder
später entwickelt wurden. Alle Programmeinheiten 20, so auch die Programmeinheiten
20a und 20b weisen einen nach diesem Schema strukturierten Kopf auf.
-
Die Programmeinheit 20a, die in einer höheren Schicht der Software als
die Programmeinheit 20c angeordnet ist, weist im vorliegenden Ausführungsbeispiel
eine Prozedur 28 auf. Während des Programmablaufs der Prozedur 28 ruft diese eine
Prozedur 29 der Programmeinheit 20c dadurch auf, dass zunächst eine Speicherzelle
A1 des Bereichs 27 des Kopfes 21 adressiert wird. Unter dieser Adresse A1 ist die
Anfangsadresse Ap1 der Prozedur 29 abgelegt, so dass die Prozedur 29 über den Kopf 21
von der Prozedur 28 indirekt aufrufbar ist.
-
Die Programmeinheit 20b enthält eine Prozedur 30, die während ihres
Ablaufs eine in der Programmeinheit 20c enthaltenen Prozedur 31 aufruft und
weiterhin Daten eines Datenfeldes 32 der Programmeinheit 20c ausliest. Die
Programmeinheit 20b gehört zum Betriebssystem der Vermittlungsstelle 1 und ist somit in der
untersten
Schicht L0 der Software der Vermittlungsstelle 1 angeordnet. Diese
Programmeinheit 20b adressiert Prozeduren und Daten der Programmeinheit 20c mit Hilfe der
Bereiche 25 und 26 des Kopfes 21. Im vorliegenden Fall adressiert die Prozedur 30
zum Aufruf der Prozedur 31 zunächst eine Speicherzelle des Bereichs 25 mit der
Adresse A1, in der wiederum die Anfangsadresse Ap2 der Prozedur 31 gespeichert ist,
über welche die Prozedur 31 dann aufrufbar ist. Weiterhin adressiert die Prozedur 31
der Programmeinheit 20b eine im Bereich 26 des Kopfes 21 der Programmeinheit 20c
einer Adresse Ak zugeordnete Speicherzelle, in der die Anfangsadresse Ad des
Datenfeldes 32 abgelegt ist, die beim Beginn des Auslesens des Datenfeldes 32 auzulegen
ist. Die Struktur der Bereiche 25 und 26 ist per Konvention festgelegt. Eine
Anpassung der Bereiche 25 und 26 beispielsweise bei Sofiwareversionsänderungen ist nicht
vorgesehen. Diese Bereiche 25 und 26 stellen somit fest definierte Einsprungadressen
zur Verfügung.
-
Weiterhin ist ein Katalog 33 vorgesehen, der zur Katalogisierung aller
in die Software der Vermittlungsstelle 1 integrierten Programmeinheiten 20 (also auch
der Programmeinheit 20c) dient. Im Katalog 33 sind Referenzen auf alle
Programmeinheiten 20 unter jeweils einer bestimmten Programmeinheitsnummer abgelegt. Der
Katalog 33 wird bei der Inbetriebnahme der Vermittlungsstelle 1 zusammen mit den
erforderlichen Programmeinheiten 20 vom nichtflüchtigen Speicher in den
Arbeitsspeicher der Vermittlungsstelle 1 geladen. Mit Hilfe der Referenzen (z. B.
Adressangaben) wird die Position/Anfangsadresse des Kopfes 21 der Programmeinheit 20c im
Arbeitsspeicher der Vermittlungsstelle 1 ermittelt. Auf den Katalog 33 greifen sowohl
die Programmeinheit 20a mit ihrer Prozedur 28 als auch die Programmeinheit 20b mit
ihrer Prozedur 30 zu, wenn sie Prozeduren oder Daten aus der Programmeinheit 20c
benutzen wollen. Den aufrufenden Prozeduren 28 und 30 der kompilierten
Programmeinheiten 20a und 20b müssen lediglich die relativen Positionen der
Einsprungadressen A1 und A~ bzw. Ak im Kopf 21 der Programmeinheit 20c zugänglich sein. Diese
relativen Positionen stehen insbesondere in den Prozeduren 28 und 30 selbst, sie
können aber auch an anderen Stellen innerhalb der Programmeinheiten 20a und 20b
vermerkt sein. Die Position des Katalogs 33 im Arbeitsspeicher der Vermittlungsstelle 1
ist per Konvention festgelegt und damit fest, so dass er für Prozeduren jeder
Programmeinheit
20 (hier: Prozeduren 28 und 30) auffindbar bzw. adressierbar und damit
verfügbar ist.
-
Da zum Betriebssystem der Vermittlungsstelle 1 gehörende
Programmeinheiten wie die Programmeinheit 20b bei Softwarekonfigurationsänderungen nicht
mehr mitgeändert und rekompiliert werden und auch bei Änderungen der
Programmeinheit 20c deren Prozeduren und Datenfelder von der Programmeinheit 20b
aufrufbar/auslesbar sein müssen, besitzen die Bereiche 25 und 26, welche die Speicherzellen
mit den Adressen Aj und Ak enthalten, eine feste relative Position im Adressbereich
des Kopfes 21. Auch die ebenfalls im ersten Abschnitt 22 im Bereich 24 angeordneten
Daten zur Programmfehlerbeseitigung müssen eine feste relative Position im Kopf 21
haben, da die Programmfehlerbeseitigung ebenfalls mit Hilfe von dem Betriebssystem
zuzuordnenden Programmeinheiten 20 durchgeführt wird.
-
Bei einer solchermaßen strukturierten Software ist es nicht mehr
notwendig, die für eine bestimmte Softwarekonfiguration benötigten Programmeinheiten
20 vor dem Einsatz in der Vermittlungsstelle 1 zu binden, da das Zusammenwirken
der Programmeinheiten 20 mit Hilfe des Katalogs 33 des jeweiligen Kopfes der
Programmeinheiten 20 ermöglicht wird. Ein Kompilieren ist ebenfalls nicht erforderlich,
da die Programmeinheiten in kompilierter Form in einer Bibliothek vorliegen. Da bei
Vermittlungsstellen eine umfangreiche Software erforderlich ist, bei der das
Kompilieren und Binden der zugehörigen Programmeinheiten 20 einige Stunden in Anspruch
nehmen kann, ist es mit Hilfe der vorliegenden Erfindung möglich, die
Produktionszeit der Vermittlungsstelle 1 zu verkürzen. So können nun vorgefertigte
Programmeinheiten, die getrennt kompiliert und gebunden sind, aus einer Bibliothek auf
transportierbare Datenträger (beispielsweise Disketten) und von den transportierbaren
Datenträgern in den nichtflüchtigen Speicher (beispielsweise Magnetplattenspeicher) der
Vermittlungsstelle 1 kopiert werden. Die einzelnen Programmeinheiten 20 sind dabei
in jeweils einem File abgespeichert. Beim Kopieren auf die transportierbaren
Datenträger und beim Kopieren in den nichtflüchtigen Speicher der Vermittlungsstelle ist
die besondere erfindungsgemäße Struktur der Vermittlungsstellensoftware
unwesentlich.
-
Erst beim laden der Programmeinheiten in den Arbeitsspeicher der
Vermittlungsstelle 1 wird die Struktur der Programmeinheiten nach der vorliegenden
Erfindung benutzt. Zunächst werden die Köpfe der Programmeinheiten 20 vom Lader
ausgewertet. Dies beinhaltet die Ermittlung der Länge der Programmeinheit, um bei
einer nicht dargestellten Freispeicherverwaltung der Steuereinheit 11 den
entsprechenden Speicherplatz anfordern zu können, der Programmeinheitsnummer für den
Katalog 33 von Informationen über die Datenbereiche innerhalb der Programmeinheiten,
beispielsweise die jeweilige Datenklasse und Datenlänge, die von einer nicht
dargestellten Speicherverwaltungseinheit ("Memory Management Unit". MMU) der
Steuereinheit 11 zur Regelung von Zugriffsrechten ausgewertet werden. Gemäß der
Ergebnisse der Auswertung der Programmeinheitsköpfe werden die Programmeinheiten in
den Arbeitsspeicher geladen, wird die Speicherverwaltungseinheit (MMU) eingestellt
und der Katalog 33 angelegt. Bis zu diesem Zeitpunkt ist die Vermittlungsstelle mit
ihrer Software noch nicht betriebsbereit. Um die Betriebsbereitschaft zu bewirken,
schließt sich ein sog. "Recovery"-Vorgang an, bei dem unter anderem Daten
initialisiert und Prozesse gestartet werden. Dazu ruft der Lader über die
Programmeinheitsköpfe spezielle Prozeduren der Programmeinheiten auf. Die Prozesse lassen sich als
spezielle Form von Prozeduren innerhalb der Programmeinheiten auffassen.
-
Soll eine Programmeinheit 20 der Software der Vermittlungsstelle 1
zum Beispiel repariert oder durch eine verbesserte Version ersetzt werden, so ist dies
bei der Vermittlungsstelle 1 nach der vorliegenden Erfindung leicht durch einfaches
Löschen der alten Programmeinheit und Hinzufügen der neuen Programmeinheit
möglich, ohne dass ein erneutes Binden erforderlich ist. Dabei bleibt die
Programmeinheitsnummer und die zugehörige Referenz im Katalog 33 gleich. Die
Übergangsparameter der entsprechenden Programmeinheit dürften allerdings nicht geändert werden
und auch die Reihenfolge der Einsprungadressen im Kopf der ausgetauschten
Programmeinheit muss erhalten bleiben. Die neue Programmeinheitsversion darf
ansonsten durchaus größer oder kleiner als die alte Version der Programmeinheit sein. So
darf eine neue Programmeinheitsversion auch zusätzliche Prozeduren enthalten.
Verweise auf solche zusätzlichen Prozeduren werden an den Kopf der erweiterten
Programmeinheitsversion am Ende des zweiten Abschnitts des Kopfes angehängt. Auf
diese Weise kann mit Hilfe der ergänzten Prozeduren erreicht werden, dass andere
Programmeinheiten für die erwähnte neue Programmeinheitsversion aufrufbar werden,
die nach der vorherigen älteren Programmeinheitsversion entstanden sind und
dementsprechend später der Software hinzugefügt wurden. Bei entsprechender Änderung der
Referenz im Katalog 33 kann eine Programmeinheit auch im Arbeitsspeicher
verschoben werden. Weiterhin ist bei Verwendung eines geeigneten Laders auch ein
Austausch von Programmeinheiten während des laufenden Betriebs der Vermittlungsstelle
1 möglich.
-
Beim Herausnehmen einer Programmeinheit 20 aus der Software der
Vermittlungsstelle 1 wird der entsprechende Eintrag im Katalog 3 gelöscht und damit
auch die Referenz auf den entsprechenden Kopf dieser Programmeinheit 20. Der
Speicher, den diese Programmeinheit 20 beansprucht, kann nun freigegeben werden. Die
übrigen Programmeinheiten 20 bleiben unverändert.
-
In Fig. 4 ist eine weitere Möglichkeit einer Kommunikation zwischen
Programmeinheiten 20 anhand zweier mit 20d und 20e bezeichneten
Programmeinheiten dargestellt. Die Programmeinheit 20e enthält einen Kopf 40, der wie der Kopf
21 der Programmeinheit 20c aus Fig. 3 einen festen Abschnitt mit drei Bereichen 41,
42 und 43 und einen variablen Abschnitt mit einem Bereich 44 aufweist. Die
Programmeinheit 20d enthält eine Prozedur 45. Die Programmeinheit 20d ist dem
Betriebssystem der Vermittlungsstelle 1 zugeordnet und der untersten Schicht L0 der
Software der Vermittlungsstelle 1 zugewiesen. Die Prozedur 45 ruft während ihres
Ablaufs eine Prozedur 46 der Programmeinheit 20e auf, indem sie zunächst eine
Speicherzelle im Bereich 42 des Kopfes 40 mit der Adresse Aj adressiert und mit Hilfe der
in dieser Speicherzelle abgelegten Referenz bzw. Adresse einen bestimmten Eintrag in
einer Sprungtabelle 47 der Programmeinheit 20e adressiert, wo wiederum die
Anfangsadresse Ap der aufzurufenden Prozedur 46 abgelegt ist. Die Einträge der
Sprungtabelle 47 sind fortlaufend durchnummeriert (im vorliegenden Fall von 0 bis 6).
Bei der Kommunikation zwischen der aufrufenden Prozedur 45 und der
Programmeinheit 20e wird von der Prozedur 45 beim Aufruf die relative Lage des benötigten
Eintrags in der Sprungtabelle 47 mit weiteren Übergabeparametern übergeben. Der
Eintrag ist im vorliegenden Fall unter der Nummer 3 abgelegt.
-
Die Programmeinheit 20d bestimmt die relative Lage der
Programmeinheit 20e in dem Arbeitsspeicher der Vermittlungsstelle 1 wiederum analog zur
Beschreibung der Fig. 3 mit Hilfe des Katalogs 33, in dem alle verfügbaren
Programmeinheiten 20 (und damit auch die Programmeinheit 20e) katalogisiert sind.
-
Durch die Ausgestaltung der erfindungsgemäßen Vermittlungsstelle 1
nach Fig. 4 wird erreicht, dass mit Hilfe des Inhaltes einer einzigen und hier mit Aj
adressierten Speicherzelle im Bereich 42 des Kopfes 40 und der Übergabe von
anderen relativen Positionen innerhalb der Tabelle 47 neben der Prozedur 46 weitere nicht
dargestellte Prozeduren adressierbar sind. Die Tabelle 47 und die Menge der
Prozeduren, die mit ihrer Hilfe adressiert werden, kann beliebig erweitert werden, ohne dass
für den beschriebenen Aufruf der Prozedur 46 durch die Prozedur 45 die
Programmeinheit 20d geändert und neu kompiliert werden muss, wenn nur die relative Lage
des benötigten Tabelleneintrags in der Tabelle 47 und die relative Lage der Prozedur
46 in der Programmeinheit 20e erhalten bleibt.