DE69728176T2 - Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt - Google Patents

Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt Download PDF

Info

Publication number
DE69728176T2
DE69728176T2 DE69728176T DE69728176T DE69728176T2 DE 69728176 T2 DE69728176 T2 DE 69728176T2 DE 69728176 T DE69728176 T DE 69728176T DE 69728176 T DE69728176 T DE 69728176T DE 69728176 T2 DE69728176 T2 DE 69728176T2
Authority
DE
Germany
Prior art keywords
clients
client
data storage
file
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69728176T
Other languages
English (en)
Other versions
DE69728176D1 (de
Inventor
J. James WOLFF
David Lathrop
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=21813768&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE69728176(T2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Application granted granted Critical
Publication of DE69728176D1 publication Critical patent/DE69728176D1/de
Publication of DE69728176T2 publication Critical patent/DE69728176T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/99931Database or file accessing
    • Y10S707/99938Concurrency, e.g. lock management in shared database
    • 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/99931Database or file accessing
    • Y10S707/99939Privileged access
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Description

  • Hintergrund der Erfindung
  • Urheberrechts-Autorisierung
  • Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das einem Urheberrechtsschutz unterliegt. Der Urheberrechts-Eigentümer hat keine Einwände gegen die Faksimile-Reproduktion der-Patentoffenbarung durch Dritte, wie dieselbe in den Patentakten oder -aufzeichnungen des U.S.-Patent- und Markenamts erscheint, behält sich jedoch anderweitig jegliche Urheberrechte vor.
  • Gebiet der Erfindung
  • Das Gebiet der vorliegenden Erfindung bezieht sich allgemein auf ein System zur verteilten Steuerung gemeinschaftlich verwendeter Ressourcen auf einem Computernetz. Insbesondere bezieht sich das Gebiet der Erfindung auf ein Verteilen einer Steuerung zwischen den mehreren Hosts in einer vernetzten Umgebung über Betriebsmittel, wie z. B. Speichervorrichtungen, Datenbanken und Projekte.
  • Hintergrund
  • Es ist in Computersystemen üblich, Dateiinformationen mit mehreren Computern durch eine Vielzahl von Kommunikationsmitteln gemeinschaftlich zu verwenden. Einige der üblichen Weisen, auf die Computer Dateiinformationen zu anderen Computern senden, geschieht durch die Verwendung von Modems und Netzen bzw. Netzwerken. Modems sind verglichen mit Netzen sehr langsam. Netze benötigen Dateiserver, wobei für Hochgeschwindigkeitsnetze die Geschwindigkeit des Dateiser vers zu einem Flaschenhals wird. Dieser Flaschenhals ist eine Behinderung für Anwendungen, die die Dateiinformationen mit einer Geschwindigkeit gemeinschaftlich verwenden müssen, die höher als diejenige ist, mit der der Dateiserver Schritt halten kann. Dateiserver arbeiten unter etwas, was das Klient/Server-Paradigma bezeichnet wird. Unter diesem Paradigma stellt ein Klient Anforderungen an einen Server, der die Anforderungen dann ausführt. In dem Fall eines Dateiservers kann es mehrere Klienten geben, die Anforderungen an den Dateiserver stellen. Der Dateiserver empfängt die Anforderungen, gibt dieselben in eine Warteschlange und bedient dann jeweils eine derselben zu einem Zeitpunkt. Auf diese Weise wird eine Dateisystemkonsistenz beibehalten, da eine Entität, nämlich der Dateiserver, in Bezug auf die Datenstrukturen arbeitet, die das Dateisystem steuern, wo sich die Dateiinformationen auf eine logische und kohärente Art und Weise auf einem Speichermedium befinden.
  • Einige Fortschritte in der Netztechnologie haben es ermöglicht, daß verschiedene Einrichtungen einen Speicher direkt an dem Netz anschließen können, wie man einen Drucker an das Netz als ein vernetztes Peripheriegerät (NAP) anschließen würde. Das NAP-Paradigma ermöglicht die Beseitigung von Geschwindigkeitsflaschenhälsen, die einem Dateiserver zugeordnet sind, jedoch zu dem Preis einer Flexibilität. Unter dem NAP-Paradigma gibt es kein Verfahren zur Beibehaltung einer Dateisystemkonsistenz. Dies führt zu einem Einschränken der mehreren Computer auf einen Nur-Lese-Zugriff auf die Dateiinformationen, wobei so die Modifizierung der Dateiinformationen verhindert wird. Wenn mehrere Computer die Dateiinformationen modifizieren sollten, würde das Dateisystem verfälscht werden, da es keine Art und Weise zur Beibehaltung der Datenstrukturen des Dateisystems auf eine logische und kohärente Art und Weise auf dem Speichermedium gibt, da mehrere Entitäten versuchen, das Dateisystem zu modifizieren, ohne daß eine Einrichtung zur Beibehaltung der Kohärenz zwischengespeicherter Dateisystem-Datenstrukturen vorliegt. Deshalb zeigen sich diese NAP-Typ-Systeme als hochgeschwindigkeitsmäßige Nur-Lese-Systeme einer gemeinschaftlichen Verwendung von Dateiinformationen.
  • Es werden ein verbessertes System und ein verbessertes Verfahren zum gemeinschaftlichen Verwenden von Dateiinformationen benötigt. Vorzugsweise würde ein derartiges System den Dateiserver-Flaschenhals zur Erhöhung einer Zugriffsgeschwindigkeit beseitigen, wie dies durch das NAP-Paradigma vorgesehen ist, während gleichzeitig die Flexibilität des Klient/Server-Paradigmas beibehalten wird.
  • Es ist in Computersystemen zur Berechnung intensiver Prozesse üblich, daß bis zur Fertigstellung derselben eine enorme Zeitmenge vergeht. In Mehrprozessorsystemen kann die Berechnung durch die Verteilung des Prozesses über die Prozessoren, die in dem Computer vorhanden sind, beschleunigt werden. Dies ist möglich, da die Prozessoren, die sich in einer einzelnen Maschine befinden, auf eine direktverbundene Art und Weise die gleichen physischen Ressourcen (z. B. PCI, Speicher, Platte und CPU-Busse), auf denen die Prozesse basieren, gemeinschaftlich verwenden. Der Nachteil an diesem Ansatz besteht darin, daß er eine sehr teure und unübliche Hardware-Ausrüstung benötigt, wobei eine Software geschrieben werden muß, um diese Fähigkeit auf einem bestimmten Hardware-Modell auszunutzen. Zusätzlich ist die Verarbeitungsleistung streng auf die Anzahl von CPUs eingeschränkt, die in ein einzelnes Computersystem gegeben werden können. Der Einmaschinen-Mehrprozessor-Ansatz ist ferner durch die starken Flaschenhälse eingeschränkt, die entstehen können, da die physischen Ressourcen unter einer ansteigenden Anzahl von CPUs geteilt werden.
  • Ein zweiter Ansatz ist die Verteilung des Prozesses auf mehrere Prozessoren, die durch ein Netzsystem angeschlossen sind. Dieser Ansatz ist attraktiv, da die Anzahl teilnehmender Prozessoren praktisch unbeschränkt ist und der Typ verwendeter Maschinen billig und üblich sein kann. Eine Anzahl von Nachteilen hat diesen Ansatz jedoch extrem in effizient und in vielen Fällen praktisch nutzlos gemacht. Der Hauptnachteil einer Netzprozeßverteilung besteht darin, daß die Kommunikation der Informationen, die durch jede Maschine benötigt werden, damit der Prozeß läuft, sowie die Kommunikation der Prozeßergebnisse sehr langsam sein können, da dieselben über eine üblicherweise langsame Netzverbindung, durch ein herkömmliches Klient/Server-Netz (gemeinsam mit den zugeordneten Flaschenhälsen des Klient/Server-Modells), gehen müssen. Diese Einschränkungen erzeugen in Fällen sehr großen Verarbeitungsmehraufwand, die es erforderlich machen, daß große Mengen an Daten eingegeben und/oder ausgegeben werden. Die Wirksamkeit des verteilten Prozesses wird ferner durch den erhöhten Netzverkehr verschlechtert, da mehr Maschinen zu dem Prozeß hinzugefügt werden.
  • Die Dokumente FR2567293 sowie XP000502425 des Stands der Technik lehren Zugriffssteuermechanismen auf eine gemeinschaftlich verwendete Ressource in einem Computersystem mit mehreren Klienten. Die Klienten fordern einen Zugriff auf die gemeinschaftlich verwendete Ressource durch ein Senden von Zugriffsanforderungen an eine Zentralentität an, die eine Verriegelungstabelle aufweist. Mittels Einträgen in der Verriegelungstabelle kann ein exklusiver Zugriff auf die gemeinschaftlich verwendete Ressource oder bestimmte Regionen der gemeinschaftlich verwendeten Ressource den jeweiligen Klienten erteilt werden.
  • Benötigt werden ein verbessertes System und ein verbessertes Verfahren zum verteilten Verarbeiten über ein Netz. Ein derartiges System würde die Flaschenhälse und Nachteile, die gegenwärtigen verteilten Netzen zugeordnet sind, beseitigen, während gleichzeitig ihre Vorteile beibehalten werden. Ein derartiges System würde es ferner ermöglichen, daß die Verteilung von Prozessen in einer plattformübergreifenden Umgebung funktioniert und verwaltet werden kann.
  • Zusammenfassung der Erfindung
  • Verteilte Steuerung eines Datenträgers
  • Die Erfindung ist durch die beigefügten unabhängigen Ansprüche 1, 8 und 17 definiert. Bestimmte und bevorzugte Aspekte der vorliegenden Erfindung sind in den angefügten abhängigen Ansprüchen dargelegt.
  • Bei einem ersten Beispiel ist ein verteiltes Datenträgerverwaltungssystem offenbart. Bei diesem Beispiel teilen sich mehrere Klienten auf einem Netz eine Steuerung über und eine Verantwortlichkeit für die Kohärenz eines Datenspeicherungsdatenträgers. Das System umfaßt eine Steuerungstabelle, die dem Datenspeicherungsdatenträger zugeordnet ist. Die Steuerungstabelle umfaßt Verfügbarkeitsindizien zum Anzeigen, ob die Steuerungstabelle verfügbar ist, und Identifizierungsindizien zum Anzeigen einer Eigentümerschaft der Steuerungstabelle. Das System umfaßt ebenso Steuerungsprozesse, die jeweils auf einem Klient ausgeführt werden. Die Steuerungsprozesse fordern eine exklusive Eigentümerschaft der Steuerungstabelle an und erfassen dieselbe, um dem Klienten einen exklusiven Schreibzugriff auf den Datenspeicherungsdatenträger bereitzustellen.
  • Bei einem weiteren Beispiel weist ein Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs auf einen Datenspeicherungsdatenträger unter einer Mehrzahl von Klienten, die mit dem Datenspeicherungsdatenträger verbunden sind, die folgenden Schritte auf:
  • Einleiten einer Anforderungsroutine auf dem ersten Klient ansprechend auf den Erfassungsschritt, wobei die Anforderungsroutine folgende Handlungen bzw. Schritte durchführt:
    • a) Bestimmen auf der Basis von Eigentümerschaftsindizien in der Steuerungstabelle, daß ein zweiter Klient einen Schreibzugriff auf den Datenspeicherungsdatenträger aufweist; und
    • b) Senden einer Freigabeanforderung an den zweiten Klienten, um einen Schreibzugriff freizugeben, ansprechend auf den Bestimmungsschritt;
    • c) ansprechend auf eine bejahende Benachrichtigung von dem zweiten Klienten:
    • i) Ersetzen der Eigentümerschaftsindizien in der Steuerungstabelle durch Eigentümerschaftsindizien des ersten Klienten;
    • ii) Vorbereiten des Datenspeicherungsdatenträgers für einen Schreibzugriff; und
    • Erfassen der Freigabeanforderung an dem zweiten Klienten;
    • Einleiten einer Freigaberoutine auf dem zweiten Klienten ansprechend auf den Erfassungsschritt, wobei die Freigaberoutine folgende Schritte durchführt:
    • a) Freigeben eines Schreibzugriffs auf den Datenspeicherungsdatenträger; und
    • b) Senden einer bejahenden Benachrichtigung an den ersten Klienten des Freigabeschritts.
  • Verteilte Steuerung einer Datenbank
  • Bei einem weiteren Beispiel ist ein verteiltes Datenbankverwaltungssystem offenbart. Bei diesem Ausführungsbeispiel teilen sich mehrere Klienten auf einem Netz eine Steuerung über und eine Verantwortung für die Kohärenz einer gemeinschaftlich verwendeten Datenbank mit mehreren Aufzeichnun gen. Die Klienten konkurrieren untereinander für einen exklusiven Bearbeitungszugriff auf jedes der Felder innerhalb jeder Aufzeichnung. Das Datenbankverwaltungssystem umfaßt Verriegelungsfelder, die jedem Feld in den mehreren Aufzeichnungen zugeordnet sind. Jeder Klient führt einen residenten Kohärenzprozeß aus. Der Kohärenzprozeß ist ansprechend auf eine Anforderung zur Bearbeitung eines Felds. Der Prozeß bewilligt die Anforderung, wenn es keine Feldverriegelung bezüglich des Feldes gibt. Wenn die Anforderung bewilligt wird, aktiviert der Kohärenzprozeß eine exklusive Eigentümerschaft des Feldes durch ein Plazieren einer Verriegelung auf dem Feld. Der Kohärenzprozeß ist ebenso ansprechend auf eine Anforderung, aus einer Bearbeitung des Felds auszutreten. Wenn die Bearbeitungsaustritt-Anforderung empfangen wird, deaktiviert der Kohärenzprozeß die exklusive Eigentümerschaft des Feldes durch ein Entfernen der Verriegelung. Jeder Klient führt außerdem einen Datenbankprozeß aus: zum Empfang einer Abfrage, zur Bereitstellung von Aufzeichnungen aus der Datenbank ansprechend auf die Abfrage, zur Annahme einer Anforderung zur Bearbeitung eines Feldes und zum Weiterleiten der Anforderung zur Bearbeitung des Feldes an den Kohärenzprozeß. Der Datenbankprozeß nimmt außerdem eine Anforderung zum Austreten aus der Bearbeitung eines Feldes an und leitet die Anforderung zum Austreten aus einer Bearbeitung des Feldes an den Kohärenzprozeß weiter.
  • Bei einem weiteren Beispiel umfaßt das Verfahren zum Verwalten einer Datenbank mit mehreren Aufzeichnungen und zum Bereitstellen eines exklusiven Bearbeitungszugriffs auf jedes der Felder innerhalb jeder Aufzeichnung für die Klienten, die mit der Datenbank verbunden sind, die folgenden Schritte:
  • Erfassen einer Anforderung zur Bearbeitung eines Feldes bei einem ersten Klienten;
  • Einleiten einer Kohärenzroutine auf dem ersten Klienten ansprechend auf den Erfassungsschritt, wobei die Kohärenzroutine folgende Schritte umfaßt:
    • a) Bestimmen auf der Basis von Eigentümerschaftsindizien, die dem Feld zugeordnet sind, daß ein weiterer der Mehrzahl von Klienten einen Bearbeitungszugriff für das Feld aufweist; und
    • b) Warten, ansprechend auf den Bestimmungsschritt, daß die Eigentümerschaftsindizien, die dem Feld zugeordnet sind, deaktiviert werden;
    • c) ansprechend auf eine Deaktivierung der Eigentümerschaftsindizien, die dem Feld zugeordnet sind:
    • i) Anbringen von Eigentümerschaftsindizien des ersten Klienten an dem zu bearbeitenden Feld; und
    • ii) Bereitstellen eines Bearbeitungszugriffs für das Feld; und
    • Erfassen einer Anforderung zum Verlassen der Bearbeitung eines Feldes an einem ersten der Mehrzahl von Klienten,
    • Einleiten einer Kohärenzroutine auf dem ersten Klienten ansprechend auf den Erfassungsschritt, wobei die Kohärenzroutine die Eigentümerschaftsindizien des ersten Klienten aus dem Feld entfernt.
  • Verteilte Steuerung einer Verarbeitung:
  • Bei einem weiteren Beispiel ist ein verteiltes Projektverwaltungssystem offenbart. Bei diesem Ausführungsbeispiel teilen sich mehrere Klienten auf einem Netz eine Steuerung über und Verantwortung für ein Projekt, das in einem Pro jektverwaltungsordner definiert ist, der auf dem Netz gespeichert ist, und auf den durch die Klienten zugegriffen werden kann. Der Projektverwaltungsordner enthält eine oder mehrere Aufzeichnungen. Die Aufzeichnung umfaßt: einen Quellendateinamen, einen Quellendateiort, einen Anwendungsnamen, einen Anwendungsprogrammcode, einen Zieldateinamen und einen Zieldateiort. Jeder Klient auf dem Netz führt einen Verwaltungsprozeß zum Lokalisieren der Ordner und zum Lesen der Aufzeichnung in einem Ordner aus. Wenn eine Aufzeichnung gelesen wird, wird eine Bestimmung hinsichtlich dessen durchgeführt, ob die Ressource, d. h. die Anwendung, die die Aufzeichnung aufruft, auf dem Klient vorhanden ist. Wenn dies nicht der Fall ist, leitet der Klient den Ordner weiter. Wenn die Ressourcen vorhanden sind, lesen die Verwaltungsprozesse den Inhalt der Aufzeichnung, einschließlich des Quellendateinamens, des Quellendateiorts, des Anwendungsnamens, des Anwendungsprogrammcodes, des Zieldateinamens und des Zieldateiorts. Die Verwaltungsprozesse bewirken dann, daß die auf dem Klient residente Anwendung/Ressource die in der Aufzeichnung genannte Quellendatei öffnet. Dann bewirken die Verwaltungsprozesse, daß die auf dem Klient residente Anwendung die Prozesse bezüglich dieser Quellendatei unter der Anweisung des Anwendungsprogrammcodes ausführt, der ebenso aus der Aufzeichnung erhalten wurde. Wenn die Verwaltungsprozesse erfassen, daß die Anwendung eine Aufgabe gemäß dem Anwendungsprogrammcode fertiggestellt hat, weisen die Verarbeitungsprozesse die Anwendung/Ressource an, die fertiggestellte Aufgabe/das Arbeitsprodukt in einer Datei mit einem Namen zu speichern, der dem Zieldateinamen in der Aufzeichnung entspricht, und diese Datei an einem Ort auf dem Netz zu speichern, der dem Zieldateiort entspricht, der in der Aufzeichnung gefunden wird. Die Verwaltungsprozesse markieren dann die Aufzeichnung in dem Projektverwaltungsordner als abgeschlossen.
  • Bei einem Beispiel umfaßt das Verfahren eines Verteilens der Verwaltung eines Projekts an ausgewählte Klienten, die an ein Computernetz angeschlossen sind, die folgenden Schritte:
    • Erzeugen einer Projektverwaltungsdatei auf dem Computernetz und dem Projektverwaltungsordner, die zumindest eine Aufzeichnung enthält, die folgendes umfaßt: einen Quellendateinamen, einen Quellendateiort, einen ersten Anwendungsnamen, einen ersten Anwendungsprogrammcode, einen ersten Anwendungszieldateinamen und einen ersten Anwendungszieldateiort;
    • Erfassen des Orts auf dem Netz einer Projektverwaltungsdatei an einem ersten Klienten;
    • Einleiten eines Verwaltungsprozesses auf dem ersten Klienten ansprechend auf dem Erfassungsschritt, wobei der Verwaltungsprozeß eine Durchführung der folgenden Schritte umfaßt:
    • a) Lesen der Aufzeichnung in der Projektverwaltungsdatei;
    • b) Bestimmen, daß der erste Anwendungsname mit einer entsprechenden Anwendung auf dem ersten Klient übereinstimmt;
    • c) Weiterleiten des ersten Anwendungsprogrammcodes an die entsprechende Anwendung, um zu bewirken, daß die entsprechende Anwendung Operationen in Bezug auf die Quellendatei gemäß dem ersten Anwendungsprogrammcode durchführt und an dem Zieldateiort das resultierende Arbeitsprodukt in einer Datei mit dem Zieldateinamen speichert; und
    • d) Markieren der zumindest einen Aufzeichnung als vollständig.
  • Kurze Beschreibung der Zeichnungen
  • Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden für Fachleute auf diesem Gebiet aus der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Zeichnungen besser ersichtlich:
  • 1A ist ein Hardware-Blockdiagramm eines Klient-Server-Netzes des Stands der Technik.
  • 1B zeigt die Software-Module, die auf jedem der Klienten aus 1A vorhanden sind.
  • 1C zeigt die Funktionsbeziehung der Module aus 1B.
  • 2A ist ein Hardware-Blockdiagramm, das eine serverfreie Netzverbindung zwischen mehreren Klienten und gemeinschaftlich verwendeten Speicherungsdatenträgern zeigt.
  • 2B zeigt die Software-Module, die auf jedem Klienten aus 2A vorhanden sind.
  • 2C zeigt die Funktionsbeziehung zwischen den Software-Modulen aus 2A.
  • 3A zeigt die Zugriffssteuerungstabelle auf dem gemeinschaftlich verwendeten Speicherungsdatenträger aus 2A.
  • 3B zeigt die Datenträgersteuerungstabellen in dem gemeinschaftlich verwendeten Speicherungsdatenträger aus 2A.
  • 4 zeigt ein Beispiel einer Dateiverzeichnisstruktur für den gemeinschaftlich verwendeten Speicherungsdatenträger aus 2A.
  • 5A bis 5E zeigen die Vorgänge für ein Ermöglichen dessen, daß mehrere Klienten sich einen Lese- und Schreibzugriff auf einen gemeinschaftlich verwendeten Speicherungsdatenträger teilen.
  • 6 ist ein Hardware-Blockdiagramm eines Datenbankservers des Stands der Technik, der mit einem Klientennetz verbunden ist.
  • 7 ist ein Hardware-Blockdiagramm, bei dem mehrere Klienten direkt an eine Datenbank auf einem gemeinschaftlich verwendeten Speicherungsdatenträger angeschlossen sind.
  • 8A zeigt die Zugriffssteuerungstabelle auf dem gemeinschaftlich verwendeten Datenträger aus 7.
  • 8B zeigt die Datenträgersteuerungstabellen auf dem gemeinschaftlich verwendeten Datenträger aus 7.
  • 8C zeigt die Aktualisierungsliste auf dem gemeinschaftlich verwendeten Datenträger aus 7.
  • 9A und 9B zeigen jeweils die verbesserten Datenstrukturen, die entweder einer relationalen oder flachen Datenbank auf dem gemeinschaftlich verwendeten Datenträger aus 7 zugeordnet sind.
  • 10 ist ein Funktionsblockdiagramm, das die Software-Module auf jedem Klienten zeigt, die die verteilten Datenbankvorgänge implementieren.
  • 11 ist ein Gesamtprozeßfluß, der alle 10A10F innerhalb der Gesamtstruktur einer Datenbankmaschine beinhaltet.
  • 12A bis 12F zeigen die Prozesse, die auf jedem Klienten aus 7 implementiert sind, um eine kohärente Datenbank auf dem gemeinschaftlich verwendeten Speicherungsdatenträger beizubehalten.
  • 13A bis 13C zeigen eine Netzumgebung, in der mehrere Klienten kooperativ die Aufgabe verarbeiten, die durch eine Projektverwaltungsdatei vorgegeben wird.
  • 14A bis 14D sind detaillierte Datenstrukturen, die den Projektverwaltungsdateien der 13A13C zugeordnet sind.
  • 15A bis 15B zeigen Beispiele von Projekten, die auf dem Netz der 13A13C implementiert sein können.
  • 16A bis 16D zeigen die Bildschirmschnittstellen, die dem Prozeß aus 15A zugeordnet sind.
  • 17A bis 17F zeigen die Prozesse, die auf den Klienten der 13A13C zum Implementieren einer verteilten Prozeßverwaltung implementiert sind.
  • Beschreibung
  • 1A ist ein Hardware-Blockdiagramm eines Klient/Server-Netzes des Stands der Technik. Das Netz weist Klienten 5456 (als Klienten A bzw. B bezeichnet), einen Server 60 und Speicherungsdatenträger 64 und 66 auf. Der Speicherungsdatenträger 66 ist eine Kompaktplatte. Der Speicherungsdatenträger 64 ist ein redundantes Plattenarray (RAID). Jeder Speicherungsdatenträger weist ein Dateiverzeichnis auf, das demselben zugeordnet ist. Der Speicherungsdatenträger 64 enthält ein Dateiverzeichnis 62. Jeder der Klienten 5456 enthält jeweilige Cache-Kopien 5052 des Dateiverzeichnisses 62.
  • Die Computer 5456 sind über ein lokales Netz (LAN) mit dem Server 60 verbunden. Der Server 60 ist mit den Speicherungsdatenträgern 64 und 66 durch eine Kleincomputersystemschnittstellen- (SCSI-) Verbindung verbunden. Damit die Klienten A–B mit einem der Datenträger 6466 verbunden sind, müssen sie zuerst eine Zugriffsanforderung bei dem Server 60 registrieren. Ansprechend darauf führt der Server 60 Prozesse 58 durch, die einem Datenträgerverwaltungs-Schreibprozeß und einer Dateiverwaltung entsprechen, um die Kohärenz der Speicherungsdatenträger beizubehalten.
  • 1B zeigt die Hardware- und Software-Module auf dem Server 60 während eines Einschaltens. Der Server 60 weist einen nicht-flüchtigen Speicher 84, eine CPU 80 und eine lokale Speicherungsvorrichtung 86 auf. Innerhalb der nichtflüchtigen Speicherungsvorrichtung 84 befindet sich ein Software-Modul, das als der Betriebssystem- (OS-) Kern identifiziert ist. Die Speicherungsvorrichtung 86 enthält das vollständige OS 90, zugeordnete Treiber 92 und eine Hochfahrkonfiguration 94. In Betrieb leitet beim Einschalten die CPU 80 die Codesequenz des Betriebssystem-Kerns 88 ein. Die CPU greift dann auf das Hauptbetriebssystem 90 auf der Speicherungsvorrichtung 86 zu. In dem Verlauf der Betriebssystemeinleitung werden verschiedene Treiber 92 initialisiert. Diese Treiber verbinden die CPU mit Peripheriegeräten, wie z. B. Tastatur, Monitor, Drucker und Speicherungsvorrichtungen. Nachdem das Betriebssystem initialisiert ist, wird eine Hochfahrdatei 94 implementiert, was dazu führt, daß eine oder mehrere Anwendungen aktiviert werden.
  • In dem Software-Modulblock 82 gezeigt sind die Software-Module, die während des Einschaltens aktiviert werden. Die dem OS zugeordneten Module sind das Zugriffssteuerungs-Modul 96, das Befehlsempfangs-Modul 98, das Zeitplanungs-Modul 102 und das Modul 110 einer Übersetzung von logisch zu physisch und einer Raumzuteilung. Die Module sind der Bildschirmtreiber 104, der CD-Treiber 106 und der RAID-Speicherungstreiber 108. Schließlich wird das Anwendungsmodul 100 durch die Hochfahrdatei 94 aktiviert.
  • 1C ist ein Blockdiagramm, das die Funktions-Eingabe/Ausgabe-I/O-Beziehung zwischen den Software-Modulen der 1B1C zeigt, was eine Klient-Anwendung 150 umfaßt, die mit dem Server 60 kommuniziert, der wiederum mit einer der Speicherungsvorrichtungen 64 oder 66 kommuniziert, wie zu Beginn in 1A gezeigt ist. Der Dateiserver 60 weist einen logischen I/O-Block 158 und einen physischen I/O-Block 160 auf. Der logische I/O-Block 158 weist ein Befehlsempfangs-Modul 98, Zugriffssteuerungs-Module 96 und Dateiverzeichnisse 166 auf. Der physische I/O-Block 160 weist ein Zeitplanungs-Modul 102, ein Modul 110 einer Umsetzung von logisch zu physisch und Raumzuteilung und Treiber 104108 auf, die dem Monitor, der CD bzw. der RAID-Speicherungsvorrichtung zugeordnet sind. Die RAID-Speicherungsvorrichtung 64 umfaßt ein Dateiverzeichnis 62, das den Verzeichnisbaum und Zugriffsrechte für alle Daten, die sich auf der Speicherungsvorrichtung 64 befinden, enthält.
  • In Betrieb kommuniziert eine Klientenanwendung 150 über den Server 60 mit einer der Speicherungsvorrichtungen 64 und 66. Befehle, die von der Klient-Anwendung 150 empfangen werden, umfassen: Erzeugen, Löschen, Öffnen, Schließen, Lesen und Schreiben. Jeder dieser Befehle wird durch einen Logikdateinamen begleitet. Ein Befehl wird von dem Befehlsempfangsmodul 98 an das Zugriffssteuerungs-Modul 96 weitergeleitet. Die Zugriffssteuerungs-Module 96 sind jeweils schnittstellenmäßig mit einem entsprechenden der Dateiverzeichnisse 166 verbunden. Es gibt im allgemeinen ein Dateiverzeichnis für jeden physischen Datenträger. Zusätzlich könnte ein Datenträger über mehrere physische Speicherungsvorrichtungen existieren, wie bei einem Software-Striping. Ein physischer Datenträger kann eine einzelne Speicherungsvorrichtung oder eine Partition auf einer Speicherungsvor richtung sein. Ein Dateiverzeichnis wird in Verbindung mit 4 detaillierter erläutert und umfaßt im allgemeinen einen Verzeichnisbaum mit Logikdateinamen und Zugriffsberechtigungen, die jedem Dateinamen zugeordnet sind. Das Zugriffssteuerungs-Modul 96 bestimmt auf der Basis von Zugriffsberechtigungen, die in den Dateiverzeichnissen 166 enthalten sind, ob ein spezifischer Befehl implementiert werden sollte oder nicht. Wenn z. B. ein Anwendungsbefehl eine Schreibanforderung an eine Datei oder einen Datenträger aufweist, die/der als Nur-Lesen aufgelistet ist, wird diese Anforderung durch das Zugriffssteuerungs-Modul nicht implementiert. Alternativ werden, wenn ein Befehl empfangen wird, den das Zugriffssteuerungs-Modul implementiert, die Daten, die diesem Befehl zugeordnet sind, direkt an das Zeitplanungs-Modul 102 weitergeleitet. Der physische I/O-Block ist die Hauptschnittstelle mit der Umgebung außerhalb des Computersystems. Der physische I/O beschäftigt sich mit Blöcken von Daten, die mit Platten- oder Bandsystemen ausgetauscht werden. So ist er mit der Plazierung dieser Blöcke auf der sekundären Speicherungsvorrichtung und mit dem Puffern bzw. Zwischenspeichern dieser Blöcke in dem Hauptspeicher beschäftigt, das Zeitplanungs-Modul ist mit einem zeitlichen Planen von Platten- oder Bandzugriffen für die Optimierung einer Leistung beschäftigt. I/O-Puffer sind zugewiesen und ein sekundärer Speicher ist auf dieser Ebene zugewiesen. Von dem Zeitplanungs-Modul 102 wird ein Befehl, z. B. zum Lesen von Daten von einem spezifischen logischen Ort, an das Modul 110 einer Umsetzung von logisch zu physisch und Raumzuteilung weitergeleitet. Dieses Modul ist verantwortlich für ein Umsetzen eines logischen Orts in einen tatsächlichen physischen Ort auf einer spezifischen Speicherungsvorrichtung. Eine Datei ist unter Umständen z. B. auf keinem zusammenhängenden Abschnitt einer Speicherungsvorrichtung gespeichert. Statt dessen ist dieselbe unter Umständen auf fragmentierten Segmenten gespeichert. Dieses Modul führt dann die Umsetzung eines Logikdateinamens in eine Serie physischer Segmente durch. Dieses Modul ist auch verantwortlich für eine Raumzuteilung, eine Raum zuteilung in dem Sinn, daß, wenn Schreibbefehle empfangen werden, die tatsächlichen physischen Orte, an die die Daten geschrieben werden, durch das Modul 110 bestimmt werden. Die letztendliche Software-Schnittstelle zwischen dem Server 60 und der Speicherungsvorrichtung ist über einen geeigneten Vorrichtungstreiber. Jeder Vorrichtungstreiber handhabt einen Vorrichtungstyp. Der Vorrichtungstreiber ist der einzige Teil des Betriebssystems, der weiß, wie viele Register die Plattensteuerung aufweist, und wofür dieselben verwendet werden. Er allein weiß über Sektoren, Spuren, Zylinder, Kopf-Arm-Bewegung, Verschachtelungsfaktoren, Motorantriebe, Kopf-Einrichtzeiten und alle anderen mechanischen Details, damit die Speicherungsvorrichtung ordnungsgemäß arbeitet, Bescheid. Allgemein ausgedrückt, besteht die Aufgabe eines Vorrichtungstreibers darin, abstrakte Anforderungen von der vorrichtungsunabhängigen Software über denselben anzunehmen und dafür zu sorgen, daß die Anforderung ausgeführt wird.
  • 2A ist ein Hardware-Blockdiagramm eines bevorzugten Ausführungsbeispiels der gegenwärtigen Erfindung, bei dem Klienten direkt an eines oder mehrere gemeinschaftlich verwendete Speicherungsdatenträger ohne den Verlust einer Kohärenz der Daten, die in diesen Datenträgern enthalten sind, angeschlossen sein können. Klienten 5456, Speicherungsvorrichtungen 6466 und ein Server 60 sind gezeigt. Die RAID-Speichervorrichtung 64 umfaßt ein Dateiverzeichnis 204, eine Zugriffssteuerungstabelle 206 und eine Datenträgersteuerungstabelle 208. Die Klienten 5456 implementieren jeweils Prozesse für eine verteilte Verwaltung der Speicherungsdatenträger 6466. Der Klient 54 implementiert einen Prozeß 214 und der Klient 56 implementiert einen Prozeß 216. Die Klienten 5456 umfassen residente Kopien 200202 des Dateiverzeichnis 62.
  • Der Server 60, wie durch eine x-Markierung 212 angezeigt ist, wird nicht weiter benötigt, um eine Anforderung von einem Klienten 54 oder 56 an die Speicherungsdatenträger 6466 zu bedienen. Statt dessen sind die Klienten 5456 direkt mit den Speicherungsdatenträgern 6466 verbunden. Bei einem bevorzugten Ausführungsbeispiel basiert die Verbindung entweder auf dem Faserkanal-ANSI-Standard X3.230 und/oder dem SCSI-3-ANSI-Standard X3.270, obwohl auch weitere Medienverbindungssysteme unterstützt werden können. Andere Ausführungsbeispiele der vorliegenden Erfindung können angepaßt sein, um weitere Verfahren einer Verbindung von Speicherung 802 und Hosts 804 zu unterstützen, wie z. B. Ausführungsbeispiele, die Fast-40 (Ultra-SCSI), eine Seriellspeicherarchitektur (SSA), „FireWire"-IEEE-Standard P1394, einen asynchronen Übertragungsmodus (ATM) oder den Skalierbar-Kohärenz-Schnittstellen- (SCI-) IEEE-Standard 15961992 verwenden, oder eine bestimmte Kombination von obigen, unter weiteren Möglichkeiten. Die Faserkanalarchitektur liefert Hochgeschwindigkeits-Schnittstellenverbindungen für sowohl serielle Kommunikationen als auch eine Speicherungs-I/O. Diese Verbindungen können Daten unter Verwendung von Industriestandard-Schnittstellen mit zehnfacher bis hundertfacher Geschwindigkeit gegenwärtig existierende Architekturen übertragen. Der Faserkanal ist ein Teil einer sehr neuen Revolution bei Datenkommunikationen, der durch ein Einschließen von serieller Übertragungsleitung, von -entwurfstechniken und -technologien in Anwendungen und eine Computerarchitektur bewirkt wird, die herkömmlicherweise einen Datentransporttyp auf Parallelbus-Basis verwendet haben. Übertragungsleitungen weisen überlegene Charakteristika für einen Datentransport und bus-basierte Entwürfe auf, was es ermöglicht, daß Signale fehlerfrei über größere Entfernungen und/oder mit höheren Datengeschwindigkeiten übertragen werden können. Der Faserkanal unterstützt eine flexible Topologie, einschließlich Punkt-zu-Punkt-Verbindungen, Paketschalten und Schleifentopologien gemeinschaftlich verwendeter Medien. Bei einem bevorzugten Ausführungsbeispiel verbindet ein Faserkanalnetz die Klienten 5456 mit beiden Speicherungsdatenträgern 6466. Der Speicherungsdatenträger 64 ist mit einer Striping- bzw. Streifenbildungs-Software ausgestattet, die Daten gleich zeitig über mehrere Platten hinweg liest und schreibt. Die Striping-Fähigkeit erlaubt es, daß die Bandbreite des Netzmediums, d. h. des Faserkanals, gleich der Bandbreite der Speicherungsvorrichtung gemacht werden kann. Dies ist trotz der Tatsache so, daß einzelne Platten auf der Speichervorrichtung Daten nur mit einem Bruchteil der Bandbreite der Netzverbindung bereitstellen können. Durch eine Streifenbildung einer Datei über mehrere Platten hinweg werden Bandbreiteneinschränkungen, die durch die physischen Grenzen auf den Kopf-Arm auferlegt werden, überwunden, indem mehrere Platten parallel arbeiten können, um Datentreiber bereitzustellen.
  • Um eine Kohärenz der Daten beizubehalten, die durch einen der Klienten A oder B an die Speichervorrichtung 64 geschrieben werden, werden Prozesse 214216 auf den jeweiligen Klienten 5456 implementiert. Jeder Prozeß steuert das Anbringen bzw. Vorbereiten neuer Datenträger, einen Schreibzugriff und eine Dateiverwaltung. Um Daten an die Speichervorrichtung 64 zu schreiben, muß ein Klient zuerst bestimmt haben, daß eine Schreibbedingung sowohl innerhalb der Zugriffssteuerungstabelle 206 als auch der Datenträgersteuerungstabelle 208 auf dem gemeinschaftlich verwendeten Speicherungsdatenträger vorliegt. Wenn bestimmt wird, daß diese Bedingung vorliegt, kann der Klient an den Speicherungsdatenträger schreiben. Wenn diese Bedingung nicht vorliegt, wird eine Schreibanforderung abgelehnt. Bei einem bevorzugten Ausführungsbeispiel befinden sich die Zugriffssteuerungstabelle und die Datenträgersteuerungstabelle auf einem separaten Datenträger auf einer physischen Speichervorrichtung, die sowohl eine Lese- als auch eine Schreibfähigkeit aufweist. So müssen sich die Zugriffs- und die Datenträgersteuerungstabelle nicht auf der gleichen physischen Vorrichtung befinden, für die sie einen Zugriff steuern, und tun dies normalerweise auch nicht. Statt dessen verwendet jeder der Prozesse 214 und 216 die gemeinschaftlich verwendeten Zugriffs- und die Datenträgersteuerungstabelle, um zu bestimmen, wann und unter welchen Bedingungen sie an einen einer Anzahl von Datenträgern schreiben können, an die dieselben angeschlossen sein können.
  • 2B ist ein Hardware-Software-Blockdiagramm des Klient 54. Der Klient 54 weist eine CPU 250, einen nichtflüchtigen Speicher 254 und eine lokale Speichervorrichtung 258 auf. Der nicht-flüchtige Speicher 254 weist ein OS 256 auf. Der nicht-flüchtige Speicher 258 weist das Haupt-OS 260, Vorrichtungstreiber 262 und Hochfahrdateien 264 auf.
  • Beim Einschalten lädt die CPU 250 den OS-Kern von dem Boot-ROM 254 hoch und liest den verbleibenden Abschnitt des Betriebssystems 260 von der lokalen Speichervorrichtung 258, d. h. einem Plattenlaufwerk. Während der letzteren Stufen der Betriebssystemaktivierung werden die Vorrichtungstreiber 262 und die Hochfahrdatei 264 aktiviert. Der Software-Modulblock 252 zeigt die Software-Module, die während des Einschaltens aktiviert werden. Während der Aktivierung des Betriebssystems 260 sind das Befehlsempfangs-Modul 98, die Zugriffssteuerungs-Module 96, das Zeitplanungs-Modul 102, das Modul 110 einer Umsetzung von logisch zu physisch und Raumzuteilung und die Konverter-Module 268 aktiviert. Während der Aktivierung der Vorrichtungstreiber 262 sind der Bildschirmtreiber 104, der CD-Treiber 106 und der RAID-Treiber 270 aktiviert. Während der Initialisierung der Hochfahrdatei sind die Datenträgersteuerungsanwendung 266 und eine residente Anwendung 100 aktiviert.
  • 2C zeigt die Funktionsbeziehung zwischen den Software-Modulen, die während eines Einschaltens aktiviert und in 2B gezeigt sind. Der Klient 54 und die physischen Speichervorrichtungen 64 und 66 sind gezeigt. Die physische Speichervorrichtung 64 umfaßt ein Dateiverzeichnis 62, eine Zugriffssteuerungstabelle 206, eine Datenträgersteuerungstabelle 208 und Blöcke 1 bis N. Die physische Speichervorrichtung 62 umfaßt ihr eigenes Dateiverzeichnis und Daten blöcke 1 bis N. Der Klient 54 umfaßt eine Datenträgersteuerungsanwendung 266, einen logischen I/O-Block 158 und einen physischen I/O-Block 160. Der logische I/O-Block 158 umfaßt ein Befehlsempfangs-Modul 98, Zugriffssteuerungs-Module 96, ein Dateiumwandlungs-Modul 268 und ein Dateiverzeichnis 166. Der physische Block 160 umfaßt ein Zeitplanungs-Modul 102, ein Modul 110 einer Umsetzung von logisch zu physisch und Raumzuteilung und Vorrichtungstreiber 104106 und 270.
  • In Betrieb ist der Vorrichtungstreiber 270 während der Initialisierung des Betriebssystems nicht vollständig aktiviert. So erscheint die physische Vorrichtung 64 dem Klient 54 nicht als verfügbar, d. h. verbunden. Wenn die Datenträgersteuerung 266 aktiviert wird, sendet dieselbe eine Serie von Befehlen an das Befehlsempfangs-Modul 98. Diese Befehle führen zu der Entdeckung des Verriegelungsspeichertreibers 270 durch das Datenträgersteuerungs-Modul 266. In dem Verlauf dieses Entdeckungsprozesses entdeckt das Datenträgersteuermodul auch die Zugriffs- und die Datenträgersteuerungstabelle 206 und 208 auf der physischen Vorrichtung 64. Während dieses Entdeckungsprozesses weist keine andere Anwendung als die Datenträgersteuerungsanwendung Zugriff auf die physische Speichervorrichtung 64 auf. Wenn das Datenträgersteuer-Modul 266 die Zugriffs- und die Datenträgerberechtigungen von der jeweiligen Zugriffssteuerungs- und Datenträgersteuerungstabelle 206, 208 gelesen hat, befaßt es sich mit einer Serie von Befehlen, die entworfen sind, um diese Zugriffsberechtigungen an die Dateiverzeichnisse 166 zu schreiben. Wenn z. B. bestimmt wird, daß die Datenträgersteuerungstabelle anzeigt, daß der Klient 54 einen Lese/Schreib-Zugriff auf die physische Vorrichtung 64 erhalten soll, gibt das Datenträgersteuerungsmodul einen Vorbereiten-R/W- bzw. L/S-Befehl aus, der, wenn er durch das Befehlsempfangs-Modul empfangen wird, bewirkt, daß das Dateiverzeichnis 166 aktualisiert wird und diese Berechtigungen umfaßt. Nachfolgend wird, wenn das Dateiverzeichnis 166 zurück an die physische Vorrichtung 64 geschrieben wird, das Dateiverzeichnis 62, das sich auf der tatsächlichen physischen Vorrichtung 64 befindet, ebenso aktualisiert. So werden die Zugriffs- und Datenträgerberechtigungen von der Zugriffs- und der Datenträgersteuerungstabelle gelesen und durch das Datenträgersteuerungs-Modul 266 an das zwischengespeicherte 166 und physische 62 Dateiverzeichnis geschrieben. Dieser Prozeß kann über mehrere physische Vorrichtungen auf der Basis einer Zugriffs- und Datenträgersteuerungstabelle ausgeführt werden, die sich bei dem bevorzugten Ausführungsbeispiel in nur einer dieser Vorrichtungen befindet, wobei jedoch auch andere Orte für diese Tabellen möglich sind.
  • Das verbleibende Modul, das in Bezug auf die Funktion noch nicht erläutert wurde, ist das Protokollumwandlungs-Modul 268. Das Protokollumwandlungs-Modul 268 verbindet schnittstellenmäßig das Zugriffssteuerungs-Modul 69 mit den Dateiverzeichnissen 166 und behält eine einheitliche Dateiverzeichnisstruktur über heterogene Betriebssysteme bei, wie dies z. B. auf den Klienten 54 und 56 vorhanden sein kann. Der Klient 54 z. B. kann auf einem MacIntosh System 7®-Betriebssystem laufen, während der Klient 56 auf Windows NT laufen kann. Die Protokollumwandlungs-Module 268 auf jedem dieser Klienten setzen eine homogene Dateiverzeichnisstruktur durch, wobei so eine plattformübergreifende Operation der gegenwärtigen Erfindung ermöglicht wird. Das Protokollumwandlungs-Modul 268 liefert eine Kommunikationsvorschriftumwandlung und eine Befehlsformatumwandlung zu den Kommunikationsvorschriften und dem Befehlsformat der gemeinsamen API. So können Verzeichnisse und Dateien in einem Dateiformat über mehrere Betriebssysteme hinweg gespeichert sein. Das Format weist spezifische ASCII-Zeichen, Übereinkünfte für Dateinamen und spezifische Übereinkünfte auf, die in Verbindung mit 4 für die Dateiverzeichnis- und Zugriffssteuerung noch detaillierter erläutert werden. Wenn die Protokollumwandlungseinheit einen Befehl empfängt, ruft sie eine Verarbeitungsroutine in sich selbst auf, die dem Typ von Befehl entspricht, wobei diese Verarbeitungsroutine den Befehl handhabt.
  • 3A zeigt eine detaillierte Datenstruktur für die Zugriffssteuerungstabelle 206, die oben in Verbindung mit den 2A2C erläutert wurde. Angemeldete Felder 356 der Zugriffssteuerungstabelle zeigen an, welche Benutzerprozesse 214216 [siehe 2A] bei der Zugriffssteuerungs- und der Datenträgersteuerungstabelle angemeldet sind. Bis ein Benutzer bei der Zugriffssteuerungstabelle angemeldet ist, kann keine Anwendung auf diesem Klient auf eine der physischen Vorrichtungen zugreifen, deren Vorrichtungstreiber eine Verriegelungssteuerung ähnlich wie der Vorrichtungstreiber 270 [siehe 2C] aufweisen. Die Zugriffssteuerungstabelle weist außerdem ein Auffrischen-Benachrichtigungsfeld 358 auf, das jedem Klient zugeordnet ist. Eine boolesche Wahr-Bedingung in einem Feld, das einem spezifischen Klient zugeordnet ist, stellt sicher, daß der Klient durch seinen residenten Datenträgersteuerungsprozeß benachrichtigt wird, wenn Veränderungen an den Zugriffsberechtigungen weiterer Benutzer auf dem System stattfinden. Eine boolesche Falsch-Bedingung weist die entgegengesetzte Wirkung auf, d. h. keine Benachrichtigung wird durch den Datenträgersteuerungsprozeß auf einem Klient bereitgestellt, der eine boolesche Falsch-Bedingung in dem Auffrischen-Benachrichtigungsfeld der Zugriffssteuerungstabelle aufweist. Die Zugriffssteuerungstabelle liefert außerdem eine Nachrichtenweiterleitungsfähigkeit zwischen Klienten. Ein Feld 360 enthält eine Anforderungsnachricht. Ein Feld 362 und 354 enthalten eine text-basierte bzw. eine Boolebasierte Antwortnachricht. Schließlich umfaßt die Zugriffssteuerungstabelle ein Semaphorenfeld 352. Das Vorliegen eines Semaphors in dem Semaphorenfeld zeigt an, daß einer der Klienten 54 oder 56 eine Steuerung über die Zugriffs- bzw. Datenträgersteuerungstabelle 206208 ergriffen hat. Ein Klientprozeß, der einen Identifizierer in das Semaphorenfeld 352 geschrieben hat, kann die Berechtigungen, die jedem Datenträger zugeordnet sind, verändern und kann eine Veränderung des Schreibstatus einleiten.
  • 3B zeigt die Datenstrukturen, die den Datenträgersteuerungstabellen 208 zugeordnet sind. Insbesondere sind Tabellen 208A und 208B gezeigt. Es gibt eine Datenträgersteuerungstabelle für jeden Datenträger, was eine verteilte Steuerung durch mehrere Schreiber unterstützt. Die Felder innerhalb der Datenträgersteuerungsaufzeichnung 208A sind alle mit dem Anhang „A" identifiziert. Die innerhalb der Datenträgersteuerungstabelle 208B identifizierten Felder enthalten alle einen „B"-Anhang. Ein Feld 390 identifiziert den Logikdatenträger, der einer spezifischen Datenträgersteuerungstabelle zugeordnet ist. Ein Feld 390A zeigt an, daß die RAID-Speichervorrichtung 64[siehe 2A] der Datenträgersteuerungstabelle 208A zugeordnet ist. Ein Feld 390B zeigt an, daß der CD-ROM 66 [siehe 2A] der Datenträgersteuerungstabelle 208B zugeordnet ist. Ein Feld 392 enthält eine boolesche WAHR/FALSCH-Bedingung, die anzeigt, ob ein spezifischer Datenträger schreib-aktiviert ist oder nicht. Ein Feld 392A zeigt an, daß die RAID-Vorrichtung 64 [ siehe 2A] schreib-aktiviert ist. Ein Feld 392B zeigt an, daß der CD-ROM 66 [siehe 2A] nicht schreib-aktiviert ist. Ein Feld 394 zeigt an, welcher Klient gegenwärtig einen Schreibzugriff auf einen spezifischen Datenträger aufweist. Ein Feld 394-A zeigt an, daß der Klient 54 [siehe 2A] gegenwärtig einen Schreibzugriff auf die RAID-Speichervorrichtung 64 aufweist. Ein Feld 394B zeigt an, daß kein Klient einen Schreibzugriff auf die CD-ROM 66 [ siehe 2A] aufweist. Ein Feld 388 zeigt an, welche Klienten Zugriff-Vorbereiten-Berechtigungen für jeden spezifischen Datenträger aufweisen. Eine boolesche Wahr-Bedingung zeigt an, daß der Klient den Datenträger vorbereiten kann. Eine boolesche Falsch-Bedingung zeigt das Gegenteil an. Ein Feld 396 zeigt für jeden Klienten die Fähigkeit an, eine Veränderung an seinen gegenwärtigen Datenträgereinstellungen anzufordern. Eine boolesche Falsch-Bedingung zeigt an, daß ein Klient nicht für ein Stellen von Veränderungsanforderungen gesperrt ist, wie z. B. Nur-Lesen zu Nur-Schreiben (oder umgekehrt). Eine boolesche Wahr-Bedingung zeigt an, daß ein Klient für ein Stellen von Veränderungsanforderungen gesperrt ist. Ein Feld 384 ist eine boolesche Wahr/Falsch-Bedingung, die anzeigt, ob ein Klient mit Nur-Lese-Berechtigungen aktualisiert wird oder nicht, wenn Veränderungen an dem Datenträger durch weitere Klienten in Bezug auf einen spezifischen Datenträger durchgeführt werden. Felder 386 sind Zeitstempel, die die letzte Zeit anzeigen, zu der ein Klient eine aktualisierte Kopie eines Dateiverzeichnisses 62 empfangen hat [siehe 2A]. Ein Feld 382 ist ein Zeitstempel, der die letzte Modifizierungszeit für einen spezifischen Datenträger durch einen Klient anzeigt. Durch ein Vergleichen des Letzte-Modifizierungszeit-Feld 386 mit dem Datenträgermodifizierungszeit-Feld 382 können die Prozesse 214216 [siehe 2A] bestimmen, wann ein Klient mit Auto-Aktualisierungsberechtigungen eine Dateiverzeichnis-Auffrischung benötigt.
  • Das Folgende ist eine Auflistung, die die Datenstrukturen und Funktionsaufrufe bei einem weiteren Ausführungsbeispiel der Datenträger- und Zugriffssteuerungstabellen darstellt. Die Auflistungen zeigen einige der Datenstrukturelemente für diese Tabellen. Die Zugriffstabelle weist einen Studio-BOSS_DB_Header 14xx (StudioBOSS_DB_Anfangsblock) und ein Array von Partition Volume Record's 14xx (Partition Datenträger Aufzeichnungen 14xx) auf.
  • Volume DB Header 14xx (Datenträger DB Anfangsblock 14xx)
  • Der Volume_DB_Header 14xx ist bei einem ersten Ausführungsbeispiel der vorliegenden Erfindung an dem Anfang der Datenträgertabelle gespeichert, obwohl die tatsächliche Position variieren könnte. Eine Beschreibung jedes seiner Felder ist wie folgt:
    • Table_Version_Number 14xx (Tabellen_Versions_Zahl 14xx) Die Versionszahl des Tabellenformats. Gegenwärtig eingestellt auf SB_DB_VERSION 14xx. Für eine zukünftige Kompatibilität beabsichtigt.
    • Table_Open_Counter 14xx (Tabelle_Offen_Zähler 14xx) Verfolgt die Anzahl von Malen, die die Tabelle jemals geöffnet wurde. Gegenwärtig verwendet bei DEMO-Kopien, um eines der Kriterien zum Ablauf der DEMO-Version zu bestimmen (siehe SB DB OPENS UNTIL EXPIRE 14xx(SB DB ÖFF-NUNGEN BIS ABLAUF 14xx)).
    • Table_Write_Lockout_Semaphore 14xx (Tabelle Schreiben Sperren Semaphor 14xx) Einstellen auf MAXIMUM USERS 14xx (MAXIMALE BENUTZER 14xx), wenn Tabelle sicher für einen Zugriff ist. Andernfalls Einstellen auf die Benutzerzahl, die das Semaphor ergriffen hat. Wenn es ergriffen wurde, ist die Tabelle nicht zuverlässig und keine Veränderungen sollten durchgeführt werden.
    • Number_ Of_Users 14xx (Anzahl_Von_Benutzern 14xx) Gesamtzahl von Benutzern, die in der Tabelle erzeugt werden.
    • Number Of Volumes 14xx (Anzahl Von Datenträgern 14xx) Gesamtzahl von Datenträgern in der Tabelle.
    • User_Names[MAXIMUM_USERS 14xx] 14xx (Benutzer_Namen[MAXIMA-LE_BENUTZER 14xx] 14xx) Namen der Benutzer in der Tabelle in Pascal-Zeichenfolgenformat (Längenbyte + Zeichen). ANMERKUNG: Um den nächsten Namen in der Liste zu finden, wird das Array nach der nächsten Nicht-Null-Länge-Zeichenfolge durchsucht.
    • User_Has_Owner [MAXIMUM_USERS 14xx] 14xx (Benutzer_Hat_Eigentümer[MAXIMALE_BENUTZER 14xx] 14xx) Setzen auf WAHR, wenn Benutzer gültig, andernfalls FALSCH.
    • User_Logged_On [MAXIMUM_USERS 14xx] 14xx (Benutzer_Angemeldet [MAXIMALE_BENUTZER 14xx] 14xx) Setzen auf WAHR, wenn der Benutzer gegenwärtig bei Tabelle angemeldet ist, andernfalls FALSCH.
    • User_Refresh_DB [MAXIMUM-USERS 14xx] 14xx (Benutzer_Auffrischung_DB [MAXIMALE-BENUTZER 14xx] 14xx) Setzen auf WAHR, wenn dieser Benutzer über Veränderungen benachrichtigt werden muß, die in der Tabelle vorgenommen werden, die ein vollständiges Herunterfahren/Neustarten der Tabellendatei benötigen (wie dann, wenn Datenträger hinzugefügt oder entfernt werden, wenn Benutzer angemeldet sind, usw .).
    • User_Receiving_Request 14xx (Benutzer_Empfängt_Anforderung 14xx) Benutzerzahl der empfangenden Partei, andernfalls Setzen auf MAXIMUM USERS 14xx.
    • User-Sending-Request 14xx (Benutzer-Sendet-Anforderung 14xx) Benutzerzahl der sendenden Partei, andernfalls Setzen auf MAXIMUM USERS 14xx.
    • Volume_With_Request_Position 14xx (Datenträger_Mit_Anforderung_Position 14xx) Index von Beginn der Datei der Datenträgeraufzeichnung, die Anforderung betreffend, andernfalls 0.
    • Request_Response 14xx (Antwort_Anforderung 14xx) Setzen auf WAHR, wenn die Antwort positiv war und die Antwort Nachricht gültig ist.
    • Sender_Message 14xx (Sender_Nachricht 14xx) Pascal-Stil-Zeichenfolge einer Nachricht, die als Teil einer Anforderung von dem Sender an den Empfänger gesendet werden soll.
    • Response_Message 14xx (Antwort_Nachricht 14xx) Pascal-Stil-Zeichenfolge der Nachricht, die als Teil einer Anforderung von dem Empfänger an den Sender gesendet werden soll.
    • DB_Header_Filler [400] [DB_Anfangsblock_Ftüller [400] ) Reserviert. Sollte auf 0 gesetzt sein.
  • Partition Volume Record [MAXIMUM VOLUMES 14xx] 14xx (Partitions Datenträger Aufzeichnung [MAXIMALE DATENTRÄGER 14xx] 14xx)
  • Der Volume DB Header 14xx wird gefolgt durch MAXI-MUM VOLUMES 14xx (200) Partition Volume Record's 14xx. Eine Beschreibung jedes der Felder ist wie folgt:
    • Volume_Info 14xx (Datenträger_Info 14xx) Das Feld ist eine Partition Volume Header 14xx-Aufzeichnung und enthält Informationen in Bezug auf den nächsten Datenträger in der Tabelle. Siehe unten für eine vollständige Beschreibung der Felder.
    • Users [MAXIMUM_USERS 14xx] 14xx (Benutzer [MAXIMALE_BE-NUTZER 14xx] 14xx) Dieses Feld ist ein Array von Partition_User_Record 14xx-Aufzeichnungen und enthält Informationen in Bezug auf die bis zu MAXIMUM USERS 14xx (200) Benutzer des Datenträgers. Siehe unten für eine vollständige Beschreibung der Felder.
  • Partition Volume Header 14xx (Partitions Datenträger Anfangsblock 14xx)
  • Eine Beschreibung der Partition_Volume_Header 14xx-Aufzeichnung-Felder ist wie folgt:
    • Volume_Name 14xx (Datenträger_Name 14xx) Pascal-Zeichenfolge des Namens des Datenträgers.
    • Writer_User_Number 14xx (Schreiber_Benutzer_Zahl 14xx) Benutzerzahl, die einen Schreibzugriff auf den Datenträger aufweist. Falls keiner, Setzen auf MAXIMUM USERS 14xx.
    • Volume_Last_Modified_Time 14xx (Datenträger_Zuletzt_Modifiziert Zeit 14xx) Enthält die letzte Zeit, zu der die Software bemerkt hat, daß der Datenträger verändert wurde.
    • Vol_Header_Filler [100] 14xx (Datenträger_Anfangsblock_Füller [100] 14xx) Reserviert, sollte auf 0 gesetzt sein.
  • Parition User Record 14xx (Partitions Benutzer Aufzeichnung 14xx)
  • Eine Beschreibung der Partition User Record 14xx-Aufzeichnung-Felder folgt:
    • User_Number 14xx (Benutzer_Zahl 14xx) Dies ist die Benutzerzahl in der Tabelle. Sie muß gleich ihrem Index in das Benutzer- [MAXIMUM USERS 14xx]-Array sein.
    • Write_Access 14xx (Schreib_Zugriff 14xx) Setzen auf WAHR, wenn der Benutzer Lese/Schreib-Zugriff aufweist, andernfalls FALSCH.
    • Mount_Access 14xx (Zugriff_Anbringen bzw. _Vorbereiten 14xx) Setzen auf WAHR, wenn der Benutzer will, daß der Datenträger für einen Zugriff vorbereitet werden soll.
    • Auto_Update 14xx (Auto_Aktualisierung 14xx) Setzen auf WAHR, wenn der Benutzer möchte, daß der Datenträger automatisch auf Veränderungen hin geprüft und aktualisiert wird. Wenn FALSCH, ist das Auto Update Check Seconds 14xx- (Auto Aktualisierung_Prüfung_Sekunden 14xx-) Feld unten ungültig.
    • Auto_Update_Check_Seconds 14xx (Auto_Aktualisierung_Prüfung_Sekunden 14xx) Wenn Auto Update 14xx WAHR ist, stellt dies die Anzahl von Sekunden dar, die verstreichen müssen, bevor der Datenträger wieder auf Veränderungen hin überprüft wird.
    • Last_Modified_Time 14xx (Zuletzt_Modifiziert_Zeit 14xx) Enthält die letzte Zeit, zu der der Benutzer bemerkt hat, daß der Datenträger verändert wurde.
    • Reserved [50] (Reserviert [50]) Reserviert, sollte auf 0 gesetzt sein. Auf jedem Host-Computer befindet sich eine Bevorzugungsdatei, die aus einer Preference Record 14xx (Bevorzugung Aufzeichnung 14xx) besteht. Der Zweck dieser Informationen besteht darin, jedem Host eine eindeutige Benutzerzahl im Inneren der Datenträgertabelle zu ermöglichen, so daß jeder Host sich in der Datenträgertabelle anmelden kann und seinen eigenen Satz von Parametern haben kann, die für jedes Dateisystem konfiguriert sind.
    • File_Signature 14xx (Datei Signatur_14xx) Dies ist auf einen eindeutigen Wert gesetzt, der anzeigt, daß die folgenden Informationen sehr wahrscheinlich ein gültiger Satz Daten sind, auf die man sich als Preference Record 14xx verlassen kann.
    • Admin_Expired 14xx (Verw_Abgelaufen 14xx) Dies ist ein Wert, entweder auf WAHR oder FALSCH gesetzt, der anzeigt, ob dies eine abgelaufene DEMO-Kopie der Software ist.
    • Total_tables 14xx (Gesamt_Tabellen 14xx) Dieser Wert zeigt die Gesamtzahl von Datenträgertabellen an, die konfiguriert und bei einer vorherigen Suche gefunden wurden. Dies ist die Zahl, von der automatisch erwartet wird, daß sie bei einem Netto-Hochfahren gefunden wird.
    • SB_Process_Ticks 14xx (SB_Prozeß_Ticks 14xx) Dies ist ein Zeitwert zwischen Zeiten, wenn die Datenträgerdateisteuerungs-Softwarekomponente aufgerufen wird, um Benutzer-Ereignisse oder Tabellenänderungen zu prüfen.
    • Monitor_DB_Ticks 14xx Dies ist der Zeitwert, der ablaufen muß, bevor die Datenträgerdateisteuerungs-Softwarekomponente auf Tabellenveränderungen hin prüft, wie z. B. eine Anforderung nach einem Schreibzugriff von einem weiteren Benutzer.
    • User_Name 14xx (Benutzer_Name 14xx) Dies ist eine Zeichenfolge, die den Namen des Benutzers anzeigt, nach dem nach einer Datenträgertabelle-Anmeldung gesucht wird, aus der eine Benutzerzahl erzeugt und für einen späteren Zugriff verwendet werden soll.
    • Admin_Password 14xx (Verw_Paßwort 14xx) Dies ist eine Zeichenfolge, die das gegenwärtige Paßwort anzeigt, das für einen Zugriff auf die Administratorfunktionen der Datenträgerdateisteuerungs-Softwarekomponente für diesen Host benötigt wird.
    • Volume_Volume_Names[MAXIMUM_Volume] 14xx (Datenträger_Datenträger_Namen[MAXIMAL Datenträger] 14xx) Dies ist ein Array von Zeichenfolgen, die die Namen des Dateisystems anzeigen, wo die Datenträgerdateisteuerungs-Softwarekomponente nach Datenträgertabellen suchen sollte.
    • Pref_Filler [396] 14xx (Bevorz_Füller [396] 14xx) Dies ist ein Array von Bytes, die ein Platzhalter für eine zukünftige Erweiterung sind.
    • Ignore Bad_Mounts 14xx (Ignorieren_Schlechter_Vorbereitungen 14xx) Dies ist eine Variable, die auf WAHR oder FALSCH gesetzt sein kann, die anzeigt, ob der Benutzer über Fehler während Vorbereitungsversuchen von Dateisystemen, die fehlschlagen, informiert werden sollte.
    • Lockout_Access_Changes 14xx (Sperren_Zugriff_Veränderungen 14xx) Dies ist eine Variable, die auf WAHR oder FALSCH gesetzt sein kann, die anzeigt, ob der Benutzer Veränderungen an der Datenträgertabelle vornehmen darf, wie z. B. Anforderungen einer Veränderung von Lese/Schreib-Berechtigungen. Dies kann durch den Administrator gesetzt werden, wenn bestimmt wird, daß ein Benutzer nicht in der Lage sein sollte, Einstellungen zu verändern.
    • Keep_DB_Volume_Locked 14xx (DB_Datenträger_Verriegelt_Halten 14xx) Dies ist eine Variable, die auf WAHR oder FALSCH gesetzt sein kann und anzeigt, ob die Datenträgerdateisteuerungs-Softwarekomponente das Dateisystem behält, wo die Datenträgertabellendatei verriegelt angeordnet ist oder nicht. Es ist vorzuziehen, daß dies auf WAHR gesetzt ist, ist jedoch kein Erfordernis.
    • Keep DB_Volume_Unmounted 14xx (DB_Datenträger_Entvorbereitet_Halten 14xx) Dies ist eine Variable, die auf WAHR oder FALSCH gesetzt sein kann und anzeigt, ob die Datenträgerdateisteuerungs-Softwarekomponente die Dateisysteme behalten sollte, wo Datenträgertabellen entvorbereitet angeordnet sind. Es ist vorzuziehen, daß dies auf WAHR gesetzt ist, wobei dies jedoch kein Erfordernis ist. Eine Volume Node Record 14xx (Datenträger Knoten Aufzeichnung 14xx) ist eine Datenstruktur, die durch die Datenträgerdateisteuerungs-Softwarekomponente verwendet wird, in der Form einer verbundenen Liste, nämlich einer für jedes Dateisystem, das überwacht werden soll.
    • Next_Volume_Node 14xx (Nächster_Datenträger_Knoten 14xx) Dies ist eine Variable, die ein Zeiger auf die nächste Volume Node Record 14xx in der verbundenen Liste ist.
    • Volume_Reference 14xx (Datenträger_Referenz 14xx) Dies ist eine Datenstruktur, die eine Referenz auf das Dateisystem und seine internen betriebssystemabhängigen Strukturen ist. Sie wird für eine Referenz des Dateisystems verwendet, um weitere Informationen, wie z. B. freien Raum, letzte modifizierte Zeit, usw., zu verriegeln/entriegeln, vorzubereiten/entvorzubereiten und zu finden.
    • Volume_Check_Timer 14xx (Datenträger_Prüfung_Zeitgeber 14xx) Diese Variable ist ein Zeitgeber, der, wenn er abgelaufen ist, anzeigt, daß es Zeit ist, den Datenträger zu prüfen, um zu sehen, ob er aufgefrischt werden muß.
    • Free_Megabytes 14xx (Freie_Megabytes 14xx) Diese Variable zeigt die Menge freien Raums auf dem Dateisystem an.
    • Volume_Record_Position 14xx (Datenträger_Aufzeichnung_Position 14xx) Diese Variable ist eine Anzeige der Position in der Datenträgertabelle, die dieses Dateisystem für diesen Host beschreibt.
    • User_Record_Position 14xx (Benutzer_Aufzeichnung_Position 14xx) Diese Variable ist eine Anzeige der Position in der Datenträgertabelle, die diese Benutzerinformationen für diesen Host anzeigt.
    • SN_DB_File_Reference 14xx (SN_DB_Datei_Referenz 14xx) Diese Variable ist eine Referenzdatenstruktur, die zum Zugriff auf die Datenträgertabelle selbst verwendet wird.
    • Volume_Enabled 14xx (Datenträger_Aktiviert 14xx) Dies ist eine Variable, entweder WAHR oder FALSCH, die anzeigt, ob dieses Dateisystem aktiviert oder deaktiviert ist. Deaktivierte Dateisysteme weisen keine normalen Über wachungsfunktionen auf, die denselben zugeordnet sind. Dies bedeutet, daß deaktivierte Datenträger nicht aktualisiert und aufgefrischt werden, falls dies nötig ist. Normalerweise sind Datenträger aktiviert, wobei so ermöglicht wird, daß das Dateisystem an dem System als eine normale Entität teilnimmt.
  • Einige Datenstrukturen, die global für die Datenträgerdateisteuerungs-Softwarekomponente nützlich sind, sind die folgenden:
    • SB_Admin_Preferences 14xx (SB_Verw_Bevorzugungen 14xx) Die Preference File Record 14xx (Bevorzugung Datei Aufzeichnung 14xx) für diesen Host.
    • Head_Volume_Node 14xx (Kopf_Datenträger_Knoten 14xx) Ein Zeiger auf den Anfang der verbundenen Liste von Volume Node Records 14xx, die zum Durchsuchen der Liste von dem Anfang verwendet werden.
    • Tail_Volume_Node 14xx (Ende_Datenträger_Knoten 14xx) Ein Zeiger auf das Ende der verbundenen Liste von Volume Node Records 14xx, die zur Einfügung neuer Aufzeichnungen verwendet werden.
    • Current_Volume_Node 14xx (Gegenwärtiger_Datenträger_Knoten 14xx) Ein Zeiger auf die gegenwärtige, gerade überwachte Volume Node Record 14xx.
    • Current_DB_Header Ptr 14xx (Gegenwärtiger_DB_Anfangsblock_Zeiger 14xx) Ein Zeiger auf dem gegenwärtigen Volume_DB_Header (Datenträger DB Anfangsblock) der Tabelle, der das gegenwärtige gerade überwachte Dateisystem hauptleitungsmäßig bearbeitet, wie angezeigt durch Current Volume Node 14xx
    • Current_DB_Volume_Header_Ptr 14xx (Gegenwärtiger_DB_Datenträger_Anfangsblock_Zeiger 14xx) Ein Zeiger auf den gegenwärtigen Partition Volume_Header 14xx (Partition Datenträger Anfangsblock 14xx), der zu dem gegenwärtigen gerade überwachten Dateisystem gehört.
    • Current_DB_User_Record_Ptr 14xx (Gegenwärtiger_DB_Benutzer_Aufzeichnung_Zeiger 14xx) Ein Zeiger auf die gegenwärtige Parition_User_Record 14xx (Partition_Benutzer_Aufzeichnung 14xx), die zu dem gegenwärtigen gerade überwachten Dateisystem gehört.
    • SB_Process_Timer 14xx (SB_Prozeß_Zeitgeber 14xx) Ein Zeitgeber, der, wenn er abgelaufen ist, anzeigt, daß es Zeit ist, das nächste Dateisystem zu prüfen.
    • Monitor_DB_Timer 14xx (Überwacher_DB_Zeitgeber 14xx) Ein Zeitgeber, der, wenn er abgelaufen ist, anzeigt, daß es Zeit ist, auf bevorstehende Tabellenanforderungen hin zu prüfen.
    • Administration_Mode 14xx (Verwaltung_Modus 14xx) Eine Variable, entweder WAHR oder FALSCH, die anzeigt, wann die Datenträgerdateisteuerungs-Softwarekomponente mit Administratorfunktionen arbeitet, die für den Benutzer verfügbar sind.
    • Restart_Volume 14xx (Neustart_Datenträger 14xx) Eine Variable, entweder WAHR oder FALSCH, die anzeigt, ob es Zeit ist, das System herunterzufahren und neu zu starten, indem alle Tabellen abgemeldet und wieder neu angemeldet werden.
    • Suspend_Operations 14xx (Operationen_Aussetzen-14xx) Eine Variable, entweder WAHR oder FALSCH, die anzeigt, ob die gesamte Dateisystem- und Tabellenüberwachung ausgesetzt werden sollte.
  • 4 ist ein detailliertes Datenstrukturdiagramm für ein eindeutiges Dateiverzeichnisformat, das auf beiden Klienten A–B unter Verwendung der gegenwärtigen Erfindung implementiert werden kann. Diese Verzeichnisstruktur kann trotz des Betriebssystems auf jedem Klienten, und zwar durch die Protokollumwandlungsmodule 268, die oben in 2C erläutert wurden, beibehalten werden. In 4 gezeigt sind das Dateiverzeichnis 62 und eine physische Adreßabbildung 452 für die Speichervorrichtung 64. Das Dateiverzeichnis 62 weist einen Datenträgeranfangsblock 454, eine Verzeichnisaufzeichnung 456, eine Dateiaufzeichnung 458 und eine Dateiortsaufzeichnung (Extent) 460 auf. Diese Verzeichnisstruktur ist im allgemeinen dem HFS-Dateiverzeichnisformat zugeordnet, das dem Betriebssystem System 8 zugeordnet ist, das mit MacIntosh®-Computern geliefert wird. Der Datenträ geranfangsblock 454 enthält den Namen des Datenträgers, sein Erzeugungsdatum, sein Aktualisierungsdatum, eine Softwareverriegelung, eine Auflistung von Attributen und Berechtigungen und eine Datenträgerverfügbarkeits-Bittabelle und eine Anzahl weiterer Parameter, die den physischen Datenträger breit definieren. Der Datenträgeraufzeichnung 454 zugeordnet ist eine Mehrzahl von Verzeichnisaufzeichnungen, wobei auf die Aufzeichnung 456 verwiesen wird. Jede Verzeichnisaufzeichnung umfaßt einen Zeiger auf ein Stammverzeichnis, einen Namen, eine Erzeugungszeit und eine Modifizierungszeit. Als nächstes folgt die Mehrzahl von Dateiaufzeichnungen, die jedem Verzeichnis zugeordnet sind, wobei auf die Dateiaufzeichnung 458 verwiesen wird. Jede Dateiaufzeichnung enthält einen Namen, einen Typ, einen Verriegelungsindikator, eine Erzeugungs- und eine Modifizierungszeit und weitere Dateiebenen-Informationen. Jeder Datei- und Verzeichnisaufzeichnung zugeordnet ist eine Mehrzahl von Dateiortsaufzeichnungen, wobei auf die Aufzeichnung 460 verwiesen wird. Jede Dateiortsaufzeichnung umfaßt einen Zeiger auf die physische Adresse, bei der die Datei beginnt, und eine Anzeige in Bezug auf die Länge der Datei. Wenn eine Datei in nicht-zusammenhängenden Segmenten gespeichert ist, gibt es einen Überlaufindikator, der die physische Adresse des nächsten Abschnitts der Datei und die Länge dieses Abschnitts anzeigt. Wie in der physischen Adreßaufzeichnung 452 angezeigt ist, entsprechen die Dateiortsaufzeichnungsadressen und Adreßlängen den tatsächlichen physischen Adreßorten des Dateiinhalts. In der Dateiortsaufzeichnung 460 z. B. ist eine Datei EINS als bei der physischen Adresse 1000 beginnend mit einer Länge von 44 Sektoren aufgelistet. In der physischen Adreßaufzeichnung 452 beginnt die Datei EINS bei einer physischen Speicheradresse 1000 und erstreckt sich bis zu der physischen Adresse 1044 über eine Gesamtlänge von 44 Sektoren. Jedes Betriebssystem weist seine eigene Dateiverzeichnisstruktur auf, die in zahlreichen Aspekten von der in 4 offenbarten unterschiedlich ist. Bei einem bevorzugten Ausführungsbeispiel dieser Erfindung, das oben in 2C erläu tert wurde, setzen Protokollumwandlungs-Module 268, die jedem von Klientenprozessen 214216 zugeordnet sind, ein einheitliches Dateiverzeichnisformat trotz des Betriebssystems auf jedem Klienten durch. Dies stellt sicher, daß es eine plattformübergreifende Kompatibilität zwischen jeder Anwendung auf einem der Klienten trotz des OS gibt, das auf dem Klienten vorhanden sein kann. So kann ein Klient, der auf dem Betriebssystem Macintosh System 8® läuft, eine Datei lesen oder schreiben, die durch einen weiteren Klient erzeugt wurde, der unter dem Betriebssystem Windows NTTM arbeitet.
  • Die 5A5E zeigen die Prozesse 214216, die jeweiligen Klienten A und B zugeordnet sind, wie in 2A gezeigt ist. Jeder Klient implementiert alle Fähigkeiten, die in den 5A5E gezeigt sind.
  • Die Prozesse, die einem Hochfahren und Anmelden zugeordnet sind, sind in 5A gezeigt. Beginnend mit einem Prozeß 500 werden die Vorrichtungstreiber und die Datenträgersteuerungs-Prozesse auf den Klienten geladen. Die Steuerung gelangt dann zu Prozeß 502, in dem sich die Vorrichtungstreiber, die kundenspezifisch angepaßt wurden, um das Verriegelungsmerkmal einzuschließen, befinden. Zusätzlich wird ein spezifischer Vorrichtungstreiber, der mit dem physischen Datenträger verbunden ist, der die Datenträger- und Zugriffssteuerungstabellen [siehe 2C] enthält, identifiziert. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 504. In dem Entscheidungsprozeß 504 wird eine Bestimmung durchgeführt, ob eine Datenträger- und Zugriffssteuerungstabelle erzeugt wurde. Wenn diese Bestimmung negativ ist, gelangt die Steuerung zu einem Prozeß 506, bei dem der Datenträgersteuerungsprozeß einem Administrator eine Schablone vorlegt, auf der eine Zugriffs- und Datenträgersteuerungstabelle erzeugt werden soll. Die Steuerung gelangt dann zu einem Prozeß 508, bei dem die neu-erzeugten Zugriffs- und Datenträgersteuerungstabelle auf einem Datenträger mit einem kundenspezifischen, d. h. verriegelbaren Treiber gespeichert werden. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 512. Alternativ gelangt, wenn in dem Entscheidungsprozeß 504 eine bejahende Bestimmung erzielt wird, d. h. eine Datenträgersteuerungstabelle liegt vor, die Steuerung direkt zu dem Entscheidungsprozeß 512.
  • In dem Entscheidungsprozeß 512 wird eine Bestimmung durchgeführt, ob das Semaphorenfeld 352[siehe 3A] leer ist. Wenn diese Bestimmung negativ ist, gelangt die Steuerung zu Prozessen 510 für die Einführung einer Verzögerung, wonach die Verzögerungsintervallsteuerung zu dem Entscheidungsprozeß 512 zurückkehrt. Wenn eine bejahende Bestimmung in dem Entscheidungsprozeß 512 erreicht wird, d. h. das Semaphorenfeld 352 der Zugriffssteuerungstabelle 206 [siehe 2A] ist leer, gelangt die Steuerung zu einem Prozeß 514. Bei dem Prozeß 514 wird der Klientenidentifizierer in das Semaphorenfeld geschrieben. Die Steuerung gelangt dann zu einem Prozeß 516, bei dem der Klient, der die Zugriffs- und Steuertabelle ergriffen hat, die Zugriffs- und Steuerungstabellen liest. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 518. In dem Entscheidungsprozeß 518 wird eine Bestimmung durchgeführt, ob der Klientenidentifizierer in dem Feld 352 die ID des Klients ist, auf dem der Prozeß läuft. Wenn diese Bestimmung negativ ist, hat der Klient keine Steuerung der Zugriffs- und Datenträgertabellen ergriffen. Deshalb kehrt die Steuerung zurück zu dem Entscheidungsprozeß 512. Wenn eine Bestimmung in dem Entscheidungsprozeß 518 bejahend durchgeführt wird, daß ein Klient die Steuerung der Zugriffs- und Steuertabelle ergriffen hat, gelangt die Steuerung zu einem Prozeß 522. In dem Prozeß 522 liest der Klient die Zugriffs- und Datenträgersteuerungstabellen. Die Steuerung gelangt dann zu einem Prozeß 520. In dem Prozeß 520 schreibt der Klient seine ID in das entsprechende Anmeldefeld 356 [siehe 3A] in der Zugriffssteuerungstabelle 206. Die Steuerung gelangt dann zu einem Prozeß 524. In dem Prozeß 524 gibt der Klient die Zugriffs- und Steuerungstabellen durch ein Entfernen seines Identifizierers aus dem Semaphorenfeld 352 frei. Die Steuerung gelangt dann zu Prozessen 526, in denen das Zugriffssteuerungs-Modul 266[siehe 2C] die Zugriffsberechtigungen für jede physische Vorrichtung gemäß den Berechtigungen setzt, die in der Zugriffs- und Steuerungstabelle für den spezifischen Klient angezeigt sind, auf dem dieser Prozeß läuft. Wie oben in 2C erläutert wurde, werden diese Berechtigungen durch den Datenträgersteuerungsprozeß gesetzt, der Datenträger-Vorbereiten-Befehle an das Befehlsempfangs-Modul 98 sendet, die durch entweder eine Lese- oder Lese/Schreibberechtigung begleitet werden. Die Steuerung gelangt dann zu einem Verbindungsblock A.
  • 5B zeigt die Prozesse, die auf einem Klient ausgeführt werden, der einem Anfordern einer Schreibberechtigung für ein Dateisystem oder einen Datenträger zugeordnet ist. Beginnend bei dem Verbindungsblock A gelangt die Steuerung zu einem Entscheidungsprozeß 550. In dem Entscheidungsprozeß 550 wird eine Bestimmung durchgeführt, ob eine Schreibanforderung durch den Datenträgersteuerungsprozeß 266 [ siehe 2C] empfangen wurde. Diese Schreibanforderung kann zu jeder Zeit durch den Datenträgersteuerungsprozeß über eine graphische Benutzerschnittstelle (GUI) empfangen werden. Die GUI ermöglicht es einem Benutzer, einen spezifischen Datenträger auszuwählen, in Bezug auf den der Benutzer Lese-Berechtigungen aufweist, sowie anzufordern, daß diese Berechtigungen zu Schreibberechtigungen verändert werden. Alternativ kann eine Schreibanforderung programmäßig über einen weiteren Prozeß durchgeführt werden. Wenn eine negative Bestimmung erzielt wird, d. h. keine Schreibanforderung wurde durch den Datenträgersteuerungsprozeß empfangen oder erzeugt, gelangt die Steuerung zu einem Verbindungsblock D. Alternativ gelangt, wenn in dem Entscheidungsprozeß 550 eine bejahende Bestimmung erzielt wird, die Steuerung zu einem Entscheidungsprozeß 554. In dem Entscheidungsprozeß 554 wird eine Bestimmung durchgeführt, ob ein Semaphor in dem Feld 352 in der Zugriffssteuerungstabelle [siehe 3A] vorhanden ist. Falls diese Bestimmung negativ ist, gelangt die Steuerung zu einem Prozeß 552 zur Einführung einer Pause. Die Steuerung kehrt dann zurück zu dem Entscheidungsprozeß 554. Wenn eine bejahende Bestimmung in dem Entscheidungsprozeß 554 erzielt wird, gelangt die Steuerung zu einem Prozeß 556, bei dem ein Schreibbefehl ausgegeben wird und der Identifizierer für den Klient, auf dem der Prozeß läuft, an das Feld 352 geschrieben wird. Die Steuerung wird dann zu einem Prozeß 558 geleitet. In dem Prozeß 558 wird der Wert für das Feld 352 gelesen. Die Steuerung wird dann zu einem Entscheidungsprozeß 560 geleitet. Bei der Entscheidung 560 wird eine Bestimmung durchgeführt, ob der Wert in dem Feld 352 der Klienten-ID des Klienten entspricht, auf dem der Prozeß läuft. Falls diese Bestimmung negativ ist, kehrt die Steuerung zurück zu dem Entscheidungsprozeß 554. Alternativ gelangt, wenn eine bejahende Bestimmung in dem Entscheidungsprozeß 560 erzielt wird, die Steuerung zu einem Entscheidungsprozeß 562. In dem Entscheidungsprozeß 562 wird eine Bestimmung auf der Basis des Zugriffsvorbereitungsfelds 338 [siehe 3B] durchgeführt, ob dieser bestimmte Klient den Datenträger vorbereiten kann, auf den die Schreibanforderung gerichtet ist. Wenn diese Bestimmung negativ ist, gelangt die Steuerung zu einem Prozeß 570, bei dem eine Benachrichtigung gegeben wird, daß die Schreibanforderung abgelehnt wurde. Die Steuerung gelangt dann zu dem Verbindungsblock D. Alternativ gelangt, wenn in dem Entscheidungsprozeß 562 eine Bestimmung erreicht wird, daß der Datenträger in Bezug auf diesen bestimmten Klienten, auf dem der Prozeß läuft, vorbereitbar ist, die Steuerung zu einem Entscheidungsprozeß 564. In dem Entscheidungsprozeß 564 wird eine Bestimmung auf der Basis der Felder 396 [ siehe 3B] durchgeführt, ob dieser Klient einen Schreibzugriff für den spezifischen Datenträger erhalten kann, oder ob der Klient für einen Anforderungszugriff gesperrt ist. Wenn eine bejahende Bestimmung erzielt wird, d. h. der Klient kann keinen Schreibzugriff erhalten, gelangt die Steuerung zu dem Prozeß 570, der oben erläutert ist. Alternativ gelangt, wenn eine negative Entscheidung in dem Entscheidungsprozeß 564 erzielt wird, d. h. der Klient ist für ein Erhalten eines Schreibzugriffs auf den Datenträger nicht gesperrt, die Steuerung zu einem Entscheidungsprozeß 566. In dem Entscheidungsprozeß 566 wird eine Entscheidung auf der Basis des Feldes 394 [siehe 3B] und der Felder 356 [siehe 3A] durchgeführt, ob der gegenwärtige Schreiber sich tatsächlich an dem Netz abgemeldet hat. Wenn diese Bestimmung bejahend ist, gelangt die Steuerung zu einem Prozeß 572, in dem ein Entvorbereiten-Befehl für den Datenträger ausgegeben wird. Die Steuerung wird dann zu einem Prozeß 574 geleitet, bei dem ein Datenträger-Vorbereiten-Befehl durch den Datenträgersteuerungsprozeß 266[siehe 2C] an das Befehlsempfangs-Modul 98 gesendet wird. Dies bewirkt, daß der Datenträger vorbereitet wird, der die jüngsten Veränderungen widerspiegelt. Die Steuerung gelangt dann zu einem Prozeß 576, in dem das Feld 394[siehe 3B] in der Datenträgersteuerungstabelle mit der ID des Klienten aktualisiert wird, auf dem der Prozeß läuft. Die Steuerung gelangt dann zu einem Prozeß 578, bei dem der Klient die Zugriffs- und Datenträgersteuerungstabellen durch ein Entfernen seines Semaphors, d. h. der ID, aus dem Semaphorenfeld 352 [siehe 3A] der Datenträgersteuerungstabelle freigibt. Die Steuerung gelangt dann zu einem Verbindungsblock C.
  • Alternativ gelangt, wenn in dem Entscheidungsprozeß 566 eine Bestimmung durchgeführt wird, daß der gegenwärtige Schreiber sich nicht abgemeldet hat, die Steuerung zu einem Prozeß 568. In dem Prozeß 568 wird eine Schreibanforderung an das Anforderungsfeld 360 [siehe 3A] der Zugriffssteuerungstabelle geschrieben. Diese Anforderung umfaßt einen Identifizierer des Datenträgers, an den die Schreibanforderung gerichtet ist; den Identifizierer des Klienten, der die Anforderung stellt; und eine Textnachricht von dem Anforderer. Der Identifizierer des Datenträgers, an den die Schreibanforderung gerichtet ist, wird aus dem Feld 394 der Datenträgeraufzeichnung gelesen. Die Textnachricht kann manuell in eine GUI-Schnittstelle eingegeben werden, die durch den Datenträgersteuerungsprozeß 266 [siehe 2] bereitgestellt wird. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 580. In dem Entscheidungsprozeß 580 werden das Antwortnachricht- und das Antwort-Boole-Feld 362 bzw. 354 [siehe 3A] gelesen und die Bestimmung wird auf der Basis dieser Felder durchgeführt, ob die Schreibberechtigung durch den gegenwärtigen Schreiber abgegeben wurde. Wenn diese Bestimmung bejahend ist, gelangt die Steuerung zu Prozeß 574, wie oben erläutert wurde. Alternativ gelangt die Steuerung, wenn diese Bestimmung negativ ist, zu einem Prozeß 578, in dem der gegenwärtige Anforderer seine ID aus dem Semaphorenfeld 352 der Zugriffssteuerungstabelle entfernt [siehe 3A], wobei die Steuerung dann zu dem Verbindungsblock C.
  • 5C zeigt die Prozesse, die mit einer Antwort auf einen weiteren Klienten verbunden sind, der eine Schreibzugriffsberechtigung anfordert. Der Prozeßabschnitt beginnt bei einem Verbindungsblock B und die Steuerung gelangt zu einem Prozeß 600. In dem Prozeß 600 werden die Zugriffssteuerungstabelle und insbesondere das Anforderungsnachrichtenfeld 360 [siehe 3A] gelesen. Die Steuerung wird dann zu einem Entscheidungsprozeß 602 geleitet. In dem Entscheidungsprozeß 602 wird eine Bestimmung durchgeführt, ob die Klienten-ID, die der Anforderung zugeordnet ist, der ID des Klienten entspricht, auf dem der Prozeß läuft. Wenn eine bejahende Bestimmung durchgeführt wird, d. h. der Klient, auf dem der Prozeß läuft, ist der Klient, an den die Anforderung gerichtet ist, gelangt die Steuerung zu einem Entscheidungsprozeß 604. In dem Entscheidungsprozeß 604 wird eine Bestimmung durchgeführt, ob eine Auto-Antwort-Fähigkeit für diesen spezifischen Klienten aktiviert wurde. Bei einem bevorzugten Ausführungsbeispiel könnte diese Bestimmung auf der Basis noch eines weiteren Feldeintrags in der Zugriffssteuerungstabelle 206 [siehe 3A] durchgeführt werden. Es gäbe bei diesem Ausführungsbeispiel ein Feld, das jedem Klienten entspricht, in dem eine boolesche Wahr-Bedingung anzeigen würde, daß eine Auto-Antwort aktiviert wurde, und eine boolesche Falsch-Bedingung anzeigen würde, daß dieselbe nicht aktiviert wurde. Wenn eine Bestimmung in dem Entscheidungsprozeß 604 durchgeführt wird, daß die Auto-Antwort aktiviert wurde, würde die Steuerung direkt zu einem Entscheidungsprozeß 610 gelangen. In dem Entscheidungsprozeß 610 würde eine Bestimmung auf der Basis der gegenwärtigen Verarbeitung auf dem Klienten durchgeführt werden, ob die Steuerung zu diesem Zeitpunkt abgegeben werden könnte. Wenn z. B. der Klient in der Mitte der Ausführung eines großen Aufbereitungsprojekts ist, würde eine negative Entscheidung erzielt werden. Wenn eine derartige Bestimmung erzielt wird, könnte die Steuerung zu einem Prozeß 614 gelangen. In dem Prozeß 614 würde der antwortende Klient eine boolesche Falsch-Bedingung in das Antwortnachrichtenfeld 362 [siehe 3A] der Zugriffssteuerungstabelle schreiben. Die Steuerung würde dann zu dem Verbindungsblock D gelangen.
  • Alternativ würde, wenn in dem Entscheidungsprozeß 602 eine Bestimmung durchgeführt wird, daß die Klienten-ID, die der Anforderung zugeordnet ist, nicht die ID des Klienten war, auf dem der Prozeß abläuft, die Steuerung direkt zu dem Verbindungsblock D geleitet werden.
  • Alternativ würde, wenn in dem Entscheidungsprozeß 604 eine Bestimmung durchgeführt wird, daß die Anforderung von einem Klient bestellt wurde, auf dem der Prozeß läuft (Prozeßblock 602 JA) und ferner, daß das Auto-Antwort-Merkmal nicht aktiviert war, die Steuerung direkt zu einem Prozeß 606 geleitet werden. In dem Prozeß 606 wird eine Nachrichtenaufforderung durch einen GUI-Abschnitt des Datenträgersteuerprozesses 622 [siehe 2C] dem Benutzer vorgelegt. Dem Benutzer würde die Alternative gegeben werden, die Anforderung mit Ja oder Nein zu beantworten, sowie in die Antwort eine textbasierte Nachricht einzuschließen. Diese Antwort würde an das Antwortnachrichten- und das Boole-Antwortfeld 362 bzw. 354 [siehe 3A] geschrieben werden. Die Steuerung wird dann an einen Entscheidungsprozeß 608 weitergeleitet. In dem Entscheidungsprozeß 608 wird eine Bestimmung erzielt, ob der Benutzer eine Schreibberechtigung abgegeben hat. Falls diese Bestimmung bejahend ist, gelangt die Steuerung zu einem Prozeß 616. In einem Entscheidungsprozeß 610 wird, wenn eine Bestimmung durchgeführt wird, daß die Schreibsteuerung zu dem gegenwärtigen Zeitpunkt nicht abgegeben werden kann, die Steuerung ebenso zu dem Prozeß 616 geleitet. In dem Prozeß 616 wird die boolesche Wahr-Bedingung an die Zugriffssteuerungstabelle geschrieben und insbesondere das boolesche Antwortfeld 354 [ siehe 3A]. Dies zeigt an, daß der Klient, der die Anforderung empfängt und gegenwärtig Schreibberechtigungen aufweist, dabei ist, diese Berechtigungen freizugeben. Die Steuerung wird dann zu einem Prozeß 618 geleitet. In dem Prozeß 618 werden alle Dateien auf dem angeforderten Datenträger geschlossen und der Datenträger wird in Bezug auf einen Lese- und Schreibzugriff entvorbereitet und erneut in einem Nur-Lese-Zugriffsmodus vorbereitet. Die Steuerung wird dann an den Verbindungsblock D geleitet.
  • Alternativ gelangt, wenn in dem Entscheidungsprozeß 608 eine Entscheidung durchgeführt wird, daß der Benutzer gewählt hat, die Schreibzugriffsberechtigung für den angeforderten Datenträger nicht abzugeben, die Steuerung zu einem Prozeß 612. Bei Prozeß 612 wird eine boolesche Falsch-Bedingung in die Zugriffssteuerungstabelle geschrieben und insbesondere das boolesche Antwortfeld 354 derselben [siehe 3A]. Die Steuerung wird dann zu dem Verbindungsblock D geleitet.
  • 5D zeigt den Abschnitt der Prozesse, die mit einem Umwandeln einer Schreibberechtigung in einen tatsächlichen Schreibzugriff auf ein Dateisystem verbunden sind. Der Prozeßabschnitt beginnt bei dem Verbindungsblock C, bei dem die Steuerung zu einem Entscheidungsprozeß 650 geleitet wird. In dem Entscheidungsprozeß 650 wird eine Bestimmung auf der Basis von Feld 392 in der Datenträgersteuertabelle [siehe 3B] durchgeführt, ob der Datenträger, an den die Schreibanforderung gerichtet ist, tatsächlich aktiviert ist. Wenn diese Bestimmung negativ ist, wird die Steuerung zu einem Prozeß 666 geleitet, bei dem eine Nachricht durch den GUI-Schnittstellenabschnitt des Datenträgersteuerprozesses 266 [siehe 2C] an den Benutzer geliefert wird, die anzeigt, daß der Datenträger deaktiviert ist und ein Schreibzugriff nicht bereitgestellt werden kann. Die Steuerung wird dann zu dem Verbindungsblock B geleitet. Alternativ gelangt, wenn in dem Entscheidungsprozeß 650 eine bejahende Bestimmung erzielt wird, d. h. der Datenträger, an den die Schreibanforderung gerichtet ist, ist tatsächlich aktiviert, die Steuerung zu einem Entscheidungsprozeß 652. In dem Entscheidungsprozeß 652 wird eine Bestimmung durchgeführt, ob der Datenträger für den Klient vorbereitet ist, auf dem der Prozeß läuft. Wenn diese Bestimmung negativ ist, wird die Steuerung zu einem Prozeß 658 geleitet, bei dem der Datenträgersteuerungsprozeß 266 [siehe 2C] einen Vorbereiten-Befehl mit Lese-Schreib-Berechtigungen an das Befehlsempfangs-Modul 98 [siehe 2C] sendet. Dies führt dazu, daß der Datenträger mit Lese-Schreib-Berechtigungen vorbereitet wird. Die Steuerung wird dann zu einem Entscheidungsblock 654 geleitet. Alternativ wird, wenn in dem Entscheidungsprozeß 652 eine bejahende Bestimmung erreicht wird, d. h. der Datenträger ist mit entweder einer Lese- oder Lese/Schreibberechtigung vorbereitet, die Steuerung ebenso zu dem Entscheidungsprozeß 654 geleitet. In dem Entscheidungsprozeß 654 wird eine Bestimmung durchgeführt, ob ein Dateiverzeichnisebenen-Softwareverriegelungsbit in Bezug auf diesen spezifischen Datenträger aktiviert ist, und ob dieses Softwareverriegelungsbit einen Zugriff auf den Datenträger ausschließt. Wenn diese Bestimmung bejahend ist, wird die Steuerung zu einem Prozeß 660 geleitet. In dem Prozeß 660 werden die Softwareverriegelung und das Dateiverzeichnis entweder umgangen oder deaktiviert. Bei einem bevorzugten Ausführungsbeispiel ist es vorzuziehen, die Softwareverriegelung zu umgehen. Dies hat den Vorteil, daß vermieden wird, daß Klienten auf dem Netz, die die Datenträgersteuerungsprozeßform nicht aufweisen, unbeabsichtigt auf den gesteuerten Datenträger zugreifen. Die Steuerung wird dann zu einem Entscheidungsprozeß 656 geleitet. Alternativ wird, wenn in dem Entscheidungsprozeß 654 entweder die Bestimmung erzielt wird, daß keine Softwareverriegelung auf der Dateiverzeichnisebene vorliegt, oder daß die Softwareverriegelung auf der Dateiverzeichnisebene durch die Befehle des Datenträgersteuerungsprozesses 266 umgangen werden kann, die Steuerung direkt zu einem Entscheidungsprozeß 656 geleitet.
  • In dem Entscheidungsprozeß 656 wird eine Bestimmung durchgeführt, ob der Datenträger gegenwärtig mit Lese- und Schreibberechtigung vorbereitet ist. Falls die Bestimmung negativ ist, wird die Steuerung zu einem Prozeß 662 geleitet, bei dem der Datenträgersteuerungsprozeß 266 ein Datenträger-Entvorbereiten gefolgt durch ein Datenträger-Vorbereitung-Lesen/Schreiben für den angeforderten Datenträger an das Befehlsempfangs-Modul 98 [siehe 2C] sendet. Dies hat die Wirkung eines erneuten Vorbereitens des Datenträgers mit den Lese-Schreib-Berechtigungen in Bezug auf diesen Klient. Die Steuerung wird dann zu dem Verbindungsblock D geleitet. Alternativ gelangt, wenn in dem Entscheidungsprozeß 656 eine bejahende Bestimmung erzielt wird, d. h. ein Datenträger vorbereitet ist und mit Lese-Schreib-Berechtigungen vorbereitet ist, die Steuerung direkt zu dem Verbindungsblock B. Die Veränderungen an dem Dateiverzeichnis, die durch die Prozesse aus 5D bewirkt werden, zeigen sich zuerst in der zwischengespeicherten Kopie 166 des Dateiverzeichnisses, die dem Datenträger entspricht, für den ein Schreibzugriff bereitgestellt wird [siehe 2C]. Die Aktualisierung der zwischengespeicherten Kopie werden dann zu dem Dateiverzeichnis auf der physischen Vorrichtung 64 zurückgebracht oder zurückgeschrieben, was zu einem kohärenten Satz von Dateiverzeichnissen führt, in denen sich die neuen Zugriffsberechtigungen zeigen.
  • 5E umfaßt den Abschnitt der Prozesse, der Nur-Lese-Datenträgern zugeordnet ist. Ein Klient, der in einen Nur- Lese-Zustand für einen Datenträger vorbereitet ist, wird nicht in Bezug auf Veränderungen an dem Dateiverzeichnis aktualisiert, die in Bezug auf diesen Datenträger stattfinden könnten, d. h. wenn Schreiboperationen an diesem Datenträger an anderen Klienten auf dem System ausgeführt werden. Für diese Klienten, die eine Auto-Aktualisierungsfähigkeit möchten, liefern deshalb die Prozesse aus 5E diese Fähigkeit. Die Prozesse beginnen an dem Verbindungsblock D, bei dem die Steuerung zu einem Entscheidungsblock 700 gelangt. In dem Entscheidungsblock 700 wird eine Bestimmung auf der Basis der Felder 384 [siehe 3B] der Datenträgersteuerungstabelle durchgeführt, ob Datenträger, mit denen der Klient gegenwärtig in einem Nur-Lese-Zustand verbunden ist, zur Auto-Aktualisierung angezeigt sind. In Bezug auf jeden dieser Datenträger wird das Zuletzt-Modifiziert-Zeit-Feld 386 [siehe 3B] für diesen bestimmten Klienten in einem Prozeß 702 gelesen und mit dem Feld 382 [siehe 3B] verglichen. Der Zweck dieses Prozesses ist wie folgt.
  • Normalerweise frischt ein Klient mit Nur-Lese-Berechtigungen für einen Datenträger seine lokale zwischengespeicherte Kopie des Dateiverzeichnisses für den Datenträger nicht auf. Als ein Ergebnis kann die Kopie veraltet werden, d. h. entweder Verzeichnisse/Dateien zeigen, die nicht mehr existieren, oder Verzeichnisse/Dateien, die existieren, nicht zeigen. Es ist deshalb wichtig, daß Klienten mit Nur-Lese-Zugriff in der Lage sind, über die Option zu verfügen, daß ihre zwischengespeicherten Verzeichniskopien in periodischen Abständen aufgefrischt werden, wenn andere Klienten Veränderungen an dem Datenträger vornehmen. Diese Auffrischungs- und Aktualisierungs-Option wird durch das Feld 384 [siehe 3B] bereitgestellt. Die Bestimmung, ob eine Auffrischung/Aktualisierung benötigt wird, wird in Prozessen 704706 durchgeführt, an die die Steuerung als nächstes geleitet wird. Bei dem Prozeß 704 wird ein Vergleich zwischen den Zeitstempeln für die letzte Datenträgerveränderung, d. h. Feld 382, und der letzten Zeit durch geführt, zu der der Klient eine Entvorbereitung und eine Vorbereitung ausgeführt hat, um eine frische Kopie des Dateiverzeichnisses zu erhalten, d. h. Feld 386. In dem Entscheidungsprozeß 706 wird eine Bestimmung durchgeführt, ob die zwischengespeicherte Verzeichniskopie des Klienten veraltet ist. Wenn diese Bestimmung negativ ist, enthält der Klient die neueste Kopie des Dateiverzeichnisses, das sich auf dem Datenträger befindet. Die Steuerung gelangt deshalb zu dem Verbindungsblock A, da keine Aktualisierung nötig ist. Alternativ wird, wenn in dem Entscheidungsprozeß 706 eine bejahende Bestimmung durchgeführt wird, d. h. das zwischengespeicherte Dateiverzeichnis 166 [siehe 2C] ist veraltet, die Steuerung zu einem Entscheidungsprozeß 708 geleitet. In dem Entscheidungsprozeß 708 wird eine Bestimmung durchgeführt, ob das Zugriffssteuerungsdatenbank-Semaphorenfeld 352 [siehe 3A] leer ist. Wenn diese Bestimmung negativ ist, wird die Steuerung zu einem Prozeß 710 geleitet. In dem Prozeß 710 wird eine Pause eingeführt, nach der die Steuerung zu dem Entscheidungsprozeß 708 zurückkehrt. Alternativ wird, wenn in dem Entscheidungsprozeß 708 eine Bestimmung durchgeführt wird, daß das Semaphorenfeld 352 verfügbar wird, die Steuerung zu einem Prozeß 712 geleitet, bei dem die Klienten-ID an das Semaphorenfeld in der Zugriffssteuerungstabelle 206 [siehe 3A] geschrieben wird. Die Steuerung gelangt dann zu einem Prozeß 714, bei dem der Semaphorenfeldabschnitt der Zugriffssteuerungstabelle gelesen wird und die Steuerung dann zu einem Entscheidungsprozeß 716 geleitet wird. In dem Entscheidungsprozeß 716 wird eine Bestimmung durchgeführt, ob die Klienten-ID, die in dem Semaphorenfeld vorhanden ist, identisch mit der ID des Klients ist, der diesen Prozeß ausführt. Wenn diese Bestimmung negativ ist, hat der Klient keine Steuerung der Zugriffssteuerungstabelle ergriffen und die Verarbeitung kehrt zurück zu dem Entscheidungsprozeß 708. Alternativ gelangt, wenn eine bejahende Bestimmung erzielt wird, d. h. der Klient hat eine Steuerung der Zugriffssteuerungstabelle ergriffen, die Steuerung zu einem Prozeß 718. In dem Prozeß 718 wird ein Datenträ ger-Entvorbereiten-Befehl, gefolgt durch einen Vorbereitenmit-Nur-Lese-Zugriff-Befehl durch den Datenträgersteuerungsprozeß 266 [siehe 2C] an das Befehlsempfangs-Modul 98 gesendet. Dies führt dazu, daß eine aktualisierte Kopie des Dateiverzeichnisses 166 dem Benutzer bei einem Prozeß 720 angezeigt wird. Die Benutzeranzeige kann Informationen in Bezug auf alle Datenträger und den Status aller Klienten in Bezug auf diese Datenträger umfassen, d. h. Vorbereiten/Entvorbereiten, Nur-Lesen, Lesen/Schreiben, Verriegelt/Entriegelt. Die Steuerung gelangt dann zu dem Verbindungsblock A.
  • Verteilte Datenbank
  • 6 zeigt eine Klient-Datenbank-Server-Konfiguration des Stands der Technik. Die Hardware-Komponenten umfassen Klienten 5456, einen Server 60 und eine Speichervorrichtung 64. Eine Datenbank 754 mit mehreren Aufzeichnungen, wobei jede eine Mehrzahl von Feldern aufweist, ist auf der Speichervorrichtung 64 gespeichert, die durch eine SCSI-Verbindung mit dem Server 60 verbunden ist. Der Server 60 ist über ein LAN mit beiden Klienten 54 und 56 verbunden. Einer der Klienten 54 oder 56 setzt eine Abfrage ab und ansprechend auf diese Abfrage implementiert der Server 60 Datenbankfunktionen 750. Dann erhält der Server 60 eine Kopie 752 der Datenbank, die auf der physischen Vorrichtung 64 gespeichert ist, und sieht die Aufzeichnungen durch, um diejenigen zu finden, die mit der Klientenabfrage übereinstimmen. Dann liefert der Server nur diejenigen Aufzeichnungen, die mit der Abfrage übereinstimmen, an den Klienten. Diese Architektur des Stands der Technik hat den Vorteil, daß der umfassende Auftrag eines Sortierens und Durchsuchens der Datenbank dem Hochgeschwindigkeitsserver überlassen bleibt und es möglich gemacht wird, daß weniger teure Klient-Arbeitsplatzrechner sich mit dem Abfrageprozeß befassen.
  • 7 zeigt ein weiteres Ausführungsbeispiel der vorliegenden Erfindung, bei dem eine gemeinschaftlich verwendete Ressource, d. h. eine Datenbank, einer verteilten Verwaltung durch alle der Klienten unterworfen ist, mit denen dieselbe direkt verbunden ist. Diese Architektur weist den Vorteil auf, daß kein Server zwischen der physischen Vorrichtung, auf der die Datenbank gespeichert ist, und den Klienten, die auf diese Datenbank zugreifen, benötigt wird. Diese Architektur weist den Nachteil auf, daß jeder Klient eine vollständige Datenbankmaschine implementieren muß. Trotzdem kann in bestimmten Datenbankanwendungen, in denen die Datenbank eine Serie von Feldern aufweist, wobei jedes einen Zeiger auf ein umfangreiches Bild, eine Animation oder eine Videodatei aufweist, die vorliegende Erfindung vorteilhaft verwendet werden. Bei diesem Beispiel ist die Verarbeitungszeit auf einem der Klienten enger mit dem Bildübertragungsprozeß korreliert als mit dem tatsächlichen Abfrage- und Durchschauprozeß, der bei einem Finden des Zeigers auf die Bildaudiodatei oder Animation, die übertragen werden soll, ausgeführt wird. Unter diesen Bedingungen ist es von Vorteil, wenn ein Server kein Flaschenhals ist. Ebenso müßte eine Modifizierung an diesem Ausführungsbeispiel sein, daß mehrere herkömmliche Server vorhanden sind (mit ihren LAN-angeschlossenen Klienten), die alle direkt mit dem gemeinschaftlich verwendeten Speicher verbunden sein müßten, was eine höhere Datenverfügbarkeit erlauben würde, da alle Daten an einem einzelnen Ort gespeichert wären, der durch alle Server (und deshalb durch alle Klienten) zugänglich ist.
  • Die Komponenten aus 7 umfassen die Klienten 5456, die als Klienten A bzw. B bezeichnet sind, und den Server 60 und die Speichervorrichtung 64. Eine Datenbank 804 befindet sich auf der physischen Speichervorrichtung 64 und umfaßt zusätzliche Felder, die für die Implementierung dieses Ausführungsbeispiels der Erfindung geeignet sind. Diese zusätzlichen Felder werden detailliert in den folgenden 9AB beschrieben. Die Speichervorrichtung 64 ist direkt mit jedem der Klienten A–B verbunden. Die Netzverbindung kann z. B. ein Faserkanal sein, wie in 2A beschrieben und erläutert ist. Dieser Typ von Netz liefert einen Kommunikationspfad mit sehr hoher Bandbreite zwischen der Speichervorrichtung 64 und jedem der Klienten. Dies ermöglicht eine schnelle Übertragung von bit-abgebildeten Bildern, Animation oder Ton-Clips ohne die Behinderung eines Servers, der beseitigt wurde, wie durch eine Löschen-Markierung 212 angezeigt ist. Die Klienten 5456 enthalten jeweils eine Zwischenspeicher-Kopie der Datenbanksortier-Indizes. Die Sortier-Indizes 800 sind dem Klient 54 zugeordnet, während die Sortier-Indizes 802 dem Klient 56 zugeordnet sind. Diese Indizes werden in periodischen Abständen von den Haupt-Indizes aufgefrischt, die auf der tatsächlichen physischen Vorrichtung 64 gespeichert sind. Jeder der Klienten 5456 implementiert verbesserte Datenbankprozesse 808 bzw. 810. Zusätzlich zu den normalen Datenbankfunktionen der Abfrage, Übereinstimmung und Verriegelung umfassen diese Prozesse außerdem eine Aufzeichnungsverriegelungs-, Aufzeichnungsaktualisierungs- und Datenträgersteuerungsfunktion, die noch detaillierter erläutert werden. Die Kohärenz eines Datenbankzugriffs auf einzelne Aufzeichnungen und Felder innerhalb einer Aufzeichnung wird mittels der Interaktion von klient-residenten Prozessen 808810 mit einer Zugriffssteuerungstabelle 206, einer Datenträgersteuerungstabelle 208 und einer Aktualisierungsliste 806 beibehalten, die sich alle auf einem Datenträger innerhalb der physischen Vorrichtung 64 befinden, wobei der Datenträger für alle Klienten lese/schreib-zugänglich ist.
  • 8A zeigt die detaillierte Datenstruktur für die Zugriffssteuerungstabelle 206. Die Zugriffssteuerungstabelle ist identisch zu der, die in 3A beschrieben und erläutert wurde. Diese Zugriffssteuerungstabelle wird in den Prozessen verwendet, die in der folgenden 12F erläutert sind.
  • 8B zeigt die detaillierte Datenstruktur für die Datenträgersteuerungstabelle, die dem Lese-Datenträger 64 zugeordnet ist, auf dem die Datenbank 804 [siehe 7] gespeichert ist. Es wird angemerkt, daß in den Sperrfeldern 396A jeder der Klienten 54 und 56 als Boole-mäßig falsch angezeigt ist, was bedeutet, daß beide Schreibberechtigungen in Bezug auf diesen Datenträger aufweisen. Zusätzlich sind beide Klienten A und B in dem Feld 394A als gleichzeitig eine Schreibberechtigung aufweisend identifiziert.
  • 8C zeigt die detaillierte Datenstruktur für die Aktualisierungsliste 806 [siehe 7]. Die Aktualisierungsliste enthält für jedes Klientenfeld 830 einen entsprechenden Aufzeichnungszeiger 832, der dem Feld zugeordnet ist, das ein Klient gerade bearbeitet. Diese Liste wird durch die verbesserten Datenbankprozesse 808810 [siehe 7] zum Rundsenden von Aktualisierungen an einem Feld an alle Klienten verwendet, die gegenwärtig die entsprechende Aufzeichnung betrachten. Wie in Feldern 832 angezeigt ist, betrachten gegenwärtig beide Klienten 54 und 56 ein Feld innerhalb der Aufzeichnung 2.
  • 9A zeigt die detaillierten Datenstrukturen, die einem Ausführungsbeispiel einer relationalen Datenbank 804A der Datenbank 804, die in 7 erläutert ist, zugeordnet sind. Die relationale Datenbank umfaßt eine Namentabelle 804A-1, eine Arbeitsadreßtabelle 804A-2 und eine Heimadreßtabelle 804A-3. Jede der Tabellen enthält mehrere Felder und für jedes Feld gibt es ein entsprechendes Verriegelungsfeld. In der Tabelle 804A-1 gibt es ein Präfix- und ein Nachname-Feld für jede Aufzeichnung. Verriegelungsfelder 856 sind jedem der Präfix-Felder zugeordnet und Verriegelungsfelder 858 sind den Nachname-Feldern zugeordnet. In der Arbeitsadreßtabelle befinden sich die Straßenfelder und Ort-Felder für jede Aufzeichnung. Jedem der Straße-Felder zugeordnet ist eine entsprechende Feldverriegelung 862. Jedem der Ort-Felder zugeordnet ist eine Feldverriegelung 864. Die Heimadreßtabelle 804A-3 umfaßt sowohl ein Straßen- als auch ein Ort-Feld für jede der Aufzeichnungen. Das Straßenfeld weist ein entsprechendes Verriegelungsfeld 868 auf. Das Ort-Feld weist ein entsprechendes Verriegelungsfeld 870 auf. Jeder Aufzeichnung in jeder der Tabellen zugeordnet sind freie Felder 860, 866 und 872, die einen von zwei Zuständen, nämlich Aktiv oder Frei, anzeigen. Eine Aufzeichnung, bei der ein freies Feld als Aktiv markiert ist, enthält gültige Daten. Eine Aufzeichnung, bei der ein freies Feld als Frei markiert ist, enthält keine Daten und ist für die Verwendung als eine neue, zusätzliche Aufzeichnung verfügbar. Ein freies Feld, das als Gelöscht markiert ist, enthält eine Aufzeichnung, die vorbestimmt ist, um physisch aus der Datenbank entfernt zu werden, um die Speicheranforderungen der Datenbank zu reduzieren. Das Löschen einer Aufzeichnung aus der Datenbank kann deshalb entweder durch ein Markieren der Aufzeichnung als Frei oder durch ein Markieren derselben als Löschen erzielt werden. Eine Aufzeichnung kann zu der Datenbank entweder durch ein Umwandeln eines freien Feldes in ein aktives Feld oder durch ein physisches Hinzufügen neuer Aufzeichnungen zu der Datenbank hinzugefügt werden. Die mit diesen Aktivitäten verbundenen Prozesse sind detaillierter in den 12A12F erläutert.
  • 9B zeigt detaillierte Datenstrukturen, die einer Implementierung einer flachen Datenbank 804B der Datenbank 804 zugeordnet sind. Die Datenbank 804B weist Zeilen auf, die jeweils einer einzelnen Aufzeichnung entsprechen. Die Datenbank enthält ein Präfix-Feld, ein Nachnamen-Feld, ein Heim- und ein Arbeitsadreßfeld und ein Ort-Feld. Dem Präfix-Feld zugeordnet ist ein Verriegelungsfeld 880B. Den Nachname-Feldern zugeordnet ist ein entsprechendes Verriegelungsfeld 882B. Jedem der Heim/Arbeitsadresse-Felder zugeordnet ist ein entsprechendes Verriegelungsfeld 884B. Jedem der Ort-Felder zugeordnet ist ein entsprechendes Verriegelungsfeld 886B. Jeder Aufzeichnung zugeordnet ist ein entsprechendes freies Feld 888B, in dem die möglichen Zustände Aktiv, Frei oder Löschen sind. Die Wirkung dieser drei Feld-Zustände ist identisch zu der, die in 9A erläutert wurde.
  • 10 zeigt die Software-Module auf jedem Klient zum Verwalten der verteilten Datenbank. Ein Klient 54 und eine RAID-Speichervorrichtung 64 sind gezeigt. Die RAID-Speichervorrichtung 64 enthält eine Datenbank und Verriegelungsfelder 804. Der Klient 54 umfaßt einen Laufzeit-Supervisor 900, Transaktionsroutinen 902, ein Befehls- und Pfadabfangmechanismus 904, einen Zwischenspeicherverwalter 908, einen Verriegelungsverwalter 906 und einen Verriegelungsumleiter 910.
  • In Betrieb wird eine Abfrage durch den Laufzeit-Supervisor 900 empfangen und an ein Transaktionsroutinen-Modul 902 geleitet. Das Transaktionsroutinen-Modul legt eine Anforderung nach Aufzeichnungen von dem Speichermedium 64 vor. Diese Anforderung wird durch das Befehls- oder Pfad-Abfang-Modul 904 abgefangen. Das Befehl-Pfad-Abfang-Modul leitet die verteilten Verwaltungsfunktionen ein, die in den 12AF detaillierter erläutert werden, bevor die Anforderung an den Zwischenspeicherverwalter 908 geleitet wird. Der Zwischenspeicherverwalter 908 liest Daten von der Datenbank 804 in der Speichervorrichtung 64 und schreibt Daten an dieselbe. Wenn eine Transaktionsanforderung an das Befehls- und Pfad-Abfang-Modul 904 gesendet wird, wird diese auch an den Verriegelungsverwalter 906 gesendet. Der Verriegelungsverwalter gibt eine Verriegelungsanforderung für die angeforderte Ressource aus. Diese Anforderung wird durch den Verriegelungsumleiter 910 abgefangen. Der Verriegelungsumleiter 910 ist verantwortlich für ein Implementieren der Feldverriegelungsprozeduren, was in den 12CF detaillierter erläutert wird.
  • 11 zeigt den Gesamtprozeßfluß, der mit einem der verteilten Datenbankprozesse 808810 auf jeweiligen Klienten 5456 verbunden ist. Die Verarbeitung beginnt bei einem Prozeß 950, bei dem ein Administrator eine Daten bank auf einem spezifischen Speicherungsdatenträger aufbaut, der spezifische Feld- und Aufzeichnungscharakteristika aufweist und mehrere Schreiber erlaubt. Felder innerhalb der Datenbank können Text- oder numerische Daten oder Zeiger auf Bilddateien, Tondateien und Animationsdateien enthalten. Bei einem bevorzugten Ausführungsbeispiel wird die Datenbank mit einer Mehrzahl leerer/freier/verfügbarer Aufzeichnungen mit vordefinierter Größe zur zukünftigen Verwendung eingerichtet. So können neue Aufzeichnungen zu der Datenbank hinzugefügt werden, ohne daß der Raum der physischen Speicherung verändert werden müßte. Die Steuerung wird dann zu einem Prozeß 952 geleitet, in dem eine GUI dem Benutzer zu Zwecken eines Annehmens und Verarbeitens einer Abfrage vorgelegt wird. Die Steuerung wird dann zu einem Prozeß 954 geleitet, bei dem die aus der Datenbank wiedergewonnenen Aufzeichnungen betrachtet werden. Die Steuerung gelangt dann zu einem Teilroutinenblock 956. Der Teilroutinenblock 956 entspricht den Prozessen, die in 12A detaillierter gezeigt sind. Die Steuerung gelangt dann zu einem Entscheidungsblock 958. In dem Entscheidungsblock 958 wird eine Bestimmung durchgeführt, ob der Benutzer ein spezifisches Feld innerhalb der Aufzeichnung bearbeiten möchte, die gerade betrachtet wird. Wenn diese Bestimmung negativ ist, gelangt die Steuerung zu einem Entscheidungsblock 966. Alternativ gelangt, wenn eine bejahende Entscheidung erzielt wird, d. h. ein Feld soll bearbeitet werden, die Steuerung zu einem Teilroutinenblock 960. Die Prozesse in der Teilroutine 960 sind in 12C detaillierter dargelegt. Die Steuerung kehrt dann zu einem Entscheidungsprozeß 962 zurück. In dem Entscheidungsprozeß 962 wird eine Bestimmung durchgeführt, wann der Benutzer das gerade bearbeitete Feld verlassen hat. Wenn eine bejahende Bestimmung erzielt wird, d. h. der Benutzer hat das Feld verlassen, gelangt die Steuerung zu einem Teilroutinen-Modul 964. Das Teilroutinen-Modul 964 entspricht den Prozessen, die in 12D detaillierter dargelegt sind. Nach der Ausführung der Teilroutine kehrt die Steuerung zu einem Entscheidungsprozeß 966 zurück. In dem Entscheidungsprozeß 966 wird eine Bestimmung durchgeführt, ob der Benutzer die Aufzeichnung verlassen hat. Wenn diese Bestimmung negativ ist, kehrt die Steuerung zu dem Entscheidungsblock 958 zurück. Alternativ gelangt, wenn die Bestimmung bejahend ist, d. h. der Benutzer hat die Aufzeichnung verlassen, die Steuerung zu einem Teilroutinenblock 968. Der Teilroutinenblock 968 entspricht den Prozessen, die in 12B detaillierter beschrieben sind. Von der Teilroutine 968 gelangt die Steuerung zu einem Entscheidungsprozeß 970. In dem Entscheidungsprozeß 970 wird eine Bestimmung durchgeführt, ob der Benutzer eine Aufzeichnung hinzufügen möchte. Wenn diese Bestimmung bejahend ist, gelangt die Steuerung zu einer Teilroutine 972. Die Teilroutine 972 entspricht Prozessen, die in 12F detaillierter erläutert werden. Nach einer Rückkehr von der Teilroutine 972 gelangt die Steuerung zu einem Entscheidung-Löschen-Prozeß 974. Alternativ gelangt, wenn in dem Entscheidungsprozeß 970 eine negative Entscheidung erzielt wird, d. h. der Benutzer möchte keine Aufzeichnung hinzufügen, die Steuerung direkt zu dem Entscheidung-Löschen-Prozeß 974. In dem Entscheidung-Löschen-Prozeß 974 wird eine Bestimmung durchgeführt, ob der Benutzer eine Aufzeichnung löschen möchte. Wenn diese Bestimmung negativ ist, kehrt die Steuerung zu dem Abfrageprozeß 952 zurück. Alternativ gelangt, wenn eine bejahende Bestimmung erzielt wird, d. h. der Benutzer möchte eine Aufzeichnung löschen, die Steuerung zu einem Teilroutinen-Modul 976. Das Teilroutinen-Modul 976 umfaßt die Prozesse, die in der folgenden 12E detaillierter beschrieben sind.
  • 12A stellt die Prozesse dar, die mit dem Aufzeichnung-Betrachten-Teilroutinen-Modul 956 verbunden sind, das oben in 11 erläutert wurde. Der Prozeß beginnt bei einem Verbindungsblock A und gelangt zu einem Abfangprozeß 1000. In dem Abfangprozeß 1000 wird ein Aufzeichnungszeiger, der der gerade betrachteten Aufzeichnung entspricht, durch das Befehlspfad-Abfang-Modul 904 [siehe 10] abgefangen. Die Steuerung gelangt zu einem Sektor-Reservieren-Prozeß 1002. In dem Sektor-Reservieren-Prozeß 1002 wird der Sektor in der Speichervorrichtung 64, der der Aufzeichnungsaktualisierungstabelle 806 [siehe 8C] entspricht, reserviert. Die Steuerung gelangt dann zu einem Reservieren-Bestätigung-Entscheidungsprozeß 1004. In dem Reservieren-Bestätigung-Entscheidungsprozeß 1004 wird eine Bestimmung durchgeführt, ob der Sektor tatsächlich reserviert wurde. Wenn diese Bestimmung bejahend ist, gelangt die Steuerung zu einem Sektor-Lesen-Prozeß 1006. In dem Sektor-Lesen-Prozeß 1006 wird der Sektor, der die Aktualisierungstabelle enthält, gelesen und ein Zeiger wird für die spezifische Aufzeichnung in der Tabelle erhalten, die eine ID aufweist, die identisch zu der ID des Klienten ist, auf dem der Prozeß läuft. Die Steuerung gelangt dann zu einem Prozeß 1008. In dem Prozeß 1008 wird die Aufzeichnungs-ID und/oder ein Aufzeichnungszeiger, der in dem Prozeß 1000 erhalten wird, an das Feld in der Steuerungstabelle geschrieben, das dem Klient entspricht, auf dem dieser Prozeß läuft. Die Steuerung gelangt dann zu einem Sektor-Freigeben-Prozeß 1010. In dem Prozeß 1010 wird der gerade gelesene Sektor freigegeben. Die Steuerung kehrt dann über einen Verbindungsblock B zurück.
  • 12B zeigt die Aufzeichnungsaustritt-Prozesse, die dem oben in 11 beschriebenen Teilroutinen-Modul 968 zugeordnet sind. Eine Teilroutine beginnt bei einem Verbindungsblock C und die Steuerung gelangt zu einem Prozeß 1030. In dem Prozeß 1030 wird ein Aufzeichnungszeiger für die Aufzeichnung, aus der der Benutzer austritt, durch das Befehlspfad-Abfang-Modul 904 [siehe 10] erhalten. Die Steuerung wird dann zu einem Sektor-Reservieren-Prozeß 1032 geleitet. In diesem Prozeß wird der Sektor auf der Speichervorrichtung 64, in dem sich die Aktualisierungstabelle [siehe 8C] befindet, reserviert. Die Steuerung gelangt dann zu einem Reservieren-Bestätigung-Entscheidungsprozeß 1034. Bei diesem Entscheidungsprozeß wird eine Bestimmung durchgeführt, ob die Sektorreservierung angenommen und implementiert wurde. Wenn eine bejahende Bestimmung erzielt wird, gelangt die Steuerung zu einem Sektor-Lesen-Prozeß 1036. In dem Sektor-Lesen-Prozeß 1036 wird die Aktualisierungstabelle gelesen und ein Zeiger für die spezifische Zeile innerhalb dieser Tabelle, die dem Klient entspricht, der den Prozeß implementiert, wird erhalten. Die Steuerung wird dann zu einem Prozeß 1038 geleitet. In dem Prozeß 1038 wird das Aufzeichnungs-ID-Feld, das dem Klient entspricht, auf dem der Prozeß läuft, gelöscht. Dies zeigt an, daß der Benutzer diese Aufzeichnung nicht mehr betrachtet. Die Steuerung wird dann zu einem Prozeß 1040 geleitet. In dem Prozeß 1040 wird der Reservieren-Sektor freigegeben und die Steuerung kehrt über einen Verbindungsblock D zurück.
  • 12C zeigt den Prozeß, der durch das Teilroutinen-Modul 960 [siehe 11] zur Bearbeitung eines Felds implementiert wird. Die Teilroutine beginnt bei einem Verbindungsblock E und die Steuerung gelangt zu einem Prozeß 1070. In dem Prozeß 1070 fängt das Befehlspfad-Abfang-Modul 904 [ siehe 10] den Feldzeiger ab, der dem gerade bearbeiteten Feld entspricht. Die Steuerung gelangt dann zu einem Prozeß 1072. In dem Prozeß 1072 wird eine Sektor-Reservieren-Anforderung für einen Sektor in der physischen Speichervorrichtung 64 [siehe 10], in der das Feld gespeichert ist, plaziert. Die Steuerung wird dann zu einem Bestätigung-Entscheidungsprozeß 1074 geleitet. In dem Bestätigung-Entscheidungsprozeß 1074 wird eine Bestimmung durchgeführt, ob der angeforderte Sektor tatsächlich reserviert wurde. Falls eine negative Bestimmung erzielt wird, gelangt die Steuerung zu einem Rundsenden-Entscheidungsprozeß 1076. In dem Rundsenden-Entscheidungsprozeß 1076 wird eine Entscheidung durchgeführt, ob ein weiterer Klient, der gegenwärtig den Sektor reserviert, eine Nachricht rundgesendet hat, die anzeigt, daß der Sektor freigegeben wurde. In dem Fall einer bejahenden Bestimmung kehrt die Steuerung zu dem Sektor-Reservieren-Prozeß 1072 zurück. Wenn in dem Entscheidungsprozeß 1074 eine bejahende Bestimmung erzielt wird, gelangt die Steuerung zu einem Prozeß 1078. In dem Prozeß 1078 wird der Reservieren-Sektor gelesen. Die Steue rung gelangt dann zu einem Entscheidungsprozeß 1080. In dem Entscheidungsprozeß 1080 wird eine Bestimmung durchgeführt, ob das Feld, bezüglich dessen Bearbeitungsrechte angefordert werden, tatsächlich frei ist. Diese Bestimmung wird auf der Basis der Verriegelungsfelder durchgeführt, die oben in den 9AB beschrieben und erläutert sind. Falls eine negative Bestimmung erreicht wird, wird die Steuerung zu einem Sektor-Freigeben-Prozeß 1082 geleitet. In dem Prozeß 1082 wird der Sektor freigegeben und die Steuerung kehrt zurück zu dem Rundsenden-Entscheidungsprozeß 1076.
  • Alternativ gelangt, wenn in dem Entscheidungsprozeß 1080 eine bejahende Bestimmung erzielt wird, d. h. das angeforderte Feld ist entriegelt, die Steuerung zu einem Prozeß 1084. In dem Prozeß 1084 schreibt der Verriegelungsumleiter 910 [siehe 10] die Klienten-ID an das zu bearbeitende Verriegelungsfeld. Die Steuerung wird dann an einen Sektor-Freigeben-Prozeß 1086 geleitet. In dem Sektor-Freigeben-Prozeß 1086 wird der reservierte Sektor freigegeben und die Steuerung zu einem Prozeß 1088 geleitet. In dem Prozeß 1088 bearbeitet der Benutzer das ausgewählte Feld und die Steuerung kehrt über einen Verbindungsblock F zurück.
  • 12D zeigt die Prozesse, die durch das Teilroutinen-Modul 964 [siehe 11] zum Verlassen eines bearbeiteten Felds implementiert werden. Das Teilroutinen-Modul 964, das oben in Verbindung mit 11 beschrieben und erläutert wurde, entspricht diesen Prozessen. Die Teilroutine beginnt bei einem Verbindungsblock G und die Steuerung gelangt zu einem Prozeß 1100. In dem Prozeß 1100 werden der Feldzeiger für das Feld, das verlassen wird, und der entsprechende Aufzeichnungszeiger durch das Befehlspfad-Abfang-Modul 904 [ siehe 10] erhalten. Die Steuerung wird dann zu einem Prozeß 1102 geleitet. In dem Prozeß 1102 wird der Sektor auf der physischen Speichervorrichtung, auf der sich die Aufzeichnung und das Feld befinden, reserviert. Die Steuerung wird dann zu einem Reservieren-Bestätigung-Entschei dungsprozeß 1104 geleitet. In dem Entscheidungsprozeß 1104 wird eine Entscheidung durchgeführt, ob der Sektor tatsächlich reserviert wurde. Falls diese Bestimmung negativ ist, wird die Steuerung zu einer Rundsenden-Entscheidung 1106 geleitet. In der Rundsenden-Entscheidung 1106 wird eine Bestimmung durchgeführt, wann der Sektor durch einen Klienten freigegeben wird, der gegenwärtig diesen Sektor reserviert hat. Die Steuerung gelangt dann auf eine Freigabe hin zu dem Prozeß 1102. Alternativ gelangt, wenn eine bejahende Bestimmung in dem Entscheidungsprozeß 1104 erzielt wird, d. h. der Sektor wurde reserviert, die Steuerung zu einem Prozeß 1108. In dem Prozeß 1108 wird der Reservieren-Sektor gelesen und die Steuerung gelangt zu einem Prozeß 1110. In dem Prozeß 1110 löscht der Verriegelungsumleiter 910 [siehe 10] das Blockieren-Feld, das dem Feld zugeordnet ist, das verlassen wird, und die Steuerung gelangt zu einem Prozeß 1112. In dem Prozeß 1112 leitet das Befehlspfad-Abfang-Modul 904 [siehe 10] die Aktualisierung an dem bearbeiteten Feld an die physische Speichervorrichtung 64 weiter. Die Steuerung wird dann zu einem Prozeß 1114 geleitet. In dem Prozeß 1114 wird die Aktualisierungstabelle 806 [ siehe 8C] gelesen und durch die Aufzeichnungszeigerfelder 832 [siehe 8C] sortiert. Die Steuerung gelangt dann zu einem Prozeß 1116, bei dem Klienten, die die gleiche Aufzeichnung wie diejenige betrachten, die dem Feld zugeordnet ist, das gerade aktualisiert wurde, identifiziert werden. Die Steuerung gelangt dann zu einem Prozeß 1118. In dem Prozeß 1118 wird eine Rundsendenachricht an die Klienten gesandt, die die aktualisierte Aufzeichnung betrachten. Die Nachricht enthält einen Identifizierer, der der Aufzeichnung entspricht, die ein Feld dessen ist, was gerade aktualisiert wurde. Die Steuerung gelangt dann zu 1120. In dem Prozeß 1120 wird der reservierte Sektor freigegeben und die Steuerung kehrt über einen Verbindungsblock H zurück.
  • 12E zeigt die detaillierten Prozesse, die einem Löschen einer Aufzeichnung zugeordnet sind und dem Teilrouti nen-Modul 976 entsprechen, das oben in 11 beschrieben und erläutert wurde. Der Prozeß beginnt bei einem Verbindungsblock I und die Steuerung gelangt zu einem Prozeß 1150. In dem Prozeß 1150 wird der Zeiger auf die zu löschende Aufzeichnung durch das Befehlspfad-Abfang-Modul 904 [ siehe 10] abgefangen. Die Steuerung gelangt dann zu einem Prozeß 1152. In dem Prozeß 1152 wird der Sektor in der physischen Speichervorrichtung, der einer zu löschenden Aufzeichnung zugeordnet ist, reserviert. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1154. In dem Entscheidungsprozeß 1154 wird eine Bestimmung durchgeführt, ob der reservierte Sektor tatsächlich reserviert wurde. Falls eine negative Bestimmung erzielt wird, kehrt die Steuerung zu einem Entscheidungsprozeß 1156 zurück. In dem Entscheidungsprozeß 1156 wird eine Bestimmung durchgeführt, ob der andere Klient, der diesen Sektor reserviert hat, den Sektor freigibt. Wenn eine derartige bejahende Bestimmung erzielt wird, kehrt die Steuerung zu dem Prozeß 1152 zurück.
  • Alternativ gelangt, wenn in dem Entscheidungsprozeß 1154 eine bejahende Bestimmung erzielt wird, d. h. der Sektor wurde reserviert, die Steuerung zu einem Prozeß 1158. In dem Prozeß 1158 liest der Verriegelungsumleiter 910 [siehe 10] den Sektor auf der physischen Speichervorrichtung, der die Aufzeichnung enthält. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1160, in dem eine Bestimmung durch den Verriegelungsumleiter durchgeführt wird, ob alle Verriegelungsfelder innerhalb dieser Aufzeichnung frei sind. Falls die Bestimmung negativ ist, d. h. nicht alle Felder sind frei und ein weiterer Klient bearbeitet deshalb gleichzeitig eines der Felder, gelangt die Steuerung zu einem Prozeß 1162. In dem Prozeß 1162 wird der Reservieren-Sektor freigegeben und die Steuerung kehrt zu dem Rundsenden-Entscheidungsprozeß 1156 zurück.
  • Alternativ gelangt, wenn in dem Entscheidungsprozeß 1160 eine bejahende Bestimmung erzielt wird, d. h. alle Verriegelungsfelder in der zu löschenden Aufzeichnung sind frei, die Steuerung zu einem Prozeß 1164. In dem Prozeß 1164 schreibt der Verriegelungsumleiter 910 einen Löschen-Indikator an das freie Feld [siehe 9AB]. Die Steuerung gelangt dann zu einem Prozeß 1166. In dem Prozeß 1166 werden alle Felder innerhalb der gelöschten Aufzeichnung durch den Verriegelungsumleiter 910 gelöscht. Die Steuerung gelangt dann zu einem Prozeß 1168. In dem Prozeß 1168 wird der Reservieren-Sektor freigegeben. Die Steuerung kehrt dann über einen Verbindungsblock J zurück.
  • 12F zeigt die detaillierten Prozesse, die einem Hinzufügen einer Aufzeichnung zugeordnet sind, die oben in Verbindung mit dem Teilroutinen-Modul 972 in 11 beschrieben und erläutert werden. Die Steuerung beginnt bei einem Verbindungsblock K und gelangt zu einem Prozeß 1180. In dem Prozeß 1180 fängt das Befehlspfad-Abfang-Modul 904 [ siehe 10] die Transaktion-Hinzufügen-Anforderung ab und leitet die Steuerung zu einem Prozeß 1182. In dem Prozeß 1182 werden die freien Felder aller Aufzeichnungen in der Datenbank analysiert und die Steuerung wird zu einem Entscheidungsprozeß 1184 geleitet. In dem Entscheidungsprozeß 1184 wird eine Bestimmung durchgeführt, ob eines der freien Felder, die jeder Aufzeichnung zugeordnet sind, die gegenwärtig in der Datenbank ist, einen Frei-Indikator enthält. Falls die Bestimmung negativ ist, d. h. keine Aufzeichnungen sind verfügbar, gelangt die Steuerung zu einem Prozeß 1186. In dem Prozeß 1186 wird ein Semaphorenfeld 352[siehe 8A] für die Zugriffssteuerungstabelle ergriffen [siehe 5A, Prozesse 510 + 518]. Die Steuerung gelangt dann zu einem Prozeß 1188. In dem Prozeß 1188 wird der tatsächliche Raum der physischen Speicherung, der für die Datenbank reserviert ist, durch ein Hinzufügen neuer Aufzeichnungen erhöht. Die freien Felder dieser neuen Aufzeichnungen werden mit einem Frei-Indikator markiert. Die Steuerung gelangt dann zu einem Prozeß 1190. In dem Prozeß 1190 wird das Semaphorenfeld 352 für die Steuerungstabelle 206 [siehe 8A] freigegeben. Die Steuerung kehrt dann zu einem Prozeß 1192 zurück.
  • Wenn in dem Entscheidungsprozeß 1184 eine bejahende Bestimmung erzielt wird, d. h. es gibt freie Aufzeichnungen, die gegenwärtig in der Datenbank existieren, gelangt die Steuerung zu dem Prozeß 1192. In dem Prozeß 1192 wird der physische Sektor, der der freien Aufzeichnung zugeordnet ist, reserviert. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1194. In dem Entscheidungsprozeß 1194 wird eine Bestimmung durchgeführt, ob der Sektor tatsächlich reserviert wurde. Wenn diese Bestimmung negativ ist, gelangt die Steuerung zu einem Entscheidungsprozeß 1196. In dem Entscheidungsprozeß 1196 wird eine Bestimmung durchgeführt, wann der Klient, der gegenwärtig eine Reservierung auf diesem Sektor plaziert hat, diese Reservierung freigegeben hat. Wenn eine derartige Bestimmung bejahend ist, kehrt die Steuerung zu dem Prozeß 1192 zurück. Alternativ gelangt, wenn in dem Entscheidungsprozeß 1194 eine bejahende Bestimmung erzielt wird, d. h. der Sektor wurde tatsächlich reserviert, die Steuerung zu einem Prozeß 1198. In dem Prozeß 1198 wird der physische Sektor, der die freie Aufzeichnung enthält, gelesen. Die Steuerung gelangt dann zu einem Prozeß 1200. In dem Prozeß 1200 wird ein Aktiv-Indikator in das freie Feld der Aufzeichnung [siehe 9AB] geschrieben. Dies zeigt an, daß die Aufzeichnung in eine Verwendung übernommen wurde. Die Steuerung gelangt dann zu einem Prozeß 1202. In dem Prozeß 1202 wird der reservierte Sektor freigegeben und die Steuerung kehrt über einen Verbindungsblock L zurück.
  • Verteilte Verarbeitung
  • Die 13AC zeigen das Gesamtformat zum Verteilen einer Steuerung über mehrere Prozessoren in einer Netzumgebung. Die Netzumgebung kann als eines oder beide eines NAP-Paradigmas oder eines Klient-Server-Paradigmas konfiguriert sein. Die 13AC umfassen Klienten 5456 und 13021304, die mit einem Netz 1300 verbunden sind. Eine Serie von Projektverwaltungsordnern 13141320 ist für alle Klienten auf dem Netz verfügbar. Jeder Klient umfaßt Anwendungsprogramme und einen verteilten Projektverwaltungsprozeß. Der Klient 54 umfaßt einen verteilten Projektverwaltungsprozeß 1310, der Klient 56 umfaßt einen verteilten Projektverwaltungsprozeß 1312, der Klient 1302 umfaßt einen verteilten Projektverwaltungsprozeß 1306 und der Klient 1304 umfaßt einen verteilten Projektverwaltungsprozeß 1308. Die verteilten Projektverwaltungsprozesse umfassen jeweils die Fähigkeit, einen Projektverwaltungsordner zur Initialisierung der Verarbeitung eines ausgewählten Abschnitts dieses Projektverwaltungsordners auszuwählen und eine resultierende Datei an einem Anordnungsort zu speichern. So kann ein komplexes Projekt, wie z. B. eine Multimediapräsentation, die Bildbearbeitung, -aufbereitung und Schlüsselrahmenumwandlung erzielt, kooperativ durch die mehreren Klienten in einer Netzumgebung erzielt werden.
  • In 13B haben die Klienten 5456 und 1302 jeweils jeweilige Kopien 1314A – C des Projektverwaltungsordners 1314 erhalten. Jeder Klient hat ein Segment des Projekts ausgewählt, das in der Projektverwaltungsdatei [PMF] 1314 definiert ist. Die Projektverwaltungsprozesse 13101312 und 1306 beschäftigen sich mit Anwendungen, die auf ihren jeweiligen Klienten vorhanden sind, bei der Verarbeitung, die den ausgewählten Segmenten der PMF 1314 zugeordnet ist. Wenn residente Anwendungen die erforderliche Aufgabe abschließen, werden die Ergebnisse in Dateien gespeichert.
  • 13C zeigt, daß die Klienten 5456 und 1302 ihre Kopien der PMF 1314 freigegeben haben. Zusätzlich haben die residenten Prozesse 131012 und 1306 bewirkt, daß das durch die lokalen Anwendungen erzeugte Arbeitsprodukt auf dem Netz gespeichert wird. Der Klient 54 hat sein Arbeitsprodukt auf dem Netz in der Datei 1330 gespeichert, die zu Beispielszwecken als der linke Abschnitt 1500 eines Bildrahmens bildmäßig dargestellt ist. Der Klient 56 hat sein Arbeitsprodukt auf dem Netz in der Datei 1332 gespeichert, die als der Mittelabschnitt 1502 des Bildrahmens bildmäßig dargestellt ist. Der Klient 1302 hat sein Arbeitsprodukt auf dem Netz in der Datei 1334 gespeichert, die bildmäßig als der rechte Abschnitt 1504 des Bildrahmens dargestellt ist. Der Ort jeder dieser Dateien auf dem Netz ist in der PMF 1314 aufgezeichnet.
  • Die nächste PMF, bei der eine Bearbeitung begonnen wird, ist eine PMF 1318. Die Klienten 1302 – 1304 haben jeweilige Kopien 1318CD der PMF 1318 erhalten. Diese Klienten melden sich auch für die Verarbeitung bestimmter Segmente dieser PMF an.
  • Die 14A3D zeigen die Datenstrukturen, die einem Projektverwaltungsordner zugeordnet sind. 14A zeigt die Datenstrukturen, die einem Projektverwaltungsordner entsprechen. Der Projektverwaltungsordner 1314 ist gezeigt, um eine Projektdatei 1450, eine Kapazitätstabelle 1350 und Prozeßoptionsschablonen 1400AB zu umfassen.
  • 14B zeigt die detaillierten Datenstrukturen, die der Kapazitätstabelle 1350 zugeordnet sind. Die Kapazitätstabelle 1350 enthält eine Zeile/Aufzeichnung für jeden Klienten auf dem Netz. Für jeden Klienten zeichnen Aufzeichnungsanwendungs-Verfügbarkeitsfelder 13561362 die Verfügbarkeit der Anwendungen auf dem Klienten auf. Für jede dieser Anwendungen gibt es einen Indikator für den Prozentsatz der Verarbeitungsbandbreite, der durch die Anwendung verbraucht wird. Der Klient A [54] ist z. B. mit einem elektrischen Bildaufbereitungspaket 1358 gezeigt, das 25 % seiner Verarbeitungskapazität verbraucht. Ein CAD-Paket 1360 ist gezeigt, um 10 % der Verarbeitungskapazität auf dem Klient A [54] zu verbrauchen. Ein Aufbereitungspaket 1362 ist gezeigt, um 25 % der Verarbeitungsbandbreite des Klienten A [54] zu verbrauchen. Schließlich verbrauchen verbleibende nicht-spezifizierte Anwendungen und das Betriebssystem weitere 10 % der Verarbeitungsbandbreite des Klienten A. Zusätzlich ist das Textverarbeitungspaket in dem Feld 1356 als nicht-zutreffend (N/A) aufgelistet, was anzeigt, daß diese Anwendung sich nicht einmal auf dem Klient A [54] befindet. Die Felder 1352 zeichnen für jeden Klienten und insbesondere in diesem Beispiel den Klient A [54] die Ansammlung der Benutzungseinträge in den Feldern 13561362 auf. So weist der Klient A einen Gebrauch 1352 auf, der bei 70 % seiner Gesamtverarbeitungsbandbreite aufgelistet ist. Die verbleibenden Felder in der Kapazitätstabelle sind die Verarbeitungsgeschwindigkeit in Bezug auf Millionen Instruktionen pro Sekunde (MIPS) 1354. Der Klient A [54] ist aufgelistet, um eine Verarbeitungsfähigkeit von 266 MIPS aufzuweisen. Entsprechende Informationen sind für alle Klienten auf dem Netz verfügbar. Jede Aufzeichnung in der Kapazitätstabelle wird durch einen entsprechenden der verteilten Projektverwaltungsprozesse 13061312 beibehalten und aktualisiert. Die Prozesse bewirken, daß Betriebssystemaufrufe erzeugt werden. Diese Aufrufe geben Variablen zurück, die einem Prozentsatzgebrauch entsprechen, der auf einer anwendungsspezifischen Basis zerlegt ist. Die Prozesse schreiben dann diese aktualisierten Ergebnisse an die entsprechenden Felder, die ihrer Aufzeichnung in der Steuerungstabelle zugeordnet sind. So wird eine einzelne Tabelle verwendet, um einen Prozentsatzgebrauch für alle Netz-Ressourcen an einem gemeinsamen Ort aufzuzeichnen.
  • 14C zeigt die detaillierten Datenstrukturen, die Prozeßoptionsschablonen 1400AB entsprechen. Üblicherweise ist eine Prozeßoptionsschablone einer spezifischen Anwendung zugeordnet. Eine Prozeßoptionsschablone bewirkt, daß eine Anwendung, die sich auf einem Klient befindet, auf eine spezifische Art und Weise ausgeführt wird. Die Prozeßoptionsschablone 1400A ist z. B. der Software-Anwendung Electric Image® zugeordnet. Felder 1402A1408A zeichnen die geeignete Rahmengröße, Komprimierung, Format, Rahmen pro Sekunde bzw. Dauerindikatoren für die Anwendung auf. In dem in 14C gezeigten Beispiel ist eine Rahmengröße 1402A von 640×480 gezeigt. Eine JPEG-Komprimierungstechnik 1404A ist angezeigt. Eine Wiedergabegeschwindigkeit 1406A, die in Rahmen/Sekunde ausgedrückt ist, ist als 15 angezeigt. Schließlich beträgt die beabsichtigte Dauer 1408A der Animation zwei Sekunden.
  • Die Prozeßoptionsschablone 1400B ist einer computergestützten Entwurfs- (CAD-) Anwendung zugeordnet. Für diese Anwendung sind eine Rahmengrößenkomprimierungstechnik und eine Bittiefenpräferenz in jeweiligen Feldern 1402B1408B angezeigt. Die X-Achse-Rahmengröße beträgt 24, die Y-Achse-Rahmengröße beträgt 12, die Komprimierungstechnik ist TIFF und die Bitauflösung beträgt 8 Bit. Jede der Prozeßoptionsschablonen kann auf einer einer Vielzahl von Weisen erzeugt werden. Die Prozeßoptionsschablonen können durch einen Benutzer erzeugt werden, der eine Anwendung aktiviert und bevorzugte Verarbeitungsparameter ausgewählt und diese mit einer zugeordneten Ausgangsdatei speichert. Alternativ kann eine Prozeßoptionsschablone administrativ erzeugt und an eine spezifische Datei in einem Schalenprogramm angehängt werden, das für gerade einen derartigen Zweck vorgesehen ist.
  • 14D zeigt die detaillierten Datenstrukturen der Projektdatei 1450. Die Projektdatei umfaßt einen Anfangsblock mit Anmeldefeldern 1454 und Master-Präferenz-Feldern 1452. Die Anmeldefelder zeigen an, welche unter den verschiedenen Klienten auf dem Netz sich für das Projekt angemeldet haben. Die Klienten A, B und C sind angezeigt, um sich bei dem Projekt angemeldet zu haben, während dies bei dem Klient D nicht der Fall ist. Keiner der Klienten hat einen Master-Status angefordert oder denselben erhalten, da alle Einträge in den Master-Status-Feldern 1452 Null sind.
  • Die Projektdatei 1450 umfaßt einen Ressourcenanforderungsabschnitt. Dieser Abschnitt umfaßt die Namen der Anwendungen, die zur Fertigstellung des Projekts benötigt werden. Zusätzlich nennen ausführbare Pfadfelder 1456 die ausführbare Datei für die Anwendung. Quellendatendateifelder 1458 zeigen an, welche Dateien durch jede Anwendung geladen werden sollten. Dieses bestimmte Projekt benötigt die Textverarbeitungsanwendung, die elektrische Bildanwendung, die CAD-Anwendung und eine Aufbereitungsanwendung. Die elektrische Bildanwendung benötigt eine Quellendatendatei mit dem Namen „center.vsd" und der Pfad zu dieser Datei ist als c:\...\center.vsd aufgelistet. Der nächste Abschnitt der Projektdatei sind die Segmentabschnitte. Zwei Segmentabschnitte sind gezeigt. Im allgemeinen entspricht die Anzahl dieser Abschnitte der Anzahl von Klienten auf dem Netz, die sich gleichzeitig mit der Verarbeitung, die einem bestimmten Projekt zugeordnet ist, beschäftigen können. Einige Projekte haben nur ein Segment, während andere komplexe Aufbereitungsprojekte, die unter einer großen Anzahl von Klienten aufgeteilt werden können, eine große Anzahl von Segmenten aufweisen.
  • Jedes Segment weist ein Segmentdefinitionsfeld 1460, ein Programmfeld 1462, ein Speicherpfadfeld 1464, ein Prioritätsfeld 1466, ein Verarbeitet-Durch-Feld 1468 und ein Segment-Status-Feld 1470 auf.
  • Das Segmentdefinitionsfeld 1460 definiert den Anfangs- und den Endpunkt für ein spezifisches Segment. Der Anfangs- und der Endpunkt für die elektrische Bildanwendung in dem ersten Segment sind als Rahmen 1 – 2 aufgelistet. Das Programmsteuerungsfeld 1462 enthält ein Steuerungs-Script, wie z. B. Visual Basic®, JavaTM oder „DDE Script", das bewirkt, daß die Anwendung auf eine Art und Weise durchgeführt wird, die geeignet für dieses spezifische Projekt ist. Anmerkung: Der Ausdruck „Anwendungen" umfaßt alle Prozesse, die auf einem Computer laufen, von Programmen auf hoher Ebene, wie z. B. Auto-Cad®, bis zu Anwendungen auf niedriger Ebene, einschließlich des OS. Die Speicherpfadfelder 1464 zeigen an, wo die Ergebnisse gespeichert werden sollen [siehe 13C, Bezugszeichen 13301334]. Die Felder 1466 bestimmen die Verarbeitungsreihenfolge von Anwendungen und Segmenten innerhalb eines Projekts. Die Verarbeitet-Durch-Felder 1468 zeigen an, welcher unter den Klienten auf dem Netz bewirkt hat, daß eine lokal residente Anwendung ein Segment der PMF ausführt. In dem Segment 1 z. B. zeigt der „a"-Identifizierer, daß die Projektverwaltungsprozesse auf dem Klient A die Verarbeitung von Segment 1 der elektrischen Bildaufgabe angenommen haben. Schließlich zeigt das Segment-Status-Feld 1470 für jedes Segment und für jede Anwendung innerhalb einer Projektdatei an, welcher der Status dieses Segments ist. Mögliche Einträge sind „0", „1" oder „2". Ein O-Eintrag zeigt an, daß das Segment noch nicht verarbeitet wurde, ein „1"-Eintrag zeigt an, daß das Segment gerade verarbeitet wird, und ein „2"-Eintrag zeigt an, daß die Segmentverarbeitung abgeschlossen ist, und daß die Datei, die als ein Ergebnis dieser Verarbeitung erzeugt wurde, an dem Speicherpfadort auf dem Netz gespeichert wurde. Der nächste Abschnitt der Projektdatei ist der Anordnungsabschnitt, der Felder 14721478 aufweist. Das Feld 1472 ist ein ID-Feld, das anzeigt, welcher unter den verschiedenen Klienten die letztendliche Anordnung durchgeführt hat. Das Feld 1474 enthält den Programmcode oder die DDE-Sequenz, der/die einer Durchführung dieser Aufgaben zugeordnet ist. Das Feld 1478 zeigt den Ort auf dem Netz an, an dem die Ergebnisse gespeichert werden sollen. Der nächste Abschnitt der Projektdatei sind die Prozeßoptionsschablone-Felder 1480. Dieses Feld listet jede Anwendung, eine entsprechende Prozeßoptionsschablone oder einen Prozeßoptionsschablonenpfad auf.
  • Die 15AB zeigen zwei Beispiele verteilter Projekte. 15A zeigt ein zweidimensionales Bild, wobei ein Bild, das aufbereitet werden soll, in drei Abschnitte unterteilt ist, wobei jeder derselben auf einem separaten Klient aufbereitet wird. Der Abschnitt 1500 ist die linke Seite des Bildes, der Abschnitt 1502 ist der Mittelteil des Bildes und der Abschnitt 1504 ist der rechte Teil des Bildes. Jeder dieser Abschnitte ist in einer entsprechenden Datei 13301334 auf dem Netz gespeichert.
  • 15B ist eine Animationssequenz, die aus sechs Rahmen besteht. Die ersten beiden Rahmen 1522 werden durch einen Klient erzeugt und in einer Datei 1330 auf dem Netz gespeichert. Der nächste Abschnitt 1524 weist die Rahmen 3 und 4 des Animationsstreifens auf und ist in einer Datei 1332 auf dem Netz gespeichert. Der letzte Abschnitt 1526 des Projekts sind die Rahmen 5 und 6, die in einer Datei 1334 auf dem Netz gespeichert sind. Wenn die Dateien 13301334 während einer letztendlichen Anordnung kombiniert werden, wird die resultierende Animationssequenz 1520 erzeugt.
  • Die 16AD zeigen, wie bewirkt wird, daß eine auf dem Klienten residente Anwendung 1550 unter der Anweisung eines verteilten Projektverwaltungsprozesses eine Quellendatendatei [siehe 16AB] öffnet, um eine Datei [siehe 16C] zu verarbeiten und die Datei [16D] zu speichern. Das Steuerungs-Script 1462[siehe 14D], das einem Segment zugeordnet ist, bewirkt, daß die Anwendung auf diese Weise durchgeführt wird. Dieser Code wird durch die verteilten Verwaltungsprozesse hochgeladen und durch diese Prozesse verwendet, um die Durchführung der Anwendung auf eine vorbestimmte Weise zu bewirken. In 16A ist die GUI 1550 für die Anwendung gezeigt. Über diese GUI gelagert ist eine Datei-Öffnen-GUI 1554. Die Datei-Öffnen-GUI wird durch das Programmcode-Script aktiviert, das den Datei-Öffnen-Befehl implementiert, der in dem Dateimenü 1552 zu finden ist. Innerhalb des GUI-Operators 1554 befindet sich ein Vorschaufenster 1556, in dem der Inhalt der ausgewählten Datei 1558 gezeigt ist. In 16B ist das Bild 1560, das der Datei 1558 zugeordnet ist, in der GUI 1550 angezeigt.
  • In 16C hat der Projektverwaltungsprozeß die nächste Zeile eines ausführbaren Codes an die CAD-Anwendung gesendet, was dazu führt, daß eine Schattierungsoperation aus dem Tool-Menü 1562 ausgewählt wird. Als ein Ergebnis dieser Auswahl schattiert die CAD-Anwendung einen Abschnitt 1564 des Bilds 1560 und zeigte denselben an. In 16D wird die nächste Zeile des Codes durch die verteilten Projektverwaltungsprozesse an die Anwendung geliefert. Auf einen Empfang der nächsten Zeile des Codes hin wird bewirkt, daß die Anwendung eine Datei-„Speichern-Unter"-Funktion durchführt, die in dem Menübaum 1552 zu finden ist. Ansprechend wird eine „Speichern-Unter"-GUI-Schnittstelle 1566 aktiviert und der Dateiname „center.vsd" wird in dem Dateinamenfenster plaziert. Nachfolgend wird die Datei, die dem Segment entspricht, das gerade verarbeitet wurde, auf dem Netz gespeichert.
  • Die 17AF sind Prozeßflußdiagramme, die die verschiedenen verteilten Projektverwaltungsprozesse zeigen.
  • 17A zeigt die Projekt-Erzeugen-Prozesse. Beginnend bei dem Startblock gelangt die Steuerung zu einem Prozeß 1652. In dem Prozeß 1652 wird eine Projektdatei erzeugt. Bei einem bevorzugten Ausführungsbeispiel wird dem Benutzer eine GUI-Schnittstelle vorgelegt, die der in 14D gezeigten nicht unähnlich ist. Unter Verwendung dieser Schablone geben dieselben die verschiedenen Parameter für die Projektdatei ein. Die Steuerung gelangt dann zu einem Prozeß 1654. In dem Prozeß 1654 werden die eine oder die mehreren Prozeßoptionsschablonen erzeugt. Bei einem bevorzugten Ausführungsbeispiel werden dieselben ebenso durch einen Benutzer über eine GUI-Schnittstelle erzeugt, die der aus 14C ähnelt. Die Steuerung gelangt dann zu einem Prozeß 1656. In dem Prozeß 1656 werden die Prozeßverwaltungsdateien und verwandte Prozeßoptionsschablonen auf dem Netz gespeichert. Die Steuerung gelangt dann zu einem Verbindungsblock A.
  • 17B zeigt die Prozesse, die mit einem Beibehalten der Gebrauchs/Kapazitätstabelle 1350 aus 14B verbunden sind. Wie oben beschrieben und erläutert wurde, führen die verteilten Verwaltungsprozesse 1302, 1304, 1310 und 1312[ siehe 13AC] unabhängig diese Prozeßschritte durch. Beginnend bei dem Verbindungsblock A gelangt die Steuerung zu einem Prozeß 1680. Ein Funktionsaufruf wird an das OS gesendet, um Gebrauchsinformationen zu erhalten, die durch eine Anwendung zerteilt wurden. Die Steuerung gelangt dann zu einem Prozeß 1682. In dem Prozeß 1682 wird die Gebrauchstabelle entdeckt und gelesen. Die Steuerung wird dann zu einem Prozeß 1684 geleitet. In dem Prozeß 1684 wird die Zeile/Aufzeichnung in der Gebrauchstabelle, die dem Klient entspricht, auf dem dieser Prozeß läuft, identifiziert. Die Steuerung wird dann zu einem Prozeß 1686 geleitet. In dem Prozeß 1686 werden die oben bei dem Prozeß 1680 erhaltenen Werte in das geeignete Feld in der Gebrauchstabelle plaziert. Die Steuerung wird dann zu einem Prozeß 1688 geleitet. In dem Prozeß 1688 wird die Verarbeitungsgeschwindigkeit für den in die Gebrauchstabelle eingegebenen Klienten aus dieser Tabelle gelesen. Die Steuerung gelangt dann zu einem Prozeß 1690. In dem Prozeß 1690 werden Funktionsaufrufe an das OS gesendet, um die Verarbeitungsgeschwindigkeit des Klienten zu erhalten. Die Steuerung wird dann an einen Entscheidungsprozeß 1692 geleitet. In dem Entscheidungsprozeß 1692 wird eine Bestimmung durchgeführt, ob der Eintrag in der Tabelle der tatsächlichen Verarbeitungsgeschwindigkeit des Klienten entspricht, auf dem der Prozeß läuft. Falls die beiden nicht übereinstimmen, wird der Prozeß zu einem Prozeß 1694 geleitet, in dem der Eintrag in die Tabelle aktualisiert wird, um die gegenwärtige Verarbeitungsleistung des Klienten widerzuspiegeln. Die Steuerung gelangt dann zu einem Verbindungsblock B. Alternativ gelangt, wenn in dem Entscheidungsprozeß 1692 eine bejahende Bestimmung erzielt wird, d. h. der Eintrag in der Gebrauchstabelle für diesen Klienten ist korrekt, die Steuerung direkt zu dem Verbindungsblock B.
  • 17C zeigt den Abschnitt der verteilten Verwaltungsprozesse, der durchgeführt wird, wenn eine Master/Slave- bzw. Haupt/Neben-Beziehung aktiviert wurde. Es gibt im Grunde genommen zwei Betriebsmodi für die Verteilungsprozeßverwaltung. In dem Master/Slave-Modus leitet der Klient, der entweder für den Master-Status vorbestimmt ist, oder der zuerst die PMF ergreift und den Master-Status erhält, die nachfolgende Verarbeitung aller Segmente der Projektdatei an. Bei einem weiteren Ausführungsbeispiel wird ein Punktzu-Punkt- bzw. Partner-zu Partner-Ansatz für eine verteilte Verarbeitung implementiert. Bei dem Punkt-zu-Punkt-Ansatz sieht jeder Klient fortwährend nach einer unvollständigen zu verarbeitenden PMF.
  • In 17C beginnen die Prozesse bei dem Verbindungsblock B. Die Steuerung gelangt zu einem Prozeß 1720, bei dem die nächste PMF lokalisiert wird. Bei einem bevorzugten Ausführungsbeispiel wird die nächste PMF aus einer Zuerst-Hinein-Zuerst-Hinaus- (FIFO-) Warteschlange ausgewählt und die Verarbeitung bezüglich dieser PMF wird fortgesetzt, bis alle Segmente in der Datei vollständig sind und die letztendliche Anordnung durchgeführt wurde. Bei einem anderen bevorzugten Ausführungsbeispiel wäre die nächste PMF als die Datei definiert, die unvollständige Segmente aufweist, oder die nicht letztlich angeordnet wurde. Die Steuerung gelangt dann zu einem Prozeß 1722, in dem die ausgewählte PMF gelesen wird. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1724. In dem Entscheidungsprozeß 1724 wird eine Bestimmung durchgeführt, ob dieser bestimmte Projektverwaltungsordner für einen Master/Slave-Status aktiviert ist. Falls diese Bestimmung negativ ist, gelangt die Steuerung zu einem Verbindungsblock D. Alternativ gelangt, wenn diese Bestimmung bejahend ist, die Steuerung zu einem Entscheidungsprozeß 1726. In dem Entscheidungsprozeß 1726 wird eine Bestimmung auf der Basis von Master-Feldern 1452 [siehe 14D] durchgeführt, ob ein Master sich bei diesem Projektverwaltungsordner angemeldet hat. Falls diese Bestimmung bejahend ist, gelangt die Steuerung zu einem Verbindungsblock C. Alternativ gelangt, wenn eine negative Bestimmung erzielt wird, die Steuerung zu einem Entscheidungsprozeß 1728. In dem Entscheidungsprozeß 1728 wird eine Bestimmung durchgeführt, ob der Klient, der für den Master-Status in den Master-Status-Feldern 1452 [siehe 14D] bezeichnet wurde, eine ID aufweist, die der entsprechenden ID entspricht, d. h. des Klients, auf dem dieser Prozeß läuft. Falls diese Bestimmung negativ ist, gelangt die Steuerung zu dem Verbindungsblock C. Alternativ gelangt, wenn diese Bestimmung bejahend ist, die Steuerung zu einem Prozeß 1730. In dem Prozeß 1730 meldet sich der Klient als den Master-Status annehmend an und tut dies durch ein Schreiben eines Anmeldeidentifizierers in das geeignete Feld 1454 in dem Projektverwaltungsordner. Die Steuerung gelangt dann zu einem Prozeß 1732. In dem Prozeß 1732 wird die Gebrauchstabelle gelesen, um eine Slave-Verfügbarkeit und Verarbeitungskapazität zu bestimmen. Die Steuerung wird dann zu einem Prozeß 1734 geleitet. In dem Prozeß 1734 wird die Segmentaufzeichnung mit der höchsten Priorität 1466 [siehe 14D], deren Segment-Status-Feld 1470 [siehe 14D] noch nicht mit einer „2" markiert wurde, erhalten und die Anwendung 1456, die für dieses Segment benötigt wird, wird bestimmt. Die Steuerung wird dann zu einem Prozeß 1736 geleitet.
  • In dem Prozeß 1736 beschäftigt sich der Master mit einem Slave-Werben- und/oder einem Slave-Zuweisung-Prozeß. Nur diejenigen Slaves mit lokal residenten Anwendungen, die mit der Anwendung 1456 für das Segment übereinstimmen, werden ausgewählt. Zusätzlich werden Slaves mit einer höheren verfügbaren Verarbeitungsleistung und weniger Gebrauch, wie in dem Prozeß 1732 bestimmt wurde, gegenüber denjenigen mit geringerer Verarbeitungsgeschwindigkeit und eingeschränkter Kapazität bevorzugt. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1738. In dem Entscheidungsprozeß 1738 wird eine Bestimmung durchgeführt, welche Slaves einen Slave-Status angenommen haben. Für diejenigen Slaves, die einen Slave-Status angenommen haben, gelangt die Steuerung zu einem Prozeß 1740, in dem die Slave-ID bestimmt wird. Die Steuerung gelangt dann zu einem Prozeß 1742. In dem Prozeß 1742 werden Informationen durch den Master basierend auf dem PMF-Segment an den Slave gesendet, das der Slave zur Bearbeitung bezeichnet hat. Diese Informationen umfassen: einen Zeiger auf die Quellendatei, die der Slave benötigt, um sich mit dem Prozeß zu beschäftigen, eine Segmentdefinition, die anzeigt, welches Segment verarbeitet werden soll, eine ausführbare Code-Sequenz, um es zu ermöglichen, daß der Slave seine residente Anwendung/en aktiviert, und eine Prozeßoptionsschablone. Schließlich sendet der Master einen Zeiger auf den Ort auf dem Netz an den Slave, an dem der Slave sein Arbeitsprodukt speichern soll. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1744. In dem Entscheidungsprozeß 1744 wird eine Bestimmung durchgeführt, ob es verbleibende unvollständige Segmente gibt, und falls dies der Fall ist, gelangt die Steuerung zu dem Entscheidungsprozeß 1738 für die Auswahl des nächsten Slaves. Wenn keine verbleibende unvollständige Objekte vorliegen, gelangt die Steuerung zu einem Entscheidungsprozeß 1746. In dem Entscheidungsprozeß 1746 wird eine Bestimmung durchgeführt, ob alle Slaves ihre Arbeit abgeschlossen haben. Der Abschluß der Arbeit wird auf der Basis von Einträgen bestimmt, die durch die Slaves in die Projektdatei gemacht werden, und insbesondere die Segment-Status-Felder 1470 [siehe 14D]. Wenn eine bejahende Bestimmung erzielt wird, d. h. alle Segmente wurden verarbeitet, gelangt die Steuerung zu einem Prozeß 1748. In dem Prozeß 1748 schließt der Master die letztliche Anordnung der Segmente der Projektdatei gemäß den Instruktionen ab, die in dem Anordnungsabschnitt der Projektdatei [siehe 14D] enthalten sind. Die Steuerung gelangt dann zu einem Prozeß 1750. In dem Prozeß 1750 schreibt der Master einen Status-Indikator in die PMF und insbesondere Felder 1472, der anzeigt, daß die letztliche Anordnung abgeschlossen ist, und daß dieser Projektverwaltungsordner geschlossen werden kann. Die Steuerung gelangt dann zu dem Verbindungsblock A.
  • 17D legt die Prozesse dar, mit denen sich ein Slave beschäftigt. Die Verarbeitung beginnt bei dem Verbindungsblock C und die Steuerung wird zu einem Entscheidungsprozeß 1780 geleitet. In dem Entscheidungsprozeß 1780 wird eine Bestimmung durchgeführt, ob eine Master-Anforderung empfan gen wurde oder nicht. Falls diese Bestimmung negativ ist, gelangt die Steuerung zu dem Verbindungsblock B. Alternativ gelangt, wenn eine bejahende Bestimmung erzielt wird, die Steuerung zu einem Prozeß 1782. In dem Prozeß 1782 sendet der Slave eine bejahende Antwort an den Master, die anzeigt, daß sie den Slave-Status akzeptiert. Die Steuerung wird dann zu einem Prozeß 1784 geleitet, bei dem der Slave die Informationen von dem Master empfängt, die er benötigt, damit er sein bezeichnetes Segment der Projektdatei verarbeiten kann. Die Steuerung gelangt dann zu einem Prozeß 1786. In dem Prozeß 1786 aktiviert der Slave die eine oder die mehreren bezeichneten Anwendungen und steuert diese Anwendung mit dem geeigneten Steuerungs-Script und der Prozeßoptionsschablone. Dies bewirkt, daß die Anwendung ihre bezeichneten Funktionen durchführt. Die Steuerung wird dann zu einem Prozeß 1786 geleitet. In dem Prozeß 1786 schreibt der Slave einen Status-„1"-Indikator an das entsprechende Segment-Status-Feld 1470 in der Projektdatei [siehe 14D]. Dies zeigt jedem Klienten, der die Projektdatei liest, an, daß das Segment gegenwärtig durch den Slave verarbeitet wird. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1788, in dem der Slave bestimmt, ob die residente Anwendung ihr Projektsegment abgeschlossen hat oder nicht. Wenn eine bejahende Bestimmung erzielt wird, wird die Steuerung zu einem Prozeß 1790 geleitet. In dem Prozeß 1790 wird bewirkt, daß die Anwendung ihr Arbeitsprodukt an dem Ort speichert, der in dem Prozeß 1784 bezeichnet ist, und die Anwendung geschlossen wird. Die Steuerung gelangt dann zu einem Prozeß 1800. In dem Prozeß 1800 wird ein Segment-Vollständig-Indikator „2" an das geeignete Feld 1470 in der Projektdatei geschrieben. Die Steuerung gelangt dann zu dem Verbindungsblock B.
  • 17E offenbart den Abschnitt der verteilten Projektprozesse, der einer Punkt-zu-Punkt- anstatt einer Master/Slave-Beziehung zwischen den Klienten zugeordnet ist. Die Verarbeitung beginnt bei dem Verbindungsblock D. Die Steuerung gelangt zu einem Prozeß 1820, in dem die nächste PMF gelesen wird. Die Steuerung gelangt dann zu einem Prozeß 1822, in dem die Gebrauchstabelle gelesen wird. Die Steuerung gelangt dann zu einem Prozeß 1824, in dem die Segmente innerhalb der PMF nach Priorität sortiert werden, und eine Entscheidung durchgeführt wird, welches der Segmente noch nicht vollständig ist. Diese Bestimmung basiert auf dem Eintrag in den oben erwähnten und erläuterten Prioritäts- und Segment-Status-Feldern 1466 und 1470 [siehe 14D]. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1826. In dem Entscheidungsprozeß 1826 wird eine Bestimmung durchgeführt, ob verbleibende unvollständige Segmente vorliegen. Wenn diese Entscheidung negativ ist, wird die Steuerung zu einem Verbindungsblock E geleitet. Alternativ wird, wenn eine bejahende Bestimmung erzielt wird, d. h. es gibt verbleibende Segmente, die verarbeitet werden sollen, die Steuerung zu einem Prozeß 1828 geleitet. In dem Prozeß 1828 wird eine Bestimmung durchgeführt, ob die dem nächsten priorisierten Segment zugeordnete Anwendung auf dem Klient verfügbar ist, auf dem dieser Prozeß läuft. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1830, in dem diese Bestimmung implementiert ist.
  • In dem Prozeß 1736 beschäftigt sich der Master mit einem Slave-Werben- und/oder einem Slave-Zuweisung-Prozeß. Nur diejenigen Slaves mit lokal residenten Anwendungen, die mit der Anwendung 1456 für das Segment übereinstimmen, werden ausgewählt. Zusätzlich werden bei einem bevorzugten Ausführungsbeispiel Slaves mit einer höheren verfügbaren Verarbeitungsleistung und einem geringeren Gebrauch, wie in dem Prozeß 1732 bestimmt wird, gegenüber denjenigen mit einer langsameren Verarbeitungsgeschwindigkeit und einer eingeschränkten Kapazität bevorzugt. Wenn der Klient, auf dem der Prozeß läuft, nicht die Anwendung aufweist, die aufgerufen wird, gelangt die Steuerung zu dem Verbindungsblock B. Alternativ gelangt, wenn eine bejahende Bestimmung erzielt wird, d. h. der Klient weist die angeforderte residente Anwendung auf, die Steuerung zu einem Prozeß 1832. In dem Prozeß 1832 meldet sich der Klient bei einem Segment innerhalb der Projektdatei an. Der Klient tut dies durch ein Schreiben eines Status-„1"-Indikators in das geeignete Segment-Status-Feld 1470 in der Projektdatei. [Siehe 14D] Die Steuerung gelangt dann zu einem Prozeß 1834. In dem Prozeß 1834 liest der Klient die geeigneten Segment-Informationen von der Prozeßdatei, die einen Zeiger auf die Quellendatei, eine Segmentdefinition, einen Anwendungsverarbeitungscode, eine Prozeßoptionsschablone und/oder eine Pfadaussage zu der Prozeßoptionsschablone und einen bezeichneten Ort umfassen, in dem das Arbeitsprodukt gespeichert werden soll. Die Steuerung gelangt dann zu einem Prozeß 1836. In-dem Prozeß 1836 aktiviert der Klient seine residente Anwendung unter Verwendung der Programmcodesequenz und der Prozeßoptionsschablone, die demselben von der Projektdatei geliefert wird. Die Steuerung gelangt dann zu einem Prozeß 1838, in dem die Anwendung, die das Projekt fertiggestellt hat, ihr Arbeitsprodukt speichert. Der Speicherort entspricht dem bezeichneten Quellenpfad 1464 [ siehe 14D]. Die Steuerung gelangt dann zu einem Prozeß 1840. In dem Prozeß 1840 wird das geeignete der Status-Felder 1470 auf einen Status „2" aktualisiert, um in der Projektdatei anzuzeigen, daß dieses bestimmte Segment abgeschlossen ist. Die Steuerung gelangt dann zu dem Verbindungsblock B.
  • 17F zeigt die Prozesse an, die mit einer Punkt-zu-Punkt-Beziehung beschäftigt sind, die der Neuanordnung einer Projektdatei zugeordnet ist, in der alle Segmente abgeschlossen wurden. Die Verarbeitung beginnt bei einem Verbindungsblock E und gelangt zu einem Prozeß 1860. In dem Prozeß 1860 wird der Projektverwaltungsordner gelesen. Die Steuerung gelangt dann zu einem Entscheidungsprozeß 1862. In dem Entscheidungsprozeß 1862 wird eine Bestimmung auf der Basis der Letztliche-Anordnung-Felder 1472 in der Projektdatei [siehe 14D] durchgeführt, ob die PMF angeordnet wurde. Wenn diese Bestimmung bejahend ist, kehrt die Steuerung zu dem Verbindungsblock B zurück. Alternativ gelangt, wenn eine negative Bestimmung erzielt wird, d. h. die PMF wurden noch keiner letztlichen Anordnung unterzogen, die Steuerung zu einem Prozeß 1864. In dem Prozeß 1864 wird die letztendliche Anordnung gemäß den in der PMF gespeicherten Anordnungsinstruktionen durchgeführt. Die Steuerung gelangt dann zu einem Prozeß 1866. In dem Prozeß 1866 werden das/die geeigneten Letztendliche-Anordnung-Felder mit einem Status „2" markiert, der anzeigt, daß die letztliche Anordnung abgeschlossen ist. Die Steuerung kehrt dann zu dem Verbindungsblock B zurück.
  • Inter Application Calls (Inter Anwendung Aufrufe)
  • Distribute Process (POT File Pathname, Project File Pathname) (Prozeß Verteilen (POT Datei Pfadname, Projekt Datei Pfadname) )
    Figure 00830001
  • Launch Process (Prozeß Starten)
    Figure 00830002
  • Process Segment (PMF File Pathname, Plugin ID, Timestamp, Segment Parameters) Prozeß Segment (PMF Datei Pfadname, Einsteckelement ID, Zeitstempel, Segment Parameter))
    Figure 00830003
  • Figure 00840001
  • Processing Segment (PME_File_Pathname, Plugin_ID, Timestamp, Segment_Parameters) (Verarbeitung_Segment(PMF_Datei_Pfadname, Einsteckelement_ID, Zeitstempel, Segment_Parameter))
    Figure 00840002
  • Segment_Done(PMF_File_Pathmane, Plugin_ID, Timestamp, Segment_Parameters) (Segment_Erledigt(PME_Datei_Pfadname, Einsteckelement_ID, Zeitstempel, Segment_Parameter))
    Figure 00840003
  • Quit Process (Prozeß Verlassen bzw. Beenden)
    Figure 00840004
  • Assemble_Process(PME_File_Pathname, Plugin_ID, Timestamp) (Prozeß_Anordnen(PME_Datei_Pfadname, Einsteckelement_ID, Zeitstempel))
    Figure 00850001
  • Assembly_Done(PME_File_Pathname, Plugin_ID, Timestamp) (Anordnung_Erledigt(PME_Datei_Pfadname, Einsteckelement_ID, Zeitstempel))
    Figure 00850002
  • Process_Complete(POT_File Pathname, Project_File_Pathname) (Prozeß_Abgeschlossen(POT_Datei_Pfadname, Projekt_Datei_Pfadname))
    Figure 00850003
  • StudioBOSS-zu-StudioBOSS-Aufrufe ZUR PROZESSSTEUERUNG
  • SB_Process_Segment(PMF_File_Pathname, PMF_Reference) (SB Prozeß_Segment(PMF_Datei Pfadname, PMF_Referenz))
    Figure 00860001
  • SB_Processing Segment (PME Reference) (SB Verarbeitung Segment(PMF Referenz))
    Figure 00860002
  • SB_Segment_Done (PME_Reference) (SB_Segment_Erledigt(PMF_Referenz))
    Figure 00860003
  • SB_Quit_Process (PMF_Reference) (SB_Prozeß_Verlassen(PME_Referenz) )
    Figure 00860004
  • SB_Assemble_Process(PME_Reference) (SB_Prozeß Anordnen(PMF_Referenz))
    Figure 00870001
  • FÜR ENTSCHEIDUNG MASTER/SlAVE-STEUERUNG
  • SB_Become_Slave(PME_File_Pathname, PMF_Reference) (SB_Wird Slave(PMF_Datei_Pfadname, PMF_Referenz))
    Figure 00870002
  • SB_Slave_Response(PME_File_Pathname, PMF_Reference, Response) (SB_Slave_Antwort(PME_Datei_Pfadname, PMF_Referenz, Antwort))
    Figure 00870003
  • SB_Become_Free (SB_Wird_Frei)
    Figure 00870004
  • Plugin- bzw. Einsteckelement-Aufrufe
    • PI_Process_Segment(PMF_File_Pathname) (PI_Prozeß_Segment(PMF_Datei_Pfadname)) wird aufgerufen, um ein Prozeßsegment zu verteilen, führt zu einem Process Segment IAC-Aufruf.
    • PI_Assemble_Process(PMF_File_Pathname) (PI_Prozeß_Anordnen(PMF_Datei Pfadname)) wird aufgerufen, um Prozeßergebnisse anzuordnen. Das Plugin kann entweder die Ergebnisse ohne eine Prozeßanwendungsinteraktion anordnen oder kann als eine Option einen Assemble_Process IAC-Aufruf, um alles anzuordnen, ausgeben. Legende
      MPA Master-Prozeß-Anwendung
      MPCA Multi-Prozeß-Steuerungsanwendung
      PI Einsteckelement bzw. Plugin
      PMF Prozeßverwaltungsdatei
      SB StudioBOSS
      MSB Master-StudioBOSS
      SSB Slave-StudioBOSS
      POT Prozeßoptionsschablone
      SBPI StudioBOSS-Plug-In bzw. -Einsteckelement, exi
      stiert innerhalb MSB oder SSB
  • Prozeßoptionsschablone (POT)
    • Template_Signature (Schablone_Signatur)
    • (anwendungsspezifische Optionen)
    • POT-Beispiel, Ergebnisse in Speicher angeordnet – für einen rahmenbasierten Prozeß
    • Template-Signature (Schablone Signatur)
    • Bit_Depth (Bit_Tiefe)
    • Frame-Size_X (Rahmen_Größe_X)
    • Frame_Size_Y (Rahmen_Größe_Y)
    • OT-Beispiel, Ergebnisse in Dateien angeordnet – für einen
    • zeitbasierten_Prozeß
    • Template_Signature (Schablone Signatur)
    • Frame_Size (Rahmen Größe)
    • Frames_Per_Second (Rahmen Pro Sekunde)
    • Compressor (Komprimierer)
    • Start_Time (Start_Zeit)
    • End_Time (End_Zeit)
  • PME
    • Project_File_Path (Projekt_Datei-Pfad)
    • Remaining_Segments_To_Process (Verbleibende_Segmente_Zur_Verarbeitung)
    • Process_Application_Signature (Prozeß_Anwendung_Signatur)
    • Master Host ID (Master-Host-ID)
    • Reassembly_Method (Neuanordnung_Verfahren)
    • Number_Of_Slaves (Anzahl_Von_Slaves) (für jeden Slave folgendes)
    • Slave ID
    • Segment_Being_Processed (Gerade_Verarbeitetes_Segment)
    • Segment_Status (not_processing, processing in progress, Processing_complete) (Segment_Status (nicht_verarbeitet, Verarbeitung_läuft_gerade, Verarbeitung_abgeschlossen))
    • Result_Location (Ergebnis_Ort)
    • Process Option Template (Prozeß Option Schablone)
  • Die vorangegangene Beschreibung eines bevorzugten Ausführungsbeispiels der Erfindung wurde zu Darstellungs- und Beschreibungszwecken vorgelegt. Sie soll weder ausschließlich sein, noch die Erfindung auf die genauen offenbarten Formen einschränken. Offensichtlich sind für Fachleute auf diesem Gebiet viele Modifizierungen und Variationen ersichtlich. Es ist beabsichtigt, daß der Schutzbereich der Erfindung durch die folgenden Ansprüche und ihre Äquivalente definiert sein soll.
  • Weitere und bevorzugte Ausführungsbeispiele gemäß der vorliegenden Erfindung werden nun Bezug nehmend auf die folgenden numerierten Sätze aufgezählt.

