DE69333960T2 - Namenauflösung in einem Mehrsystem-Netz - Google Patents

Namenauflösung in einem Mehrsystem-Netz Download PDF

Info

Publication number
DE69333960T2
DE69333960T2 DE69333960T DE69333960T DE69333960T2 DE 69333960 T2 DE69333960 T2 DE 69333960T2 DE 69333960 T DE69333960 T DE 69333960T DE 69333960 T DE69333960 T DE 69333960T DE 69333960 T2 DE69333960 T2 DE 69333960T2
Authority
DE
Germany
Prior art keywords
name
address
names
string
del
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 - Lifetime
Application number
DE69333960T
Other languages
English (en)
Other versions
DE69333960D1 (de
Inventor
Amal Ahmed Austin Shaheen-Gouda
Larry Keith Austin Loucks
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE69333960D1 publication Critical patent/DE69333960D1/de
Application granted granted Critical
Publication of DE69333960T2 publication Critical patent/DE69333960T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/35Types of network names containing special prefixes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Description

  • Diese Erfindung betrifft allgemein Verbesserungen an Rechnersystemen für Netzwerkumgebungen und insbesondere die flexible eindeutige Festlegung von Ressourcen-Namen.
  • Die Namensauflösung ist eine grundlegende Funktion, die für den Zugriff auf Betriebssysteme und Netzwerkobjekte wie zum Beispiel Hosts, Drucker, Dateien und elektronische Briefkästen notwendig ist. Jedes Objekt ist seinen Benutzern gewöhnlich durch einen Namen und dem System, das es unterstützt, durch eine Objektkennung bekannt, die als Adresse bezeichnet wird. Ein Namenssystem löst die Namen von Objekten, die es unterstützt, in Adressen auf. Die Gruppe der Namen bildet den Namensraum, und die Gruppe der Adressen bildet den Adressraum für dieses System.
  • Einige Beispiele von vorhandenen Namenssystemen sind das Unix-Dateisystem, das in "The UNIX time-sharing system" von D. Ritchie, K. Thompson, Communication ACM, Seiten 365 bis 375 (1974) erörtert wird; der Domänennamenserver, der in "Development of the Domain Naming System" von P. Mockapetris, ACM, Seiten 123 bis 133 (1988) erörtert wird; das Profilnamenssystem, das in "The Profile Naming System" von L. Peterson, ACM Transactions on Computer Systems 6 (4), Seiten 341 bis 364 (1988) erörtert wird; und der "Global directory server", der in "Designing a Global Name Service" von B. Lampson, ACM, Seiten 1 bis 10 (1986) erörtert wird.
  • Jedes dieser vorstehend genannten Systeme hat eine bestimmte Syntax für Namen und einen Auflösungsmechanismus, der diese Namen in Adressen auflöst. Im Allgemeinen bestehen Namen in einem hierarchischen Namensraum aus mehreren Komponentennamen, "component_names", die durch Begrenzer voneinander getrennt sind. Namen in Namensräumen, die auf Attributen beruhen, enthalten Paare vom Typ <attribute_type = attribute_value>, die in "Understanding Naming in Distributed Systems" von Comer, E. Douglas und Larry L. Peterson, Distributed Computing, Seiten 51 bis 60 (1989) erörtert werden. Die Auflösungsmechanismen in all diesen Systemen hängen von der jeweiligen Namenssyntax ab, und während alle Auflösungsmechanismen einen Namen in eine Adresse auflösen, müssen aktuelle Namenssysteme zusätzliche Funktionen unterstützen und eine höhere Flexibilität bei der Auswertung der Namen bieten, damit sie aufkommende Namensstandards wie zum Beispiel X.500 unterstützen können.
  • Weitere Beispiele für Systeme nach dem Stand der Technik, die zur Erkennung von Rechnerressourcen dienen, sind in der US-Patentschrift 4 914 571 mit dem Titel "Locating Resources in Computer Networks" und der US-Patentschrift 4 825 354 mit dem Titel "Method of File Access in a Distributed Processing Computer Network" offen gelegt. Beispiele von früheren Arbeiten der Erfinder im Bereich von Namensverarbeitungssystemen sind unter anderem EP 260458-A mit dem Titel "Operating System for Networking Processor", wobei das System so ausgelegt ist, dass es eine Netzwerk-Architektur erkennt, die für einen erweiterten Einheiten-Dateiaufruf erforderlich ist, sowie EP 204994-A mit dem Titel "Generalised directory data model", bei dem abgebildete Daten in Bezug auf Namen usw. in Datenbanken gespeichert und Such- und Aktualisierungsoperationen von einem Algorithmus gesteuert werden.
  • Die US-Patentschrift 4 644 470 und die US-Patentschrift 4 718 005 erörtern ebenfalls Verfahren zur Verwendung von Aliasnamen, um den Datenaustausch über ein gewöhnliches Benutzernetzwerk zu vereinfachen.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein System und ein Verfahren zur Erstellung und zur Auflösung von Ressourcen-Namen in einem Namenssystem bereitzustellen, das eine höhere Flexibilität sowohl in Bezug auf die Namenssyntax als auch auf die Unterstützung von aufkommenden Namensstandards ermöglicht.
  • Erfindungsgemäß wird eine Vorrichtung zur Auflösung von Namen bereitgestellt, die einer oder mehreren Adressen von Objekten entsprechen, welche sich auf einem oder mehreren Rechnersystemen befinden, wobei die Vorrichtung Folgendes umfasst: (a) Speichermittel, um eine Vielzahl von Datenstrukturen zu speichern; (b) Mittel, um die Namen in Zeichenfolgen zu gliedern; (c) Mittel, um eine erste Zeichenfolge in einer ersten Datenstruktur mit einer zweiten Datenstruktur zu vergleichen und um eine Adresse abzurufen; (d) Mittel, um eine zweite Zeichenfolge in einer zweiten Datenstruktur mit einem Objekt in einem bestimmten Rechnersystem zu vergleichen und um eine Adresse abzurufen; (e) Namensgrenze-Mittel, um die Syntax eines bestimmten Namenssystems zu trennen; und (f) Visum-Mittel, die auf einem vorhandenen Namenssystem beruhen, um von einem ersten System über eine Grenze in ein zweites System zu wechseln.
  • Darüber hinaus wird ein Verfahren zur Auflösung von Namen bereitgestellt, die einer oder mehreren Adressen von Objekten entsprechen, welche sich auf einem oder mehreren Rechnersystemen befinden, wobei das Verfahren die folgenden Schritte umfasst: (a) Speichern einer Vielzahl von Datenstrukturen; (b) Gliedern der Namen in Zeichenfolgen; (c) Vergleichen einer ersten Zeichenfolge in einer ersten Datenstruktur mit einer zweiten Datenstruktur und Abrufen einer Adresse; und (d) Vergleichen einer zweiten Zeichenfolge in einer zweiten Datenstruktur mit einem Objekt in einem bestimmten Rechnersystem und Abrufen einer Adresse; (e) Trennen der Syntax eines bestimmten Namenssystems; und (f) Überschreiten einer Systemgrenze durch Verarbeitung eines Visums.
  • Damit sich die Erfindung besser verstehen lässt, wird nun eine bevorzugte Ausführungsform der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • 1 ist ein Blockschaltbild eines PC-Systems gemäß der vorliegenden Erfindung;
  • 2 zeigt ein Netzwerk aus den in 1 dargestellten Arbeitsplatzrechnern, die gemäß der vorliegenden Erfindung über einen Datenübertragungsadapter 34 miteinander verbunden sind;
  • 3a ist eine Darstellung eines Telefonsystems, die einen Adressraum zeigt, der ähnlich den Rechnersystem-Adressen ist, die gemäß der vorliegenden Erfindung verwaltet werden;
  • 3b stellt ein Namenssystem gemäß der vorliegenden Erfindung dar, das aus vier Komponenten besteht;
  • 3c stellt einen Namensraum N gemäß der vorliegenden Erfindung dar;
  • 4 zeigt eine Datenstruktur zur Auflösung von Namen gemäß der vorliegenden Erfindung;
  • 5 ist ein Flussdiagramm, das die Erstellung eines absoluten Namens gemäß der vorliegenden Erfindung zeigt;
  • 6 ist ein Flussdiagramm, das die ausführliche Logik in Verbindung mit der Erstellung eines relativen Namens in einem hierarchischen Namensraum gemäß der vorliegenden Erfindung zeigt;
  • 7 ist ein Flussdiagramm der ausführlichen Logik in Verbindung mit der Erstellung eines Namens in einem einzelnen Namensraum gemäß der vorliegenden Erfindung;
  • 8 ist ein Flussdiagramm der ausführlichen Logik zur Erstellung eines kaskadierten Namens gemäß der vorliegenden Erfindung;
  • 9 ist ein Flussdiagramm, das die ausführliche Logik einer Auflösungsfunktion für einen Namensraum gemäß der vorliegenden Erfindung zeigt;
  • 10 ist eine weitere ausführliche Logik gemäß der vorliegenden Erfindung, die in Verbindung mit der in Bezug auf 9 erörterten Logik verwendet wird;
  • 11 stellt eine Datenstruktur einer Referenztabelle gemäß der vorliegenden Erfindung dar, die in 9, in der die Verarbeitung ausführlich dargelegt wird, erörtert wird;
  • 12 veranschaulicht eine Datenstruktur zur Auflösung von kaskadierten Namen gemäß der vorliegenden Erfindung;
  • die 13, 14 und 15 sind Flussdiagramme, die die ausführliche Logik darlegen, welche der Auflösung von kaskadierten Namen gemäß der vorliegenden Erfindung entspricht;
  • 16 ist die ausführliche Logik in Verbindung mit der Grenzfunktion gemäß der vorliegenden Erfindung;
  • die 17 und 18 sind Flussdiagramme, die die ausführliche Logik der erweiterten Namensauflösung für einen einzelnen Namensraum gemäß der vorliegenden Erfindung zeigen;
  • 19 ist ein Flussdiagramm, das die zusätzliche ausführliche Logik der erweiterten Namensauflösung für einen einzelnen Namensraum gemäß der vorliegenden Erfindung zeigt;
  • 20 ist ein Flussdiagramm, das die ausführliche Logik einer Grenzfunktion gemäß der vorliegenden Erfindung darstellt; und
  • 21 ist eine Zeichnung einer Grenztabellen-Datenstruktur gemäß der vorliegenden Erfindung.
  • Die Erfindung wird vorzugsweise in einer repräsentativen, in 1 dargestellten Hardware-Umgebung in die Praxis umgesetzt, die eine typische Hardware-Konfiguration eines Arbeitsplatzrechners gemäß der vorliegenden Erfindung zeigt, welche eine Zentraleinheit 10 wie zum Beispiel einen herkömmlichen Mikroprozessor und mehrere andere über einen Systembus 12 miteinander verbundene Einheiten umfasst. Der in 1 gezeigte Arbeitsplatzrechner enthält einen Direktzugriffspeicher (RAM) 14, einen Nur-Lese-Speicher (ROM) 16 und einen E/A-Adapter 18, um periphere Einheiten wie zum Beispiel die Platteneinheiten 20 und die Bandlaufwerke 40 an den Bus anzuschließen, einen Benutzerschnittstellenadapter 22 für den Anschluss einer Tastatur 24, einer Maus 26, eines Lautsprechers 28, eines Mikrofon 32 und/oder anderer Benutzerschnittstellen-Einheiten wie zum Beispiel eine berührungsempfindliche Einheit (nicht gezeigt) zum Anschluss an den Bus, einen Datenübertragungsadapter 24, um den Arbeitsplatzrechner an ein Datenverarbeitungsnetzwerk anzuschließen, und einen Bildschirmadapter 36, um den Bus an eine Anzeigeeinheit 38 anzuschließen.
  • 2 zeigt ein Netzwerk aus den in 1 gezeigten Arbeitsplatzrechnern, die über den Datenübertragungsadapter 34 miteinander verbunden sind. Jeder Arbeitsplatzrechner hat ein Namenssystem, und jede der Arbeitsplatzrechner-Verbindungen wird als Namensgrenze bezeichnet. Namensgrenzen können bei der Auflösung von Namen verwendet werden, die sich gegebenenfalls in einer verteilten Datenverarbeitungsumgebung über zwei oder mehr Namensräume erstrecken. Eine Namensgrenze zwischen zwei Namensräumen trennt die zur Verbindung der beiden Namensräume benötigte Information, während gleichzeitig die Eigenständigkeit und die Unabhängigkeit eines jeden Namensraums erhalten bleiben. Für solche Konzepte wie Namen, Adressen, Namensräume und Auflösungsfunktionen gibt es formale Definitionen. Eine Realisierung einer Namensgrenze wird anhand eines Beispiels eines Namens, der sich über mehrere Namensräume erstreckt, ausführlich beschrieben, und es wird erörtert, wie die Namen unter Verwendung von Namensgrenzen aufgelöst werden.
  • Die Namensauflösung ist eine grundlegende Funktion, die für den Zugriff auf Betriebssysteme und Netzwerkobjekte wie zum Beispiel Hosts, Drucker, Dateien und elektronische Briefkästen notwendig ist. Jedes Objekt ist einem Benutzer gewöhnlich durch einen Namen und dem System, das es unterstützt, durch eine Objektkennung bekannt, die als Adresse bezeichnet wird. Ein Namenssystem löst die Namen von Objekten, die es unterstützt, in Adressen auf. Die Gruppe der Namen bildet den Namensraum, und eine Gruppe von Adressen bildet den Adressraum für dieses System. Folgende Systeme sind Beispiele für vorhandene Namenssysteme: ein Unix-Dateisystem, ein Domänennamenserver (DNS), ein Profilnamenssystem, ein universeller Verzeichnisdienst (Universal Directory Service, UDS) und der globale Verzeichnisserver. Jedes dieser Systeme hat eine bestimmte Syntax für Namen und einen Auflösungsmechanismus, der diese Namen in Adressen auflöst. Im Allgemeinen bestehen Namen in einem hierarchischen Namensraum aus mehreren Komponentennamen, "component_names", die durch Begrenzer voneinander getrennt sind. Namen in Namensräumen, die auf Attributen beruhen, enthalten Paare. Die Auflösungsmechanismen hängen von der jeweiligen Namenssyntax ab, und alle Auflösungsmechanismen lösen zwar einen Namen in eine Adresse auf, doch sind manche so ausgelegt, dass sie zusätzliche Funktionen unterstützen und eine höhere Flexibilität bei der Art und Weise, in der sie Namen auswerten, aufweisen.
  • Bei dem Versuch, auf ein Objekt zuzugreifen, dessen Name component_names von mehreren Namensräumen enthält, von denen jeder von einem anderen Namenssystem, möglicherweise mit einer anderen Namenssyntax, unterstützt wird, wie zum Beispiel auf eine Datei auf einem fernen Host, treten zwei grundlegende Probleme auf. Das erste Problem besteht in der Frage, wie ein solcher Name, mit einer möglicherweise konfliktbehafteten Syntax zwischen seinen Komponenten, erstellt werden soll. Das zweite Problem besteht in der Frage, wie dieser Name aufgelöst werden soll.
  • Betrachten wir ein Beispiel einer fernen Datei. Dateinamen in einem Unix-Dateisystem werden über den Pfadnamen </dir1/dir2/file> angegeben, und Host-Namen in Domänennamenservern haben die Syntax <host.domain1.domain2.topdomain>. Der Name einer fernen Datei sollte component_names mit den beiden vorstehend genannten Syntax-Bezeichnungen enthalten. Das zweite Problem, die Namensauflösung, wird dadurch verschärft, dass die meisten Namenssysteme in Servern integriert sind, die andere Dienste bereitstellen. Ein Dateisystem ermöglicht Sicherheitsprüfungen von Benutzer-Genehmigungen für den Zugriff auf Dateien, und es löst den Namen einer Datei in eine Kennung auf. Das Domänennamenssystem ordnet einer Adresse einen Host-Namen zusammen mit der Weiterleitungsfunktion des Systems zu, um Nachrichten an diesen Host zu übermitteln.
  • Es gibt zahlreiche verteilte Anwendungen und Namenssysteme, wobei jede Anwendung beziehungsweise jedes Namenssystem die vorstehenden Probleme auf eine ganz bestimmte Weise angeht. DNS-Namenssysteme reservieren zum Beispiel eine Vielzahl von Zeichen, um Komponenten eines Namens, die vom DNS aufgelöst werden können, von denjenigen zu trennen, die nicht aufgelöst werden können. Das reservierte Zeichen ":" trennt einen Domänennamen eines Host vom Namen eines Objekts auf einem bestimmten Host. Der Name <local_part : domain_name> besagt, dass der Domänenname, "domain_name", vom DNS in eine Adresse eines Hosts aufgelöst werden soll, während "local_part" von diesem Host aufgelöst werden soll. Auch elektronische Briefkästen werden als user@domain oder allgemein als local_part@domain ausgewiesen. Diese Vorgehensweise macht es jedoch erforderlich, dass das Trennzeichen in beiden Namensräumen reserviert wird. Eine andere Herangehensweise besteht darin, ein Namensformat von einem Namensraum einem anderen Namensraum durch eine Verbindungsbrücke (Gateway) zwischen den beiden Namensräumen zuzuordnen.
  • Die Erfindung legt ein neues System und ein neues Verfahren zur Erstellung und zur Auflösung von Namen über mehrere Namensräume offen, die als kaskadierte Namen ("Cascaded Names") bezeichnet werden.
  • Objekte, Systeme und Adressen
  • Ein System ist als eine endliche Menge von Objekten definiert. Die Objekte in einem System haben ganz bestimmte Kennungen, die als Adressen bezeichnet werden. Ein Objekt kann in mehr als einem System vorhanden sein, es hat aber für jedes System, in dem es vorhanden ist, eine Adresse. Adressen müssen in einem System eindeutig sein, und Adressen desselben Objekts in verschiedenen Systemen können, müssen aber nicht unterschiedlich sein, während Adressen von verschiedenen Objekten in demselben Systemen jedoch unterschiedlich sind. Ein bestimmter Bildschirmadapter 36 in dem in 1 gezeigten Arbeitsplatzrechner hat in 2 zum Beispiel eine eindeutige Adresse für das System 220, das System 240, das System 260 und das System 280.
  • Ein System kann auch ein Objekt in einem größeren System sein, wobei das System in diesem Fall eine Adresse in diesem größeren System hat. Ein Host-System kann zum Beispiel über viele einzelne Arbeitsplatzrechner verfügen, die mit dem Host-System verbunden sind, wobei jeder Arbeitsplatzrechner ein einzelnes System bildet. Ein System, das kein Objekt in einem größeren System ist, wird als Basissystem (root system) bezeichnet. In 2 ist jeder der Arbeitsplatzrechner 220, 240, 260 und 280 ein Basissystem. Basissysteme haben eigene Adressen, und es können mehrere Basissysteme vorhanden sein. DNS und X.500 sind Beispiele für einzelne Basissysteme.
  • Eine absolute Adresse eines Objekts wird rekursiv wie folgt festgelegt. Wenn sich ein Objekt in einem Basissystem befindet, ist seine Adresse eine absolute Adresse. Wenn sich das Objekt nicht in einem Basissystem befindet, wird seine absolute Adresse von der absoluten Adresse dieses Systems festgelegt, die mit der Adresse des Objekts in dem System verknüpft ist. Der Begriff Adresse bezeichnet eine Adresse eines Objekts in einem System. Die absolute Adresse eines Objekts wird zu dem Zeitpunkt, zu dem sie verwendet wird, ausdrücklich angegeben.
  • Betrachten wir ein Telefonsystem in den USA als ein Basissystem. Dieses System besteht aus verschiedenen Gebietssystemen (area systems). Jedes Gebietssystem wiederum besteht aus Distriktsystemen (district systems), und jedes Distriktsystem besteht aus einer großen Anzahl von Telefonen. Eine Darstellung des Telefonsystems ist in 3 gezeigt. Das Telefonsystem hat eine Adresse, die aus der einzelnen Ziffer "1" besteht, die als Telefonsystem-Code der USA bezeichnet wird. Da Gebietssysteme Objekte in demselben Telefonsystem sind, haben sie eigene Adressen, die als "Gebiets-Codes" ("area codes") bezeichnet werden. Jeder Gebiets-Code 300 und 304 ist eine dreistellige Ziffernfolge. Distriktsysteme, die zu demselben Gebietssystem gehören, haben ebenfalls eigene Adressen, die als die "Distrikt-Codes" ("district codes") 312 und 320 bezeichnet werden. Jeder Distrikt-Code ist eine dreistellige Ziffernfolge. Ebenso haben Telefone, die zu demselben Distriktsystem gehören, eigene Adressen, die als Telefon-Codes 340, 342, 344, 346, 348 und 350 bezeichnet werden. Jeder Telefon-Code ist eine vierstellige Ziffernfolge. Die absolute Adresse eines Telefons, die als Telefonnummer bezeichnet wird, ist eine Verknüpfung der folgenden Adressen:
    • – des Telefonsystem-Codes der USA (1);
    • – des Gebiets-Codes des Gebietssystems, in dem sich das Telefon befindet;
    • – des Distrikt-Codes des Distriktsystems, in dem sich das Telefon befindet; und
    • – des Telefon-Codes.
  • 3b stellt einen Namensraum N dar. Der Namensraum ist durch einen gerichteten Graphen dargestellt. Jeder Knoten in dem Graphen ist über eine gerichtete Kante mit einem oder mehreren Knoten verbunden und wird mit einem component_name mit der Bezeichnung c_name bezeichnet. Ein Knoten in dem Graphen ist als Wurzelknoten "root" bezeichnet, und sein c_name lautet <null>.
  • 3c stellt ein Namenssystem dar, das aus vier Komponenten besteht. Die vier Komponenten sind: ein Namensraum, bei dem es sich um eine Gruppe von Namen der Objekte handelt, die von einem System unterstützt werden, ein Zeichenbereich, der die Gruppe der Zeichen festlegt, die in einem benutzerdefinierten Namen erlaubt sind, und die Zeichen, die von dem System reserviert werden. Die Auflösungsfunktion löst einen über den Zeichenbereich festgelegten Namen in eine Adresse eines Objekts im Adressraum auf.
  • Namenssysteme
  • In diesem Abschnitt führen wir eine formale Definition von Namenssystemen ein. Komponenten eines Namenssystems werden festgelegt, und die Funktion einer jeden Komponente in dem System wird erörtert.
  • Namenssysteme dienen zur Kennzeichnung einer Gruppe von Objekten über eine vorab festgelegte Schnittstelle. Ein Namenssystem besteht aus vier Komponenten:
    • 1) einem Adressraum;
    • 2) einem Zeichenbereich C;
    • 3) einem Namensraum N; und
    • 4) einer Auflösungsfunktion R.
  • Die Komponenten der Namenssysteme sind in 3b gezeigt und werden wie folgt festgelegt. Ein Adressraum A ist eine Gruppe von Adressen für in dem Namensraum angegebenen Objekte. Jedes Namenssystem legt zwei sieh gegenseitig ausschließende Gruppen von Zeichen fest: eine reservierte Gruppe von Zeichen, die als Zeichenbereich C bezeichnet und vom System zur Erstellung und zur Auflösung von Namen verwendet wird, und eine verfügbare Gruppe C', die in benutzerdefinierten Komponenten der Objektnamen verwendet werden kann. Ein Namensraum N ist als ein gerichteter Graph angegeben, wie in 3c gezeigt ist. Jeder Knoten wird mit einer endlichen Folge von Zeichen gekennzeichnet, die als Komponentenname, c_name, bezeichnet wird und den Knoten ausweist. Ein Knoten in dem Graphen, der Wurzelknoten, hat die leere Zeichenfolge als Komponentenname. Bei anderen Knoten sind Komponentennamen endliche, nichtleere Folgen von Zeichen aus der zulässigen Zeichengruppe C'.
  • Erstellung eines Namens
  • Ein Name aus einem Namensraum ist eine endliche Menge von Zeichen. Ein absoluter Name eines Knotens n in einem Namensraum N ist definiert als:
    a_name(n) = <del><c_name1><del><c_name2> ... <del><c_namen>
    wobei:
    die Bezeichnungen "c_namei" die Bezeichnungen aller Knoten in dem Pfad vom Wurzelknoten zum Knoten n in N sind.
  • Ein relativer Name eines Knotens n von einem anderen Knoten m ist definiert als:
    r_name(m, n) = c_name(m+1) <del>c_name2> ... <del><c_namen>
    wobei:
    m und n Knoten in einem Namensraum N sind und <n_name(m+1)> die Bezeichnungen aller Knoten in dem Pfad vom Knoten m zum Knoten n in N sind.
  • Man beachte, dass ein absoluter Name in dem Namensraum einem einzelnen Knoten in dem Graphen entspricht. Auch sind zwei Namen gleichbedeutend, wenn sie demselben Knoten entsprechen. wir bezeichnen einen Namen von dem einen und auch von dem anderen Typ einfach als Namen, außer wenn ganz bestimmte Punkte angesprochen werden müssen, die für einen der beiden Typen spezifisch sind.
  • Ein homogener Name ist ein Name, der aus Komponentennamen (c_names) erstellt wird, die durch Begrenzer so voneinander getrennt sind, dass c_names Elemente in einem Namensraum N darstellen und der Begrenzer <del> ein Element einer reservierten Zeichenfolge für ein Namenssystem S ist. Homogene Namen werden von der Auflösungsfunktion R von S in Adressen aufgelöst.
  • Auflösungsfunktion
  • Bei einem Namenssystem verwendet die Auflösungsfunktion R zwei Argumente: einen absoluten Namen und einen relativen Namen (bei dem es sich um die leere Zeichenfolge handeln kann), und sie gibt eine Adresse zurück. R wird wie folgt definiert:
    R(a_name(m), r_name(m, n))
    = address(n), wenn a_name(m) und r_name(m, n) Namen in N sind
    = wird andernfalls, wenn address(n) die Adresse des Knotens n im Adressraum A ist, nicht definiert.
  • R löst einen Namen in eine Adresse in demselben Namenssystem auf. R hängt vom Zeichenbereich des Namenssystems ab. Im Einzelnen erkennt sie ein Sonderzeichen, den Begrenzer <del>C, der das Ende eines Komponentennamens c_name anzeigt.
  • Zu Beispielen für gebräuchliche Namenssysteme zählen Dateisysteme und Host-Namen in einem Netzwerk wie zum Beispiel der Domänennamenserver. Beim DNS verwendet die Funktion R einen Pfad im Format <host.domain.top_domain>, und sie gibt eine Host-Adresse zurück. Bei UNIX ähnlichen Dateisystemen verwendet die Funktion R einen absoluten Namen wie zum Beispiel /usr/lpp und einen relativen Namen dir/file und gibt eine Dateikennung (Adresse) für die Datei /dir1/dir2/file zurück. Bei den Dateisystemen DOS und OS/2 verwendet ein absoluter Name einer Datei das Format <drive: \dir\file>. In diesem Fall hat der Zeichenbereich zwei Trennzeichen, ":", welches das Ende einer Laufwerk-Bezeichnung angibt, und "\", welches andere c_names trennt.
  • Kaskadierte Namen
  • Die vorstehende Erörterung hat sich auf die Erstellung und die Auflösung von homogenen Namen beschränkt, die c_names in demselben Namenssystem haben. Häufig muss jedoch auf ein Objekt zugegriffen werden, das nicht mit einem homogenen Namen bezeichnet werden kann, wie zum Beispiel eine Datei oder der elektronische Briefkasten eines Benutzers auf einem fernen Host-Rechner, möglicherweise in einem anderen Netzwerk. In diesem Fall befinden sich der Host-Name und der Dateiname in unterschiedlichen Namenssystemen.
  • Es sei angenommen, dass ein Name c_names von verschiedenen Namenssystemen S1 und S2 mit den Begrenzern <del1> und >del2> und den Auflösungsfunktionen R1 beziehungsweise R2 enthält. Bei der Auflösung eines solchen Namens treten drei Probleme auf:
    • 1) Wie lässt sich das Ende eines Komponentennamens c_name erkennen?
    • 2) Welcher Zeichenbereich soll verwendet werden? und
    • 3) Welche Auflösungsfunktion, R1 oder R2, wird zur Auflösung des Namens verwendet?
  • Man beachte, dass <del2> gegebenenfalls kein Element in C1 ist. Folglich kann <del2> in einem gültigen Knotennamen, c_name, in S1 erscheinen.
  • Es gibt zahlreiche verteilte Anwendungen, von denen jede die vorstehenden Probleme auf eine ganz bestimmte Weise angeht. Die ARPANET-Internet-Domänennamenserver erkennen zum Beispiel zwei Sonderzeichen: "." und "@". Server lassen Namen mit dem folgenden Format gelten:
    Name = local_component @ host.domain,
    wobei die Zeichenfolge rechts des Zeichens "@" einen Hostnamen in dem Domänen-Namenssystem angibt, und die Zeichenfolge links davon eine lokale Komponente des Namens ist, die an diesem Host aufgelöst werden muss. Andere reservierte Zeichen in S-Netzwerk-Anwendungen verwenden andere Zeichen, um die Grenzen zwischen Namenssystemen zu kennzeichnen, so zum Beispiel die Zeichen ":" und "%".
  • Probleme treten auch in heterogenen verteilten Dateisystemen auf. Betrachten wir den Fall, in dem ein Benutzer eines UNIX-ähnlichen Betriebssystems Zugriff auf ein OS/2-Verzeichnis (oder ein DOS-Verzeichnis) benötigt. Bei UNIX wird gewöhnlich so vorgegangen, dass ein Stub-Verzeichnis erstellt und das OS/2-Verzeichnis (oder das Laufwerk, das dieses Verzeichnis enthält) auf diesem Stub aufgesetzt wird: Sei
    a_name(stub) = /u/user_id/stub
    der absolute Name für das Stub-Verzeichnis am Client und
    C:\dir1\dir2
    der Pfad des OS/2-Verzeichnisses, auf das zugegriffen werden soll. Der Unix-Konvention folgend ist der Pfad zu dir2 die Zeichenfolge:
    a_name(stub) = /u/user_id/C:\dir1\dir2,
    wobei davon ausgegangen wird, dass diese in das benötigte Verzeichnis aufgelöst wird. Man beachte, dass ":" ein gültiges Zeichen für einen UNIX-Dateinamen ist und "\" ignoriert wird. Folglich löst der Client die aufgesetzte Komponente in
    c : dir1dir2
    auf, wobei dieser Pfad nicht in das benötigte Verzeichnis aufgelöst werden kann.
  • Es bedarf einer systematischen Vorgehensweise zur Erstellung von kaskadierten Namen mit n_names aus mehr als einem Namenssystem. Auch wird die Auflösung einer solchen Namensauflösungsfunktion in einem vorhandenen Rechnersystem erörtert.
  • Erstellung eines kaskadierten Namens
  • Ein Name, der Komponentennamen aus mehr als einem Namenssystem enthält, wird als kaskadierter Name bezeichnet. Sei
    <name1> ein Name aus dem Namensraum S1, dessen Begrenzer <del1> ist,
    <name2> ein Name aus dem Namensraum S2, dessen Begrenzer <del2> ist,
    <visa> eine endliche, nichtleere Folge von Zeichen, die <del1> nicht enthält.
  • Dann ist:
    name = <name1> <del1> <visa> <del1> <name2>
    ein kaskadierter Name.
    <del1> <del1> wird als Pass durch S1 bezeichnet, und <visa> erlaubt den Eintritt aus S1 in S2 mit Überschreitung der Grenzen zwischen den beiden Namenssystemen.
  • Im nächsten Abschnitt wird das Konzept von Namensgrenzen vorgestellt, und es werden zwei Algorithmen zur Verwendung von Grenzen bei der Auflösung von kaskadierten Namen aufgezeigt.
  • Namensgrenzen und Auflösung von kaskadierten Namen
  • Namensgrenzen werden bei der Auflösung von Namen verwendet, die sich über zwei oder mehr Namenssysteme, möglicherweise in einer verteilten Umgebung, erstrecken. Eine Namensgrenze zwischen zwei Namenssystemen trennt die für die Verknüpfung der beiden Systeme benötigten Informationen, während die Eigenständigkeit und die Unabhängigkeit eines jeden Systems erhalten bleiben.
  • Es sei angenommen, dass ein kaskadierter Name aufgelöst werden soll. Eine Namensgrenze zwischen S1 und S2 wird als Grenzauflösungsfunktion (Border Resolution Function) definiert, die die Auflösung des Passes in S1 und Visa verwendet, um das bei der Auflösung des restlichen Teils des Namens zu verwendende Namenssystem festzulegen.
  • Bei der Auflösung eines Namens, der sich über mehrere Namensräume erstreckt, ist ein Mechanismus erforderlich, der dazu dient, die Grenzen zwischen den beiden Namensräumen festzustellen und anzugeben, wann der Übergang von einem Namensraum in einen anderen erfolgen soll. Anwendungsprogramme verwenden verschiedene Konventionen zur Angabe, wann ein Wechsel zwischen mehreren Namenräumen erfolgen soll. Zwei Algorithmen zur Überschreitung der Grenze, um vom Namenssystem Si in das Namenssystem S(i+1) zu gelangen, wobei die Grenzauflösungsfunktion Bi verwendet wird, werden nachstehend erörtert.
  • Auflösung von kaskadierten Namen – Algorithmus I:
  • Bei diesem Algorithmus wird davon ausgegangen, dass die Auflösungsfunktion Ri für das Namenssystem Si so erweitert wird, dass sie den Folgepass (<deli><deli>) erkennt und ihn als das Ende von Komponentennamen deutet, die mit Hilfe von Ri aufgelöst werden können. Es wird ferner davon ausgegangen, dass Ri den Begrenzer deli zurückschickt, der dann von der folgenden Grenzfunktion verwendet wird, um das Ende von visai festzustellen. Folglich gilt für
    namei = r_name (mi, ni),
    der beim Knoten mi im Namenssystem Si beginnt
    Ri (a_name(mi), r_name(mi, ni)) = address(n)
    wenn a_name (mi) & r_name(mi, ni) Namen in N sind,
    Ri (a_name(mi), r_name(mi, ni) <deli><deli>)
    = address(n'), deli
    wenn a_name (mi) & r_name(mi, ni) Namen in N sind;
    = andernfalls undefiniert.
  • Der kaskadierte Name
    name = <name1><pass1><visa1><del1><name2>,
    der an einem Knoten ml im Namenssystem S1 beginnt, soll in eine Adresse im Namenssystem S2 aufgelöst werden. "name" wird wie folgt aufgelöst:
    R1 (a_name(m1), name) =
    B1 (address(n1'), <visa1><del1><name2>) =
    R2 (a_name(m2), <name2>) =
    address(n2) in S2
  • Man beachte, dass address n1' gegebenenfalls dieselbe Adresse wie address n1 ist. Ein Namenssystem kann bei dar Auflösung eines Passes einen Dereferenzierungsgrad (Alias) haben, der nur in S1 sichtbar ist.
  • Im Allgemeinen akzeptiert die Grenzfunktion Bi zwischen Si und Si+1 als Argumente eine Adresse für ein Objekt im Namenssystem Si und den restlichen Teil des Namens ("name"), nachdem <name1><pass1>...<namei><passi> aufgelöst worden sind. B1 verarbeitet <visa1><deli> und gibt das nächste Namenssystem Si+1 zur Auflösung von "name" und den Startknoten bei Si+1 an. Bi ruft dann die Auflösungsfunktion Ri+1 auf, um mit der Auflösung von Namen fortzufahren.
    Figure 00220001
  • Auflösung von kaskadierten Namen – Algorithmus II
  • In diesem Abschnitt wird ein zweiter Algorithmus vorgestellt, um in vorhandenen Namenssystemen die Verwendung von Namensgrenzen zu ermöglichen, ohne dass vom Algorithmus im Abschnitt 5.1 die erforderliche Änderung an der Auflösungsfunktion durchgeführt werden muss. Bei diesem Algorithmus wird davon ausgegangen, dass es eine zweistufige Hierarchie von Namenssystemen gibt. Es wird angenommen, dass die vorhandenen Namenssysteme S1, S2, ... SK in einem auf Attributen beruhenden Namenssystem S Objekte sind. Für jedes Objekt Si in S werden die folgenden Attribut-Typen festgelegt:
    • • Adresse A_Si in S; (unterschiedliche Objekte haben unterschiedliche Adressen.)
    • • Begrenzer <deli>;
    • • eine Auflösungsfunktion Ri, die bei der Auflösung eines Namens in S1 aufzurufen ist; und
    • • ein optionaler Aliasname Ni, der von S in Ai aufgelöst werden kann.
  • Der kaskadierte Name
    Figure 00230001
    der am Knoten (m1) im Namenssystem S1 beginnt, wird wie folgt aufgelöst:
    • 1. R1 wird aufgerufen, um "name1" in eine Adresse in S1 aufzulösen. R1 (a_name(m1), r_name(m1, n1)) = address(n1).
    • 2. Eine Grenzfunktion B1 wird aufgerufen, um S2 und den Startpunkt von name2 zu ermitteln. B1(A_S1, address(n1), visa1) = A_S2, a_name(m2))
  • Da S ein auf Attributen beruhendes Namenssystem ist, stellt address_S2 ohne weiteres andere Attribute von S2, wie zum Beispiel R2 und del2, fest.
    • 3. Die Schritte (1) und (2) werden für i = 2, K – 1 wiederholt.
    • 4. RK wird aufgerufen, um nameK aufzulösen. RK (a_name(mK), r_name(mK, nK)) = address(nK)
    • 5. R (a_name(n1), name) = address(n1) bei K=1 = (address(nK), address(sK)) K>1
  • Diese Architektur erfüllt die Anforderung, alle Informationen zu trennen, die zur Verknüpfung von Namenssystemen erforderlich sind, während sie es vermeidet, dass an vorhandene Namensauflösungsfunktionen Anforderungen gestellt werden.
  • AUSFÜHRLICHE LOGIK
  • 4 veranschaulicht eine Datenstruktur zur Auflösung von Namen gemäß der vorliegenden Erfindung, die sich in einem Speicher oder auf einer Platte eines Rechners befindet, wie in 1 gezeigt ist. Die Datenstruktur kann als Teil einer relationalen Datenbank realisiert werden, die sich im Speicher oder auf der Platte befindet. Die Datenstruktur dient zur Auflösung des bei der Bezugszahl 402 gezeigten Namens. In der Figur wird <del> verwendet, um auf einen festgelegten Begrenzer zu verweisen. Folglich wird der Name aufgelöst, indem bei 403 nach dem Anfangsbegrenzer in der Datenstruktur gesucht wird. Die Datenstruktur ist eigentlich eine zweidimensionale Anordnung, die Zeicheninformationen in dem einen Feld und ganzzahlige Adressinformationen in dem anderen Feld enthält. Wenn sich der Begrenzer bei 404 im Zeichen-Feld befindet, wird die Adresse in dem mit diesem Feld verknüpften Feld mit den ganzen Zahlen folglich als Zeiger auf die Position verwendet, an der mit dem Suchlauf nach "<A><del>" begonnen werden soll, 403. Wenn "<A><del>" aufgefunden wird, wird die Adresse in dem verknüpften Feld als Zeiger auf die Position verwendet, an der mit dem Suchlauf nach "<B><del>" begonnen werden soll, 408. Wenn "<B><del>" aufgefunden wird, wird die Adresse in dem verknüpften Feld mit den ganzen Zahlen als Zeiger auf die Position verwendet, an der mit dem Suchlauf nach "<C>" begonnen werden soll, 403. Wenn im Zeichen-Feld 407 die Entsprechung von "<C>" gefunden wird, ist die Adresse in dem verknüpften Feld mit den ganzen Zahlen die absolute Adresse des Objekts "C".
  • Die Logik, die verwendet wird, um eine Datenstruktur gemäß der vorliegenden Erfindung zu verarbeiten, beinhaltet eine Gruppe von einfachen, für das Namenssystem übliche Funktionen. Die erste Funktion ist die Funktion LeftMost_String(string1, string2). Diese Funktion durchsucht die Zeichenfolge, string1, von links nach rechts, bis sie mit string2 übereinstimmt oder bis sie das Ende von string1 ohne Übereinstimmung feststellt. Die Funktion gibt dann die Zeichenfolge in string1 links von string2 zurück. Üblicherweise wird die Funktion verwendet, um nach einem Namen in einem Zeichen-Pufferspeicher zu suchen, welcher aus mehreren, durch Begrenzer voneinander getrennten Komponentennamen besteht, wobei die Funktion dann den äußersten linken Komponentennamen zurückschickt. Bei kaskadierten Namen wird diese Funktion auch verwendet, um einen kaskadierten Namen zur Feststellung von <del><del> von links zu lesen. Auf diese Weise schickt LeftMost_String(cascaded_name, <del><del>) den äußersten linken Namen in einem kaskadierten Namen zurück, der sich in einem Zeichen-Pufferspeicher befindet.
  • Die zweite Funktion lautet rightmost_charact(STRING), die das äußerste rechte Zeichen in einer Zeichenfolge zurückschickt, welche die Bezeichnung STRING trägt. Die dritte Funktion lautet right_remainder (STRING, STRING1), welche die Zeichenfolge STRING1 von der äußersten rechten Position in STRING entfernt und die restliche Zeichenfolge in der Zeichenfolge mit der Bezeichnung STRING zurückschickt. Die vierte Funktion lautet left_remainder (STRING, STRING1), und sie entfernt die Zeichenfolge STRING1 von der äußersten linken Position in STRING und schickt die restliche Zeichenfolge in der Zeichenfolge mit der Bezeichnung STRING zurück. Die letzte einfache Funktion ist left_most (STRING, n), die die n äußersten linken Zeichen zurückschickt, die sich in der Zeichenfolge STRING befinden.
  • 5 ist ein Flussdiagramm, das die Erstellung eines absoluten Namens gemäß der vorliegenden Erfindung zeigt. Es handelt sich dabei um einen absoluten Namen in einem hierarchischen Namensraum, wobei ganz am Anfang des Namensraums begonnen wird. Der Name wird erstellt, indem der Begrenzer <del> und ein oder mehrere Komponentennamen verwendet werden. Die Verarbeitung beginnt bei der Bezugszahl 500, und die Steuerung wird sofort dem Eingabeblock 502 zum Empfang des Zählers K, des Begrenzungszeichens und der Komponentennamen (component_names) 1, 2, ... K übergeben.
  • Die Daten werden über einen Datenübertragungsadapter empfangen, wie in 1 gezeigt ist. Im Funktionsblock 504 wird a_name dem Begrenzungszeichen gleichgesetzt. Anschließend wird am Entscheidungsblock 506 ein Schleifentest gestartet, um festzustellen, ob alle Komponentennamen verarbeitet worden sind. Wenn ja, schaltet die Steuerung zum Endgerät 518, und die Verarbeitung ist abgeschlossen. Wenn jedoch noch weitere Komponentennamen zu verarbeiten sind, wird im Funktionsblock 508 ein Zähler 1 auf einen Anfangswert gesetzt, um eine Schleife zu starten.
  • Der Funktionsblock 510 erstellt den absoluten Namen a_name, indem er den vorhandenen a_name mit dem component_namei verknüpft. Am Entscheidungsblock 512 wird dann ein Test durchgeführt, um festzustellen, ob der K-te component_name verarbeitet worden ist. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Endgerät 518. Wenn nicht, wird an das Ende von a_name ein Begrenzer angefügt, wie im Funktionsblock 514 gezeigt ist. Anschließend wird der Zähler i erhöht, und die Steuerung schaltet zum Funktionsblock 510 zur weiteren Verarbeitung.
  • 6 ist ein Flussdiagramm, das die ausführliche Logik in Verbindung mit der Erstellung eines relativen Namens in einem hierarchischen Namensraum gemäß der vorliegenden Erfindung zeigt. Die Steuerung beginnt am Endgerät 600 und schaltet sofort zum Eingabeblock 602, um den Zähler K und die component_names 1–K zu empfangen. Die Daten können über einen Datenübertragungsadapter empfangen werden, wie in 1 gezeigt ist. Im Funktionsblock 604 wird der relative Name auf das Zeichen null als Anfangswert gesetzt. Als Nächstes wird der Entscheidungsblock 606 verarbeitet, um festzustellen, ob es keine Komponentennamen zur Verarbeitung gibt. Wenn der Zähler K den Wert null hat, schaltet die Steuerung zum Endgerät 622, und die Verarbeitung ist abgeschlossen. Wenn der Zähler K ungleich null ist, wird eine Schleifenvariable am Funktionsblock 610 auf den Anfangswert "1" gesetzt, und im Funktionsblock 612 wird ein component_namei mit dem relativen Namen verknüpft. Am Entscheidungsblock 614 wird die Schleifenvariable i dann mit K verglichen, um festzustellen, ob alle Komponentennamen verarbeitet worden sind. Wenn i = K, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Endgerät 622. Wenn i ungleich K ist, schaltet die Steuerung zum Funktionsblock 616, in dem ein Begrenzer an das Ende des relativen Namens angefügt wird. Anschließend wird der Schleifenindex i erhöht, und die Steuerung schaltet zum Funktionsblock 612, um den nächsten component_name zu verarbeiten.
  • 7 ist ein Flussdiagramm der ausführlichen Logik in Verbindung mit der Erstellung eines Namens in einem einzelnen Namensraum unter Verwendung des absoluten Namens und des relativen Namens und der einfachen Funktionen rightmost_character und rightmost_remainder. Die Verarbeitung beginnt am Endgeräteblock 700, und die Steuerung schaltet sofort zum Eingabeblock 702, um den absoluten Namen, den relativen Namen und ein Begrenzungszeichen zu empfangen. Der Funktionsblock 704 initialisiert eine Namensvariable mit dem absoluten Namen. Die Steuerung schaltet dann zum Entscheidungsblock 706, um das äußerste rechte Zeichen des absoluten Namens zu prüfen, um festzustellen, ob es das Begrenzungszeichen ist. Wenn kein Begrenzungszeichen festgestellt wird, springt die Steuerung zum Funktionsblock 710. Wenn ein Begrenzungszeichen festgestellt wird, wird der Begrenzer im Funktionsblock 708 abgestreift, und im Funktionsblock 710 wird der endgültige Name erstellt, indem der absolute Name, das Begrenzungszeichen und der relative Name miteinander verknüpft werden. Schließlich schaltet die Steuerung zum Endgerät 712, und die Verarbeitung ist abgeschlossen.
  • 8 ist ein Flussdiagramm der ausführlichen Logik zur Erstellung eines kaskadierten Namens gemäß der vorliegenden Erfindung. Die Verarbeitung beginnt am Endgeräteblock 800 und schaltet sofort zum Eingabeblock 802, um einen Zähler K zu empfangen, der die Höchstzahl der beteiligten Namensräume, die Begrenzer für die Namensräume, die von den Namensräumen aufzulösenden Namen und Visa angibt. Anschließend schaltet die Steuerung zum Funktionsblock 804, um einen cascaded_name auf den Anfangswert null zu setzen. Als Nächstes wird am Entscheidungsblock 806 ein Test durchgeführt, um festzustellen, ob der Zählstand gleich null ist. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Endgeräteblock 820. Wenn die Verarbeitung nicht abgeschlossen ist, wird ein Schleifenzähler i am Funktionsblock 808 auf den Wert "1" gesetzt, und es wird mit der Ausführung einer Schleife begonnen. Der Funktionsblock 810 verknüpft namei mit dem cascaded_name. Daraufhin wird am Entscheidungsblock 812 ein Test durchgeführt, um festzustellen, ob i gleich K ist. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Block 820. Wenn i ungleich K ist, werden zwei Begrenzungszeichen, visai und ein Abschlussbegrenzer am Funktionsblock 814 mit dem kaskadierten Namen verknüpft. Am Funktionsblock 816 wird dann der Schleifenzähler erhöht, und die Steuerung schaltet zum Funktionsblock 810, um weitere Namen zu verarbeiten.
  • 9 ist ein Flussdiagramm, das die ausführliche Logik einer Auflösungsfunktion für einen Namensraum gemäß der vorliegenden Erfindung zeigt. Die Verarbeitung beginnt bei 900 und schaltet sofort zum Eingabeblock 910, um eine Stammadresse, einen absoluten Namen, einen relativen Namen und ein Begrenzungszeichen zu empfangen. Bei der Bezugszahl 912 wird die Steuerung dann der Bezugszahl 600 von 6 übergeben, um aus dem vorgegebenen absoluten Namen, dem relativen Namen und dem Begrenzer einen Namen zu erstellen. Am Funktionsblock 914 wird die Adresse dann auf die Stammadresse initialisiert, und im Funktionsblock 916 wird der Name auf die äußersten linken Zeichen des Namens initialisiert, nachdem das äußerste linke Begrenzungszeichen entfernt worden ist. Als Nächstes wird am Entscheidungsblock 918 ein Test durchgeführt, um festzustellen, ob der Name jetzt gleich dem Null-Zeichen ist. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung wird dem Abschlussblock 920 übergeben. Wenn der Name ungleich dem Null-Zeichen ist, wird der component_name am Funktionsblock 924 als die Zeichenfolge links des erstmalig auftretenden Begrenzers links vom Namen definiert. Eine Tabellensuchoperation wird durchgeführt, um die neue Adresse zu ermitteln. Die Tabellensuchoperation beinhaltet die Auflösung des absoluten Namens und des relativen Namens r_name, um rekursiv LeftMost_String(name, del) aufzurufen und dadurch die Komponentennamen zu erhalten und den Namen in eine Adresse aufzulösen, wie in der ausführlichen Beschreibung von 4 erklärt ist.
  • Die Tabelle ist in 11 gezeigt und wird mittels einer Tabellensuchoperation abgefragt, wobei die Tabelle mit Hilfe der aktuellen Adresse und des component_name nach einem Eintrag durchsucht wird, bei dem der x-Eintrag 1100 gleich der Adresse und der y-Eintrag 1102 gleich dem component_name ist. Der entsprechende Eintrag in dem Eintrag "new_address" 1104 ist die neue Adresse, die im Funktionsblock 930 von 9 als Ersatz für den Adressenwert verwendet wird. Im Funktionsblock 932 wird der Name dann weiter verarbeitet, um den Komponentennamen zu entfernen. Im Entscheidungsblock 940 wird daraufhin ein Test durchgeführt, um festzustellen, ob der Name gleich dem Wert null ist. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Abschlussblock 920. Wenn nicht, wird die Verarbeitung über die Bezugszahl 950, die der Bezugszahl 1000 in 10 entspricht, fortgesetzt, wobei im Entscheidungsblock 1002 sofort ein Test durchgeführt wird, um festzustellen, ob der Name gleich einem Begrenzungszeichen ist. Wenn nicht, wird das Begrenzungszeichen im Funktionsblock 1006 vom Namen abgestreift, und über die Bezugszahl 1008 wird eine Verzweigung zur Bezugszahl 922 von 9 zum Funktionsblock 924 vorgenommen. Wenn der Name gleich dem Begrenzungszeichen ist, ist die Verarbeitung abgeschlossen, und die Steuerung schaltet zum Endgerät 1004.
  • 10 ist eine weitere ausführliche Logik gemäß der vorliegenden Erfindung, die in Verbindung mit der in Bezug auf 9 erörterten Logik verwendet wird. 11 stellt eine Datenstruktur einer Referenztabelle gemäß der vorliegenden Erfindung dar, die in 9, in der die Verarbeitung ausführlich dargelegt wird, erörtert wird.
  • 12 zeigt eine Datenstruktur zur Auflösung von kaskadierten Namen gemäß der vorliegenden Erfindung, die sich in einem Speicher oder auf einer Platte eines Rechners befindet, wie in 1 gezeigt ist. Die Datenstruktur wird zur Auflösung des an der Bezugszahl 1200 gezeigten Namens verwendet. Es gibt drei verschiedene, in dieses Beispiel einbezogene Namenssysteme, nämlich die Namenssysteme 1202, 1206 und 1208. Die Kaskadierung von Namen bezieht sich auf die Auflösung eines Namens mit Visum und Begrenzern über Systemgrenzen hinweg in den jeweiligen für das betreffende System unverwechselbaren Namen. Wenn ein in S1 1202 erstellter Name, der sich auf ein Objekt im System S3 1208 bezieht, aufgelöst wird, muss er bei 1204 folglich sein Visum über die mit der Grenze verknüpfte Listendatenstruktur auflösen lassen. Nachdem die äußersten linken i Namen in einem kaskadierten Namen aufgelöst worden sind, legt diese Funktion das nachfolgende Namenssystem fest, das den Rest des kaskadierten Namens auflöst. Die Funktion verwendet als Eingabeparameter die Adresse A_Si des vorhergehenden Namenssystems Si, die Adresse_ni des letzten Namens in Si und visai. Sie gibt die Adresse A_Si+1 des Namenssystems Si+1 und den absoluten Namen a_name(mi+1) des Startknotens in Si+1 zurück. Da Si+1 ein Objekt in einem auf Attributen beruhenden Namensraum ist, erkennt A_Si+1 sofort die Auflösungsfunktion Ri+1 und den Begrenzer <deli+1> für Si+1.
  • Der bei der Bezugszahl 1200 gezeigte Name wird zum Beispiel aufgelöst, indem in 1202 nach <del1> gesucht wird. Die mit <del1> verknüpfte Adresse zeigt auf den Anfang der Liste, um bei 1220 eine Abfrage nach <A><del1><del1> durchzuführen. Wenn bei 1222 eine Übereinstimmung festgestellt wird, zeigt die mit diesem Eintrag verknüpfte Adresse auf die jeweilige Grenzdatenstruktur, wo eine Überprüfung auf Übereinstimmung mit <visa1><del1> durchgeführt werden kann. Die Übereinstimmung tritt am Eintrag 1226 auf, und die verknüpfte Adresse zeigt auf einen Eintrag für <B><del2><del2> am Speicherplatz 1230. Wenn bei 1232 eine Übereinstimmung auftritt, zeigt die zu dem übereinstimmenden Eintrag gehörende Adresse wieder auf die Grenzdatenstruktur, in der die Suche nach <visa2> beginnt. Der Eintrag, der mit <visa2><del2> übereinstimmt, hat eine entsprechende Adresse, die auf den Anfang der verknüpften Liste 1240 zeigt, in der nach <C> gesucht werden kann. Der Eintrag, der mit <C> 1242 übereinstimmt, hat einen entsprechenden Eintrag mit der eindeutigen Kennung 1210, die <C> im Namensraum S3 entspricht.
  • 13 ist ein Flussdiagramm, das die ausführliche Logik zeigt, die einer Auflösung von kaskadierten Namen gemäß der vorliegenden Erfindung entspricht. Die Verarbeitung beginnt bei der Bezugszahl 1300, und die Steuerung wird sofort dem Eingabeblock 1302 übergeben, wo ein absoluter Name, ein kaskadierter Name, ein Begrenzer für den ersten Namensraum, der bei der Auflösung des kaskadierten Namens verwendet werden soll, sowie Adressen für jedes beteiligte Namenssystem empfangen werden. Am Funktionsblock 1304 wird dann ein Zähler i auf den Anfangswert "1" gesetzt, und im Funktionsblock 1310 wird der kaskadierte Name verarbeitet, um den i-ten relativen Namen (r_namei) zu trennen, der vom Namensraum S1 aufgelöst wird. R_namei wird gleich der Zeichenfolge in cascaded_name, links der erstmalig auftretenden Folge <deli><deli> gesetzt. An der Bezugszahl 1320 wird der relative Name r_namei dann aufgelöst, wie in der ausführlichen Logik von 6 dargelegt ist. Im Funktionsblock 1330 werden daraufhin der relative Name r_namei und die Folge <deli><deli> aus dem kaskadierten Namen entfernt. Am Entscheidungsblock 1340 wird ein Test durchgeführt, um festzustellen, ob der cascaded_name gleich dem Wert null ist. Wenn ja, wird die Steuerung über die Bezugszahl 1350 der Bezugszahl 1500 in 15 übergeben. Wenn er ungleich dem Wert null ist, wird visa1 am Funktionsblock 1360 gleich der Zeichenfolge links von <deli> im cascaded_name gesetzt. Nach der Entfernung von <visa><deli> am Funktionsblock 1370 wird der cascaded_name anschließend als der Rest dieses Namens festgelegt, und die Steuerung wird der Bezugszahl 1400 von 14 übergeben. Im Anschluss daran wird die Steuerung dem Funktionsblock 1600 in 16 übergeben, um die Grenzfunktion an Bi zu verarbeiten. Auf der Grundlage der Informationen über die aktuellen Adresse ermittelt der Funktionsblock 1420 die nächste Adresse. Am Funktionsblock 1440 wird daraufhin der Index i erhöht, und die Steuerung wird über die Bezugszahl 1450 der Bezugszahl 1306 von 13 übergeben, um den nächsten Namen zu verarbeiten.
  • 15 ist ein ausführliches Flussdiagramm, das die Logik in Verbindung mit der Verarbeitung von Adressen gemäß der vorliegenden Erfindung zeigt. Die Verarbeitung beginnt an der Bezugszahl 1500 und schaltet zum Entscheidungsblock 1510, um festzustellen, ob i gleich "1" ist, d.h., ob an der Auflösung des Namens nur ein Namensraum beteiligt war. Wenn ja, wird die Adresse im Funktionsblock 1520 der Adresse des Knotens ni in diesem System gleichgesetzt, und die Verarbeitung wird am Endgeräteblock 1540 abgeschlossen. Wenn i ungleich "1" ist, besteht die Adresse aus der Adresse des letzten Systems und der Adresse des letzten Knotens, die während der Auflösung von Namen in diesem System angetroffen werden, wie im Funktionsblock 1530 gezeigt ist, und die Steuerung wird dem Endgeräteblock 1540 übergeben.
  • 16 ist die ausführliche Logik in Verbindung mit der Grenzfunktion gemäß der vorliegenden Erfindung. Die Verarbeitung beginnt bei 1600 und schaltet zum Entscheidungsblock 1610, um die Adresse der Datenstruktur, die dem i-ten Namenssystem A_Si entspricht, und die Adresse des Knotens ni in diesem System zu empfangen. Am Funktionsblock 1620 wird die Datenstruktur für A_Si dann nach einer Übereinstimmung des Namens an der Adresse mit dem i-ten Namen durchsucht. Die Datenstruktur ist eine dreidimensionale Anordnung. Bei jedem Eintrag ist der x-Wert eine Adresse eines Knotens, und der y-Wert ist ein Visum. Der z-Wert ist ein Zeiger auf die Datenstruktur A_Si+1 für das folgende Namenssystem nach der Grenze und den absoluten Name des Startknotens in A_Si+1.
  • Bezug nehmend auf 21, die die Grenztabellen-Datenstruktur zeigt, welche sich an der Adresse des i-ten Systems (A_Si) befindet, wird die Spalte der Zeichenwerte bei 2100 nach einer Übereinstimmung mit dem i-ten Knoten (address_ni) durchsucht, und der entsprechende Wert in der Spalte mit der Bezugszahl 2110 ist das Visum. Die Spalte mit der Bezugszahl 2120 entspricht dem nächsten zu verwendenden Eintrag.
  • Nochmals Bezug nehmend auf 16 besteht der nächste Schritt in der Verarbeitung der Grenzen darin, am Funktionsblock 1630 die Tabelle zu durchsuchen, die der Adresse des i+1-ten Systems entspricht. Die ersten Einträge in der Tabelle legen die Attribute dieses Systems fest. Jeder Eintrag hat ein Paar [attribute type = attribute value]. Beim Attribut-Typ "Begrenzer" ist der Wert deli+1, und beim Typ "Auflösung" ist der Wert Ri+1.
  • 17 ist ein Flussdiagramm, das die ausführliche Logik der erweiterten Namensauflösung für einen einzelnen Namensraum zeigt. Die Verarbeitung beginnt an der Bezugszahl 1700, und am Funktionsblock 1710 werden als Eingabe eine Stammadresse, ein absoluter Name, ein relativer Name und ein Begrenzer empfangen. Mit dem relativen Namen, dem absoluten Namen und dem Begrenzer wird dann entsprechend der in 6 bei 1720 gezeigten Logik ein Name erstellt, und bei 1722 wird eine Adresse auf die Stammadresse initialisiert. Die grundlegende Erweiterung der Auflösungsfunktion besteht in der Suche nach der Folge <del><del> und im Auffinden dieser Folge. Am Entscheidungsblock 1730 werden dann die beiden äußersten linken Zeichen im Namen geprüft, um festzustellen, ob es die Zeichen <del><del> sind. Wenn das Ergebnis des Tests positiv ist, schaltet die Steuerung zur Bezugszahl 1740. Wenn das Ergebnis des Tests negativ ist, wird das Begrenzungszeichen im Funktionsblock 1742 vom Namen abgestreift, und am Entscheidungsblock 1744 wird ein Test durchgeführt, um festzustellen, ob der Name den Wert null hat. Wenn ja, ist die Verarbeitung abgeschlossen, und die Steuerung wird der Bezugszahl 1750 übergeben. Wenn nicht, wird der folgende Komponentenname in dem Pfad im Funktionsblock 1751 als die Zeichenfolge links des ersten Begrenzers festgelegt, und entsprechend der in 11 gezeigten Logik wird eine Tabellensuchoperation durchgeführt. Im Funktionsblock 1754 gibt die Tabellensuchoperation eine neue Adresse zurück, die neuen Werte für die Adresse werden zugewiesen, und der Name wird neu festgelegt, nachdem der component_name links des Namens entfernt worden ist. Anschließend schaltet die Steuerung über die Bezugszahl 1760 zu 18b. 18 führt bei 1810 einen Test durch, um festzustellen, ob der Name den Wert null hat, und wenn ja, schließt sie beim Endgerät 1840 die Verarbeitung ab. Wenn der Name nicht den Wert null hat, wird die Verarbeitung wieder der Bezugszahl 1724 in 17 zur weiteren Verarbeitung übergeben.
  • 19 ist ein Flussdiagramm, das eine zusätzliche ausführliche Logik der erweiterten Namensauflösung für einen einzelnen Namensraum zeigt. Sie legt die Erweiterungen bei der Bildung von <del><del> fest. Die Verarbeitung beginnt bei der Bezugszahl 1900, wenn über die Bezugszahl 1740 in 17 eine Verzweigung vorgenommen worden ist. Der Funktionsblock 1910 streift die beiden Begrenzer von einem Namen ab. Am Entscheidungsblock 1920 wird daraufhin ein Test durchgeführt, um festzustellen, ob das äußerste linke Zeichen immer noch ein Begrenzer ist. Wenn ja, wird im Funktionsblock 1930 ein weiterer Begrenzer abgestreift, und die Steuerung wird wieder dem Entscheidungsblock 1920 übergeben. Wenn nicht, wird die Steuerung bei der Bezugszahl 1940 der Grenzfunktion übergeben.
  • 20 ist ein Flussdiagramm, das die ausführliche Logik einer Grenzfunktion gemäß der vorliegenden Erfindung darstellt. Die Steuerung wird zunächst von der Bezugszahl 1940 in 19 der Bezugszahl 2000 von 20 übergeben. Am Eingabeblock 2010 wird die Adresse des letzten Knotens dann zusammen mit dem Namen und dem Begrenzungszeichen empfangen. Am Funktionsblock 2012 wird das i-te Visum auf der Grundlage der äußersten linken Zeichen links von deli im Namen gebildet. Der Funktionsblock 2014 wandelt den Namen in eine Zeichenfolge-Variable ohne die Visum-Zeichen um. Am Funktionsblock 2016 wird der Begrenzer dann vom Ende des Namens abgestreift, und am Entscheidungsblock 2020 wird ein Test durchgeführt, um festzustellen, ob der Name gleich einem Null-Zeichen ist. Wenn ja, ist die Verarbeitung abgeschlossen, wie am Endgerät 2030 gezeigt ist. Wenn nicht, wird eine Tabellensuchoperation durchgeführt, wobei die in 21 gezeigte Grenztabelle verwendet wird, um die aufgelöste Adresse für den folgenden Namensraum Si+1 zu ermitteln, die bei der Auflösung des restlichen Namens verwendet werden soll. Auf diese Weise werden die Namensauflösungsfunktion Ri+1, die absolute Adresse des Startknotens A_Mi+1 und der Begrenzer deli+1 angegeben. Der Zähler i wird im Funktionsblock 2050 erhöht, und die Steuerung wird über die Bezugszahl 2060 dem Funktionsblock 1700 in 17 übergeben.
  • Zwar wurde die Erfindung in Bezug auf eine bevorzugte Ausführungsform in einer bestimmten Systemumgebung beschrieben, doch erkennt der Fachmann, dass die Erfindung mit daran vorgenommenen Änderungen auch in verschiedenen anderen Hardware- und Software-Umgebungen in die Praxis umgesetzt werden kann.

Claims (10)

  1. Einrichtung zur Auflösung von Namen, die einer oder mehreren Adressen von Objekten entsprechen, welche sich auf einem oder mehreren Rechnersystemen befinden, wobei die Einrichtung Folgendes umfasst: (a) Speichermittel, um eine Vielzahl von Datenstrukturen zu speichern; (b) Mittel, um die Namen in Zeichenfolgen zu gliedern; (c) Mittel, um eine erste Zeichenfolge in einer ersten Datenstruktur mit einer zweiten Datenstruktur zu vergleichen und um eine Adresse abzurufen; (d) Mittel, um eine zweite Zeichenfolge in einer zweiten Datenstruktur mit einem Objekt in einem bestimmten Rechnersystem zu vergleichen und um eine Adresse abzurufen; dadurch gekennzeichnet, dass die Einrichtung des Weiteren Folgendes umfasst: (e) Namensgrenze-Mittel, um die Syntax eines bestimmten Namenssystems zu trennen; und (f) Visum-Mittel, die auf einem vorhandenen Namenssystem beruhen, um von einem ersten System über eine Grenze in ein zweites System zu wechseln.
  2. Einrichtung nach Anspruch 1, wobei die Datenstrukturen in einem Dateisystem gespeichert werden.
  3. Einrichtung nach Anspruch 1 oder 2, die Mittel zur Verwendung von vorhandenen Begrenzungszeichen enthält, um die Namen in Zeichenfolgen zu gliedern.
  4. Einrichtung nach einem der vorhergehenden Ansprüche, die Doppelbegrenzer-Mittel enthält, um das Ende eines Namens in einem bestimmten Namensraum zu kennzeichnen.
  5. Verfahren zur Auflösung von Namen, die einer oder mehreren Adressen von Objekten entsprechen, die sich auf einem oder mehreren Rechnersystemen befinden, wobei das Verfahren die folgenden Schritte umfasst: (a) Speichern einer Vielzahl von Datenstrukturen; (b) Gliedern der Namen in Zeichenfolgen; (c) Vergleichen einer ersten Zeichenfolge in einer ersten Datenstruktur mit einer zweiten Datenstruktur und Abrufen einer Adresse; und (d) Vergleichen einer zweiten Zeichenfolge in einer zweiten Datenstruktur mit einem Objekt in einem bestimmten Rechnersystem und Abrufen einer Adresse; dadurch gekennzeichnet, dass das Verfahren des Weiteren die folgenden Schritte umfasst: (e) Trennen der Syntax eines bestimmten Namenssystems; und (f) Überschreiten einer Systemgrenze durch Verarbeitung eines Visums.
  6. Verfahren nach Anspruch 5, wobei die Datenstrukturen in einem Dateisystem gespeichert werden.
  7. Verfahren nach Anspruch 5 oder 6, das den Schritt der Verwendung von vorhandenen Begrenzungszeichen beinhaltet, um die Namen in Zeichenfolgen zu gliedern.
  8. Verfahren nach einem der Ansprüche 5 bis 7, das den Schritt der Unterstützung von vorhandenen Namenssystemen beinhaltet.
  9. Verfahren nach einem der Ansprüche 5 bis 8, das die Erkennung des Endes eines Namens in einem bestimmten Namensraum durch die Feststellung eines doppelten Begrenzers beinhaltet.
  10. Rechnerprogramm, das ein Rechnerprogrammcocde-Mittel umfasst, das so ausgelegt ist, dass es die Schritte von einem beliebigen der Ansprüche 5 bis 9 durchführt.
DE69333960T 1992-03-30 1993-03-19 Namenauflösung in einem Mehrsystem-Netz Expired - Lifetime DE69333960T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/860,804 US5434974A (en) 1992-03-30 1992-03-30 Name resolution for a multisystem network
US860804 1992-03-30

Publications (2)

Publication Number Publication Date
DE69333960D1 DE69333960D1 (de) 2006-03-30
DE69333960T2 true DE69333960T2 (de) 2006-08-24

Family

ID=25334056

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69333960T Expired - Lifetime DE69333960T2 (de) 1992-03-30 1993-03-19 Namenauflösung in einem Mehrsystem-Netz

Country Status (6)

Country Link
US (1) US5434974A (de)
EP (1) EP0565258B1 (de)
AT (1) ATE315300T1 (de)
CA (1) CA2082870C (de)
DE (1) DE69333960T2 (de)
ES (1) ES2253735T3 (de)

Families Citing this family (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515534A (en) * 1992-09-29 1996-05-07 At&T Corp. Method of translating free-format data records into a normalized format based on weighted attribute variants
US5628011A (en) * 1993-01-04 1997-05-06 At&T Network-based intelligent information-sourcing arrangement
US6286013B1 (en) 1993-04-01 2001-09-04 Microsoft Corporation Method and system for providing a common name space for long and short file names in an operating system
EP0618540B1 (de) * 1993-04-01 2001-12-12 Microsoft Corporation Gemeinsamer Speicherbereich für lange und kurze Dateinamen
US5500929A (en) * 1993-08-30 1996-03-19 Taligent, Inc. System for browsing a network resource book with tabs attached to pages
US5689700A (en) * 1993-12-29 1997-11-18 Microsoft Corporation Unification of directory service with file system services
US5701462A (en) * 1993-12-29 1997-12-23 Microsoft Corporation Distributed file system providing a unified name space with efficient name resolution
US5822720A (en) 1994-02-16 1998-10-13 Sentius Corporation System amd method for linking streams of multimedia data for reference material for display
US6119151A (en) 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US7143055B1 (en) 1996-10-25 2006-11-28 Ipf, Inc. Internet-based system for collecting, managing and serving consumer product-related information over the internet using trademarks and universal resource locators (urls) symbolically-linked by manufacturers of consumer products and/or their agents
US6961712B1 (en) * 1996-10-25 2005-11-01 Ipf, Inc. Consumer product information request (CPIR) enabling servlets and web-based consumer product information catalogs employing the same
US5745752A (en) * 1994-12-13 1998-04-28 Microsoft Corporation Dual namespace client having long and short filenames
US5617568A (en) * 1994-12-14 1997-04-01 International Business Machines Corporation System and method for supporting file attributes on a distributed file system without native support therefor
US5832487A (en) * 1994-12-15 1998-11-03 Novell, Inc. Replicated object identification in a partitioned hierarchy
US5566328A (en) * 1995-01-23 1996-10-15 Tandem Computers Incorporated Reconstructing directory pathnames from file handles in a computer system
US5706501A (en) * 1995-02-23 1998-01-06 Fuji Xerox Co., Ltd. Apparatus and method for managing resources in a network combining operations with name resolution functions
US5758084A (en) * 1995-02-27 1998-05-26 Hewlett-Packard Company Apparatus for parallel client/server communication having data structures which stored values indicative of connection state and advancing the connection state of established connections
US5724512A (en) * 1995-04-17 1998-03-03 Lucent Technologies Inc. Methods and apparatus for storage and retrieval of name space information in a distributed computing system
US5729689A (en) * 1995-04-25 1998-03-17 Microsoft Corporation Network naming services proxy agent
WO1997014108A1 (en) * 1995-10-11 1997-04-17 Block Financial Corporation Financial information access system
JP3738787B2 (ja) * 1995-10-19 2006-01-25 富士ゼロックス株式会社 資源管理装置及び資源管理方法
US5764906A (en) * 1995-11-07 1998-06-09 Netword Llc Universal electronic resource denotation, request and delivery system
US8271339B2 (en) * 1995-11-13 2012-09-18 Lakshmi Arunachalam Method and apparatus for enabling real-time bi-directional transactions on a network
US8037158B2 (en) 1995-11-13 2011-10-11 Lakshmi Arunachalam Multimedia transactional services
US7930340B2 (en) 1995-11-13 2011-04-19 Lakshmi Arunachalam Network transaction portal to control multi-service provider transactions
US5873092A (en) * 1995-12-14 1999-02-16 International Business Machines Corporation Information handling system, method, and article of manufacture including persistent, distributed object name services including shared properties
US5706442A (en) * 1995-12-20 1998-01-06 Block Financial Corporation System for on-line financial services using distributed objects
CA2199108C (en) * 1996-03-05 2002-04-23 Hirotoshi Maegawa Parallel distributed processing system and method of same
US5832506A (en) * 1996-03-29 1998-11-03 Intel Corporation Directory for network servers
US5862331A (en) * 1996-06-21 1999-01-19 Sun Microsystems, Inc. Name service system and method for automatic updating on interconnected hosts
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US6516321B1 (en) * 1996-07-30 2003-02-04 Carlos De La Huerga Method for database address specification
US6820093B2 (en) 1996-07-30 2004-11-16 Hyperphrase Technologies, Llc Method for verifying record code prior to an action based on the code
US6434567B1 (en) 1996-07-30 2002-08-13 Carlos De La Huerga Method for specifying enterprise-wide database address formats
US7013298B1 (en) 1996-07-30 2006-03-14 Hyperphrase Technologies, Llc Method and system for automated data storage and retrieval
US6065016A (en) * 1996-08-06 2000-05-16 At&T Corporation Universal directory service
US5745899A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Method for indexing information of a database
US6802068B1 (en) * 1996-10-16 2004-10-05 International Business Machines Corporation Addressless internetworking
US5944793A (en) * 1996-11-21 1999-08-31 International Business Machines Corporation Computerized resource name resolution mechanism
US5923854A (en) * 1996-11-22 1999-07-13 International Business Machines Corporation Virtual internet protocol (IP) addressing
TW344178B (en) * 1996-12-16 1998-11-01 Toshiba Co Ltd Information presentation device and method
US6205489B1 (en) 1999-01-05 2001-03-20 Whowhere, Inc. Method for providing an internet protocol address with a domain name server
US6560634B1 (en) * 1997-08-15 2003-05-06 Verisign, Inc. Method of determining unavailability of an internet domain name
TW371736B (en) * 1997-10-08 1999-10-11 Yen-Yuan Chianh Virtual IP gate and its IP construction
US5974453A (en) * 1997-10-08 1999-10-26 Intel Corporation Method and apparatus for translating a static identifier including a telephone number into a dynamically assigned network address
US5946680A (en) * 1997-11-28 1999-08-31 International Business Machines Corporation Method of determining the unique ID of an object in a peer to peer configuration of object indexes
US6687707B1 (en) * 1997-11-28 2004-02-03 International Business Machines Corporation Unique object identification in a network of computing systems
US5995964A (en) * 1997-12-10 1999-11-30 Nihon Unisys, Ltd. Managing first and second handles used in communication with an apparatus connected to a network
US5953729A (en) * 1997-12-23 1999-09-14 Microsoft Corporation Using sparse file technology to stage data that will then be stored in remote storage
US6023710A (en) * 1997-12-23 2000-02-08 Microsoft Corporation System and method for long-term administration of archival storage
US6151624A (en) * 1998-02-03 2000-11-21 Realnames Corporation Navigating network resources based on metadata
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US7392234B2 (en) * 1999-05-18 2008-06-24 Kom, Inc. Method and system for electronic file lifecycle management
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US6505255B1 (en) 1999-04-29 2003-01-07 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Method for formatting and routing data between an external network and an internal network
US6496862B1 (en) 1998-08-25 2002-12-17 Mitsubishi Electric Research Laboratories, Inc. Remote monitoring and control of devices connected to an IEEE 1394 bus via a gateway device
US6216162B1 (en) * 1998-10-19 2001-04-10 International Business Machines Corp. Extending alias support to heterogeneous servers
US7003719B1 (en) 1999-01-25 2006-02-21 West Publishing Company, Dba West Group System, method, and software for inserting hyperlinks into documents
US20030069966A1 (en) * 2001-10-10 2003-04-10 Ritz Peter B. Method and system for directing users to information specific to network applications
US6993580B2 (en) * 1999-01-25 2006-01-31 Airclic Inc. Method and system for sharing end user information on network
US6510450B1 (en) 1999-02-04 2003-01-21 Novell, Inc. Multiple storage class distributed nametags for locating items in a distributed computing system
US6182148B1 (en) * 1999-03-18 2001-01-30 Walid, Inc. Method and system for internationalizing domain names
US6442685B1 (en) 1999-03-31 2002-08-27 International Business Machines Corporation Method and system for multiple network names of a single server
EP1045304A1 (de) * 1999-04-16 2000-10-18 Martine Naillon Verfahren zur Steuerung eines zielnachstrebenden Entscheidungsprozesses in einem bestimmten Gebiet, so wie wirtschaftlich, technisch, organisatorisch oder dergleichen und System zur Ausführung des Verfahrens
US6633547B1 (en) 1999-04-29 2003-10-14 Mitsubishi Electric Research Laboratories, Inc. Command and control transfer
US6378000B1 (en) 1999-04-29 2002-04-23 Mitsubish Electric Research Laboratories, Inc Address mapping in home entertainment network
US6523064B1 (en) 1999-04-29 2003-02-18 Mitsubishi Electric Research Laboratories, Inc Network gateway for collecting geographic data information
US6480508B1 (en) 1999-05-12 2002-11-12 Westell, Inc. Router-based domain name system proxy agent using address translation
US6351743B1 (en) * 1999-05-26 2002-02-26 Lucent Technologies Inc. Method and apparatus for operating domain name servers
US20050108219A1 (en) * 1999-07-07 2005-05-19 Carlos De La Huerga Tiered and content based database searching
US6578054B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
US6601093B1 (en) * 1999-12-01 2003-07-29 Ibm Corporation Address resolution in ad-hoc networking
US7395353B1 (en) * 1999-12-07 2008-07-01 Telleo, Incorporated Method and apparatus for processing internet site names through regular expression comparison
US6760065B1 (en) 2000-03-24 2004-07-06 Eastman Kodak Company Imaging table of contents
MXJL02000042A (es) * 2000-05-22 2004-12-03 New Net Inc Sistemas y metodos para acceder a recursos en la red.
US6507837B1 (en) 2000-06-08 2003-01-14 Hyperphrase Technologies, Llc Tiered and content based database searching
US7243369B2 (en) 2001-08-06 2007-07-10 Sun Microsystems, Inc. Uniform resource locator access management and control system and method
US7130861B2 (en) 2001-08-16 2006-10-31 Sentius International Corporation Automated creation and delivery of database content
US20030061382A1 (en) * 2001-09-21 2003-03-27 Dell Products L.P. System and method for naming hosts in a distributed data processing system
US7171457B1 (en) * 2001-09-25 2007-01-30 Juniper Networks, Inc. Processing numeric addresses in a network router
US20030093562A1 (en) * 2001-11-13 2003-05-15 Padala Chandrashekar R. Efficient peer to peer discovery
US7333966B2 (en) * 2001-12-21 2008-02-19 Thomson Global Resources Systems, methods, and software for hyperlinking names
US6909910B2 (en) 2002-02-01 2005-06-21 Microsoft Corporation Method and system for managing changes to a contact database
JP3757917B2 (ja) * 2002-08-20 2006-03-22 日本電気株式会社 パケット転送装置、パケット転送方法解決サーバ、dnsサーバ、ネットワークシステム及びプログラム
US7296235B2 (en) * 2002-10-10 2007-11-13 Sun Microsystems, Inc. Plugin architecture for extending polices
US20040267749A1 (en) * 2003-06-26 2004-12-30 Shivaram Bhat Resource name interface for managing policy resources
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
ATE551658T1 (de) 2003-12-31 2012-04-15 Thomson Reuters Glo Resources Systeme, verfahren, schnittstellen und software zur automatisierten sammlung und integration von entitätsdaten in online-datenbanken und professionellen verzeichnissen
US7367508B2 (en) * 2004-09-24 2008-05-06 Microsoft Corporation System and method for tracking URL usage
US7584220B2 (en) * 2004-10-01 2009-09-01 Microsoft Corporation System and method for determining target failback and target priority for a distributed file system
US7752241B1 (en) * 2004-11-22 2010-07-06 Oracle America, Inc. Message based file system
US8321439B2 (en) * 2004-12-17 2012-11-27 Microsoft Corporation Quick filename lookup using name hash
US9639554B2 (en) * 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
US7873596B2 (en) * 2006-05-23 2011-01-18 Microsoft Corporation Extending cluster allocations in an extensible file system
US8606830B2 (en) 2004-12-17 2013-12-10 Microsoft Corporation Contiguous file allocation in an extensible file system
US7536391B2 (en) * 2005-05-20 2009-05-19 Microsoft Corporation System and method for URL virtualization and mapping
KR100750122B1 (ko) * 2005-06-13 2007-08-21 삼성전자주식회사 인쇄 옵션 설정 방법 및 장치
JP4244968B2 (ja) * 2005-07-05 2009-03-25 ブラザー工業株式会社 端末装置、およびプログラム
US7797359B1 (en) 2005-08-23 2010-09-14 Hewlett-Packard Development Company, L.P. Recursive data naming
US7467230B2 (en) * 2006-02-28 2008-12-16 Microsoft Corporation Global names zone
US9015279B2 (en) * 2007-06-15 2015-04-21 Bryte Computer Technologies Methods, systems, and computer program products for tokenized domain name resolution
CN116821437B (zh) * 2023-08-30 2023-11-07 英诺达(成都)电子科技有限公司 数据处理方法、装置、电子设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1252906A (en) * 1985-06-11 1989-04-18 Frank D. Bartocci Generalized directory data model
US4999766A (en) * 1988-06-13 1991-03-12 International Business Machines Corporation Managing host to workstation file transfer

Also Published As

Publication number Publication date
EP0565258A3 (de) 2003-10-01
DE69333960D1 (de) 2006-03-30
ATE315300T1 (de) 2006-02-15
CA2082870C (en) 1996-10-15
US5434974A (en) 1995-07-18
EP0565258B1 (de) 2006-01-04
ES2253735T3 (es) 2006-06-01
CA2082870A1 (en) 1993-10-01
EP0565258A2 (de) 1993-10-13

Similar Documents

Publication Publication Date Title
DE69333960T2 (de) Namenauflösung in einem Mehrsystem-Netz
DE69916928T2 (de) Zugriffsverfahren und Server für Netzwerkverzeichnis
DE69724356T2 (de) Verfahren und Apparat für die Darstellung von Information im Bezug auf jeden einzelnen von mehreren Hyperlinks
DE69838739T2 (de) Verfahren und Vorrichtung zum Darstellen und Verwenden von Netzwerktopologiedaten
EP0825524B1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE69530595T2 (de) System und verfahren für die x.500-datenbanknorm
DE69936818T2 (de) Protokoll zum Austausch von Konfigurationsdaten in einem Computernetzwerk
DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
DE69837010T2 (de) System und verfahren zum steuern des zugriffs auf eine vermittlungsdatenbank
DE60016772T2 (de) Verfahren und system für die publikation und revision von hierarchisch organisierten sätzen von statischen intranet- und internet-seiten
DE19926115B4 (de) Transaktionshandhabung in einer Konfigurationsdatenbank
DE69927929T2 (de) Verfahren und System zur Netzwerkverwaltung
DE60003292T2 (de) Verteiltes datenbanksystem
DE69433833T2 (de) Datenverarbeitungsgerät für Gleichung der Benutzerslast in einem Netz
US5530849A (en) Method of reading dynamic, hierarchical file system directories
DE602004005035T2 (de) Verbesserung der datenbankleistungsfähigkeit in einem domänennamensystem
EP0520083B1 (de) Datenkonsistenzsicherung in einem digitalen Fernmeldevermittlungssystem
EP0525432A2 (de) Verfahren zur Änderung von Systemkonfigurationsdatensätzen in einem Fernmeldevermittlungssystem
DE69833026T2 (de) Verfahren und system zur automatischen überprüfung der bereitstellung von fernmeldediensten
DE10131192A1 (de) Schnittstelle zu Verzeichnisunterstützungssystemen unter Verwendung des Lightweight Directory Access Protocol
DE19954534A1 (de) Rückwärtsindexieren von Zeichenketten in einer relationalen Datenbank zum Suchen mit Joker
DE19926116A1 (de) Mehr-Teilprozeß-Protokollierung in einer Konfigurationsdatenbank
DE19822553A1 (de) Netzelement mit einer Steuerungseinrichtung und Steuerungsverfahren
DE10328357A1 (de) Netzwerkschnittstellen-Verwaltungssystem und Verfahren hierfür
DE69719641T2 (de) Ein Verfahren, um Informationen auf Bildschirmgeräten in verschiedenen Grössen zu präsentieren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)