-
Gebiet der
Erfindung
-
Die
Erfindung betrifft die Implementierung von dienstunabhängigen Baublöcken (SIB).
Diese Baublöcke
werden zum Aufbau intelligenter Netzwerkdienste verwendet.
-
Technischer
Hintergrund
-
Das
Verlangen nach Unterstützung
und Erzeugung verschiedener Dienste richtete den Trend bei Telekommunikationsnetzwerken
auf das sogenannte intelligente Netzwerk (Intelligent Network – IN) aus.
Das intelligente Netzwerk kann als eine Architektur definiert werden,
die auf die meisten Telekommunikationsnetzwerke ungeachtet der Netzwerktechnologie
angewendet werden kann. Es zielt darauf ab, dass Telekommunikationsdienste
einen Mehrwert bereitstellen, sowie auf deren Steuerung und Management.
Es ist ein besonderes Leistungsmerkmal des intelligenten Netzwerkes,
modulare Funktionen bereitzustellen, die unabhängig von dem verwendeten Dienst
sind und die miteinander als Komponenten verbunden werden können, wenn neue
Dienste entwickelt werden, wodurch es leichter wird, neue Dienste
zu definieren und zu entwerfen. Ein weiteres besonderes Leistungsmerkmal
ist, dass die Versorgung mit Diensten unabhängig vom Telekommunikationsnetzwerk
ist. Die Dienste sind getrennt von der untersten physikalischen
Netzwerkstruktur, was bedeutet, dass sie verteilt (dezentralisiert)
sein können.
-
Das
CCITT definiert das „Intelligent
Network Conceptual Model (INCM – Konzeptmodell
des intelligenten Netzwerkes) in der Empfehlung CS-1 (Capability
Set 1 – Leistungsfähigkeitszusammenstellung
1). Das Modell beinhaltet vier Ebenen, von denen jede eine abstrakte
Sicht der durch das intelligente Netzwerk gebotenen Möglichkeiten
repräsentiert. 1 zeigt
das Konzeptmodell unter dem Gesichtspunkt der Dienstlogik.
-
Die
oberste Ebene wird Dienstebene (SP) genannt, und sie bestimmt, wie
der Dienst gegenüber
dem Benutzer erscheint. Die Ansicht enthält keine Informationen über die
Implementierung von Diensten im intelligenten Netzwerk. Der Dienst
beinhaltet einen oder mehrere unterste Komponenten dieser Ebene,
die Dienstleistungsmerkmale (SF). Das Leistungsmerkmal SF ist der
für den
Benutzer kleinste wahrnehmbare Teil des Dienstes. Sie können auf
dieselbe Weise wie Baublöcke
zum Aufbau neuer komplexer Dienste verwendet werden.
-
Die
zweite oberste Ebene des Modells ist die globale Funktionsebene
mit einer Ansicht des intelligenten Netzwerks als dienstunabhängige Standards
und als dienstunabhängige
Baublöcke
(SIB), von denen die Diensteigenschaften und die auf der obersten
Ebene wahrnehmbaren Dienste mit der Hilfe einer Dienstlogik gesammelt
werden. Der das gesamte Netzwerk abdeckende Anrufgrundvorgang, sowie
der Initiierungspunkt (POI) und der Rückkehrpunkt (POR) zwischen
dem BCP und den SIB gehören
ebenfalls zu dieser Ebene. Für jedes
Dienstleistungsmerkmal SF der vorhergehenden Dienstebene gibt es
globale Dienstlogikelemente (GSL) auf dieser Ebene, die auf der
Stufe der Diensterzeugung von auf der anderen Seite der Schnittstelle angeordneten
SIB Verwendung machen. Die Dienstebene SF beinhaltet einen SIB oder
mehrere SIB. Im Prinzip ist der SIB ein Unterprogramm, dessen Betriebsweise
genau definiert ist.
-
Die
zweitunterste Ebene wird dezentralisierte Funktionsebene (DFP) genannt.
Sie ist in Funktionseinheiten und interaktiven Beziehungen zwischen
diesen unterteilt. Die SIB der vorhergehenden Ebene beinhalten in
den Funktionseinheiten enthaltene Funktionseinheitsaktionen (FEA).
Jede Einheit kann Aufgaben verschiedener Art durchführen. Innerhalb
jeder Funktionseinheit können
die meisten Aufgaben als eine oder mehrere Unterfunktionen durchgeführt werden.
Auf dieser Ebene ist der SIB der oberen Ebene durch eine dezentralisierte
Dienstlogik (DSL) unter Verwendung der Funktionseinheiten FE dieser
Funktionsebene und durch die von diesen aufgebauten Verbindungen
bereitgestellten beliebigen Funktionen implementiert. Eine globale Dienstlogik
GSL der globalen Funktionsebene führt zu einer oder mehreren
Dienstlogiken X, Y, Z ... auf der dezentralisierten Funktionsebene.
-
Die
unterste Ebene, die physikalische Ebene, wird durch physikalische
Einheiten (PE) ausgebildet, die Aufgaben der dezentralisierten Funktionsebene
durch Schnittstellen zwischen diesen und durch Protokolle unterstützen. Auf
dieser Ebene kann die Dienstlogik durch ein beliebiges physikalisches
Element mit einer Steuerfunktion des betroffenen Dienstes installiert
und durchgeführt
werden. Das Verhalten des Elementes wird durch die Funktionseinheit
der vorhergehenden DF-Ebene bestimmt.
-
SIB
der globalen Funktionsebene werden nachstehend näher untersucht.
-
2 zeigt
eine graphische Ansicht des SIB-Vorgangs. Die nachstehenden Inhalte
können
an jedem SIB unterschieden werden:
- 1) der logische
Ursprung, ab dem die Funktion des SIB beginnt,
- 2) die durch den SIB in seiner Funktion verwendeten Eingabeparameter,
- 3) die von der Funktion des SIB resultierenden Ausgabeparameter,
und
- 4) das logische Ende, wo die Funktion des SIB endet.
-
Das
ETSI definiert keine verschiedenen SIB namentlich oder durch ihre
Funktion, aber es definiert den in der Telefonvermittlung stattfindenden
Austausch von Nachrichten. Dadurch beeinflusst der Standard ebenfalls
die SIB.
-
Aus
dem Blickwinkel des Dienstes gesehen bilden die SIB eine Liste aus,
wobei die Namen der SIB und die durch die SIB benötigten Parameter
aufgelistet sind. Der Dienst wird derart ausgeführt, dass die Liste durchgegangen
wird, und individuelle SIB durchgeführt werden. Dies ist in 3 gezeigt,
wo es eine Anzahl von n SIB in der Liste gibt. Zunächst zeigt
der Anweisungszeiger IP auf den Beginn der Liste, und nach Durchführung eines
individuellen SIB wird der Zeiger durch eine Anweisung zum nächsten Punkt
bewegt, oder es wird ein Sprung zu einem anderen Punkt in der Liste
ausgeführt,
und der dort lokalisierte SIB wird durchgeführt.
-
Die
Zielsetzung ist, dass die SIB dienstunabhängig wären, mit anderen Worten, dass
dieselben SIB bei der Implementierung von verschiedenen Diensten
verwendet werden könnten.
Validierung A ist ein Beispiel dieser Dienstart. Es sei außerdem angemerkt,
dass verschiedene Versionen von demselben Dienst erforderlich sein
können.
Ein Fernbetreiber kann eine derartige Validierung A benötigen, die
eine Ersatzanzahl A beinhaltet, wohingegen ein anderer Fernbetreiber
eine Validierung A ohne eine Ersatzanzahl A möchte.
-
Bezüglich der
Programmierungstechnologie kann der SIB als Unterprogramm implementiert
sein. Zunächst
muss der Unterprogrammanruf hierdurch die für das den SIB implementierende
Unterprogramm verwendeten Parameter weitergeben, und zweitens ist
eine Kompilierung typischerweise mit der Tatsache verbunden, dass
die Anzahl oder Art der in dem Unterprogrammanruf weiterzuleitenden
Parameter nicht ohne Veränderung
des Quellcodes verändert
werden kann. Das Endergebnis ist, dass SIB nicht dienstunabhängig implementiert
werden können,
falls ihre Parameter in dem Unterprogrammanruf weitergeleitet werden.
Dienstunabhängigkeit
wird insbesondere durch den Umstand vermieden, dass es nicht möglich ist,
sicher zu sein, ob die Anzahl und Art der Parameter bei beliebigen
neuen Dienstprogrammen dieselben sind, wie bei den derzeitigen Dienstprogrammen.
In der Praxis war es nötig,
die Zusammenstellung von SIB zu ergänzen, und existierende SIB
in eine andere Form zu ändern,
und es war besonders notwendig, außerdem die Anzahl der Parameter
zu ändern.
Das Problem war dann stets, die Unterprogrammschnittstellen allgemein
zu ändern,
so dass mehr Informationen, d.h. mehr Parameter als vorher, an die
SIB weitergeleitet werden mussten.
-
Dies
wiederum bedeutete, dass mit einer Änderung der Unterprogrammschnittstelle
eine neue Version des Programms erstellt werden musste, wenngleich
der Bedarf für
neue Versionen irgendwie sowohl von der Programmiersprache als auch
von dem Programmierverfahren abhängig
ist.
-
Falls
Probleme auftreten, müssen
Korrekturen in mehreren Programmversionen ausgeführt werden. Das Auftreten von
Softwareversionen verursacht einen Bedarf an Wartung, der wiederum
die Qualität
der Software reduziert und die Kosten erhöht. Zudem verursacht die Existenz
von zahlreichen verschiedenen Versionen einen steigenden Bedarf
an Dokumentation. Im Hinblick auf die Programmiertechnologie ist
es nicht sehr einfach, SIB ohne einen Unterprogrammmechanismus zu
implementieren. Andererseits verursacht ein Unterprogrammmechanismus
das Auftreten von Quellcodeversionen sowie die vorstehend beschriebenen
Probleme.
-
Der
Erfindung liegt die Aufgabe zugrunde, ein Verfahren anzugeben, das
sicherstellt, dass implementierte SIB wirklich dienstunabhängig sind.
Die Aufgabe wird mit den im unabhängigen Patentanspruch angegebenen
Mitteln erzielt.
-
Kurzzusammenfassung
der Erfindung
-
Gemäß einem
ersten kennzeichnenden Merkmal der Erfindung gemäß Patentanspruch 1 erfolgt
keine besondere Definition eines SIB-Satzes, sondern die SIB werden
anstatt dessen logisch in zwei Gruppen unterteilt: assistierende
bzw. durchführende
SIB. Dies geschieht, weil man bezüglich einiger SIB recht sicher
sein kann, dass sie unverändert
bleiben und somit wahrhaft dienstunabhängig, aber es keine Sicherheit
bezüglich anderer
gibt, und dies ist der fundamentale Grund, warum die SIB in assistierende
und durchführende
unterteilt werden.
-
Die
assistierenden SIB führen
einfache und klar eingeschränkte
Aufgaben durch, wodurch man sicher sein kann, dass die Anzahl und
Art von Parametern auch in Zukunft unverändert bleibt.
-
Die
Aufgaben von durchführenden
SIB sind größer als
die Aufgaben assistierender SIB und Änderungen können bei ihnen auftreten. Die
Parameter der durchführenden
SIB werden in dem Unterprogrammanruf nicht weitergeleitet, aber
bei einer oder mehreren globalen Datenstrukturen.
-
Die
zwei anderen kennzeichnenden Merkmale der Erfindung werden in Verbindung
mit der ausführlichen
Beschreibung der Erfindung untersucht. Diese kennzeichnenden Merkmale
stellen die Verwendung einer globalen Variablen dar.
-
Figurenliste
-
Die
Erfindung ist nachstehend mit Hilfe der beigefügten Figuren näher beschrieben.
Es zeigen:
-
1 ein
Konzeptmodell eines intelligenten Netzwerkes;
-
2 einen
dienstunabhängigen
Baublock;
-
3 das
Leistungsverhalten von SIB;
-
4 die
Verwendung einer globalen Variablen;
-
5 einen
assistierenden SIB; und
-
6 einen
durchführenden
SIB.
-
Ausführliche
Beschreibung der Erfindung
-
Gemäß einem
ersten kennzeichnenden Merkmal der Erfindung sind die SIB somit
logisch in zwei Gruppen unterteilt: assistierende bzw. durchführende SIB.
-
Die
assistierenden SIB führen
derartige Aufgaben durch, dass die Anzahl und Art der Parameter
sicherlich standardisiert sind, ungeachtet in welchem Dienstprogramm
die SIB heute und in Zukunft verwendet werden.
-
Die
durchführenden
SIB sind derart, dass die Anzahl oder Art ihrer Parameter sich ändern kann,
was wiederum zu den eingangs geschilderten Problemen führt. Die
Probleme werden derart vermieden, dass Parameter für durchführende SIB
nicht in dem Unterprogrammanruf weitergeleitet werden, sondern in
einer oder mehreren globalen Variablen. Bezüglich globaler Variablen wird
auf das Fachbuch Que Corporation, Band 1, 1989 (USA), Chris Ohlsen
et al., „Turbo
Pascal Advanced Techniques" Bezug
genommen. Dabei ist die globale Variable eine Datenstruktur, und
die in ihren Feldern gespeicherten Informationen sind allen Unterprogrammen verfügbar. Eine
derartige Datenstruktur kann eine bereits existierende Datenstruktur
der Software sein, oder sie kann separat erzeugt werden.
-
Die
Erfindung ist dadurch gekennzeichnet, dass eine unzweideutige Kennung
auf jedes Feld der als globale Variable verwendeten Datenstruktur
Bezug nimmt.
-
Eine
CID genannte derartige Datenstruktur wird bei einem nachstehend
aufgeführten
Beispiel verwendet, das Call Instant Data (Daten im Moment des Anrufs)
enthält.
-
Die
CID-Datenstruktur beinhaltet die nachstehend aufgeführten Felder:
-
Bei
dem Dienstprogramm wird auf Felder der CID-Datenstruktur auf der Grundlage einer
unzweideutigen Erkennung Bezug genommen, vorliegend einer Sequenznummer,
wobei beispielsweise die Sequenznummer eins (1) auf den Teilnehmer
A (Subscriber A) Bezug nimmt und die Sequenznummer zwei (2) auf
den Teilnehmer B Bezug nimmt und sofort. Falls der Programmcode
der SID im Übersetzungsprogramm
beinhaltet ist, werden die internen Sequenznummern (die vorstehenden
Nummern 1 und 2) des Übersetzungsprogramms
unverändert
gehalten. Beliebige neue Felder werden dem Ende der CID-Datenstruktur
hinzugefügt, und
sie weisen ihre eigenen Sequenznummern in einer aufeinanderfolgenden
Sequenz von Nummern auf.
-
Das
vorstehend Beschriebene wird nachstehend mit Hilfe von 4 dargestellt.
Wenn das Dienstprogramm SIB an der Reihe ist, ausgeführt zu werden,
holt sich der betroffene SIB die benötigten Informationen von der
Datenstruktur, die eine globale Variable ist. Der SIB führt seine
Funktionen unter Verwendung der eingeholten Informationen durch.
-
Assistierende
SIB werden mit Hilfe von zwei SIB als Beispiele beschrieben. Ihre
Namen wurden vom Anmelder vergeben, aber Funktionen einer ähnlichen
Art durchführende
SIB werden ebenso bei intelligenter Netzwerksoftware von anderen
Herstellern gefunden.
-
Das
erste Beispiel SUB_TO_CID ist ein individuelle Teilnehmerfunktionen
von der Dienstunterstützungsdatenbank
und diese in die vorstehend angeführte CID-Datenstruktur platzierender
assistierender SIB. Dieser SIB weist zwei Parameter auf, von denen
einer angibt, welche Teilnehmerinformationen von der Datenbank eingeholt
werden, während
der andere Parameter angibt, in welchem Feld der CID-Datenstruktur
die Teilnehmerinformationen platziert sind.
-
Das
in 5 gezeigte andere Beispiel IF ist ein assistierender
SIB, der drei Eingangsparameter aufweist. Der erste Parameter ist
ein Wahrheitswert (wahr/falsch), der zweite Parameter ist eine Sprungadresse a,
zu der die Funktion sich bewegt, falls der Wahrheitswert wahr ist,
und der dritte Parameter ist eine Sprungadresse b, zu der sich die
Funktion bewegt, falls der Wahrheitswert falsch ist. Die sich aus
dem Leistungsverhalten des SIB ergebende Sprungadresse (a oder b)
bewegt den in 3 gezeigten IP-Zeiger zu dem
in der Sprungadresse in Bezug genommenen SIB, woraufhin dieser SIB
durchgeführt
wird. Offensichtlich bleibt ein SIB dieser Art mit verstreichender
Zeit unverändert:
Zwei Wahrheitswerte können
kaum etwas anderes erzeugen als zwei Ausgabewerte, die in den Eingangsparametern
angegeben sind. In einem derartigen Fall ist es reichlich nutzlos,
eine globale Variable zu verwenden.
-
Die
Aufgaben von durchführenden
SIB sind größer als
die von assistierenden SIB. Als Beispiel einer durchführenden
SIB führt 6 CHARGING_INFO
an, welcher die Anrufsteuerung mit auf die Berechnung bezogenen
Informationen bereitstellt, wie etwa die Teilnehmernummer und den
Berechnungsursprung. Einem durchführenden SIB gehen typischerweise
ein oder mehrere assistierende SIB voraus. Dem vorstehend angeführten CHARGING_INFO-SIB
geht ein derartiger SUB_TO_CID voraus, wobei die Berechnungsursprungsinformationen
von der Teilnehmerdatenbank geholt werden, und in ein bestimmtes
Feld des CID-Datensatzes platziert werden. Wenn der CHARGING_INFO-SIB
an der Reihe ist, erhält
er von dem CID-Datensatz die von ihm benötigten Berechnungsursprungsinformationen.
-
Indem
bestimmte SIB verändert
werden, so dass sie parameterlos sind, ist es möglich, das Auftreten von verschiedenen
Versionen des Quellcodes als Folge von Veränderungen in der Anzahl von
Parametern zu vermeiden. Es ist nicht nötig, alle SIB zu ändern, so
dass sie parameterlos sind, weil ihre Anzahl (nahezu sicher) dieselbe
bleibt. Der vorstehend angeführte
IF-SIB kann natürlich
so implementiert werden, dass er drei Parameter aufweist, von denen
einer den Referenzvorgang angibt, während die anderen Parameter
Werte enthalten, die miteinander verglichen werden. Andererseits
ist der SIB, der einen Verbindungsablauf mit dem Namen CONNECT durchführt, der
in dem Core-Inap-Standard definiert ist, und der eine in-connect_s-Nachricht an
den Dienstvermittlungspunkt (Service Switching Point) – (SSP)
sendet, von der Art von SIB, dass sich die Anzahl der Parameter
verändern
kann. Aus diesem Grund ist es die Mühe wert, den CONNECT-SIB als
einen SIB ohne Parameter zu implementieren, der die von ihm benötigten Informationen
von der globalen Variablen erhält.
-
Ein
drittes kennzeichnendes Merkmal der Erfindung ist, dass die Verwendung
der in der globalen Variablen enthaltenden Informationen konditional
ist. Die Informationen werden lediglich in dem Fall verwendet, dass
sich die Informationen von einem bestimmten Initialisierungswert
unterscheiden.
-
Das
dritte charakteristische Merkmal betrifft eine Implementierung des
Programmcodes der SIB. Die Implementierung von SIB kann auf einer
bekannten Übersetzertheorie
derart basieren, dass der Programmcode der SIB in dem Übersetzer
beinhaltet ist. Der Übersetzer
liest hierdurch ein durch SIB-Namen und SIB-Parameter ausgebildetes
Dienstprogramm, und führt
sodann den Programmcode des SIB durch.
-
Ein
Beispiel eines auf das dritte charakteristische Merkmal bezogenen
SIB wird nachstehend angegeben, wobei die Aufgabe des SIB ist, einen
Anruf zu „verbinden". Es sei angenommen,
dass die SIB durch Übersetzertechnologie
implementiert sind, und es wird angenommen, dass neue Informationen „analyse_tree_index" in dem CONNECT-SIB
verwendet werden sollen. Wenn eine globale Variable, d.h. eine CID-Datenstruktur,
verwendet wird, und der CONNECT-SIB
als parameterloser SIB implementiert wird, dann erfolgt die nachstehend
angegebene Veränderung
in der CID-Datenstruktur:
wobei
die Sequenznummer x der Addition die erste nicht verwendete Sequenznummer
ist.
-
Zudem
erfolgt eine Änderung
der nachstehend angegebenen Art an dem CONNECT-SIB in dem Übersetzter:
IF
analyse_tree_index IS NOT initialise_value THEN USE analyse_tree_index
-
Die
analyse_tree_index-Informationen können beispielsweise mit Hilfe
des R_TO_CID-SIB in den CID-Datensatz
genommen werden. R_TO_CID ist ein assistierender SIB mit zwei Parametern.
Ein Parameter bezieht sich auf ein R-Register, während sich der andere auf ein
Feld in der CID-Datenstruktur beziet, vorliegend auf Feld x. Das „alte" Dienstprogramm erkennt
Feld x in der CID-Datenstruktur nicht, das bedeutet, dass es keinen
Wert für
die analyse_tree_index-Informationen einsetzt, wodurch der Initialisierungswert
die analyse_tree_index-Informationen
sind.
-
Somit
ist die Idee, dass der Übersetzer
vom Blickpunkt des „alten" Dienstprogramms
wie vorher arbeitet. Andererseits kann das „neue" Dienstprogramm die analyse_tree_index-Informationen
verwenden, da die auf die Informationen bezogenen Schritte konditional
sind, d.h. sie werden lediglich durchgeführt, falls sich der analyse_tree-index-Wert
von einem bestimmten Initialisierungswert unterscheidet (0 ist ein
allgemeiner Initialisierungswert).