Claims (17)

  1. Ein Datenträgerverwaltungssystem zum Verwalten eines Datenspeicherungsdatenträgers und zum Bereitstellen eines exklusiven Schreibzugriffs für eine Mehrzahl von Klienten, die mit dem Datenspeicherungsdatenträger verbunden sind, wobei das Datenträgerverwaltungssystem folgende Merkmale aufweist: eine Steuerungstabelle, die dem Datenspeicherungsdatenträger zugeordnet ist, wobei die Steuerungstabelle folgende Merkmale umfaßt: a) Verfügbarkeitsindizien zum Anzeigen, ob die Steuerungstabelle verfügbar ist; b) Identifizierungsindizien zum Anzeigen einer Eigentümerschaft des Datenspeicherungsdatenträgers; und eine Mehrzahl von Steuerungsprozessen, die jeweils auf einem entsprechenden der Mehrzahl von Klienten ausgeführt werden, wobei die Mehrzahl von Steuerungsprozessen eine exklusive Eigentümerschaft der Steuerungstabelle anfordert und erfaßt, um für jeden der Mehrzahl von Klienten einen exklusiven Schreibzugriff auf den Datenspeicherungsdatenträger bereitzustellen.
  2. Das Datenträgerverwaltungssystem gemäß Anspruch 1, bei dem die Steuerungstabelle ferner folgendes Merkmal aufweist: c) Sicherheitsindizien zum Anzeigen der Zugriff-Berechtigungen für jeden der Mehrzahl von Kunden auf den Datenspeicherungsdatenträger; und wobei die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Ablehnen eines Schreibzugriffs auf den Datenspeicherungsdatenträger für einen der Mehrzahl von Klienten, die in den Sicherheitsindizien der Steuerungstabelle mit Nur-Lese-Zugriff-Berechtigungen auf den Datenspeicherungsdatenträger aufgelistet sind.
  3. Das Datenträgerverwaltungssystem gemäß Anspruch 1 oder 2, bei dem die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Aktualisieren eines Dateiverzeichnisses entsprechend dem Datenspeicherungsdatenträger auf jedem der Mehrzahl von Klienten mit Nur-Lese-Zugriff-Berechtigungen.
  4. Das Datenträgerverwaltungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Anzeigen einer Anforderung, den exklusiven Schreibstatus freizugeben, auf einem Monitor eines der Mehrzahl von Klienten mit exklusivem Schreibzugriff auf den Datenspeicherungsdatenträger; und Prozesse zum Annehmen einer bejahenden und einer verneinenden Antwort auf die Anforderung zur Freigabe von einer Eingabevorrichtung des einen der Mehrzahl von Klienten.
  5. Das Datenträgerverwaltungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Anzeigen des Status jedes der Mehrzahl von Klienten bezüglich des Datenspeicherungsdatenträgers auf einem Monitor eines Klienten, wobei der Status Nur-Lesen und Lesen/Schreiben umfaßt.
  6. Das Datenträgerverwaltungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Verriegeln jedes einer Mehrzahl von Datenspeicherungsdatenträgertreibern, die jeden der Mehrzahl von Klienten mit dem Datenspeicherungsdatenträger verbinden, während eines anfänglichen Hochfahrens jedes der Mehrzahl von Klienten; und Prozesse zum Entriegeln jedes der Mehrzahl von Datenspeicherungsdatenträgertreibern auf ein Einleiten der Anforderungs- und Erfassungsprozesse hin.
  7. Das Datenträgerverwaltungssystem gemäß Anspruch 1, bei dem die Mehrzahl von Steuerungsprozessen ferner folgende Merkmale aufweist: Prozesse zum Annehmen einer Nachricht von einem ersten der Mehrzahl von Klienten an einen zweiten der Mehrzahl von Klienten und Schreiben der Nachricht an die Steuerungstabelle; Prozesse zum Bestimmen, daß eine Nachricht in der Steuerungstabelle vorliegt, und zum Anzeigen der Nachricht auf einem Monitor des zweiten der Mehrzahl von Klienten.
  8. Ein Verfahren in einem Computersystem zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs auf einen Datenspeicherungsdatenträger unter einer Mehrzahl von Klienten, die mit dem Datenspeicherungsdatenträger verbunden sind, wobei das Verfahren folgende Schritte aufweist: Erzeugen einer Steuerungstabelle, die mit jedem der Mehrzahl von Klienten verbunden ist und angeordnet ist, um eine Anzeige einer Steuerungstabellenverfügbarkeit und eine Anzeige einer Eigentümerschaft des Datenspeicherungsdatenträgers zu speichern; Empfangen einer Schreibanforderung von einem ersten der Mehrzahl von Klienten; Einleiten einer Schreibanforderungsroutine auf dem ersten Klienten ansprechend auf das Empfangen; Senden einer Freigabeanforderung an einen zweiten Klienten, wenn die Steuerungstabelle anzeigt, daß der zweite der Mehrzahl von Klienten einen Schreibzugriff auf den Datenspeicherungsdatenträger aufweist; Empfangen einer bejahenden Benachrichtigung von dem zweiten Klienten ansprechend auf die Freigabeanforderung; und Aktualisieren der Steuerungstabelle durch den ersten Klienten.
  9. Das Verfahren gemäß Anspruch 8, bei dem die Steuerungstabelle ferner angeordnet ist, um Anzeigen einer Feldbearbeitungseigentümerschaft eines Feldes zu speichern, wobei das Verfahren ferner folgende Schritte umfaßt: Empfangen einer Feldbearbeitungsanforderung von einem ersten Klienten; Aufrufen einer Kohärenzroutine auf dem ersten Klienten, der auf die Steuerungstabelle zugreift; und wenn die Steuerungstabelle anzeigt, daß ein zweiter der Mehrzahl von Klienten eine Bearbeitungszugriffseigentümerschaft des Feldes hält: Senden einer Freigabeanforderung an den zweiten Klienten; Empfangen einer bejahenden Benachrichtigung von dem zweiten Klienten ansprechend auf die Freigabeanforderung; und Aktualisieren der Steuerungstabelle durch den ersten Klienten.
  10. Das Verfahren gemäß Anspruch 8, bei dem die Anforderungsroutinen und die Freigaberoutinen aus einer Mehrzahl unterschiedlicher Dateisystemprotokolle herrühren können.
  11. Das Verfahren gemäß Anspruch 8, bei dem die Erzeugungshandlung ferner folgende Handlungen aufweist: Sorgen für die Speicherung von Sicherheitsindizien in der Steuerungstabelle zum Anzeigen von Zugriff-Berechtigungen auf den Datenspeicherungsdatenträger für jeden der Mehrzahl von Klienten; und wobei die Handlung des Empfangens einer Schreibanforderung ferner folgende Handlungen aufweist: Ablehnen einer Schreibanforderung auf den Datenspeicherungsdatenträger durch einen der Mehrzahl von Klienten mit Sicherheitsindizien in der Steuerungstabelle, die Nur-Lese-Zugriff-Berechtigungen auf den Datenspeicherungsdatenträger anzeigen.
  12. Das Verfahren gemäß Anspruch 8, wobei das Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs ferner folgende Handlungen aufweist: Aktualisieren einer Kopie einer Datenspeicherungsdatenträgerdatei auf einem der Mehrzahl von Klienten mit Nur-Lese-Zugriff-Berechtigungen auf den Datenspeicherungsdatenträger, wenn Veränderungen an dem Datenspeicherungsdatenträgerdateiverzeichnis vorgenommen werden.
  13. Das Verfahren gemäß Anspruch 8, wobei das Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs ferner folgende Handlungen aufweist: Anzeigen einer Anforderung, einen exklusiven Schreibstatus freizugeben, auf einem Monitor eines der Mehrzahl von Klienten mit exklusivem Schreibzugriff auf den Datenspeicherungsdatenträger; und Annehmen einer bejahenden und einer verneinenden Antwort auf die Anforderung zur Freigabe von einer Eingabevorrichtung des einen der Mehrzahl von Klienten.
  14. Das Verfahren gemäß Anspruch 8, wobei das Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs ferner folgende Handlungen aufweist: Anzeigen des Status jedes der Mehrzahl von Klienten bezüglich des Datenspeicherungsdatenträgers auf einem Monitor eines der Mehrzahl von Klienten, wobei der Status Nur-Lesen, Lesen/Schreiben umfaßt.
  15. Das Verfahren gemäß Anspruch 8, wobei das Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs ferner folgende Handlungen aufweist: Verriegeln jedes einer Mehrzahl von Datenspeicherungsdatenträgertreibern, die jeden der Mehrzahl von Klienten mit dem Datenspeicherungsdatenträger verbinden, während eines anfänglichen Hochfahrens jedes der Mehrzahl von Klienten; und Entriegeln jedes der Mehrzahl von Datenspeicherungsdatenträgertreibern auf ein Einleiten der Anforderungs- und Erfassungsprozesse hin.
  16. Das Verfahren gemäß Anspruch 8, wobei das Verfahren zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs ferner folgende Handlungen aufweist: Annehmen einer Nachricht von einem ersten der Mehrzahl von Klienten an einen zweiten der Mehrzahl von Klienten und Schreiben der Nachricht an die Steuerungstabelle; Bestimmen, daß eine Nachricht in der Steuerungstabelle vorliegt; und Anzeigen der Nachricht auf einem Monitor des zweiten der Mehrzahl von Klienten.
  17. Ein computerverwendbares Medium, das eine computerlesbare Programmcodeeinrichtung, die in demselben ausgeführt ist, zum Durchsetzen eines gegenseitig exklusiven Schreibzugriffs auf einen Datenspeicherungsdatenträger unter einer Mehrzahl von Klienten, die mit dem Datenspeicherungsdatenträger verbunden sind, aufweist, wobei die computerlesbare Programmcodeeinrichtung in dem Herstellungsgegenstand folgende Merkmale aufweist: eine computerlesbare Programmcodeeinrichtung zum Bewirken, daß ein Computer eine Steuerungstabelle, die mit jedem der Mehrzahl von Klienten verbunden ist, zum Speichern von Indizien einer Steuerungstabellenverfüg barkeit und Indizien einer Eigentümerschaft des Datenspeicherungsdatenträgers erzeugt; eine computerlesbare Programmcodeeinrichtung zum Bewirken, daß ein Computer eine Schreibanforderung bei einem ersten der Mehrzahl von Klienten erfaßt; eine computerlesbare Programmcodeeinrichtung zum Bewirken, daß ein Computer eine Anforderungsroutine auf dem ersten der Mehrzahl von Klienten ansprechend auf die Erfassung einer Schreibanforderung einleitet, wobei die Anforderungsroutine folgende Handlungen aufweist: a) Bestimmen, daß ein weiterer der Mehrzahl von Klienten einen Schreibzugriff auf den Datenspeicherungsdatenträger aufweist, auf der Basis der Indizien einer Eigentümerschaft des Datenspeicherungsdatenträgers; und b) Senden einer Freigabeanforderung an den anderen der Mehrzahl von Klienten zur Freigabe eines Schreibzugriffs ansprechend auf die Bestimmungshandlung; c) ansprechend auf eine bejahende Benachrichtigung von dem anderen der Mehrzahl von Klienten: i) Ersetzen der Indizien einer Eigentümerschaft durch die Indizien einer Eigentümerschaft des ersten Klienten; ii) Vorbereiten des Datenspeicherungsdatenträgers zum Schreibzugriff; und eine computerlesbare Programmcodeeinrichtung zum Bewirken, daß ein Computer die Freigabeanforderung an dem zweiten der Mehrzahl von Klienten erfaßt; eine computerlesbare Programmcodeeinrichtung zum Bewirken, daß ein Computer eine Freigaberoutine auf dem zweiten der Mehrzahl von Klienten ansprechend auf die Erfassung der Freigabeanforderung einleitet, wobei die Freigaberoutine folgende Handlungen aufweist: a) Freigeben eines Schreibzugriffs auf den Datenspeicherungsdatenträger; und b) Senden einer bejahenden Benachrichtigung an den ersten Klienten der Freigabehandlung.
