DE69620685T2 - Software-konfiguration in einem telekommunikationsgerät - Google Patents

Software-konfiguration in einem telekommunikationsgerät

Info

Publication number
DE69620685T2
DE69620685T2 DE69620685T DE69620685T DE69620685T2 DE 69620685 T2 DE69620685 T2 DE 69620685T2 DE 69620685 T DE69620685 T DE 69620685T DE 69620685 T DE69620685 T DE 69620685T DE 69620685 T2 DE69620685 T2 DE 69620685T2
Authority
DE
Germany
Prior art keywords
program
units
program units
software
program unit
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
DE69620685T
Other languages
English (en)
Other versions
DE69620685D1 (de
Inventor
Lothar Baumbauer
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.)
Philips Intellectual Property and Standards GmbH
Koninklijke Philips NV
Original Assignee
Philips Corporate Intellectual Property GmbH
Koninklijke Philips Electronics NV
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 Philips Corporate Intellectual Property GmbH, Koninklijke Philips Electronics NV filed Critical Philips Corporate Intellectual Property GmbH
Priority to DE69620685T priority Critical patent/DE69620685T2/de
Publication of DE69620685D1 publication Critical patent/DE69620685D1/de
Application granted granted Critical
Publication of DE69620685T2 publication Critical patent/DE69620685T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/42Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker
    • H04Q3/54Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised
    • H04Q3/545Circuit arrangements for indirect selecting controlled by common circuits, e.g. register controller, marker in which the logic circuitry controlling the exchange is centralised using a stored programme
    • H04Q3/54508Configuration, initialisation
    • H04Q3/54533Configuration data, translation, passwords, databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13003Constructional details of switching devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13056Routines, finite state machines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

  • 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.

Claims (4)

