-
HINTERGRUND DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich im allgemeinen auf die Datenkommunikation
in einem Netz von Computersystemen. Im besonderen bezieht sie sich
auf eine Kommunikationsendpunktstruktur, die es auf Computersystemen
gespeicherten Anwendungsprogrammen ermöglicht, unabhängig vom
Protokoll, für
das die Anwendung geschrieben wurde, und unabhängig davon, welche Protokolle
im Netz verfügbar
sind, über ein
solches Netz zu kommunizieren.
-
Früher waren
fast alle Computersysteme unabhängige
Prozessorstationen, an denen eigene Peripheriegeräte wie beispielsweise
Bildschirme, Drucker und Plattenlaufwerke angeschlossen waren und
die unabhängig
voneinander arbeiteten. Mit der Zeit erkannte man die großen Vorteile,
die daraus erwachsen können, wenn
man mehrere Computersysteme miteinander verknüpft. Mittlerweile ist es durchaus üblich, mehrere Computersysteme
in einer verteilten Umgebung miteinander zu verbinden, so dass man
ein LAN- oder ein WAN-Netzwerk erhält.
-
Es
gibt jedoch zahlreiche Anbieter, die ihre eigenen Hardware- und Software-Lösungen entwickelt
haben, um mehrere Computersysteme zu integrieren. Insbesondere haben
diese unterschiedliche Vorstellungen vom Format und von den Protokollen
entwickelt, die bei der Übertragung
von Daten in diesen Netzen zu befolgen sind. Einige Protokolle unterstützen eine
beschleunigte Datenübertragung,
bei der die standardmäßigen Datenflusskontrollen
umgangen werden, andere schreiben zwingend vor, dass die Daten diese
Kontrollen durchlaufen. Spezialprotokolle werden für Übertragungsaufgaben
wie beispielsweise den Aufbau und das Beenden von Verbindungen zwischen
Computersystemen verwendet. Beispiele für gut bekannte Kommunikationsprotokolle
sind System Network Architecture (SNA), Digital Network Architecture
(DECnet), Transmission Control Protocol/Internet Protocol (TCP/IP),
Network Basic Input/Output System (NetBIOS), Open Systems Interconnection
(OSI) und AppleTalk. Weitere Protokolle sind bekannt und werden
auf breiter Basis verwendet.
-
Die
meisten verteilten Anwendungsprogramme werden in eine Anwendungsprogrammierschnittstelle (API)
geschrieben, die ein bestimmtes Kommunikationsprotokoll verwendet.
Die verteilten Umgebungen, die die meisten Organisationen aufgebaut
haben, sind jedoch komplex, bestehen aus Gruppen einzelner Netze, die
auf unterschiedlichen Kommunikationsprotokollen laufen. Wenn die Übertragungsprotokolle,
die von der Anwendungsprogrammierschnittstelle der verteilten Anwendung
verwendet werden, und die Übertragungsprotokolle,
die auf einem oder mehreren Netzwerken tatsächlich implementiert sind und
auf denen die Organisation ihre Daten senden möchte, nicht die gleichen sind,
ist der Einsatz einer Anwendung beschränkt. Man darf davon ausgehen,
dass die Probleme einer solchen Heterogenität in den Kommunikationsprotokollen
größer werden,
wenn immer mehr Organisationen über
ihre Netze miteinander kommunizieren, um ihr Bestellwesen, Rechnungswesen
oder andere Aktivitäten
zwischen Organisationen abzuwickeln.
-
Zwar
könnten
die verteilten Anwendungen so umgeschrieben werden, dass sie jedes Übertragungsprotokoll
ausführen,
oder es könnten
Anwendungsgateways für
jede verteilte Gruppe verteilter Anwendungen geschrieben werden,
doch machen die Kosten für
das Programmieren des erforderlichen Codes eine solche Vorgehensweise
wirtschaftlich unrentabel. Eine bevorzugte Lösung wird vorgestellt in der
ebenfalls anhängigen
Patentanmeldung mit der europäischen
Veröffentlichungsnummer
EP-A-524123 und mit dem Titel "Compensation
for Mismatched Transport Protocols in a Data Communications Network", von R. F. Bird
et al., angemeldet am 17. Juli 1991. Diese Patentanmeldung beschreibt
einen Übertragungsverbindungslayer
zwischen einem ersten Übertragungsbenutzer
an einem Node im Netzwerk und einem zweiten Übertragungsbenutzer an einem
anderen Node im Netzwerk. Wenn das Übertragungsprotokoll, das von
der Anwendung am ersten Node verwendet werden soll, im Netzwerk
nicht verfügbar
ist, werden die Daten, die zwischen den beiden Nodes übertragen
werden, automatisch geändert,
so dass sie mit den verfügbaren Übertragungsprotokollen
kompatibel sind. Auf diese Weise ist eine Organisation in der Lage,
Anwendungsprogramme nur nach dem Kriterium der Funktionen, die sie
anbieten, auszuwählen,
und nicht nach dem Kriterium der Protokolle, die sie benötigen.
-
Die
oben zitierte Anwendung beschreibt einen allgemeinen Übertragungslayer.
Eine der Übertragungsstrukturen,
die derzeit in der Berkeley-Version der UNIX (TM)-Umgebung verwendet
wird, wird als Socket bezeichnet. Ein Socket ist ein Objekt, das
einen Kommunikationsendpunkt in einem Netzwerk identifiziert. Ein
Socket verbirgt das Protokoll der Netzwerkarchitektur hinter der
Anwendung. Ein Socket ermöglicht
die Herstellung einer Verbindung zwischen einem Endpunkt, beispielsweise
einem Anwendungsprogramm, und einem der ausgewählten Protokolle. Diese Verknüpfung erfolgt,
wenn der Endpunkt erstellt wird. Wenn ein Endpunkt erstellt wird,
wird außerdem
der Socket mit dem Protokoll, das unverändert bleibt, statisch verknüpft. In
einer Mehrfach-Protokollumgebung,
wie sie in der oben zitierten Anmeldung beschrieben wurde, die eine heterogene
Konnektivität
erleichtert, kann ein Übertragungsendpunkt
nach der Erstellung des Endpunktes an eines von mehreren verfügbaren Protokollen
gebunden werden müssen.
Wenn daher in einer solchen Umgebung Sockets verwendet werden sollen,
muss eine neue Socketstruktur entwickelt werden, die eine dynamische
Verknüpfung
des Sockets mit dem Protokoll ermöglicht. Die vorliegende Erfindung
beschreibt eine solche Socketstruktur.
-
Computer
Communications, Band 10, Nr. 1, Februar 1987, Butterworth, London,
GB, Seiten 21–29,
D. Coffield et al., "Tutorial
guide to Unix sockets for network communications" beschreibt die in 4.2 BSD Unix-Systemen
verfügbare
Kommunikationsfunktion zwischen Prozessen in Sockets. Mit diesen
Sockets können
verteilte Anwendungen zwischen UNIX-Hosts in einem Netzwerk aufgebaut werden.
Mit einem Systemaufruf wird ein Socket erstellt oder erworben sowie
das in nachfolgenden Verbindungen zu verwendende Protokoll unter Verwendung
dieses Sockets spezifiziert. Daher werden die zu verwendenden Protokolle
zum Zeitpunkt des Systemaufrufs und nicht durch eine dynamische
Verknüpfung
eingestellt.
-
Zusammenfassung der vorliegenden
Erfindung
-
Die
vorliegende Erfindung stellt ein System und ein Verfahren zur Kommunikation
zwischen Nodes in einem Computer-Netzwerk bereit, in dem für Netzwerknodes
mehrere Protokolle zur Verfügung
stehen, wobei dieses Verfahren folgende Schritte umfasst:
-
Erstellung
einer Socketstruktur, die die Kommunikationsparameter für entsprechende
Netzwerknodes definiert, wobei die Socketstruktur Informationen über mehrere
Alternativprotokolle besitzt, die von den genannten Nodes für die Kommunikation
zwischen den Nodes verwendet werden können, wobei dieser Erstellungsschritt
folgende Teilschritte umfasst: Anforderung von Informationen von
jedem der Alternativprotokolle, Auswahl einer Gruppe von Protokollen
aus der Gruppe von Alternativprotokollen, Festlegung, welche der
ausgewählten
Alternativprotokolle von den jeweiligen Nodes verwendet werden können, Erstellung
eines Protokollsteuerblocks für
jedes Protokoll der ausgewählten
Protokollgruppe sowie Einfügen
eines Zeigers in die Socketstruktur für jeden Protokollsteuerblock
eines ausgewählten
Protokolls, und, sobald eine Kommunikation zwischen den genannten
Nodes angefordert wird, Aufbau einer Verbindung zwischen den genannten
Nodes unter Verwendung eines Protokollsteuerblocks eines Protokolls
aus der ausgewählten
Protokollgruppe.
-
Die
vorliegende Erfindung erleichtert dadurch die späte Zuordnung eines Endpunkts
zu einem Übertragungsprotokoll
in einer verteilten Umgebung, wodurch eine dynamischere Verbindung
zwischen Protokoll und Endpunkt entsteht.
-
Vorzugsweise
ermöglicht
die vorliegende Erfindung einen uneingeschränkten Zugriff auf ein Protokoll durch
eine Anwendung. Es ist ebenfalls beabsichtigt, dass die vorliegende
Erfindung die notwendigen Informationen für eingeschränkte Verbindungen mit einem
Protokoll bereitstellt.
-
In
einem bevorzugten Ausführungsbeispiel
stellt die vorliegende Erfindung eine neue Socketstruktur bereit,
die die Entscheidung, welches Protokoll verwendet werden soll, auf
den Zeitpunkt verschiebt, zu dem die Verbindung zwischen Nodes im
Netzwerk tatsächlich
hergestellt wird. In einem Mehrfach-Protokollnetzwerk lässt sich die neue Socketstruktur
für jeden
Endpunkt erstellen. Für
alle Protokolle, die möglicherweise verwendet
werden können,
um Daten zu senden oder zu empfangen, wird eine Anforderung erstellt,
zum Zeitpunkt der Erstellung des neuen Sockets einen Protokollsteuerblock
zu erzeugen. Ein Auswahlprozess legt fest, welches Protokoll von
einem gegebenen Endpunkt möglicherweise
verwendet werden könnte.
Der neue Socket für
den Endpunkt enthält
daraufhin Informationen über
jedes der ausgewählten
Protokolle. Zum Zeitpunkt des Aufbaus einer Verbindung könnte jedes
der ausgewählten
Protokolle verwendet werden. Es können sowohl uneingeschränkte als
auch eingeschränkte
Verbindungen hergestellt werden. Die Auswahl des zu verwendenden
Protokolls oder die Reihenfolge der Protokollpräferenzen lässt sich bei der Konfiguration
an die Präferenzen
des Benutzers anpassen, an den lokalen Cache-Speicher oder an die Informationen von
der benannten Service-Einheit.
-
Kurze Beschreibung der
Zeichnungen
-
Die
vorliegende Erfindung wird anschließend ausführlicher anhand von Beispielen
beschrieben, wobei auf die folgenden Zeichnungen Bezug genommen
wird:
-
1 ist
ein Diagramm zweier einzelner Protokollnetzwerke, die über ein
Mehrfach-Protokoll-Übertragungsnetzwerk
miteinander verbunden sind.
-
2 ist
ein Blockdiagramm der Übertragungsschnittstelle,
die gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung verwendet wird.
-
3 ist
ein Diagramm eines herkömmlichen
Socketsteuerblocks.
-
4 ist
ein Diagramm des Socketsteuerblocks gemäß einem bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung.
-
5 ist
ein Flussdiagramm der Erstellung eines Sockets gemäß einem
bevorzugten Ausführungsbeispiel
der vorliegenden Erfindung.
-
6 ist
ein Flussdiagramm des Aufbaus einer Verbindung in der Umgebung eines
Mehrfach-Protokoll-Übertragungsnetzwerkes
unter Verwendung eines Mehrfach-Protokoll-Sockets gemäß der vorliegenden Erfindung.
-
7 ist
eine Darstellung eines Computersystems einschließlich einer Systemeinheit,
einer Tastatur, einer Maus und eines Bildschirms.
-
8 ist
ein Blockdiagramm der in 7 abgebildeten Computersystemkomponenten.
-
Kurze Beschreibung der
Zeichnungen
-
Es
folgt eine Beschreibung einer Socket-gestützten Architektur. Die vorliegende
Erfindung ist jedoch nicht auf Sockets beschränkt und könnte genau so gut auf ähnliche
Kommunikationsendpunktobjekte in anderen Betriebssystemen angewandt
werden.
-
Zwar
enthält
die folgende Beschreibung eine angemessene Darstellung der herkömmlichen
Socket- und Netzwerkarchitektur, so dass ein Fachmann auf diesem
Gebiet die vorliegende Erfindung gut verstehen kann, doch wird der
Leser verwiesen auf The Design and Implementation of the 4.3 BSD
UNIX Operating System von S. J. Leffler et al., Addison-Wesley,
Reading, MA, 1989. Dort wird ein Betriebssystem auf der Basis der
Berkeley-Version von UNIX (TM) genau beschrieben. Diese Betriebssysteme
sind gut bekannt.
-
1 zeigt
die drei einzelnen Protokollnetzwerke 10, 12, 14,
die über
ein Gateway 59 miteinander verbunden sind, das gemäß den Grundsätzen der
vorliegenden Erfindung aufgebaut wurde. Mit wachsendem Umfang netzwerkverteilter
Umgebungen sind Netzwerke mit vier oder fünf verschiedenen Protokollen
(beispielsweise TCP/IP, NetBIOS, SNA oder AppleTalk, nicht länger ungewöhnlich.
Da Anwendungen, die auf einem Netzwerk laufen, häufig nicht kompatibel mit Anwendungen
auf einem anderen Netzwerk sind, ist die Datenübertragung im Netzwerk behindert.
Wie oben bereits beschrieben wurde, geht das MultiProtocol Transport Network
(MPTN) 16 auf diese Probleme ein, indem es eine Schnittstelle
und einen Ausgleichsmechanismus für eine Gruppe von Übertragungsdiensten
definiert, die Verbindungen zwischen mehreren Übertragungsprotokollen herstellen.
Durch die Bereitstellung einer Übertragungsgrenze
zwischen den Netzwerken und den auf den Systemen befindlichen Anwendungen
stellt das MPTN eine gemeinsame Übertragungsschnittstelle
bereit, so dass die Meldungen von den Anwendungen über jedes
beliebige Protokoll im Netzwerk übertragen
werden können.
-
Wie
aus der Darstellung in 1 hervorgeht, sind die Hosts 20 und 22 mit
dem Mehrfachprotokoll-Übertragungsnetzwerk 16 verbunden.
Während
das Mehrfachprotokoll-Übertragungsnetzwerk 16 als
einzelnes logisches Netzwerk mit einem einzigen Protokoll erscheint,
ist der Host 20 mit einem ersten Netzwerk 10 verbunden,
das über
das Protokoll X kommuniziert, also über TCP/IP; und Host 22 mit
einem zweiten Netzwerk 12 verbunden, das über das
Protokoll Y kommuniziert, also über
NetBIOS.
-
Das
Anwendungsprogramm A 24, das in einem der Hosts 20 gespeichert
ist, die mit dem MPTN-Netzwerk 16 verbunden sind, möchte mit
der Anwendung B 26 kommunizieren, die in einem weiteren
Host 22 gespeichert ist, der ebenfalls mit dem Netzwerk 16 verbunden
ist. Beim Aufruf der Anwendung A an den Socket-Layer 27 erstellt
dieser Socket-Layer 27 ein Socket, der die Anwendung A
als Endpunkt definiert. Sockets enthalten Informationen über ihren
Typ, die unterstützenden
Protokolle, die im Übertragungslayer 28 verwendet
werden, und ihren Status. Eine Verbindungsanforderung geht durch
den Übertragungslayer 28,
den Netzwerklayer 29 und den Netzwerkschnittstellenlayer 30.
Diese fügen
die erforderlichen Steuer- und Dateninformationen bei, bevor die
Nachricht auf dem Netzwerk 54 ausgesendet wird. Ein Ausgleich
für die
Unterschiede zwischen Protokoll Y und X erfolgt durch den Übertragungslayer,
was in der oben zitierten Patentanmeldung beschrieben wird.
-
2 ist
eine ausführlichere
Abbildung der Code-Module im Speicher eines Computersystems, das mit
dem Mehrfachprotokoll-Übertragungsnetzwerk
verknüpft
ist. Die Socket-Programmierschnittstelle 60 und die
gemeinsame Übertragungssemantik 62 entsprechen
dem Socket-Layer und trennen die Anwendungen 64, 66 und 68 von
den Service-Treibern 70, 72, 74. Im Anwendungslayer
werden drei Arten von Anwendungen, 64, 66, 68,
gezeigt. Um die Socket-Struktur der vorliegenden Erfindung verwenden
zu können,
müssten
NetBIOS-Anwendungen
in die Socket-API geschrieben werden, damit diese zur NetBIOS-Socketanwendung 66 werden
könnte.
Die standardmäßige lokale
IPC-Socketanwendung 64 und die TCP/IP-Anwendungen 68 werden bereits
in eine standardisierte Socket-Programmierschnittstelle
geschrieben. Dadurch wäre
nur ein Mindestmaß an Überarbeitungsaufwand
erforderlich. Die gemeinsame Übertragungssemantik 62 enthält die Socket-Steuerblöcke, die
nachfolgend noch näher
beschrieben werden. Eine Schnittstelle zwischen dem Socket-Layer
und dem Übertragungslayer
wird gebildet durch den lokalen IPC-Service-Treiber 70, den NetBIOS-Service-Treiber 72 und
den Inet-Service-Treiber 74,
die den Anwendungen im Anwendungslayer entsprechen. Die Service-Treiber
werden verwendet, um die gemeinsame Übertragungssemantik für die Übertragungsprotokolltreiber
im Übertragungslayer
zu emulieren. In der vorliegenden Erfindung können diese auch das in der
oben angegebenen Patentanmeldung beschriebene Ausgleichsmittel enthalten,
welche eine Nachricht, die für
ein erstes Protokoll in der Anwendung bestimmt ist, umwandelt in
ein zweites Protokoll, das vom Netzwerk unterstützt wird. Das Übertragungslayer
enthält
die Protokolltreiber NetBIOS 76 und TCP/IP 78,
die dafür
sorgen, dass die Anwendungsnachricht mit dem Protokollformat übereinstimmt.
Es gibt. kein entsprechendes lokales IPC-Modul, da es ein lokales
Protokoll beschreibt, dessen Nachrichten sich nicht auf dem Netzwerk
befinden. Das Netzwerk und die Netzwerkschnittstellenlayer sind
nicht abgebildet, doch würde
dieser Gerätetreiber
für die
I/O-Hardware enthalten,
die das Computersystem mit dem Netzwerk verbindet, beispielsweise
einen Token-Ring oder einen Ethernet-Treiber; ersterer könnte Treiber
enthalten, die in die gut bekannte NDIS-Schnittstelle geschrieben
sind.
-
Ein
Socket ist das Basiselement in der Berkeley-Version von UNIX(TM),
dem Betriebssystem, von dem aus Nachrichten gesendet und mit dem
Nachrichten empfangen werden. Sockets werden innerhalb einer Kommunikationsdomäne erstellt,
so wie Dateien innerhalb eines Dateisystems erstellt werden. Eine
Kommunikationsdomäne
fasst die Protokollgruppen, die Dateibenennungskonventionen und
die Hardware, bei der es sich um ein bestimmtes Netzwerk handeln
kann, zusammen und kann eine Adresse verwenden, die sich auf die Kommunikationsdomäne bezieht.
Die Internet-Domäne
wird durch die Adressenfamilie AF_INET spezifiziert, während die
NetBIOS-Domäne
durch die Adressenfamilie AF_NETBIOS referenziert wird. Eine Verbindung
ist ein Mittel, mit dem die Identität des sendenden Sockets nicht
mit jedem Datenpaket mit gesendet werden muss. Die Identität jedes
Kommunikationsendpunktes wird vor einer Datenübertragung ausgewechselt und
am Übertragungsnode
sowie am Empfangsnode aufrecht erhalten, so dass die verteilten
Anwendungen an jedem Ende zu jedem beliebigen Zeitpunkt die Socket-Informationen
anfordern können.
-
Wenn
eine Anwendung für
ein bestimmtes Protokoll einen Socket-Endpunkt erstellt und das vom Übertragungsnetzwerk
gewählte
Protokoll mit diesem Protokoll übereinstimmt,
wird dieser Zustand als Native Networking bezeichnet. Das Inet-Protokoll
wird beispielsweise verwendet, um die Inet-Adressenfamilie zu unterstützen, während das
Protokoll NetBIOS die NetBIOS-Adressenfamilie
unterstützt.
Wenn andererseits das Übertragungsprotokoll
nicht mit dem Socket-Endpunkt einer Anwendung übereinstimmt, wird dieser Zustand als
Non-Native Networking bezeichnet. Unter Verwendung der vorliegenden
Erfindung weiß jedoch
die Anwendung nicht, dass ein anderes Übertragungsprotokoll verwendet
wird, um eine Verbindung zu anderen Nodes im Netzwerk herzustellen.
-
In
der vorliegenden Erfindung wird die Socket-Schnittstelle verwendet,
um unter Verwendung mehrerer Übertragungsprotokolle
eine Verbindung zwischen Kopien einer verteilten Anwendung oder
dem Client- und dem Server-Teil einer Client-Server-Anwendung herzustellen.
Die Anwendung kann das Übertragungsprotokoll
auswählen
oder festlegen, dass das Socket-Layer das Protokoll auswählen soll.
Mit der Eigenschaft Non-Native Networking der vorliegenden Erfindung
können
Anwendungen, die so geschrieben wurden, dass sie unter Verwendung
eines einzigen Protokolls miteinander kommunizieren können, auch
mit einem anderen Übertragungsprotokoll kommunizieren,
das für
die Netzwerkumgebung optimiert werden kann. Eine Anwendung, die
beispielsweise für
TCP/IP geschrieben wurde, könnte
unter Verwendung des NetBIOS-Protokolls
auf dem Netzwerk kommunizieren, wodurch die verteilte Anwendung
einen beträchtlichen
Leistungsschub erhielte.
-
In 3 ist
ein konventioneller Socketsteuerblock abgebildet. Ein Socketsteuerblock 100 enthält Informationen über den
Socket sowie Datenwarteschlangen für Senden und Empfangen, die
Datentypen, das unterstützende
Protokoll, ihren Status und ihren Socket-Identifyer. Dieser Socketsteuerblock 100 enthält einen Protokollumschalttabellenzeiger 104 und
einen Protokollsteuerblockzeiger 106. Die Zeiger werden
zur Suche der Protokollumschalttabelle (nicht dargestellt) bzw.
des Protokollsteuerblocks 102 verwendet. Die Protokollumschalttabelle
enthält
protokollbezogene Informationen, beispielsweise Einträge in das
Protokoll, Eigenschaften des Protokolls, bestimmte Aspekte bezüglich der
Arbeitsabläufe,
die sich auf die Funktionsweise des Sockets beziehen, usw. Der Socketlayer
kommuniziert über
die Protokollumschalttabelle mit einem Protokoll im Übertragungslayer.
Die Benutzeranforderungsroutine PR_USRREQ ist die Schnittstelle
zwischen einem Protokoll und dem Socket. Der Protokollsteuerblock
enthält
protokollspezifische Informationen, die vom Protokoll verwendet
werden und je nach Protokoll unterschiedlich sind.
-
Ein
Socketsteuerblock gemäß der vorliegenden
Erfindung ist in 4 abgebildet. Der Socketsteuerblock
ist in zwei Bereiche aufgeteilt, in den Hauptsocketsteuerblock,
der im wesentlichen identisch ist mit dem herkömmlichen oben dargestellten
Socketsteuerblock, und in die MPTN-Erweiterung 112, die
viele der Funktionen enthält,
die für
das Prinzip der vorliegenden Erfindung erforderlich sind. Beide
sind über
eine Mehrfach-Protokoll-Übertragungsnetzwerkerweiterung 113 miteinander
verknüpft.
Jedes der Protokolle, die verwendet werden könnten, um Daten zu senden oder
zu empfangen, erhält
eine Anforderung zugesandt, einen Protokollsteuerblock 120, 122,
zu erstellen, und zwar zu dem Zeitpunkt, zu dem der neue Socket
erstellt wird. Nach einer Auswahlprozedur enthält der neue Socket Informationen über jedes
ausgewählte
Protokoll, den Protokollumschalttabellenzeiger 114, 118,
den Protokollsteuerblockzeiger 116, 119, und einen
Zeiger auf eine Schnittstellenadresse, falls dieser für das jeweilige
Protokoll in Frage kommt (nicht dargestellt). Wie auch oben bezieht
sich der Protokollumschalttabellenzeiger auf eine bestimmte Protokollumschalttabelle,
die mehrere Einträge
für dieses
Protokoll definiert. Auch die Protokollsteuerblöcke 120, 122 enthalten
protokollspezifische Informationen.
-
Zum
Zeitpunkt der Socketerstellung erfolgt keine Verbindung zu irgendeinem
bestimmten Protokoll zum Anwendungsendpunkt. Eine Verbindung bedeutet,
dass eine Verknüpfung
zwischen dem verbindungsanfordernden Socket der anfordernden Anwendung
und einem anderen verbindungsgewährenden
Socket hergestellt wird. Das ganze lässt sich vorstellen als Verbindungsleitung
zwischen den beiden Sockets, die miteinander 'verknüpft' sind, wobei sich die Sockets beispielsweise
in zwei verschiedenen Kontinenten befinden können und die Möglichkeit
haben, Nachrichten zu senden und zu empfangen. Bei der vorliegenden
Erfindung gibt es keinen Unterschied zwischen einem übertragenden
Socket und einem empfangenden Socket. Sobald eine Verbindung aufgebaut
ist, kann jeder Socket wahlweise Daten senden oder empfangen.
-
Die
Entscheidung, welches Protokoll zu verwenden ist, wird aufgeschoben
bis zu dem Zeitpunkt, zu dem die Verbindung tatsächlich aufgebaut ist. Zum Zeitpunkt
des Aufbaus einer Verbindung kann jede beliebige Netzwerkschnittstelle
in einem Protokoll verwendet werden. Die Reihenfolge, in der die
Zeiger sich auf die Protokolle und Netzwerkschnittstellen beziehen,
ist abhängig
von den Präferenzen
des Benutzers. Informationen von der benannten Service-Einheit oder
die Funktionen des Protokolls sind ebenfalls enthalten. Die Socket-Erweiterung 112,
die die Zeiger 114, 116, 118 und 119 enthält, umfasst
außerdem
Statusinformationen über
den Socket und das Mehrfach-Protokoll-Übertragungsnetzwerk.
Die Socket-Erweiterung 112 wird vom Socket-Layer verwendet,
um den Socket- und MPTN-Status
zu verwalten. Aus der Liste der verfügbaren Protokolle wählt der
Socket-Layer diejenigen Protokolle aus, die die angeforderte Socket-Domain
und die Art der Kommunikation (Datagramme, Streams usw.) unterstützen (siehe
nachfolgende Beschreibung des Flussdiagramms zur Socket-Erstellung).
-
Ein
Beispiel für
eine Socket-Steuerblockstruktur ist im nachfolgend aufgeführten Code
enthalten:
-
-
-
-
Die
herkömmliche
Socketerstellung beginnt mit einem Aufruf an die Socket-API. Eine
Domänentabelle wird
durchsucht auf die Adressenfamilie, den Typ und das Protokoll, das
von der Anwendung gewünscht
wird. Wird eine Übereinstimmung
festgestellt, so wird der Protokollumschalttabelleneintrag im Socketsteuerblock eingetragen.
Als nächstes
fordert der Benutzer den Eintrag an, und das ausgewählte Protokoll
wird aufgefordert, den Protokollsteuerblock anzulegen. Wird keine Übereinstimmung
zwischen Adressenfamilie, Typ und Protokoll, das von der Anwendung
gewünscht
wird, festgestellt, wird an die Anwendung ein Fehler ausgegeben.
-
5 bildet
den Prozess der Erstellung eines Sockets gemäß der vorliegenden Erfindung
ab. Der Prozess beginnt mit einer Socketerstellungsanforderung 150 von
einer Anwendung zur Socket-API, die besagt, dass die Anwendung Daten über das
Netzwerk senden oder empfangen möchte.
Der Befehl an die Socket-API für
die Anforderung hat die Form 'Socket
= (AF, *, Typ, Proto). "AF" bezieht sich auf
die Adressenfamilie und die Kommunikationsdomain, "Typ" bezieht sich auf
einen der Socket-Typen,
die in einer System-Header-Datei festgelegt wurden. "Proto" steht für Protokollparameter
und wird verwendet, um anzugeben, dass ein bestimmtes Protokoll
verwendet werden soll. In Schritt 152 wird ein Test ausgeführt, um
festzustellen, ob "Proto" angegeben wurde.
Wenn ja, wird der normale Socketerstellungsprozess in Schritt 154 ausgeführt, und
der Prozess endet, Schritt 155.
-
Wenn "Proto" nicht angegeben
wird, fährt
der Prozess damit fort, dass er ein Mehrfach-Protokoll-Socket erstellt.
Jedes Protokoll ist mit einer Protokoll-Umschalttabelle verknüpft.
-
Für jede Protokoll-Umschalttabelle,
Schritt 155, werden Tests durchgeführt, um festzustellen, ob Typ und
Adressenfamilie des anfordernden Endpunktes, Schritte 158 und 160,
mit dem Protokoll übereinstimmen. In
Schritt 158 wird geprüft,
ob der "Typ" übereinstimmt. Wenn dieser Test
ein negatives Ergebnis hat, kehrt der Prozess zurück zur nächsten Protokoll-Umschalttabelle,
Schritt 156. Hat der Test ein positives Ergebnis, wird der
Test auf Übereinstimmung
mit der Adressenfamilie in Schritt 160 durchgeführt. Sowohl "Typ" als auch "Familie" werden als Ganzzahlen
dargestellt. Die Felder "Typ" und "Adressenfamilie", die vom Benutzer
ausgefüllt werden,
werden mit den Feldern "Typ" und "Adressenfamilie" im Protokoll verglichen.
Wird sowohl für "Typ" als auch für "Adressenfamilie" eine Übereinstimmung
festgestellt, wird das Protokoll als Kandidatenprotokoll ausgewählt und
in der Socket-Erweiterung mit Zeigern auf die Protokoll-Umschalttabelle und
den Protokoll-Steuerblock eingestellt, Schritt 162. Herrscht
keine Übereinstimmung,
stellt der Prozess fest, ob die Adressenfamilie im Netzwerk nach
dem Prinzip 'non-natively' unterstützt wird,
Schritt 164. Wenn das Protokoll unterstützt wird, Schritt 166,
wird das Protokoll als Kandidatenprotokoll ausgewählt und
in der Socket-Erweiterung
mit Zeigern auf die Protokoll-Umschalttabelle und den Protokoll-Steuerblock
eingestellt, Schritt 162. Wird das Protokoll nicht unterstützt, wird
in Schritt 166 ein Test durchgeführt, um festzustellen, ob es
sich um die letzte Protokoll-Umschalttabelle handelt. Wenn nein,
kehrt der Prozess zurück
zu Schritt 156. Wenn es sich um die letzte Protokoll-Umschalttabelle
handelt, endet der Prozess, Schritt 170. Die Protokollzeiger
können
innerhalb der Erweiterung entsprechend der Anwendung oder Benutzerpräferenz neu
sortiert werden, und zwar entweder durch Verwendung eines Konfigurationstools
oder auf der Basis von Informationen vom benannten Server.
-
In 6 wird
der Prozess zum Aufbau einer Verbindung unter Verwendung des Mehrfach-Protokoll-Sockets
beschrieben. Der Prozess beginnt in Schritt 200, wo der
Socket-Layer versucht, unter Verwendung des ersten Protokolls aus
der Protokollliste in der Socket-Erweiterung eine Verbindung zu
einem angegebenen Ziel herzustellen. Die Entscheidung, welches Protokoll
zuerst ausprobiert werden soll, kann von der Konfiguration benutzerdefinierter
Protokollpräferenzen
abhängig
sein. Wenn die Verbindung erfolgreich ist, Schritt 222,
endet der Prozess in Schritt 223. Wenn nicht, wird das
nächste
Protokoll verwendet, um den Aufbau einer Verbindung in Schritt 224 zu
versuchen. Es werden Tests ausgeführt, um festzustellen, ob eine
Verbindung aufgebaut wurde, Schritt 226. Wenn dies der
Fall ist, dann endet der Prozess. Wenn keine Verbindung aufgebaut
wurde, wird ein Test durchgeführt,
um festzustellen, ob es sich um das letzte Protokoll in der Socket-Erweiterung
handelt. Ist dies nicht der Fall, wird das nächste Protokoll in der Erweiterung
getestet, Schritt 224. Wenn alle bei der Erstellung des
Sockets verwendeten Protokolle nicht zum Aufbau der Verbindung geeignet
waren, sendet der Bereitsteller der Übertragung eine Fehlermeldung
an die Anwendung, Schritt 232.
-
Wie
oben bereits angeführt
wurde, findet die Erfindung Anwendung in mehreren Computern, die
Teil eines Netzwerks wie beispielsweise Local Area Network (LAN)
oder Wide Area Network (WAN) sind. Zwar wird die jeweilige Computerauswahl
in diesen Netzwerken lediglich durch die Leistung und die Speicheranforderungen
begrenzt, doch könnten
auch Computer der Reihe IBM/PS2 (TM) in der vorliegenden Erfindung
verwendet werden. Für
weitere Informationen über
Computer der Reihe IBM/PS2 (TM) sei der Leser verwiesen auf Technical
Reference Manual Personal Systems/2, Model 50, 60 Systems IBM Corporation,
Teilenummer 68X2224, Bestellnummer S68X-2224, und Technical Reference
Manual Personal Systems/2, (Model 80) IBM Corporation, Teilenummer
68X2256, Bestellnummer S68X-2254. Ein Betriebssystem, das auf einem
IBM PS/2 Personalcomputer ausgeführt
werden kann, ist IBM OS/2 2.0 (TM). Für weitere Informationen zum
Betriebssystem IBM OS/2 2.0 sei der Leser verwiesen auf OS/2 2.0
Technical Library. Programming guide Vol. 1, 2, 3 Version 2.00,
Bestellnummern 10G6261, 10G6495, 10G6494. Als Alternative könnte man
ein Computersystem aus der Reihe IBM Risc System/6000 (TM) verwenden,
die auf dem Betriebssystem AIX (TM) ausgeführt werden kann. Die verschiedenen
Modelle des Risc Systems/6000 werden in zahlreichen Veröffentlichungen
der IBM Corporation beschrieben, beispielsweise in RISC System/6000,
7073 und 7016 POWERStation and POWERserver Hardware Technical reference,
Bestellnummer SA23-2644-00. Das Betriebssystem AIX wird beschrieben
in General Concepts and Procedure--AIX Version 3 for RISC System/6000,
Bestellnummer SC23-2202-00, sowie in anderen Veröffentlichungen der IBM Corporation.
Anstelle der angeführten
Verweise sei dem Leser folgende allgemeine Beschreibung eines Computersystems
angeboten, die zur Anwendung der vorliegenden Erfindung eingesetzt
werden kann.
-
7 ist
eine Darstellung eines Computers 310 einschließlich einer
Systemeinheit 311, einer Tastatur 312, einer Maus 313 und
einer Anzeigeeinrichtung 314. Der Bildschirm 316 der
Anzeigeeinrichtung 314 wird verwendet, um die sichtbaren
Veränderungen
des Datenobjekts darzustellen. Die vom Betriebssystem unterstützte grafische
Benutzerschnittstelle ermöglicht
es dem Benutzer, ein gezieltes Eingabeverfahren zu verwenden, indem
er den Zeiger 315 auf ein Symbol setzt, das an einer bestimmten
Stelle auf dem Bildschirm 316 ein Datenobjekt darstellt,
und eine der Maustasten anklickt, um einen Benutzerbefehl oder eine
Benutzerauswahl einzugeben.
-
8 ist
ein Blockdiagramm der in 7 abgebildeten Computersystemkomponenten.
Die Systemeinheit 11 enthält einen Systembus oder eine
Mehrzahl an Systembussen 21, mit denen mehrere Komponenten
verknüpft
sind und durch die eine Kommunikation zwischen mehreren Komponenten
möglich
wird. Der Mikroprozessor 322 ist an den Systembus 321 angeschlossen
und wird durch einen ROM-Speicher 323 und einen RAM-Speicher 324 unterstützt, die
ebenfalls mit dem Systembus 321 verbunden sind. Ein Mikroprozessor
in der Computerserie IBM Multimedia PS/2 ist ein Mikroprozessor
der Prozessorfamilie Intel mit den Mikroprozessoren 386 oder 486.
Es können
jedoch auch andere Mikroprozessoren verwendet werden, beispielsweise
die Mikroprozessorfamilie von Motorola, darin speziell die Mikroprozessoren
68000, 68020 oder 68030, oder aber auch RISC-Mikroprozessoren (Reduced Instruction
Set Computer), die von IBM, Hewlett Packard, Sun, Intel, Motorola
und anderen hergestellt werden.
-
Der
ROM-Speicher 323 enthält
neben anderem Code das BIOS (Basic Input/Output System), welches die
grundlegenden Hardware-Funktionen steuert, beispielsweise die Kommunikation zwischen
den Komponenten, die Festplattenlaufwerke und die Tastatur. Der
RAM-Speicher 324 ist der Hauptspeicher, auf dem sich das
Betriebssystem, die Bereitsteller von Übertragungen und die Anwendungsprogramme
befinden. Der Speichermanagementchip 325 ist mit dem Systembus 321 verbunden
und steuert direkte Speicherzugriffe wie beispielsweise die Übertragung
von Daten zwischen dem RAM-Speicher 324 und dem Festplattenlaufwerk 326 sowie
dem Diskettenlaufwerk 327. Die CD-ROM 332 ist
ebenfalls mit dem Systembus 321 verknüpft.
-
Ebenfalls
mit dem Systembus 321 verbunden sind mehrere Eingabe-/Ausgabe-Steuergeräte: das
Tastatursteuergerät 328,
das Maussteuergerät 329,
das Bildschirmsteuergerät 330 und
das Audio-Steuergerät 331,
die die jeweilige Hardware, die Tastatur 312, die Maus 313,
den Bildschirm 314 und die Lautsprecher 315 steuern.
Ebenfalls mit dem Systembus 321 verbunden ist der digitale
Signalprozessor 333, der den Ton des Lautsprechers 315 korrigiert.
Dieser Prozessor ist vorzugsweise im Audio-Steuergerät 331 integriert.
Ein Eingabe-/Ausgabe-Steuergerät 340,
beispielsweise ein Token Ring Adapter, ermöglicht die Kommunikation über ein
Netzwerk 342 zu anderen ähnlich konfigurierten Datenverarbeitungssystemen.
-
In
der obigen Beschreibung wurden die grundlegenden Aspekte der vorliegenden
Erfindung hinsichtlich eines bestimmten Kommunikationsendpunktobjekts,
eines Sockets im Socket-Layer zwischen dem Anwendungslayer und dem Übertragungslayer,
vorgestellt. Die grundlegenden Aspekte der vorliegenden Erfindung
könnten
dahin gehend erweitert werden, dass sie ähnlich konfigurierte Kommunikationsendpunktobjekte in
anderen Layern bereit stellen. Es könnte beispielsweise ein Objekt
im Netzwerkschnittstellenlayer verwendet werden, um mehrere darunter
liegende MAC-Treiber zu überwachen,
so dass Daten über
mehrere MAC-Protokolle und über
verschiedene Netzwerktypen gesendet oder empfangen werden können.