DE69728176T 1996-08-02 1997-08-01 Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt Expired - Fee Related DE69728176T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2321896P 1996-08-02 1996-08-02
US23218P 1996-08-02
PCT/US1997/012843 WO1998006036A1 (en) 1996-08-02 1997-08-01 Method and apparatus for allowing distributed control of shared resources

Publications (2)

Publication Number Publication Date
DE69728176D1 DE69728176D1 (de) 2004-04-22
DE69728176T2 true DE69728176T2 (de) 2005-01-27

Family

ID=21813768

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69728176T Expired - Fee Related DE69728176T2 (de) 1996-08-02 1997-08-01 Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt

Country Status (9)

Country Link
US (3) US5999930A (de)
EP (1) EP0972247B1 (de)
JP (1) JP2000515657A (de)
CN (1) CN1227644A (de)
AT (1) ATE262196T1 (de)
AU (1) AU3889497A (de)
CA (1) CA2262450A1 (de)
DE (1) DE69728176T2 (de)
WO (1) WO1998006036A1 (de)

Families Citing this family (226)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031442B1 (en) 1997-02-10 2006-04-18 Genesys Telecommunications Laboratories, Inc. Methods and apparatus for personal routing in computer-simulated telephony
US6104802A (en) 1997-02-10 2000-08-15 Genesys Telecommunications Laboratories, Inc. In-band signaling for routing
US6480600B1 (en) 1997-02-10 2002-11-12 Genesys Telecommunications Laboratories, Inc. Call and data correspondence in a call-in center employing virtual restructuring for computer telephony integrated functionality
US6381633B2 (en) * 1997-05-09 2002-04-30 Carmel Connection, Inc. System and method for managing multimedia messaging platforms
US20020089551A1 (en) * 1997-07-14 2002-07-11 Hugh Harlan M. Method and apparatus for displaying a thought network from a thought's perspective
US6006331A (en) * 1997-07-29 1999-12-21 Microsoft Corporation Recovery of online sessions for dynamic directory services
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
US6711611B2 (en) 1998-09-11 2004-03-23 Genesis Telecommunications Laboratories, Inc. Method and apparatus for data-linking a mobile knowledge worker to home communication-center infrastructure
US6061761A (en) * 1997-10-06 2000-05-09 Emc Corporation Method for exchanging logical volumes in a disk array storage device in response to statistical analyses and preliminary testing
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US6658417B1 (en) * 1997-12-31 2003-12-02 International Business Machines Corporation Term-based methods and apparatus for access to files on shared storage devices
US6212610B1 (en) * 1998-01-07 2001-04-03 Fujitsu Limited Memory protection mechanism for a distributed shared memory multiprocessor with integrated message passing support
US6889358B1 (en) * 1998-01-08 2005-05-03 Lucent Technologies Inc. Concurrency control in materialized views of a database
US7907598B2 (en) 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US6370508B2 (en) * 1998-09-11 2002-04-09 Genesys Telecommunications Laboratories, Inc. Interface engine for managing business processes within a multimedia communication-center
US6332154B2 (en) 1998-09-11 2001-12-18 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing media-independent self-help modules within a multimedia communication-center customer interface
US6182115B1 (en) * 1998-03-06 2001-01-30 International Business Machines Corp. Method and system for interactive sharing of text in a networked environment
US6148306A (en) * 1998-05-28 2000-11-14 Johnson Controls Technology Company Data structure for scheduled execution of commands in a facilities management control system
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US7143193B1 (en) 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US7581006B1 (en) 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US6336187B1 (en) * 1998-06-12 2002-01-01 International Business Machines Corp. Storage system with data-dependent security
US7165152B2 (en) * 1998-06-30 2007-01-16 Emc Corporation Method and apparatus for managing access to storage devices in a storage system with access control
US7756986B2 (en) 1998-06-30 2010-07-13 Emc Corporation Method and apparatus for providing data management for a storage system coupled to a network
US6279138B1 (en) 1998-08-04 2001-08-21 International Business Machines Corporation System for changing the parity structure of a raid array
US6332197B1 (en) 1998-08-04 2001-12-18 International Business Machines Corp. System for updating data in a multi-adaptor environment
US6446220B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating data and parity data with and without read caches
US6446237B1 (en) 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US6272662B1 (en) * 1998-08-04 2001-08-07 International Business Machines Corporation Distributed storage system using front-end and back-end locking
USRE46153E1 (en) 1998-09-11 2016-09-20 Genesys Telecommunications Laboratories, Inc. Method and apparatus enabling voice-based management of state and interaction of a remote knowledge worker in a contact center environment
US6240416B1 (en) * 1998-09-11 2001-05-29 Ambeo, Inc. Distributed metadata system and method
US6847987B2 (en) * 1998-09-30 2005-01-25 International Business Machines Corporation System and method for extending client-server software to additional client platforms for servicing thin clients requests
US6453348B1 (en) 1998-11-06 2002-09-17 Ameritech Corporation Extranet architecture
US6427212B1 (en) 1998-11-13 2002-07-30 Tricord Systems, Inc. Data fault tolerance software apparatus and method
US6553376B1 (en) * 1998-11-18 2003-04-22 Infolibria, Inc. Efficient content server using request redirection
US6553375B1 (en) * 1998-11-25 2003-04-22 International Business Machines Corporation Method and apparatus for server based handheld application and database management
US6336171B1 (en) * 1998-12-23 2002-01-01 Ncr Corporation Resource protection in a cluster environment
GB2345555A (en) * 1999-01-05 2000-07-12 Ibm Controlling device access in a network
US6725392B1 (en) 1999-03-03 2004-04-20 Adaptec, Inc. Controller fault recovery system for a distributed file system
US6449731B1 (en) 1999-03-03 2002-09-10 Tricord Systems, Inc. Self-healing computer system storage
US6530036B1 (en) 1999-08-17 2003-03-04 Tricord Systems, Inc. Self-healing computer system storage
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6289376B1 (en) * 1999-03-31 2001-09-11 Diva Systems Corp. Tightly-coupled disk-to-CPU storage server
US6405219B2 (en) 1999-06-22 2002-06-11 F5 Networks, Inc. Method and system for automatically updating the version of a set of files stored on content servers
US6845395B1 (en) * 1999-06-30 2005-01-18 Emc Corporation Method and apparatus for identifying network devices on a storage network
US6665714B1 (en) 1999-06-30 2003-12-16 Emc Corporation Method and apparatus for determining an identity of a network device
US8179809B1 (en) * 1999-08-23 2012-05-15 Oracle America, Inc. Approach for allocating resources to an apparatus based on suspendable resource requirements
US6343324B1 (en) * 1999-09-13 2002-01-29 International Business Machines Corporation Method and system for controlling access share storage devices in a network environment by configuring host-to-volume mapping data structures in the controller memory for granting and denying access to the devices
US7444390B2 (en) * 1999-10-20 2008-10-28 Cdimensions, Inc. Method and apparatus for providing a web-based active virtual file system
US6944654B1 (en) * 1999-11-01 2005-09-13 Emc Corporation Multiple storage array control
US7496578B2 (en) * 1999-11-04 2009-02-24 Aol Llc Shared internet storage resource, user interface system, and method
US6351776B1 (en) * 1999-11-04 2002-02-26 Xdrive, Inc. Shared internet storage resource, user interface system, and method
US20100185614A1 (en) 1999-11-04 2010-07-22 O'brien Brett Shared Internet storage resource, user interface system, and method
US6385623B1 (en) * 1999-11-12 2002-05-07 Dell Usa, L.P. System and method for ensuring proper execution of scheduled file updates
US6928477B1 (en) * 1999-11-18 2005-08-09 International Business Machines Corporation Availability and scalability in clustered application servers by transmitting expected loads of clients to load balancer
US7929978B2 (en) 1999-12-01 2011-04-19 Genesys Telecommunications Laboratories, Inc. Method and apparatus for providing enhanced communication capability for mobile devices on a virtual private network
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6847984B1 (en) * 1999-12-16 2005-01-25 Livevault Corporation Systems and methods for backing up data files
JP4201447B2 (ja) * 1999-12-27 2008-12-24 富士通株式会社 分散処理システム
US6826580B2 (en) * 2000-01-20 2004-11-30 Emc Corporation Distributed storage resource management in a storage area network
US8010703B2 (en) 2000-03-30 2011-08-30 Prashtama Wireless Llc Data conversion services and associated distributed processing system
USRE42153E1 (en) * 2000-03-30 2011-02-15 Hubbard Edward A Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US7254607B2 (en) * 2000-03-30 2007-08-07 United Devices, Inc. Dynamic coordination and control of network connected devices for large-scale network site testing and associated architectures
US7092983B1 (en) * 2000-04-19 2006-08-15 Silicon Graphics, Inc. Method and system for secure remote distributed rendering
US7062527B1 (en) 2000-04-19 2006-06-13 Silicon Graphics, Inc. Management and scheduling of a distributed rendering method and system
US7783695B1 (en) 2000-04-19 2010-08-24 Graphics Properties Holdings, Inc. Method and system for distributed rendering
US6769010B1 (en) * 2000-05-11 2004-07-27 Howzone.Com Inc. Apparatus for distributing information over a network-based environment, method of distributing information to users, and method for associating content objects with a database wherein the content objects are accessible over a network communication medium by a user
US6523032B1 (en) * 2000-05-12 2003-02-18 Oracle Corporation Servicing database requests using read-only database servers coupled to a master database server
JP2001337854A (ja) * 2000-05-24 2001-12-07 Fujitsu Ltd データ連携システム
US20020049738A1 (en) * 2000-08-03 2002-04-25 Epstein Bruce A. Information collaboration and reliability assessment
US6523047B1 (en) 2000-08-17 2003-02-18 International Business Machines Corporation System and method for volume expansion in the presence of multiple plug-in features
US6687716B1 (en) * 2000-09-13 2004-02-03 Radiant Data Corporation File consistency protocols and methods for carrying out the protocols
US6633870B1 (en) * 2000-09-13 2003-10-14 Radiant Data Corporation Protocols for locking sharable files and methods for carrying out the protocols
US6611848B1 (en) * 2000-09-13 2003-08-26 Radiant Data Corporation Methods for maintaining data and attribute coherency in instances of sharable files
US6434682B1 (en) 2000-09-28 2002-08-13 International Business Machines Corporation Data management system with shortcut migration via efficient automatic reconnection to previously migrated copy
US6604160B1 (en) 2000-09-28 2003-08-05 International Business Machines Corporation Computing system arbitrating and selectively providing resource-seeking tasks with takeaway of non-shareable resources
US6715070B1 (en) 2000-10-12 2004-03-30 International Business Machines Corporation System and method for selectively enabling and disabling plug-ins features in a logical volume management enviornment
US7778981B2 (en) * 2000-12-01 2010-08-17 Netapp, Inc. Policy engine to control the servicing of requests received by a storage server
US7346928B1 (en) * 2000-12-01 2008-03-18 Network Appliance, Inc. Decentralized appliance virus scanning
US7260636B2 (en) * 2000-12-22 2007-08-21 Emc Corporation Method and apparatus for preventing unauthorized access by a network device
US7328263B1 (en) * 2001-01-30 2008-02-05 Cisco Technology, Inc. Controlling access of concurrent users of computer resources in a distributed system using an improved semaphore counting approach
US6795895B2 (en) * 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US7681032B2 (en) * 2001-03-12 2010-03-16 Portauthority Technologies Inc. System and method for monitoring unauthorized transport of digital content
US8478824B2 (en) * 2002-02-05 2013-07-02 Portauthority Technologies Inc. Apparatus and method for controlling unauthorized dissemination of electronic mail
US20050025291A1 (en) * 2001-03-12 2005-02-03 Vidius Inc. Method and system for information distribution management
US6941252B2 (en) * 2001-03-14 2005-09-06 Mcdata Corporation Striping data frames across parallel fibre channel links
US7266596B2 (en) * 2001-04-18 2007-09-04 International Business Machines Corporation Dynamic storage space linking
US7076736B2 (en) * 2001-07-31 2006-07-11 Thebrain Technologies Corp. Method and apparatus for sharing many thought databases among many clients
US6757695B1 (en) * 2001-08-09 2004-06-29 Network Appliance, Inc. System and method for mounting and unmounting storage volumes in a network storage environment
EP2597811B1 (de) * 2001-08-15 2019-10-09 Bentley Systems, Incorporated Verfahren und System zur Speicherung großer Datendateien
US7428548B2 (en) * 2001-08-15 2008-09-23 Bentley Systems, Inc. Computer readable medium for storing large data files
DE10157251A1 (de) * 2001-11-22 2003-06-05 Siemens Ag Verfahren zum Zugriff auf Daten eines Automatisierungsgerätes und Automatisierungsgerät
US6877045B2 (en) 2001-12-18 2005-04-05 International Business Machines Corporation Systems, methods, and computer program products to schedule I/O access to take advantage of disk parallel access volumes
US7113937B2 (en) * 2001-12-18 2006-09-26 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390
US7596627B2 (en) * 2001-12-18 2009-09-29 Cisco Technology, Inc. Methods and apparatus for network congestion control
US6754734B2 (en) 2001-12-18 2004-06-22 International Business Machines Corporation Systems, methods, and computer program products to improve performance of ported applications, such as a database
US7734808B1 (en) 2001-12-18 2010-06-08 Cisco Technology, Inc. End-to-end congestion control in a Fibre Channel network
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7499410B2 (en) 2001-12-26 2009-03-03 Cisco Technology, Inc. Fibre channel switch that enables end devices in different fabrics to communicate with one another while retaining their unique fibre channel domain—IDs
US7599360B2 (en) 2001-12-26 2009-10-06 Cisco Technology, Inc. Methods and apparatus for encapsulating a frame for transmission in a storage area network
US7548975B2 (en) * 2002-01-09 2009-06-16 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network through a virtual enclosure
US6862668B2 (en) 2002-02-25 2005-03-01 International Business Machines Corporation Method and apparatus for using cache coherency locking to facilitate on-line volume expansion in a multi-controller storage system
US7480909B2 (en) 2002-02-25 2009-01-20 International Business Machines Corporation Method and apparatus for cooperative distributed task management in a storage subsystem with multiple controllers using cache locking
US20030172070A1 (en) * 2002-03-06 2003-09-11 Sawadsky Nicholas Justin Synchronous peer-to-peer multipoint database synchronization
US7246119B2 (en) * 2002-03-08 2007-07-17 Kabushiki Kaisha Toshiba Method and implementation of session-based file locking for network applications
US7464138B2 (en) * 2002-03-29 2008-12-09 International Business Machines Corporation Mirror queue in a shared queue environment
US7406034B1 (en) 2002-04-01 2008-07-29 Cisco Technology, Inc. Methods and apparatus for fibre channel frame delivery
US7616637B1 (en) 2002-04-01 2009-11-10 Cisco Technology, Inc. Label switching in fibre channel networks
KR101027905B1 (ko) * 2002-04-22 2011-04-07 마이크로소프트 코포레이션 다수의 사용자들과 애플리케이션들을 공유하기 위한 방법, 장치 및 컴퓨터 판독가능 매체
US20040015556A1 (en) * 2002-05-10 2004-01-22 Renu Chopra Software-based process/issue management system
US7206288B2 (en) 2002-06-12 2007-04-17 Cisco Technology, Inc. Methods and apparatus for characterizing a route in fibre channel fabric
US20040006399A1 (en) * 2002-06-26 2004-01-08 Klein Alan L. Method and system for managing and monitoring an organization
US20040039781A1 (en) * 2002-08-16 2004-02-26 Lavallee David Anthony Peer-to-peer content sharing method and system
US7949690B2 (en) * 2002-09-06 2011-05-24 Autodesk, Inc. Project structure
US8805918B1 (en) 2002-09-11 2014-08-12 Cisco Technology, Inc. Methods and apparatus for implementing exchange management for virtualization of storage within a storage area network
US20040059734A1 (en) * 2002-09-23 2004-03-25 Hubbert Smith Data access control
US7243145B1 (en) * 2002-09-30 2007-07-10 Electronic Data Systems Corporation Generation of computer resource utilization data per computer application
US7437446B2 (en) 2002-09-30 2008-10-14 Electronic Data Systems Corporation Reporting of abnormal computer resource utilization data
US20040064523A1 (en) * 2002-10-01 2004-04-01 Zheng Zhang Placing an object at a node within a logical space in a peer-to-peer system
US20040078360A1 (en) * 2002-10-22 2004-04-22 Defauw Randy Data locking system and method for medical system architecture
JP2004157637A (ja) * 2002-11-05 2004-06-03 Hitachi Ltd ストレージ管理方法
US7327680B1 (en) 2002-11-05 2008-02-05 Cisco Technology, Inc. Methods and apparatus for network congestion control
US7433326B2 (en) 2002-11-27 2008-10-07 Cisco Technology, Inc. Methods and devices for exchanging peer parameters between network devices
US7367052B1 (en) * 2002-12-04 2008-04-29 Cisco Technology, Inc. Access list key compression
US7254736B2 (en) * 2002-12-18 2007-08-07 Veritas Operating Corporation Systems and method providing input/output fencing in shared storage environments
TWI238336B (en) * 2003-01-10 2005-08-21 Taiwan Semiconductor Mfg System, method, and user interface providing customized document portfolio management
WO2004068376A1 (de) * 2003-01-30 2004-08-12 Christoph Burkhard Verfahren zur organisation der zusammenarbeit in einer projekt- oder entwicklungsgruppe mit mehreren teilnehmern
US20040162807A1 (en) * 2003-02-14 2004-08-19 Montagne Michael D. Cooperative, simultaneous operation on data by many processes, with concurrent retention of process status, resumed processing, and minimal consumption of inter-nodal throughput
US8706760B2 (en) 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US7603442B2 (en) * 2003-06-20 2009-10-13 Microsoft Corporation Method and system for maintaining service dependency relationships in a computer system
TWI225205B (en) * 2003-07-16 2004-12-11 Via Tech Inc Object management system and method thereof
AU2003903967A0 (en) * 2003-07-30 2003-08-14 Canon Kabushiki Kaisha Distributed data caching in hybrid peer-to-peer systems
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7567987B2 (en) * 2003-10-24 2009-07-28 Microsoft Corporation File sharing in P2P group shared spaces
US7593336B2 (en) 2003-10-31 2009-09-22 Brocade Communications Systems, Inc. Logical ports in trunking
US7619974B2 (en) 2003-10-31 2009-11-17 Brocade Communication Systems, Inc. Frame traffic balancing across trunk groups
US7934023B2 (en) * 2003-12-01 2011-04-26 Cisco Technology, Inc. Apparatus and method for performing fast fibre channel write operations over relatively high latency networks
US20050198146A1 (en) * 2004-01-14 2005-09-08 International Business Machines Corporation System and method for targeted notifications tracking
US20050159968A1 (en) * 2004-01-21 2005-07-21 Stephen Cozzolino Organizationally interactive task management and commitment management system in a matrix based organizational environment
US10776206B1 (en) 2004-02-06 2020-09-15 Vmware, Inc. Distributed transaction system
US8700585B2 (en) * 2004-02-06 2014-04-15 Vmware, Inc. Optimistic locking method and system for committing transactions on a file system
US7844646B1 (en) * 2004-03-12 2010-11-30 Netapp, Inc. Method and apparatus for representing file system metadata within a database for efficient queries
US7539702B2 (en) * 2004-03-12 2009-05-26 Netapp, Inc. Pre-summarization and analysis of results generated by an agent
US7293039B1 (en) 2004-03-12 2007-11-06 Network Appliance, Inc. Storage resource management across multiple paths
US7630994B1 (en) 2004-03-12 2009-12-08 Netapp, Inc. On the fly summarization of file walk data
JP4585213B2 (ja) * 2004-03-24 2010-11-24 株式会社日立製作所 データ保護方法及び認証方法並びにプログラム
JP4551680B2 (ja) * 2004-03-26 2010-09-29 キヤノン株式会社 文書管理システム、文書管理方法及びそのプログラム、並びに記憶媒体
JP4451705B2 (ja) 2004-04-26 2010-04-14 株式会社日立製作所 ストレージ装置、これを備えたストレージシステム、このシステムのデータ管理方法、及びストレージ装置のコントローラ実行プログラム
EP1591916B1 (de) * 2004-04-26 2013-11-06 Sap Ag Methode, Computerprogramm und Gerät zum Löschen von Datensätzen in einem Tabellensystem
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US20060036579A1 (en) * 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for associating resources using a time based algorithm
US7546601B2 (en) * 2004-08-10 2009-06-09 International Business Machines Corporation Apparatus, system, and method for automatically discovering and grouping resources used by a business process
US7661135B2 (en) * 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
US20060059118A1 (en) * 2004-08-10 2006-03-16 Byrd Stephen A Apparatus, system, and method for associating resources using a behavior based algorithm
US7630955B2 (en) * 2004-08-10 2009-12-08 International Business Machines Corporation Apparatus, system, and method for analyzing the association of a resource to a business process
US8725547B2 (en) * 2004-08-24 2014-05-13 Epic Systems Corporation Utilization indicating schedule scanner
US7340610B1 (en) * 2004-08-31 2008-03-04 Hitachi, Ltd. Trusted time stamping storage system
US20060090071A1 (en) * 2004-10-13 2006-04-27 Werner Sinzig Systems and methods for project management
US7593324B2 (en) 2004-10-25 2009-09-22 Cisco Technology, Inc. Graceful port shutdown protocol for fibre channel interfaces
US7916628B2 (en) * 2004-11-01 2011-03-29 Cisco Technology, Inc. Trunking for fabric ports in fibre channel switches and attached devices
US8359429B1 (en) * 2004-11-08 2013-01-22 Symantec Operating Corporation System and method for distributing volume status information in a storage system
US7649844B2 (en) 2004-12-29 2010-01-19 Cisco Technology, Inc. In-order fibre channel packet delivery
US7930316B2 (en) * 2004-12-30 2011-04-19 International Business Machines Corporation Method, system, and computer program product for dynamic field-level access control in shared documents
US20060168582A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation Managing resource link relationships to activity tasks in a collaborative computing environment
US20060168550A1 (en) * 2005-01-21 2006-07-27 International Business Machines Corporation System, method and apparatus for creating and managing activities in a collaborative computing environment
US7177994B2 (en) * 2005-03-04 2007-02-13 Emc Corporation Checkpoint and consistency markers
US7609649B1 (en) * 2005-04-26 2009-10-27 Cisco Technology, Inc. Methods and apparatus for improving network based virtualization performance
JP4708862B2 (ja) * 2005-05-26 2011-06-22 キヤノン株式会社 光走査装置及びそれを用いた画像形成装置
US7630998B2 (en) * 2005-06-10 2009-12-08 Microsoft Corporation Performing a deletion of a node in a tree data storage structure
US8666957B2 (en) * 2005-08-29 2014-03-04 Hewlett-Packard Development Company, L.P. Method or apparatus for locking shared data
US8091089B2 (en) 2005-09-22 2012-01-03 International Business Machines Corporation Apparatus, system, and method for dynamically allocating and adjusting meta-data repository resources for handling concurrent I/O requests to a meta-data repository
JP2007174062A (ja) * 2005-12-20 2007-07-05 Canon Inc データ通信装置、データ通信システム、データ通信方法、及びそのプログラム
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US8744885B2 (en) * 2006-03-28 2014-06-03 Snowflake Itm, Inc. Task based organizational management system and method
US7734648B2 (en) * 2006-04-11 2010-06-08 Sap Ag Update manager for database system
US20080004925A1 (en) * 2006-06-29 2008-01-03 Bangel Matthew J Multi-site project management
CN101110020B (zh) * 2006-07-21 2011-01-26 国际商业机器公司 维护关于可编辑对象中的元素的与原创性有关的信息的方法和系统
US7890921B2 (en) 2006-07-31 2011-02-15 Lifecylce Technologies, Inc. Automated method for coherent project management
US20080034167A1 (en) * 2006-08-03 2008-02-07 Cisco Technology, Inc. Processing a SCSI reserve in a network implementing network-based virtualization
US20080040674A1 (en) * 2006-08-09 2008-02-14 Puneet K Gupta Folksonomy-Enhanced Enterprise-Centric Collaboration and Knowledge Management System
US8719174B2 (en) * 2006-11-15 2014-05-06 International Business Machines Corporation Method, system, and computer program product for collaborative and integrated intellectual property management
US8276167B2 (en) * 2007-03-21 2012-09-25 International Business Machines Corporation Distributed pluggable middleware services
US7945724B1 (en) 2007-04-26 2011-05-17 Netapp, Inc. Non-volatile solid-state memory based adaptive playlist for storage system initialization operations
US8825970B1 (en) * 2007-04-26 2014-09-02 Netapp, Inc. System and method for mounting a storage volume utilizing a block reference list
US20080300945A1 (en) * 2007-05-31 2008-12-04 Michel Shane Simpson Techniques for sharing resources across multiple independent project lifecycles
US20090048896A1 (en) * 2007-08-14 2009-02-19 Vignesh Anandan Work management using integrated project and workflow methodology
US7783666B1 (en) 2007-09-26 2010-08-24 Netapp, Inc. Controlling access to storage resources by using access pattern based quotas
AU2008311849A1 (en) * 2007-10-20 2009-04-23 Citrix Systems, Inc. Systems and methods for folder redirection
SG10201702345PA (en) * 2007-11-27 2017-04-27 Boeing Co Method and apparatus for loadable software airplane parts (lsap) distribution
US8271706B2 (en) * 2008-05-22 2012-09-18 International Business Machines Corporation Stabilization of host to storage subsystem ownership
US20090319544A1 (en) * 2008-06-20 2009-12-24 Griffin James R Facilitating integration of different computer data systems
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US8478798B2 (en) * 2008-11-10 2013-07-02 Google Inc. Filesystem access for web applications and native code modules
US8521776B2 (en) * 2008-12-05 2013-08-27 International Business Machines Corporation Accessing data in a multi-generation database
JP4892626B2 (ja) * 2009-07-08 2012-03-07 東芝テック株式会社 プリンタ及びメッセージデータ管理プログラム
WO2011060306A2 (en) * 2009-11-12 2011-05-19 Salesforce.Com, Inc. Enterprise level business information networking for changes in a database
US8843676B2 (en) 2012-06-27 2014-09-23 International Business Machines Corporation Optimizing an operating system I/O operation that pertains to a specific program and file
CN103544189A (zh) * 2012-07-17 2014-01-29 珠海金山办公软件有限公司 锁定正在编辑文件的方法及系统
JP6185668B2 (ja) * 2014-07-25 2017-08-23 株式会社日立製作所 ストレージ装置
US9853873B2 (en) 2015-01-10 2017-12-26 Cisco Technology, Inc. Diagnosis and throughput measurement of fibre channel ports in a storage area network environment
US9900250B2 (en) 2015-03-26 2018-02-20 Cisco Technology, Inc. Scalable handling of BGP route information in VXLAN with EVPN control plane
US10222986B2 (en) 2015-05-15 2019-03-05 Cisco Technology, Inc. Tenant-level sharding of disks with tenant-specific storage modules to enable policies per tenant in a distributed storage system
US11588783B2 (en) 2015-06-10 2023-02-21 Cisco Technology, Inc. Techniques for implementing IPV6-based distributed storage space
US10778765B2 (en) 2015-07-15 2020-09-15 Cisco Technology, Inc. Bid/ask protocol in scale-out NVMe storage
US9892075B2 (en) 2015-12-10 2018-02-13 Cisco Technology, Inc. Policy driven storage in a microserver computing environment
US10140172B2 (en) 2016-05-18 2018-11-27 Cisco Technology, Inc. Network-aware storage repairs
US20170351639A1 (en) 2016-06-06 2017-12-07 Cisco Technology, Inc. Remote memory access using memory mapped addressing among multiple compute nodes
US10664169B2 (en) 2016-06-24 2020-05-26 Cisco Technology, Inc. Performance of object storage system by reconfiguring storage devices based on latency that includes identifying a number of fragments that has a particular storage device as its primary storage device and another number of fragments that has said particular storage device as its replica storage device
CN106126673A (zh) * 2016-06-29 2016-11-16 上海浦东发展银行股份有限公司信用卡中心 一种基于Redis和HBase的分锁方法
US11563695B2 (en) 2016-08-29 2023-01-24 Cisco Technology, Inc. Queue protection using a shared global memory reserve
CN107885488B (zh) 2016-09-29 2021-06-01 微软技术许可有限责任公司 意图和具有意图的锁
US10545914B2 (en) 2017-01-17 2020-01-28 Cisco Technology, Inc. Distributed object storage
US10243823B1 (en) 2017-02-24 2019-03-26 Cisco Technology, Inc. Techniques for using frame deep loopback capabilities for extended link diagnostics in fibre channel storage area networks
US10713203B2 (en) 2017-02-28 2020-07-14 Cisco Technology, Inc. Dynamic partition of PCIe disk arrays based on software configuration / policy distribution
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
CN109213739A (zh) * 2017-06-29 2019-01-15 上海共联通信信息发展有限公司 一种共享文件的信息处理方法
US10303534B2 (en) 2017-07-20 2019-05-28 Cisco Technology, Inc. System and method for self-healing of application centric infrastructure fabric memory
US10404596B2 (en) 2017-10-03 2019-09-03 Cisco Technology, Inc. Dynamic route profile storage in a hardware trie routing table
US10942666B2 (en) 2017-10-13 2021-03-09 Cisco Technology, Inc. Using network device replication in distributed storage clusters
RU2677494C1 (ru) * 2017-12-04 2019-01-17 федеральное государственное автономное образовательное учреждение высшего образования "Российский государственный университет нефти и газа (национальный исследовательский университет) имени И.М. Губкина" Кинетический ингибитор гидратообразования
US11227282B2 (en) 2018-08-20 2022-01-18 Probloch LLC Time-bounded activity chains with multiple authenticated agent participation bound by distributed single-source-of-truth networks that can enforce automated value transfer
JP2020052566A (ja) * 2018-09-25 2020-04-02 キヤノン株式会社 情報処理装置およびプログラム
JP2020052561A (ja) * 2018-09-25 2020-04-02 キヤノン株式会社 消耗品等の自動発注サービスが利用可能な装置、その制御方法、およびプログラム
US11163892B2 (en) * 2019-01-09 2021-11-02 International Business Machines Corporation Buffering data until encrypted destination is unlocked
CN110008225A (zh) * 2019-03-19 2019-07-12 阿里巴巴集团控股有限公司 分布式事务的处理方法和装置
CN112905533B (zh) * 2021-02-05 2023-04-25 优车库网络科技发展(深圳)有限公司 文件提交的管理方法、装置、设备及存储介质

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6120148A (ja) * 1984-07-07 1986-01-28 Nec Corp フアイルの排他制御方式
US4751635A (en) * 1986-04-16 1988-06-14 Bell Communications Research, Inc. Distributed management support system for software managers
JPS6381523A (ja) * 1986-09-25 1988-04-12 Nec Corp 共有デイスク装置の排他制御方式
US5175852A (en) * 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
JPS63305438A (ja) * 1987-06-05 1988-12-13 Nec Corp 複数ホストコンピュ−タ間のファイル共有排他制御方式
JP2685530B2 (ja) * 1988-09-14 1997-12-03 株式会社日立製作所 共用データの管理方法
EP0394173A3 (de) * 1989-04-17 1993-10-27 International Business Machines Corporation Hochparallelverwalter von offenen Dateien
JPH039443A (ja) * 1989-06-07 1991-01-17 Hitachi Ltd データセット管理方式
DE69031028T2 (de) * 1990-02-26 1997-11-20 Oracle Corp System zum physikalischen Entwurf von Datenbanken
US5226143A (en) * 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
US5459862A (en) * 1990-06-14 1995-10-17 Sunquest Informaion Systems, Inc. Network concurrency control for autonomous databases featuring independent lock release and lock ownership transfer
EP0465019B1 (de) * 1990-06-29 1997-05-14 Oracle Corporation Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung
JPH04148363A (ja) * 1990-10-11 1992-05-21 Toshiba Corp マルチコンピュータシステム
JP2586219B2 (ja) * 1990-12-20 1997-02-26 日本電気株式会社 高速媒体優先解放型排他方式
US5261094A (en) * 1991-04-08 1993-11-09 International Business Machines Corporation Asynchronous replication of data changes by distributed update requests
US5983004A (en) * 1991-09-20 1999-11-09 Shaw; Venson M. Computer, memory, telephone, communications, and transportation system and methods
JPH05113894A (ja) * 1991-10-23 1993-05-07 Nec Corp 仮想計算機システムにおけるフアイル資源管理方式
US5386525A (en) * 1991-10-29 1995-01-31 Pacific Bell System for providing application programs with direct addressability into a shared dataspace
US5499367A (en) * 1991-11-15 1996-03-12 Oracle Corporation System for database integrity with multiple logs assigned to client subsets
JPH0619771A (ja) * 1992-04-20 1994-01-28 Internatl Business Mach Corp <Ibm> 異種のクライアントによる共用ファイルのファイル管理機構
US5404510A (en) * 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
JP3309425B2 (ja) * 1992-05-22 2002-07-29 松下電器産業株式会社 キャッシュ制御装置
CA2137464C (en) * 1992-06-12 2001-07-03 Ronny P. De Bruijn Secure front end communications system and method for process control computers
KR100302223B1 (ko) * 1992-06-12 2001-11-22 그래햄 이. 테일러 프로세스제어컴퓨터용비밀인터페이스및그데이터의전송방법
US5386559A (en) * 1992-07-16 1995-01-31 International Business Machines Corporation Variant domains and variant maps in a versioned database management system
JPH0695859A (ja) * 1992-09-09 1994-04-08 Fujitsu Ltd ソフトウェア資産管理方式
US5469575A (en) * 1992-10-16 1995-11-21 International Business Machines Corporation Determining a winner of a race in a data processing system
US5463754A (en) * 1992-10-30 1995-10-31 International Business Machines Corporation Shared direct access storage device for fixed block architecture devices
US5485607A (en) * 1993-02-05 1996-01-16 Digital Equipment Corporation Concurrency-control method and apparatus in a database management system utilizing key-valued locking
CA2166420C (en) * 1993-07-01 2006-03-28 James R. Woodhill System and method for distributed storage management on networked computer systems
GB2284494B (en) * 1993-11-26 1998-09-09 Hitachi Ltd Distributed shared memory management system
US5560005A (en) * 1994-02-25 1996-09-24 Actamed Corp. Methods and systems for object-based relational distributed databases
WO1995027359A2 (en) * 1994-04-01 1995-10-12 Ericsson Telefon Ab L M Mobility in telecommunication networks
JP3385091B2 (ja) * 1994-05-13 2003-03-10 三菱電機株式会社 計算機間の排他制御装置
US5638518A (en) * 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in fibre channel
JP3499938B2 (ja) * 1994-12-15 2004-02-23 富士通株式会社 異種プロトコルの複数システム間の入出力装置共用システム
US5634122A (en) * 1994-12-30 1997-05-27 International Business Machines Corporation System and method for multi-level token management for distributed file systems
US5623670A (en) * 1995-02-17 1997-04-22 Lucent Technologies Inc. Method and apparatus for crash safe enforcement of mutually exclusive access to shared resources in a multitasking computer system
US5787175A (en) * 1995-10-23 1998-07-28 Novell, Inc. Method and apparatus for collaborative document control
US5826268A (en) * 1996-04-12 1998-10-20 Ontos, Inc. Secure multilevel object oriented database management system
US5734922A (en) * 1996-07-01 1998-03-31 Sun Microsystems, Inc. Multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5875327A (en) * 1997-02-18 1999-02-23 International Business Machines Corporation Hierarchy of preferences and preference groups