1. Telekommunikationsgerät mit einer zur Steuerung von Funktionsabläufen dienenden Software aus mehreren getrennt kompilierbaren Programmeinheiten (20a, ..., 20e), dadurch gekennzeichnet, dass die Programmeinheiten (20a, ..., 20e) jeweils einen Kopf (21, 40) mit zur Adressierung von in den Programmeinheiten (20a, 20e) zusammengefassten Prozeduren (29, 31, 46) und/oder Daten (32) dienenden Adressen (Ap1, Ap2, Ad, Ap aufweisen und dass ein für alle geladenen Programmeinheiten (20a, ..., 20e) verfügbarer Katalog (33) vorgesehen ist, der Referenzen zur Adressierung der Köpfe (21, 40) der Programmeinheiten (20a, ..., 20e) enthält.
2. Telekommunikationsgerät nach Anspruch 1, dadurch gekennzeichnet, dass die Köpfe (21) der genannten Programmeinheiten (20c) jeweils einen ersten Abschnitt (22) aufweisen, dessen Struktur a priori für die Software festgelegt ist.
3. Telekommunikationsgerät nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Köpfe (21) der genannten Programmeinheiten (20c) jeweils einen zweiten Abschnitt (23) aufweisen, dessen Struktur spezifisch Ihr die zugehörigen Programmeinheit ist.
4. Telekommunikationsgerät nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass der Kopf (40) einer Programmeinheit (20e) Adressen zur Adressierung einer Sprungtabelle (47) enthält, die zur Adressierung von Prozeduren (46) dieser Programmeinheit (20e) dient.
DE69620685T 1995-01-28 1996-01-26 Software-konfiguration in einem telekommunikationsgerät Expired - Fee Related DE69620685T2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE69620685T DE69620685T2 (de) 1995-01-28 1996-01-26 Software-konfiguration in einem telekommunikationsgerät

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19502728A DE19502728A1 (de) 1995-01-28 1995-01-28 Telekommunikationsvorrichtung
PCT/IB1996/000070 WO1996023255A1 (en) 1995-01-28 1996-01-26 Software configuration in a telecommunication device
DE69620685T DE69620685T2 (de) 1995-01-28 1996-01-26 Software-konfiguration in einem telekommunikationsgerät

Publications (2)

Publication Number Publication Date
DE69620685D1 DE69620685D1 (de) 2002-05-23
DE69620685T2 true DE69620685T2 (de) 2002-11-28

Family

ID=7752577

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19502728A Withdrawn DE19502728A1 (de) 1995-01-28 1995-01-28 Telekommunikationsvorrichtung
DE69620685T Expired - Fee Related DE69620685T2 (de) 1995-01-28 1996-01-26 Software-konfiguration in einem telekommunikationsgerät

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19502728A Withdrawn DE19502728A1 (de) 1995-01-28 1995-01-28 Telekommunikationsvorrichtung

Country Status (5)

Country Link
US (1) US5771386A (de)
EP (1) EP0753174B1 (de)
JP (1) JPH09511351A (de)
DE (2) DE19502728A1 (de)
WO (1) WO1996023255A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078741A (en) * 1997-02-05 2000-06-20 Firsttel Systems Corporation Automatic generation of reconfiguration scripts for telecommunication devices
WO1998041912A2 (en) * 1997-03-17 1998-09-24 Scientific-Atlanta, Inc. Method and apparatus for adding new functionality to a headend
US5974429A (en) * 1997-09-03 1999-10-26 Northern Telecom Limited Method and apparatus for updating distributed databases in a telecommunications network
US6018737A (en) * 1997-12-18 2000-01-25 Alcatel Usa Sourcing, L.P. Universal personal telecommunications service for an advanced intelligent network
US6793143B2 (en) * 1998-03-12 2004-09-21 Giesecke & Devrient Gmbh Data carrier
DE19910863A1 (de) * 1999-03-11 2000-09-21 Siemens Ag Vorrichtung und Verfahren zum Verarbeiten von Aufträgen
JP2004519810A (ja) * 2001-03-19 2004-07-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記録のためのシフトされた記録開始及び停止位置を備える多層記録担体
DE10127803C2 (de) * 2001-06-07 2003-06-12 Siemens Ag Offener Antriebsregler und Verfahren zur Softwaregewinnung für einen offenen Antriebsregler
US7197302B2 (en) 2001-07-26 2007-03-27 Kyocera Wireless Corp. System and method for interchangeable modular hardware components for wireless communication devices
US7184759B2 (en) 2001-07-26 2007-02-27 Kyocera Wireless Corp. Modular software components for wireless communication devices
US7328007B2 (en) 2001-07-26 2008-02-05 Kyocera Wireless Corp. System and method for organizing wireless communication device system software
US7184793B2 (en) 2001-07-26 2007-02-27 Kyocera Wireless Corp. System and method for over the air area code update
US7200389B2 (en) 2001-07-26 2007-04-03 Kyocera Wireless Corp. Dynamic interface software for wireless communication devices
EP1410191A2 (de) * 2001-07-26 2004-04-21 Kyocera Wireless Corporation System und verfahren zur verwaltung der herunterladung im feld von systemsoftware eines drahtlosen kommunikationsgerätes
US9554268B2 (en) 2001-07-26 2017-01-24 Kyocera Corporation System and method for updating persistent data in a wireless communications device
US7027806B2 (en) 2001-07-26 2006-04-11 Kyocera Wireless, Corp. System and method for field downloading a wireless communications device software code section
US7143407B2 (en) 2001-07-26 2006-11-28 Kyocera Wireless Corp. System and method for executing wireless communications device dynamic instruction sets
US7386846B2 (en) 2001-07-26 2008-06-10 Kyocera Wireless Corp. System and method for the management of wireless communications device system software downloads in the field
US7159214B2 (en) 2001-07-26 2007-01-02 Kyocera Wireless Corp. System and method for compacting field upgradeable wireless communication device software code sections
US7254386B2 (en) 2001-08-10 2007-08-07 Kyocera Wireless Corp. System and method for improved security in handset reprovisioning and reprogramming
US6961537B2 (en) 2001-08-10 2005-11-01 Kyocera Wireless Corp. System and method for peer-to-peer handset communication
US20030093581A1 (en) * 2001-11-09 2003-05-15 Adc Dsl Systems, Inc. Telecommunications system architecture
US8312446B2 (en) * 2002-12-17 2012-11-13 International Business Machines Corporation Dependency management when upgrading application components
US7359698B2 (en) 2003-09-08 2008-04-15 Kyocera Wireless Corp. Systems and methods for enhanced over-the-air programming
JP4922449B1 (ja) 2010-12-27 2012-04-25 株式会社東芝 電話交換システムとそのデータ管理方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5672743A (en) * 1979-11-20 1981-06-17 Casio Comput Co Ltd Subroutine jump system
JPS61196333A (ja) * 1985-02-26 1986-08-30 Alps Electric Co Ltd 外部サブル−チン・システム
US5291601A (en) * 1989-06-01 1994-03-01 Hewlett-Packard Company Shared libraries implemented with linking program loader
EP0423989A3 (en) * 1989-10-16 1992-09-23 Hewlett-Packard Company Software compiler and linker with improved line number table
JPH0465717A (ja) * 1990-07-05 1992-03-02 Fujitsu Ltd プログラム呼び出し方法
US5247681A (en) * 1990-12-18 1993-09-21 International Business Machines Corporation Dynamic link libraries system and method
JPH04282724A (ja) * 1991-03-12 1992-10-07 Nippon Telegr & Teleph Corp <Ntt> プログラム間のアドレス解決方式
JPH05152608A (ja) * 1991-06-29 1993-06-18 Toshiba Corp 光素子および光バス、およびこれらを用いた光学式プロセツサ間結合網
US5297285A (en) * 1991-07-23 1994-03-22 Telefonaktiebolaget L M Ericsson System for dynamically linking modular portions of computer software
JPH0619717A (ja) * 1992-06-30 1994-01-28 Juki Corp 情報処理装置
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
JPH0675774A (ja) * 1992-08-25 1994-03-18 Mutoh Ind Ltd Cad処理方法および装置
US5375241A (en) * 1992-12-21 1994-12-20 Microsoft Corporation Method and system for dynamic-link library
US5414854A (en) * 1993-04-05 1995-05-09 Taligent, Inc. Object-oriental system for managing shared libraries
US5408665A (en) * 1993-04-30 1995-04-18 Borland International, Inc. System and methods for linking compiled code with extended dictionary support
US5561800A (en) * 1993-05-19 1996-10-01 Hewlett-Packard Company Method and apparatus for incrementally linking modified routines into software
US5410698A (en) * 1993-10-12 1995-04-25 Intel Corporation Method and system for dynamic loading of software libraries

Also Published As

Publication number Publication date
US5771386A (en) 1998-06-23
JPH09511351A (ja) 1997-11-11
WO1996023255A1 (en) 1996-08-01
DE69620685D1 (de) 2002-05-23
DE19502728A1 (de) 1996-08-01
EP0753174A1 (de) 1997-01-15
EP0753174B1 (de) 2002-04-17

Similar Documents

Publication Publication Date Title
DE69620685T2 (de) Software-konfiguration in einem telekommunikationsgerät
EP0525432B1 (de) Verfahren zur Änderung von Systemkonfigurationsdatensätzen in einem Fernmeldevermittlungssystem
DE4125389C1 (de)
DE69837676T2 (de) Fernladung von software mit automatischer anpassung für datenzugriffskomptabilität
DE68926345T2 (de) Datenverarbeitungsnetzwerk
EP0849667A2 (de) System zum Austausch von Software
EP0632668B1 (de) Verfahren zum Aktualisieren eines Systemprogramms in einer Vermittlungseinrichtung
DE19905541B4 (de) Verfahren zum Steuern des Speicherzugriffs in einer Maschine mit einem Speicher mit ungleichmäßigem Zugriff und Maschine zur Ausführung eines solchen Verfahrens
EP0840912B1 (de) Rechnersystem
CH670715A5 (de)
EP0690635A2 (de) Verfahren zum Laden von Software in Kommunikationssystemen mit nichtredundanten, dezentralen Einrichtungen
DE3228359A1 (de) Schaltungsanordnung zum adressieren eines plattenspeichers in einer datensignale verarbeitenden anlage, insbesondere fernschreib- und datenvermittlungsanlage
DE69521337T2 (de) Mechanismus für eine konfigurierung
EP0763952B1 (de) Verfahren zum Speichern von teilnehmerbezogenen Daten in Kommunikationssystemen
EP0821533B1 (de) Verfahren zum Laden einer Befehlsfolge in einer Telekommunikationsanlage
EP0557682B1 (de) Verfahren und Anordnung zum Ändern eines Betriebsprogramms in einer programmgesteuerten Steuereinheit
EP0548398A1 (de) Verfahren zur Verwaltung von Programmen und Daten sowie Computersystem zur Durchführung des Verfahrens
EP1235123A2 (de) Addon-Mechanismus für ein Steuerungssystem basierend auf einem Typdatenfeld
DE19637883B4 (de) Datenverarbeitungsanlage zur Ausführung großer Programmsysteme
DE3136287C2 (de)
DE10251477B4 (de) Vorrichtung und Verfahren zum selektiven Ändern von ROM-Daten für Test- und Diagnosezwecke
EP1168858B1 (de) Verfahren und Vorrichtung zur Konfigurierung einer Telekommunikationsanlage
DE2342101C2 (de) Schaltung zum bereichsweisen Adressieren der Register in der Befehlsbank und Datenbank des Hauptspeichers einer Rechenanlage
DE3032615C2 (de)
DE69200252T2 (de) Datenspeichereinrichtung.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PHILIPS INTELLECTUAL PROPERTY & STANDARDS GMBH, 20

Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V., EINDHOVEN, N

8339 Ceased/non-payment of the annual fee