Also Published As

Publication number Publication date
WO1998006036A1 (en) 1998-02-12
AU3889497A (en) 1998-02-25
US6076105A (en) 2000-06-13
ATE262196T1 (de) 2004-04-15
EP0972247A4 (de) 2000-01-19
JP2000515657A (ja) 2000-11-21
EP0972247B1 (de) 2004-03-17
US5999930A (en) 1999-12-07
CN1227644A (zh) 1999-09-01
EP0972247A1 (de) 2000-01-19
CA2262450A1 (en) 1998-02-12
US6009427A (en) 1999-12-28
DE69728176D1 (de) 2004-04-22

Similar Documents

Publication Publication Date Title
DE69728176T2 (de) Verfahren und gerät das verteilte steuerung von gemeinsamen betriebsmitteln erlaubt
DE69929095T2 (de) Verwaltung eines durch eine Mehrzahl von Knoten benutzten Betriebsmittels
DE69722962T2 (de) Strukturiertes datenspeichersystem mit global adressierbarem speicher
DE60125989T2 (de) Verfahren und apparat für eine verbesserte dateiverwaltung
EP1456742B1 (de) Verfahren, gerätesystem und computerprogramm zum speichern und abrufen von druckdaten in einem netzwerk
DE60213419T2 (de) Client-server-modell zur synchronisation von dateien
DE69838367T2 (de) Paralleles Dateiensystem und Verfahren zur unabhängigen Aufzeichnung von Metadaten
DE69938077T2 (de) Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver
DE60133648T2 (de) System und verfahren zum führen von laufzeitdaten in einem server-netzwerk
DE69936818T2 (de) Protokoll zum Austausch von Konfigurationsdaten in einem Computernetzwerk
DE60315558T2 (de) Verteiltes Rechnersystem für Vorrichtungsresourcen basierend auf Identität
DE69719564T2 (de) Dynamischer dateiverzeichnisdienst
DE69531513T2 (de) Vervielfältigungssystem
DE69823078T2 (de) System und Verfahren zur Verwaltung von Arbeitsgruppendruckern
DE69829253T2 (de) Verfahren zum Umsetzen vom Dateiformat und Dateisystem, Informationsverarbeitungssystem und elektronisches Handelsverkehrssystem mit diesem Verfahren
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE60009489T2 (de) Vorrichtung und verfahren zum verwalten der verteilung von inhalten zu einem gerät
DE69733305T2 (de) System/Verfahren zur wirkungsvollen Übermittlung von Datenströmen in einem Multimediasystem
DE60019839T2 (de) Verfahren zum Austauch von Daten zwischen einer Javasystemdatenbank und einem LDAP Verzeichnis
DE10393771T5 (de) Schnelle Datensicherungsspeicherung und schnelle Datenwiederherstellung (FBSRD)
US7610304B2 (en) Techniques for performing file operations involving a link at a database management system
DE10148357A1 (de) System und Verfahren zur gemeinsamen Nutzung digitaler Literaturwerke mit einem Schutz gegen illegale Kopien durch Kommunikationsnetze
DE10126752A1 (de) Virusprüfung und -meldung für Suchergebnisse von Computerdatenbanken
DE10052313A1 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
DE102021125179A1 (de) Erzeugen und bereitstellen von containerabbildern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee