DE60125599T2 - Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien - Google Patents

Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien Download PDF

Info

Publication number
DE60125599T2
DE60125599T2 DE60125599T DE60125599T DE60125599T2 DE 60125599 T2 DE60125599 T2 DE 60125599T2 DE 60125599 T DE60125599 T DE 60125599T DE 60125599 T DE60125599 T DE 60125599T DE 60125599 T2 DE60125599 T2 DE 60125599T2
Authority
DE
Germany
Prior art keywords
file
file system
request
remote
webdav
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60125599T
Other languages
English (en)
Other versions
DE60125599D1 (de
Inventor
Bertrand Palo Alto SERLET
Jr. Avadis Los Altos Hills TEVANIAN
H. Clark Mountain View WARNER
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.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of DE60125599D1 publication Critical patent/DE60125599D1/de
Application granted granted Critical
Publication of DE60125599T2 publication Critical patent/DE60125599T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Description

  • HINTERGRUND
  • Gebiet der Erfindung
  • Diese Erfindung betrifft das Gebiet von vernetzten Dateisystemen und Personal-Computern. Insbesondere betrifft die Erfindung ein System und ein Verfahren, die es Benutzern von Personal-Computern mit einem beliebigen Programm auf dem lokalen Personal-Computer ermöglichen, über ein Netzwerk auf Dateien zuzugreifen, die auf einem entfernten Computersystem angeordnet sind.
  • Hintergrund
  • Üblicherweise wurden Computer bei der Arbeit verwendet und konnten in einem Unternehmen über ein lokales Netzwerk (LAN) verbunden sein. Das LAN des Unternehmens konnte mit anderen Büros oder Partnern des Unternehmens über ein Fernnetzwerk (WAN) verbunden sein, oder Computer des Unternehmens konnten direkt mit einem WAN verbunden sein. Solche Verbindungen ermöglichten es Unternehmen, Daten einfach auszutauschen, indem über private Netzwerke Daten auf Remote-Computern gespeichert und von diesen abgerufen wurden. Ferner wird ein über ein Netzwerk verfügbarer entfernter Plattenspeicher verwendet, um Daten von lokalen Computern zu sichern, wodurch lokaler Plattenspeicher freigegeben wird.
  • Das Internet ist ein öffentlich zugängliches globales Fernnetzwerk. Das Internet und Personal-Computer sind in der modernen Gesellschaft omnipräsent geworden. Menschen greifen über ihre Personal-Computer aus beliebigen Gründen regelmäßig auf Web-Seiten zu. Obgleich das Internet in verschiedenen Formen für viele Jahre existiert hat, wurde das Internet erst durch die Einführung des World Wide Web als ein Massenkommunikationsmittel populär. Das World Wide Web ist aus der Sicht des Benutzers, ein einfacher Weg, einen Remote-Computer zu identifizieren, mit dem Remote-Computer eine Verbindung herzustellen und auf dem Remote-Computer gespeicherte Informationen zu betrachten. Jedoch haben bis vor kurzem Benutzer von Personal-Computern das Internet und Web-Seiten nicht für eine persönliche Datenspeicherung und -abrufung verwendet.
  • Bei der Benutzung des Internets sind es die verschiedenen Kommunikationsprotokolle, die das Internet, versteckt vor dem Benutzer, funktionieren lassen. Verschiedene Komitees und Adhoc-Gruppen, bekannt als Workgroups, koordinieren und steuern das Internet. Die Internet Engineering Task Force (IETF) ist der Protokollkonstruier- und -entwicklungsarm des Internets. Workgroups unter dem IETF bestimmen die Regeln und Protokolle für die grundlegende Funktionsweise des Internets und veröffentlichen diese als üblicherweise als RFCs bezeichnete Diskussionsschriften. Jede Workgroup macht ihre RFCs über das Internet auf verschiedenen Web-Seiten verfügbar. Eine zentrale Stelle für den Erhalt der unten genannten RFCs ist die IETF-Web-Seite, www.ietf.org (von der IETF wird keine Mail-Adresse oder geographischer Ort angegeben). Darüber hinaus wurde eine das World Wide Web Konsortium (W3C) genannte Organisation gegründet, um die Arbeit der IETF fortzusetzen, obgleich die IETF und das W3C nebeneinander existieren (siehe www.w3c.org; mit dem W3C kann Kontakt aufgenommen werden über Massachusetts Institute of Technology, Laboratory for Computer Science, 545 Technology Square, Cambridge, Massachusetts 02139).
  • Web-Seiten werden durch eine Textbeschreibung oder einen Namen, der als Uniform Resource Locator (URL) bezeichnet wird, spezifiziert, die bzw. der nun von dem Begriff Uniform Resource Identifier (URI) umfaßt ist (siehe Uniform Resource Identifieres (URI): Generic Syntax, RFC 2396, August 1998, Draft Standard). Informationen werden über das World Wide Web mit dem Übertragungssteuerungsprotokoll/Internetprotokoll, welches üblicherweise als TCP/IP bezeichnet wird, kommuniziert (für weitere Informationen siehe A TCP/IP Tutorial, RFC 1180, Januar 1991). Ein auf der Grundlage von TCP/IP laufendes Anwendungs-Level-Protokoll, welches einen Zugriff auf Remote-Computer über das Internet durch Spezifizieren einer URI ermöglicht, ist das Hyptertext Transfer Protocol (HTTP, siehe HTTP/1.1, RFC 2616, Juni 1999, Draft Standard). Es ist die weit verbreitete Akzeptanz und Verwendung von HTTP, die das World Wide Web, wie wir es kennen, möglich gemacht haben. Erweiterungen zu HTTP für ein Distributed Authoring and Versioning über das World Wide Web, bezeichnet als WebDAV, beginnen verbreitet verwendet zu werden (siehe WebDAV, RFC 2518, Februar 1999, Proposed Standard). Die WebDAV-Erweiterungen zu HTTP erfordern, dass eine Kommunikation gemäß dem WebDAV-Protokoll entsprechend der Extensible Markup Language (XML) formatiert ist (siehe XML 1.0, verfügbar über www.w3.org/TR/REC-xml). WebDAV ermöglicht es Menschen, die WebDAV unterstützende Programme verwenden, auf Dateien zuzugreifen, die auf einem WebDAV-fähigen HTTP-Server gespeichert sind und üblicherweise als Web-Seiten bezeichnet werden. WebDAV stellt ein Lesen, Schreiben (d.h. Erzeugen), teilweises Lesen, teilweises Schreiben, Sperren, Property-Änderungen und andere Zugriffe auf entfernt gespeicherte Dateien bereit.
  • Verschiedene Unternehmen haben begonnen, den Internet-Nutzern freien Speicherplatz auf Remote-Servern anzubieten. Diese Remote-Server sind Web-Seiten, die mit einem WebDAV-fähigen HTTP laufen, und welche zusätzliche Software zum Bereitstellen einer Web-basierten Schnittstelle für den Plattenspeicher, der auf dem Remote-Server verfügbar gemacht wird, aufweisen. Unternehmen, wie beispielsweise Xythos Software, Inc. aus Redwood City, Kalifornien, die eine Web-Seite namens Sharemation (www.sharemation.com) bereitstellt, My Docs Online! Inc. in Naples, Florida (www.MyDocsOnline.com) und Driveway Corporation aus San Francisco, Kalifornien (www.driveway.com), ermöglichen es Benutzern von Personal-Computern, ein Verzeichnis auf der Web-Seite des Unternehmens zu erzeugen und Dateien für eine sichere persönliche Verwendung zu speichern. Diese Unternehmen stellen jedem Benutzer eines Personal-Computers einen Zugriff auf eine Remote-Speichereinrichtung bereit, und stellen eine Einrichtung bereit, die es Benutzern von Personal-Computern ermöglicht, über den Remote-Computer Dateien zu schreiben und abzurufen, wodurch die gleichen Vorzüge bereitgestellt werden, die historisch gesehen lediglich für Unternehmen oder Betriebe über private Netzwerke zugänglich waren.
  • Jedoch stellen diese Unternehmen für öffentlich zugängliche Speicherung keinen nahtlosen Weg für einen Benutzer eines Personal-Computers bereit, mit sämtlichen Anwendungsprogrammen auf dessen Personal-Computern auf entfernt gespeicherte Daten zuzugreifen. Die Unternehmen ermöglichen es einem Benutzer lediglich, Dateien mittels "drag and drop" oder anderweitig zu speichern, oder von der Web-Seite abzurufen, wenn der Benutzer außerhalb des Anwendungsprogrammes ist. Einige dieser Web-Seiten für öffentlich zugängliche entfernte Speicherung ermöglichen über Erweiterungen eines Anwendungsprogrammes einen Zugriff mit einem speziellen Anwendungsprogramm, oder erfordern, dass die Anwendung zusammen mit einem Internet-Web-Browser (wie beispielsweise Internet Explorer 5.0 von Microsoft Corporation aus Redmond, Washington) betrieben werden. Obwohl diese Unternehmen für Internet-Nutzer eine Fernspeicherung bereitstellen, wird ein einfacher Zugriff für sämtliche Anwendungsprogramme auf einem Personal-Computer nicht bereitgestellt.
  • Weitere Beispiele bekannter Techniken sind in WO 97/46956 und EP 1 003 110 beschrieben.
  • KURZE ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß der vorliegenden Erfindung wird bereitgestellt ein System mit einer Mehrzahl von mit dem Internet gekoppelten Web-Servern, auf denen das Distributed Authoring and Versioning-fähige Hypertext Transfer Protocol (HTTP), WebDAV, läuft, und mit einer Mehrzahl von mit dem Internet gekoppelten Personal-Computern, die ein Dateisystem-Plugin aufweisen, das mit einem Dateisystem eines Betriebssystems kommunikativ gekoppelt ist, das von einer Anwendung empfangene Dateisystemanfragen, die auf einem der Mehrzahl von Web-Servern gespeicherte Dateisysteme betreffen, an ein Netzwerkzugriff-Anwendungsprogramm auf dem Personal-Computer weiterleitet, das die Dateisystemanfragen jeweils als eine WebDAV-Anfrage an einen geeigneten der Mehrzahl von Web-Servern sendet, wobei die Dateisystemanfragen einen Dateinamen einer Datei umfassen, auf die zugegriffen wird, und wobei, wenn der Dateiname ein oder mehrere Zeichen enthält, die von dem besagten einen der Mehrzahl von Web-Servern nicht erkannt werden, das Netzwerkzugriff-Anwendungsprogramm die nicht erkannten Zeichen des Dateinamens in eine oder mehrere, von dem besagten einen der Mehrzahl von Web-Servern erkennbare Escape-Sequenzen umwandelt, bevor die umgewandelten Dateisystemanfragen an den besagten einen der Mehrzahl von Web-Servern übermittelt werden, wobei die eine oder die mehreren Escape-Sequenzen das eine oder die mehreren nicht erkannten Zeichen darstellen, wobei die Dateisystemanfragen von dem Dateisystem-Plugin ohne Kenntnis von der Anwendung weitergeleitet werden, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind.
  • Ferner wird gemäß der vorliegenden Erfindung bereitgestellt ein Verfahren, aufweisend:
    Empfangen einer ein entferntes Dateisystem betreffenden Dateisystemanfrage von einem Dateisystem-Plugin, das kommunikativ mit einem Dateisystem eines Betriebssystems gekoppelt ist, wobei das Dateisystem-Plugin die Dateisystemanfrage von einer Anwendung als eine reguläre Dateisystemanfrage in einem anderen Format als dem Distributed Authoring And Versioning-Protokoll, WebDAV, empfängt,
    Erzeugen einer Anfrage im WebDAV-Format in Reaktion auf die Dateisystemanfrage,
    Umwandeln eines oder mehrerer Zeichen der Dateisystemanfrage, die von einem WebDAV-fähigen HTTP-Server nicht erkannt werden, in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind,
    Weiterleiten der Anfrage im WebDAV-Format an den entsprechenden WebDAV-fähigen HTTP-Server ohne Kenntnis der Anwendung, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind,
    Empfangen einer Antwort von dem WebDAV-fähigen HTTP-Server, und
    Übermitteln von in der Antwort enthaltenen Informationen an das Dateisystem-Plugin, wobei die Informationen als eine reguläre Systemantwort präsentiert werden.
  • Ferner wird gemäß der vorliegenden Erfindung ein Maschinen-lesbares Medium bereitgestellt, mit darauf gespeicherten Befehlen, welche bei Ausführung durch einen Prozessor die Maschine veranlassen, Operationen auszuführen:
    Empfangen einer ein entferntes Dateisystem betreffenden Dateisystemanfrage von einem Dateisystem-Plugin, das kommunikativ mit einem Dateisystem eines Betriebssystems gekoppelt ist, wobei das Dateisystem-Plugin die Dateisystemanfrage von einer Anwendung als eine reguläre Dateisystemanfrage in einem anderen Format als dem Distributed Authoring And Versioning-Protokoll, WebDAV, empfängt,
    Erzeugen einer Anfrage im WebDAV-Format in Reaktion auf die Dateisystemanfrage,
    Umwandeln eines oder mehrerer Zeichen der Dateisystemanfrage, die von einem WebDAV-fähigen HTTP-Server nicht erkannt werden, in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind,
    Weiterleiten der Anfrage im WebDAV-Format an den entsprechenden WebDAV-fähigen HTTP-Server ohne Kenntnis der Anwendung, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind,
    Empfangen einer Antwort von dem WebDAV-fähigen HTTP-Server, und
    Übermitteln von in der Antwort enthaltenen Informationen an das Dateisystem-Plugin, wobei die Informationen als eine reguläre Systemantwort präsentiert werden.
  • Ebenso wird gemäß der vorliegenden Erfindung ein Computersystem bereitgestellt, aufweisend:
    zumindest ein Anwendungsprogramm,
    ein eine Dateisystemschnittstelle bereitstellendes Betriebssystem,
    ein mit der Dateisystemschnittstelle gekoppeltes Dateisystem-Plugin zum Empfangen einer Anfrage für eine entfernt gespeicherte Datei von der Dateisystemschnittstelle des Betriebssystems, die von dem Anwendungsprogramm initiiert wird, und zum Weiterleiten der Anfrage für die entfernt gespeicherte Datei,
    ein Netzwerkzugriff-Anwendungsprogramm zum Empfangen der Anfrage für die entfernt gespeicherte Datei von dem Dateisystem-Plugin, zum Übersetzen von in der Anfrage spezifizierten Dateinameinformationen von einer lokalen Dateisystemsyntax in eine Syntax eines entfernten Servers, und zum Verpacken der Anfrage gemäß eines Distributed Authoring and Versioning-Protokolls, WebDAV, zum Zugreifen auf eine entfernte Datei eines benutzerspezifizierten entfernten WebDAV-fähigen HTTP-Servers über das Internet,
    wobei die Anfrage einen Dateinamen einer Datei umfasst, auf die zugegriffen wird, und wobei, wenn der Dateiname ein oder mehrere Zeichen umfasst, die von dem WebDAV-fähigen HTTP-Server nicht erkannt werden, das Netzwerkzugriff-Anwendungsprogramm die nicht erkannten Zeichen des Dateinamens in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind, umwandelt vor einer Übermittlung der konvertierten Dateisystemanfragen an den WebDAV-fähigen HTTP-Server, wobei die eine oder die mehreren Escape-Sequenzen das eine oder die mehreren nicht erkannten Zeichen darstellen,
    wobei die Dateisystemanfragen von dem Dateisystem-Plugin ohne Kenntnis von der Anwendung weitergeleitet werden, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein Computersystem und eine Netzwerkumgebung dar, bei welchem bzw. welcher ein Ausführungsbeispiel des Verfahrens und des Systems des Seamless-Dateisystems ausgeführt ist.
  • 2 zeigt die Software-Architektur eines Ausführungsbeispiels des Seamless-Dateisystems.
  • 3 zeigt den Ablauf von von einem Personal-Computer-Benutzer vorgenommenen Handlungen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems.
  • 4A zeigt den Ablauf von von einem Seamless-Dateisystem durchgeführten Vorgängen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems.
  • 4B zeigt den Ablauf von von einem Seamless-Dateisystem durchgeführten Vorgängen gemäß einem Ausführungsbeispiel des ein Caching umfassenden Seamless-Dateisystemverfahrens und -systems.
  • 5 zeigt den Ablauf von von einer Plugin-Erweiterung eines Seamless-Dateisystems durchgeführten Vorgängen bei einem Betriebssystem gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems.
  • 6 zeigt den Ablauf von von einem Seamless-Dateisystem-Netzwerkzugriff-Anwendungsprogramm durchgeführten Vorgängen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems.
  • DETAILLIERTE BESCHREIBUNG
  • Diese Erfindung stellt ein System und ein Verfahren bereit, mit welchem Benutzer mit Programmen auf einem Computer nahtlos auf entfernt gespeicherte Dateien auf anderen Computern zugreifen können, auf denen ein bekanntes Dateizugriffprotokoll läuft. Als solches wird das Verfahren und das System als das Seamless-Dateisystem oder SFS bezeichnet. Das Ziel des SFS ist es, von sämtlichen Personal-Computer-Dateisystem-Clients einen nahtlosen Zugriff auf entfernt gespeicherte Dokumente zu ermöglichen. Es ermöglicht es, dass sämtliche auf einem Personal-Computer laufende Programme auf entfernte Dateien zugreifen können, und zwar so einfach und in der gleichen Weise, wie sie auch auf Dateien in dem Personal-Computer-Dateisystem zugreifen können, ohne dass irgendwelche Änderungen an dem Verfahren des Programms zum Kommunizieren mit dem bestehenden Dateisystem des Computers erforderlich sind. Bei einem Ausführungsbeispiel ermöglicht es SFS Benutzern von Personal-Computern nahtlos unter Verwendung der Eigenschaften von WebDAV-fähigen HTTP über das Internet auf Dateien zuzugreifen.
  • A. Die Umgebung, in welcher ein Ausführungsbeispiel des SFS läuft
  • 1 zeigt ein Computersystem und eine Netzwerkumgebung, bei welchem bzw. welcher ein Ausführungsbeispiel des Verfahrens und des Systems des Seamless-Dateisystems ausgeführt ist. SFS läuft auf einem Personal-Computer 10. Der Personal-Computer 10 kann eine beliebige Recheneinrichtung sein, die Software-Programme ausführen kann und auf das Internet zugreifen kann, einschließlich, aber nicht begrenzt auf Mobiltelefone, persönliche digitale Assistenten, Desktop-Personal-Computer, tragbare Computer, Computer-Workstations, etc. Der Personal-Computer 10 weist einen Prozessor 12 zum Ausführen von Software-Programmen auf. Der Prozessor 12 kann ein beliebiger Computer-Prozessor sein. Beim Ausführen von Programmen verwendet der Prozessor einen Speicher 14, und der Speicher 14 kann eine beliebige Form von flüchtigem Speicher mit wahlfreiem Zugriff (RAM) sein. Informationen werden von einer lokalen Speichereinrichtung 16, die über eine Steuereinrichtung 18 mit dem Personal-Computer gekoppelt ist, gelesen und auf diese geschrieben. Die Speichereinrichtung 16 kann eine Einrichtung sein, die ein maschinen-lesbares Medium, wie beispielsweise ein beschreibbares Plattenlaufwerk einschließlich beispielsweise einer Festplatte oder einer lesbaren und schreibbaren Kompakt-Disk (CDRW), und andere Einrichtungen, wie beispielsweise Bandleser/-schreiber und Speicherkartenleser/-schreiber umfaßt. Der Prozessor kann Befehle an die Anzeigesteuereinrichtung 20 zum Anzeigen von Bildern auf einer Anzeigeeinrichtung 22 kommunizieren. Die Anzeigesteuereinrichtung 20 kann eine beliebige, dem Fachmann bekannte Anzeigesteuereinrichtung sein, und die Anzeigeeinrichtung 22 kann ein beliebiger, dem Fachmann bekannter Anzeigemonitor sein, einschließlich aber nicht beschränkt auf einen Kathodenstrahlröhre(CRT)-Anzeigemonitor oder Dünnschichttranssistor(TFT)-Anzeigemonitor. Ein Benutzer greift auf den Personal-Computer 10 über eine belie bige, dem Fachmann bekannte Computer-Eingabeeinrichtung, wie beispielsweise eine Tastatur 24 und eine Maus 26, zu, welche über eine Eingabe/Ausgabe(I/O)-Steuereinrichtung 28 mit dem Computer gekoppelt ist.
  • Um auf nicht auf einer lokalen Speichereinrichtung 16 gespeicherte Informationen zuzugreifen, weist der Computer 10 eine Netzwerkzugriffeinheit 30 auf, welche es dem Personal-Computer ermöglicht, über ein Netzwerk, wie beispielsweise das Internet 32, mit einem Remote-Computer 34 zu kommunizieren und auf auf einer Remote-Speichereinrichtung 36 gespeicherte Informationen zuzugreifen. Die Netzwerkzugriffeinheit 30 kann ein Modem oder eine beliebige andere Einrichtung zum Verbinden mit einem Netzwerk, und zwar entweder direkt oder über eine Telefonwählverbindung, sein. Der Remote-Computer 34 kann eine beliebige Art von dem Fachmann bekanntem Computer sein, einschließlich aber nicht beschränkt auf Personal-Computer und Server. Die Remote-Speichereinrichtung 36 kann ein beliebiges, dem Fachmann bekanntes lesbares Speichermedium sein, wie beispielsweise Festplattenspeicher oder eine Matrix von Festplattenspeichern. Obwohl lediglich ein Personal-Computer und ein Remote-Computer gezeigt sind, können mehrere Personal-Computer und mehrere Remote-Computer mit dem Internet 32 verbunden sein. Der Prozessor 12, der Speicher 14, die lokale Speichereinrichtung 16, die Anzeigesteuereinrichtung 20, die I/O-Steuereinrichtung 28 und die Netzwerkzugriffeinheit 30 sind über einen Bus 11 miteinander gekoppelt und kommunizieren über diesen miteinander. Der Bus 11 kann ein beliebiger, dem Fachmann bekannter Bus sein. Obwohl lediglich ein Bus gezeigt ist, können in dem Personal-Computer 10 mehrere Busse verwendet sein. Ferner können andere, dem Fachmann bekannte (nicht gezeigte) Komponenten und Steuereinrichtungen oder mehrere der gezeigten Komponenten und Steuereinrichtungen in dem Personal-Computer 10 enthalten sein.
  • B. Die Software-Architektur eines Ausführungsbeispiels eines Seamless-Dateisystems
  • 2 zeigt die Software-Architektur eines Ausführungsbeispiels des Seamless-Dateisystems. Bei einem Ausführungsbeispiel umfasst der Personal-Computer 10, auf dem das SFS läuft, eine als SFS-Plugin 50 bezeichnete Erweiterung des Betriebssystems und ein als das SFS-Netzwerkzugriff-Anwendungsprogramm (oder das SFS-Netzwerkzugriffprogramm) 52 bezeichnetes Anwendungs-Level-Programm. Über eine Dateisystemschnittstelle 56 empfängt das SFS-Plugin 50 Anfragen von einem Anwendungsprogramm 54, welche das Anwendungsprogramm 54 an die Dateisystemschnittstelle 56 des Personal-Computers richtet, welche üblicherweise als eine Anwendungsprogrammschnittstelle (API) bezeichnet wird. Das SFS-Plugin 50 stellt ein Dateisystemaufruf-Parsing bereit und kommuniziert, zusätzlich zur Dateisystemschnittstelle 56 des Betriebssystems 48, mit dem SFS-Netzwerkzugriffprogramm 52. Bei einem Ausführungsbeispiel findet die Kommunikation zwischen dem SFS-Plugin 50 und dem SFS-Netzwerkzugriffprogramm 52 über lokale Sockets statt.
  • Das SFS-Netzwerkzugriff-Anwendungsprogramm 52 ist verantwortlich für ein Erstellen von Netzwerkverbindungen und eine Protokollkommunikation mit Remote-Computern, wie beispielsweise dem Remote-Computer 34, auf dem ein bekanntes Anwendungs-Level-Internetprotokoll läuft. Bei einem Ausführungsbeispiel ist das bekannte Protokoll WebDAV-fähiges HTTP. Bei einem solchen Ausführungsbeispiel ist das SFS-Netzwerkzugriffprogramm 52 ein WebDAV-Client, der mit der TCP/IP-Transportschicht 58 des Betriebssystems 48 über ein Netzwerk, wie beispielsweise das Internet 32, mit WebDAV-fähigen HTTP-Servern, wie beispielsweise dem Remote-Computer 34, kommuniziert. Bei solch einem Ausführungsbeispiel umfasst der Remote-Computer 34 eine WebDAV-erweiterte 60 HTTP-Anwendungs-Level-Serversoftware 62, welche über das Internet 32 eine World Wide Web-Kommunikation und einen Dateizugriff bereitstellt. Bei solch einem Ausführungsbeispiel kommuniziert der Remote-Computer 34 über eine TCP/IP-Transportschicht 64, welche Teil eines Betriebssystems 66 ist.
  • C. Verwendung eines Seamless-Dateisystems
  • 3 zeigt den Ablauf von von einem Personal-Computer-Benutzer vorgenommenen Handlungen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems. Nachdem ein Benutzer einen Personal-Computer startet, wie es in Block 300 gezeigt ist, stellt der Benutzer eine Verbindung mit dem Internet her, und zwar gemäß einem dem Fachmann bekannten Verfahren, wie es in Block 302 gezeigt ist. Wenn der Benutzer eine "always on"-Internetverbindung hat, kann dieser Schritt übersprungen werden. Der Benutzer kann dann ein SFS-Startprogramm ausführen, wie es in Block 304 gezeigt ist, um den Remote-Server zu mounten, so dass er erscheint, als wäre er ein lokales Laufwerk. Der Benutzer kann das SFS-Startprogramm gemäß einem beliebigen, dem Fachmann bekannten Verfahren ausführen, einschließlich, aber nicht begrenzt auf Pull-Down-Menüs oder Desktop-Icons. Das SFS-Startprogramm verlangt, dass der Benutzer ein zu einer Liste von verfügbaren Laufwerken hinzuzufügendes Remote-Dateisystem spezifiziert, wie es in Block 306 gezeigt ist. Das SFS-Startprogramm kann bei einem Ausführungsbeispiel von dem Benutzer eine Texteingabe des Namens der Web-Seite, der URI, auf welcher die Remote-Dateien des Benutzers liegen, erhalten. Bei einem anderen Ausführungsbeispiel verlangt das SFS-Startprogramm von dem Benutzer, einen vollständigen Pfad oder ein Verzeichnis auf einer Remote-Web-Seite, die einen URI umfasst, zu spezifizieren. In noch einem anderen Ausführungsbeispiel kann das SFS-Startprogramm ferner eine Eingabe aufnehmen, die private Netzwerkdatei-Server spezifiziert. Wenn der private Netzwerk-Server kein WebDAV-fähiger HTTP-Server ist, werden bei diesem Ausführungsbeispiel die Informationen an das Betriebssystem weitergegeben, um gemäß bekannten Verfahren bearbeitet zu werden. Bei einem Ausführungsbeispiel kann das SFS-Startprogramm nach Empfang eines eine Remote-Web-Seite spezifizierenden URI den Benutzer auffordern, den Namen des Verzeichnisses der Web-Seite einzugeben, in welchem sich die entfernt gespeicherten Dateien befinden. Bei einem anderem Ausführungsbeispiel kann das SFS-Startprogramm den Benutzer graphisch auffordern, ein Remote-Dateisystem und/oder -Verzeichnis auszuwählen, indem auf ein graphisches Bild gezeigt und geklickt wird, und kann dann nach einem Passwort fragen.
  • Bei einem anderen Ausführungsbeispiel kann der Benutzer von dem SFS-Startprogramm ferner aufgefordert werden, das Remote-Dateisystem zu benennen. Dies wird durch dem Fachmann bekannte Verfahren erreicht, wie beispielsweise durch Aufforderung an den Benutzer, zur gleichen Zeit, zu der das SFS-Startprogramm eine URI anfragt, einen Textnamen zur Darstellung des Remote-Dateisystems einzugeben, oder als einen Schritt nachdem die URI bereitgestellt ist.
  • Bei einem Ausführungsbeispiel werden diese Informationen, nachdem der Benutzer den Namen des Remote-Dateisystem-Servers und des Remote-Dateisystem-Verzeichnisses angegeben hat, derart gespeichert, dass das Remote-Dateisystem automatisch gemountet wird, wann immer der Benutzer eine Verbindung mit dem Internet herstellt. Bei einem anderen Ausführungsbeispiel, bei welchem der Benutzer eine "always on"-Verbindung mit dem Internet hat, werden diese Informationen, nachdem der Benutzer den Namen des Remote-Dateisystem-Servers und, bei einigen Ausführungsbeispielen, des Remote-Dateisystem-Verzeichnisses angegeben hat, derart gespeichert, dass wann immer der Benutzer den Computer neu startet, das Remote-Dateisystem automatisch gemountet wird. Bei diesen Ausführungsbeispielen kann der Benutzer von dem SFS-Startprogramm gefragt werden, ob ein einen autorisierten Zugriff auf das Remote-Dateisystem bereitstellendes Passwort gespeichert werden soll, und bei zukünftigen Verbindungen mit dem Remote-Server nicht angefragt werden soll, ob immer nach dem Fasswort gefragt werden soll, wenn das Remote-Dateisystem gemountet und auf dieses zugegriffen werden soll. Bei einem anderen Ausführungsbeispiel kann ein Key Chain, wie beispielsweise der mit dem Mac OS® 9-Betriebssystem, verfügbar von Apple Computer, Inc. aus Cupertino, Kalifornien, bereitgestellte, zum Speichern von Passwörtern für mehrere Remote-Dateisysteme verwendet werden, so dass eine Bereitstellung eines einzigen Passwortes für den Key Chain Zugriff auf sämtliche der Passwörter auf dem Key Chain bereitstellt.
  • Nach dem Mounten des Remote-Dateisystems betreibt der Benutzer beliebige Programme, wie es in Block 308 gezeigt ist, und kann dann auf dem Computer beliebige Programme zum Zugreifen auf entfernt gespeicherte Dateien auf die gleichen Weise benutzen, als würde der Benutzer auf Dateien zugreift, die lokal gespeichert sind, wie es in Block 310 gezeigt ist. Auf das Remote-Dateisystem wird zugegriffen, als wäre es ein weiterer Festplattenspeicher in dem Computer des Benutzers. Bei einem Ausführungsbeispiel kann das SFS den Benutzer dann auffordern, ein Passwort zum Authentifizieren bereitzustellen, wenn ein Benutzer zum ersten Mal auf eine Remote-Datei zugreift.
  • D. Aktionen eines Seamless-Dateisystems
  • 4A zeigt den Ablauf von von einem Seamless-Dateisystem durchgeführten Aktionen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems. Ein Benutzer macht über ein Anwendungsprogramm, wie beispielsweise einen Wortprozessor, eine Dateisystemanfrage mit einem Pfadnamen und einer Datei, die sich auf einen WebDAV-fähigen HTTP-Server bezieht, wie es in Block 400 gezeigt ist. Da das SFS-Startprogramm bereits ausgeführt wurde, oder eine andere SFS-Initialisierung auftritt, leitet die Dateisystemschnittstelle der Anwendungsprogrammschnittstelle des Betriebssystems die Anfrage an das SFS-Plugin, wie es in Block 402 gezeigt ist. Anschließend bearbeitet das SFS-Plugin die Anfrage und sendet sie an das SFS-Netzwerkzugriffprogramm, wie es in Block 404 gezeigt ist. Bei einem Ausführungsbeispiel stellt das SFS-Plugin eine Socket-Verbindung mit dem SFS-Netzwerkzugriffprogramm her und sendet den Pfadnamen oder einen anderen Identifier mit den entsprechenden Parametern, sowie einen Anfragetyp über den Socket an das SFS-Netzwerkzugriffprogramm. Das SFS-Netzwerkzugriffprogramm bearbeitet die Anfrage und sendet sie an den entsprechenden WebDAV-fähigen HTTP-Server, um die angefragte Aktion zu erzielen, wie es in Block 406 gezeigt ist. Bei einem Ausführungsbeispiel bearbeitet das SFS-Netzwerkzugriffprogramm die Anfrage, indem der Anfragetyp untersucht wird, die Anfrage in das entsprechende WebDAV- oder HTTP-Format umformatiert wird und über das Internet mit dem entsprechenden WebDAV-fähigen HTTP-Server kommuniziert wird. Anfragte Aktionen umfassen beispielsweise Lösche eine Datei, Lese eine Datei, Bewege eine Datei zwischen Verzeichnissen auf dem Server, etc. Das SFS-Netzwerkzugriffprogramm empfängt dann eine Antwort von dem WebDAV/HTTP-Server, welche der Anfrage entsprechende Informationen enthält, wie es in Block 408 gezeigt ist. Die Antwort kann einen WebDAV/HTTP-Statuscode umfassen. Das SFS-Netzwerkzugriffprogramm bearbeitet dann die Antwort und gibt Statusinformationen, und in gewissen Fällen andere Informationen, an das SFS-Plugin zurück, und zwar bei einem Ausführungsbeispiel über einen Socket, wie es in Block 410 gezeigt ist. Das SFS-Plugin formatiert, wenn notwendig, die zurückgegebenen Informationen und sendet Status und zurückgegebene Informationen, wenn vorhanden, an das anfragende Benutzeranwendungsprogramm, und zwar über die Dateisystemschnittstelle des Betriebssystems, wie es in Block 412 gezeigt ist. Bei einem Ausführungsbeispiel kann das SFS-Plugin einen WebDAV/HTTP-Statuscode als einen lokalen Systemfehlercode umformatieren.
  • 4B zeigt den Ablauf von von einem Seamless-Dateisystem vorgenommenen Aktionen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems, das ein Caching umfasst. Ein Benutzer macht über ein Anwendungsprogramm eine Dateisystemanfrage nach einer entfernt gespeicherten Datei auf einem WebDAV-fähigen HTTP-Server, wie es in Block 420 gezeigt ist. Bei einem Ausführungsbeispiel richtet die Dateisystemschnittstelle der Anwendungsprogrammschnittstelle des Betriebssystems die Anfrage an das SFS-Plugin, wie es in Block 422 gezeigt ist, da das SFS-Startprogramm gestartet wurde oder eine andere SFS-Initialisierung auftritt. Das SFS-Plugin bestimmt dann, ob die Datei in dem lokalen Cache ist, wie es in Block 424 gezeigt ist. Wenn die entfernt gespeicherte Datei nicht lokal gecacht ist, sendet das SFS- Plugin die Anfrage an das SFS-Netzwerkzugriffprogramm, wie es in Block 426 gezeigt ist. Das SFS-Netzwerkzugriffprogramm bearbeitet die Anfrage und sendet sie an den entsprechenden WebDAV-fähigen HTTP-Server, um die angefragte Aktion zu erzielen, wie es in Block 428 gezeigt ist. wenn die Anfrage eine Schreibanfrage, wie beispielsweise Schreibe Datei, Benenne Datei um, Benenne Verzeichnis um, etc. ist, kann die Anfrage Dateidaten und Dateiinformationen umfassen, die zum Ausführen der Schreibanfrage benötigt werden. Wenn die Anfrage eine Leseanfrage ist, kann die Anfrage einen Dateinamen, einen Dateideskriptor oder -identifier etc. enthalten. Das SFS-Netzwerkzugriffprogramm empfängt dann eine Antwort von dem WebDAV/HTTP-Server, welche der Anfrage entsprechende Informationen enthält, wie es in Block 432 gezeigt ist. Das SFS-Netzwerkzugriffprogramm bearbeitet dann die Antwort und sendet gleichzeitig die Anfrage beantwortende Informationen an das SFS-Plugin, wie es in Block 436 gezeigt ist, und cached die Dateiinformationen und Dateidaten in einem lokalen Cache. Die Dateiinformationen und -daten werden in Abhängigkeit von den von dem HTTP/WebDAV-Server erhaltenen Informationen gespeichert und können etwas der Datei oder die gesamte Datei selbst oder einen Teil davon, die Dateigröße, den Dateinamen, den Pfadnamen, die Dateierstellungszeit und das Dateierstellungsdatum, Autoreninformationen, Zugriffinformationen, etc. enthalten. Das SFS-Plugin formatiert die Informationen, wenn notwendig, und sendet sie über die Dateisystemschnittstelle des Betriebssystems an das anfragende Benutzeranwendungsprogramm, wie es in Block 438 gezeigt ist.
  • Wenn die angefragte Datei oder Dateiinformationen bereits in dem lokalen Cache vorhanden waren, wie es in Block 424 gezeigt ist, wird ein Test durchgeführt, um zu bestimmen, welche Art von Anfrage gemacht wurde, wie es in Block 440 gezeigt ist. Bei einem Ausführungsbeispiel kann definiert werden, dass die Dateianfragen zu Gruppe 1 oder Gruppe 2 gehören. Gruppe 1-Dateianfragen sind solche Anfragen, die um Informationen über die internen Inhalte von Dateien nachsuchen, oder Informationen einschließlich den internen Inhalten der Dateien modi fizieren. Beispiele von Gruppe 1-Anfragen umfassen ein Lesen einer Datei, Erhalten einer Verzeichnisauflistung, Schreiben einer Datei, etc. Gruppe 2-Anfragen sind solche Anfrage, die Informationen über die Datei beeinflussen oder die Datei als ein Objekt behandeln. Gruppe 2-Anfragen umfassen Anfragen zum Erzeugen oder Löschen einer Datei oder eines Verzeichnisses, Umbenennen einer Datei oder eines Verzeichnisses, Öffnen einer Datei zum Vorbereiten dieser für einen I/O, etc. Wenn die Anfrage eine Gruppe 1-Anfrage ist, geht die Ausführung weiter, wie es oberhalb zu Block 426 beschrieben wurde. Wenn die Anfrage eine Gruppe 2-Anfrage ist, erlangt das SFS-Plugin die angefragte Datei oder die Dateiinformationen von dem lokalen Cache, wie es in Block 442 gezeigt ist, wobei jegliche Kommunikation mit dem Remote-WebDAV/HTTP-Server umgangen wird. Das SFS-Plugin formatiert die aus dem Cache enthaltenden Informationen dann, wenn notwendig, und sendet sie zu dem Benutzeranwendungsprogramm. In Abhängigkeit von der Anfrage können die dem Benutzeranwendungsprogramm gesendeten Informationen eine Verzeichnisauflistung, eine Datei, der Inhalt einer Inhalt, etc. sein.
  • E. Eine Seamless-Dateisystem-Plugin-Erweiterung für ein Betriebssystem
  • 5 zeigt den Ablauf von von einer Seamless-Dateisystem-Plugin-Erweiterung für ein Betriebssystem vorgenommenen Aktionen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems. Wenn das SFS installiert wurde, umfasst das SFS die SFS-Plugin-Erweiterung für das Betriebssystem des Computersystems. Insbesondere ist das SFS-Plugin eine Erweiterung für das Dateisystem des Betriebssystems. Auf eine Benutzeranfrage über ein Anwendungsprogramm nach einer Datei auf einem Remote-Dateisystem gibt das Anwendungsprogramm über eine bekannte Anwendungsprogrammschnittstelle eine Anfrage an das Dateisystems des Computers aus. Das Dateisystem empfängt diese Anfrage, wie es in Block 500 gezeigt ist, und wenn sich die Dateianfrage auf eine lokale Datei bezieht, wie es in Block 510 gezeigt ist, wird die Anfrage an das Betriebssystem weitergegeben, welches dann auf das lokale Dateisystem zugreift, wie es in Block 512 gezeigt ist. Wenn die Dateianfrage nicht auf eine lokale Datei gerichtet ist, wie es in Block 510 gezeigt ist, richtet die lokale Dateisystemschnittstelle die Anfrage an das SFS-Plugin. Um die Diskussion hier zu vereinfachen, werden der Stand der Technik und bekannte Verfahren zum Antworten auf Anfragen nach entfernt gespeicherten Dateien, die über andere Protokolle, Systeme und Verfahren zugänglich sind, nicht beschrieben, können jedoch konkurrierend mit SFS bestehen. Das SFS-Plugin empfängt die Dateisystemanfrage, die von einer Benutzeranfrage eines Anwendungsprogramms von der Dateisystemschnittstelle an das Betriebssystem stammt, wie es in Block 514 gezeigt ist. Das SFS-Plugin gibt die Anfrage dann an das SFS-Netzwerkzugriffprogramm weiter, wie es in Block 516 gezeigt ist. Bei einem Ausführungsbeispiel bearbeitet das SFS-Plugin die Anfrage auch und formatiert sie, bevor die Anfrage an das SFS-Netzwerkzugriffprogramm weitergegeben wird. Das SFS-Plugin empfängt dann eine Antwort von dem SFS-Netzwerkzugriffprogramm, wie es in Block 518 gezeigt ist. Das SFS-Plugin kann die Antwort bearbeiten und Informationen aus der Antwort über die lokale Dateisystemschnittstelle an das anfragende Benutzeranwendungsprogramm weitergeben, wie es in Block 520 gezeigt ist.
  • F. Ein Seamless-Dateisystem-Netzwerkzugriffanwendungsprogramm
  • 6 zeigt den Ablauf von von einem Seamless-Dateisystem-Netzwerkzugriff-Anwendungsprogramm vorgenommenen Aktionen gemäß einem Ausführungsbeispiel des Seamless-Dateisystemverfahrens und -systems. Wie oben beschrieben, empfängt das SFS-Netzwerkzugriffprogramm eine Anfrage bezüglich einer entfernt gespeicherten Datei von dem SFS-Plugin, nachdem ein Benutzer über ein Anwendungsprogramm eine Anfrage nach einer entfernt gespeicherten Datei gemacht hat, wie es in Block 600 gezeigt ist. Das SFS-Netzwerkzugriffprogramm formatiert die Anfrage in ein bekanntes Format, um die angefragte Aktion zu erzielen, wie es in Block 610 gezeigt ist. Wie oberhalb beschrieben, wird bei einem Ausführungsbeispiel die Anfrage als eine HTTP-Anfrage formatiert, welche bei einigen Beispielen ein WebDAV-Verfahren umfassen kann, welches in einigen Beispielen weitere Informationen im XML-Format enthalten kann. Das SFS-Netzwerkzugriffprogramm sendet die Anfrage dann über ein Netzwerk an ein Remote-Computersystem, wie es in Block 612 gezeigt ist. Bei einem Ausführungsbeispiel leitet das SFS-Netzwerkzugriffprogramm die Anfrage über das Internet an einen Benutzer-spezifizierten WebDAV/HTTP-Server. Das SFS-Netzwerkzugriffprogramm empfängt eine Antwort auf die Anfrage von dem Remote-Computersystem, wie es in Block 614 gezeigt ist. Bei einem Ausführungsbeispiel bestimmt das SFS-Netzwerkzugriffprogramm, ob die Antwort eine substantielle Antwort anstatt eine Fehlernachricht, ein Fehlercode oder ein Timeout ist, wie es in Block 616 gezeigt ist. Wenn die Antwort eine substantielle Antwort ist, extrahiert das SFS-Netzwerkzugriffprogramm Informationen aus der Antwort, wie es in Block 618 gezeigt ist, und sendet diese Informationen an das SFS-Plugin, wie es in Block 620 gezeigt ist.
  • Wenn die Antwort, die das SFS-Netzwerkzugriffprogramm von dem Remote-Computersystem empfangen hat, keine substantielle Antwort ist, wie es in Block 616 gezeigt ist, prüft das SFS-Netzwerkzugriffprogramm, um zu ermitteln, ob eine Fehlernachricht, ein Fehlercode oder ein Timeout zurückgegeben wurde, wie es in Block 622 gezeigt ist. Wenn die Antwort eine Fehlernachricht oder ein Fehlercode war, geht die Ausführung weiter bei den Blöcken 618 und 620, wie es bereits beschrieben wurde, so dass die extrahierte Fehlernachricht oder der extrahierte Fehlercode übersetzt werden kann und an das SFS-Plugin weitergeleitet wird. Wenn die nicht-substantielle Antwort ein Timeout ist, wird die Anfrage erneut gesendet, wie es im Block 624 gezeigt ist, und die Ausführung geht bei Block 614 weiter, wie es oberhalb beschrieben ist.
  • Bei einem Ausführungsbeispiel hält das SFS-Netzwerkzugriffprogramm interne Datenstrukturen, um zu ermöglichen, dass es effizient auf Anfragen von Benutzeranwendungsprogrammen antworten kann und Antworten von Remote-Computersystemen bearbeiten kann. Bei einem Ausführungsbeispiel cached das SFS lokal Remote-Dateien und Remote-Dateisysteminformationen, um die Begrenzungen der WebDAV-Erweituerungen von HTTP zu überwinden. Bei diesem Ausführungsbeispiel erzeugt das SFS-Netzwerkzugriffprogramm und hält Cache-Dateien, die als der SFS-Cache bezeichnet werden, so dass Anfragen bezüglich entfernt gespeicherter Dateien an lokal gespeicherten Kopien der Dateien von dem SFS-Plugin ausgeführt werden können. Nachdem Arbeitsvorgänge an einer bestimmten Datei beendet sind, oder bei anderen entsprechenden Umständen, wird die modifizierte Cache-Datei dann an den Remote-Server kommuniziert, wodurch die auf dem Remote-Computersystem gespeicherte Datei geupdated wird und die lokal gespeicherte Cache-Kopie mit der entfernt gespeicherten Datei synchronisiert wird. Ein solches Cachen ist gegenüber dem SFS-Benutzer verborgen. Bei einem Ausführungsbeispiel beispielsweise führt eine Anfrage zum Öffnen einer Datei dazu, dass das SFS-Netzwerkzugriffprogramm eine Cache-Datei erzeugt, die Inhalte der Remote-Datei enthält. Bei solch einem Ausführungsbeispiel gibt das SFS-Netzwerkzugriffprogramm einen Datei-Deskriptor an die neu erzeugte Cache-Datei zurück, welcher für nachfolgende Lese- und Schreibvorgänge von dem anfragenden Benutzeranwendungsprogramm und dem SFS-Plugin verwendet wird.
  • Der SFS-Cache kann gemäß dem Fachmann bekannten Verfahren implementiert werden. Bei einem Ausführungsbeispiel wird "unsichtbares Cachen" verwendet. Bei solch einem Ausführungsbeispiel wird unmittelbar nachdem das SFS-Netzwerkzugriffprogramm eine lokale Cache-Datei erzeugt und öffnet, die Cache-Datei gelöscht, so dass die Daten für den lokalen Cache gültig bleiben, jedoch der Name der lokal gecachten Datei aus dem lokalen Dateisystemverzeichnis entfernt wird. Ein Vorteil des "unsichtbaren Cachens" ist es, dass Benutzer davor bewahrt werden, auf Cache-Dateien zu stoßen, da der gesamte SFS-Cache für den Benutzer unsichtbar ist. Ein weiterer Vorteil der Verwendung des "unsichtbaren Cachens" ist, dass sämtliche lokalen Cache-Dateien in einem einzigen Verzeichnis erzeugt werden, wodurch das Management des SFS-Caches vereinfacht wird. Bei solch einem Ausführungsbeispiel können die die Verzeichnis struktur bei dem Remote-Server wiedergebenden Informationen als eine unsichtbare Datei gespeichert werden.
  • Bei einem anderen Ausführungsbeispiel wird ein "parallel hierarchisches Caching" verwendet. Da die Kombination von Namensraumdefinitionen von WebDAV und der Domain-Name-Eintragung tatsächlich garantieren, dass sämtliche URIs einzigartig sind, kann ein hierarchischer lokaler Cache auf der Grundlage der von den Benutzern gelieferten URIs erzeugt werden. Bei diesem Ausführungsbeispiel sind die Verzeichnisse in dem Cache dauerhaft und verbleiben in dem Namensraum. Dieses Ausführungsbeispiel erzeugt eine parallele lokale Dateihierarchie, auf die jeder WebDAV-Server zugreift. Bei diesem Ausführungsbeispiel müssen lediglich die tatsächlich von Benutzern referenzierten Dateien in dem lokalen SFS-Cache erscheinen. Bei diesem Ausführungsbeispiel können lokale Cache-Dateien wiederkehrend verwendet werden, was die Anzahl von Dateianfragen an und Datei-Downloads von dem Netzwerk reduziert. Ein Vorteil der Verwendung des "parallel hierarchischen Cachings" ist, dass das SFS-Netzwerkzugriffprogramm keine Abbildung des lokal replizierten Remote-Dateisystems halten muss.
  • Bei noch einem weiteren Ausführungsbeispiel wird ein "Map-Caching" verwendet. Bei diesem Ausführungsbeispiel werden Cache-Dateien mit Standardnamen, wie beispielsweise SFS-000001, erzeugt, und eine Abbildung von URIs auf Cache-Dateien wird von dem SFS-Netzwerkzugriffprogramm und/oder dem SFS-Plugin gehalten. Genau wie beim "parallel hierarchischen Caching" werden bei diesem Ausführungsbeispiel lokale Cache-Dateien wiederkehrend gehalten, wodurch die Anzahl von Aufrufen an und Downloads von dem Netzwerk vermindert wird. Ein solches Ausführungsbeispiel erfordert weniger Aufrufe an das lokale Dateisystem als ein "parallel hierarchisches Caching" zum Aufrechterhalten des SFS-Caches.
  • Darüber hinaus hält bei einem Ausführungsbeispiel das SFS-Netzwerkzugriffprogramm ein Array von mit URIs gepaarten Datei-Deskriptoren. Wenn eine Datei geöffnet wird und das SFS-Netzwerkzugriffprogramm eine lokale Cache-Datei öffnet, ordnet bei einem Ausführungsbeispiel das SFS-Netzwerkzugriffprogramm den Datei-Deskriptor zusammen mit der speziellen URI in dem nächsten verfügbaren Array-Element an. Bei solch einem Ausführungsbeispiel gibt das SFS-Netzwerkzugriffprogramm den Index als einen Datei-Handle an das SFS-Plugin zusammen mit einem Datei-Deskriptor an das Array zurück, wenn eine Öffne-Datei-Anfrage beantwortet wird. Das SFS-Plugin verwendet den Datei-Deskriptor zum Zugreifen auf die gecachte Datei. Bei diesem Ausführungsbeispiel führen nachfolgende Arbeitsvorgänge, welche eine Aktivität des SFS-Netzwerkzugriffprogramms erfordern, dazu, dass das Datei-Handle von dem SFS-Plugin an das SFS-Netzwerkzugriffprogramm weitergegeben wird, so dass das SFS-Netzwerkzugriffprogramm die entsprechende URI identifiziert, indem auf das Array zugegriffen wird, und anschließend mit dem entsprechenden Remote-Server kommuniziert.
  • Wie oberhalb beschrieben werden Remote-Datei-Anfragen von dem SFS-Plugin abgefangen und an das SFS-Netzwerkzugriffprogramm weitergegeben. Die zwischen dem SFS-Netzwerkzugriffprogramm und dem SFS-Plugin weitergegebenen Informationen sind für jeden unterstützten Arbeitsvorgang spezifisch, umfassen jedoch allgemein, bei einem Ausführungsbeispiel, die URI der Remote-Datei oder ausreichende Informationen für das SFS-Netzwerkzugriffprogramm, um die URI zu rekonstruieren, wie es in dem vorhergehenden Paragrafen dargelegt ist. In den meisten Fällen geben die Remote-Datei-Anfragen entweder einen Erfolg oder Standardfehler zurück, die von dem SFS-Netzwerkzugriffprogramm aus den von dem WebDAV/HTTP-Server zurückgegebenen Werten übersetzt werden.
  • Aufgrund der transparenten Natur der Benutzerschnittstelle kann der Benutzer zum Bereitstellen einer einheitlichen Schnittstelle für sämtliche Dateianfragen durch einen Benutzer eines Computersystems, gleichgültig ob entfernte oder lokale Dateien, sämtliche Dateien, und zwar sowohl entfernte als auch lokale, auf die gleiche Weise unter Verwendung der für das lokale Dateisystem erforderlichen Syntax spezifizieren. Das heißt Benutzer von Systemen mit SFS und lokalen Dateisystem-Clients können entfernt gespeicherte Dateien Anfragen, als wären die Dateien gemäß der von dem lokalen Dateisystem und dem lokalen Betriebssystem definierten Syntax lokal gespeichert. Insbesondere definiert ein Betriebssystem zusammen mit einem lokalen Dateisystem, welche Zeichen in Dateinamen verwendet werden können und welche nicht. Jedoch kann der Remote-Server ggf. lediglich die Verwendung eines Untersatzes der bei dem lokalen Dateisystem erlaubten Zeichen unterstützen. Bei einem Ausführungsbeispiel ermöglicht das lokale Dateisystem die Verwendung eines Freizeichens, einer linken eckigen Klammer "[", einer rechten eckigen Klammer "]", eines Rautezeichens "#", eines Fragezeichens "?" und anderer Spezial- oder nicht-alphanumerischen Zeichen in Dateinamen. Bei verschiedenen Ausführungsbeispielen können die Dateinamen von dem Betriebssystem gemäß dem American Standard Code for Information Exchange(ASCII)-Spezifikation, dem Unicode Transformation Format 8 Bit (UTF-8-Codierungsstandard) etc. dargestellt werden. Jedoch akzeptieren WebDAV-fähige HTTP-Server lediglich Dateinamen gemäß der in der URI-Spezifikation definierten Form (siehe oberhalb). Die URI-Spezifikation begrenzt die Verwendung von bei Dateinamen zu verwendenden Zeichen auf ASCII-alphanumerische Zeichen. Die URI-Spezifikation definiert bestimmte reservierte oder spezielle Verwendungen für eine Reihe spezieller Zeichen. Um die Begrenzungen des zum Darstellen von Dateinamen bei WebDAV/HTTP-Servern erlaubten Zeichensatzes zu überwinden, übersetzt das SFS-Netzwerkzugriffprogramm ausgehende Anfragen von dem lokalen Betriebssystem/Dateisystemformat aus erlaubten Zeichen in eine Sequenz von URI-erlaubten Zeichen, bei welchen die speziellen Zeichen als Escape-Sequenzen dargestellt sind. Ähnlich rückübersetzt das SFS-Netzwerkzugriffprogramm eingehende Informationen von dem entfernten WebDAV/HTTP-Server im URI-Format, in das Format des lokalen Betriebssystems/Dateisystems, wobei Escape-Sequenzzeichen in ASCII, UTF-8 etc. übersetzt werden.
  • Die URI-Spezifikation ermölgicht es, dass die reservierten Spezialzeichen durch Escape-Sequenzen dargestellt werden können. Dies ermöglicht die Verwendung der Spezialzeichen auf eine "versteckte" Weise und vermeidet jegliche unerwünschte Interpretation der Spezialzeichen. Die URI-Spezifikation defi niert eine Escape-Sequenz als ein Prozentzeichen "%" gefolgt von einer zweistelligen hexadezimalen Darstellung des ASCII-Codes des Spezialzeichens. Wenn ein Remote-Dateiname beispielsweise von einem Benutzer eines lokalen Computersystems als ein Freizeichen enthalten definiert wird, wie beispielsweise der Name "meine Datei", würde der Dateiname übersetzt und dargestellt als "meine%20Datei", da 32 (dezimal) der ASCII-Code für ein Freizeichen ist. Ein weiteres Beispiel ist "Brief #1 (an Bob)", was übersetzt wird in "Brief%20%231%20%28an%20Bob%29". Bei Empfang der Dateinamen, Verzeichnisnamen, Pfade etc. von einem WebDAV/HTTP-Server in URI-Syntax werden die Dateinamen, Verzeichnisnamen, Pfade etc. aus der URI-Syntax in die Syntax des lokalen Betriebssystems, wie beispielsweise ASCII oder UTF-8, zurückübersetzt. Bei einem Ausführungsbeispiel führt das SFS-Netzwerkzugriffprogramm die Übersetzung durch, wenn das SFS-Netzwerkzugriffprogramm die Anfrage in ein bekanntes Format formatiert, wie es in Block 610 gezeigt ist, und kann die Rückübersetzung gemäß einem beliebigen der Blöcke 614, 618 oder 620 ausführen.
  • G. Einige SFS-unterstützte Operationen
  • Verschiedene Dateisystemoperationen können von SFS überstützt werden. Solche Dateisystemoperationen sind aus dem Stand der Technik bekannt. Beispiele einiger Dateisystemoperationen, und wie sie bei einem Ausführungsbeispiel von SFS implementiert werden können, folgen.
  • 1. Öffnen und Schließen von Verzeichnissen und Dateien
  • Bei einem Ausführungsbeispiel dient das SFS-Plugin als ein Pass-Through-Dateisystem. Bei diesem Ausführungsbeispiel fängt das SFS-Plugin an ein Remote-Dateisystem gerichtete Dateisystemanfragen ab, manipuliert die Argumente und instruiert das lokale Dateisystem, eine Sequenz von Operationen an der, einer angefragten Remote-Datei oder einem angefragten Remote-Verzeichnis entsprechenden, lokal gespeicherten Cache-Datei auszuführen. Wenn eine Remote-Datei geöffnet wird, bewirkt der Öffnen-Befehl, dass das SFS-Netzwerkzugriffprogramm eine Cache-Datei erzeugt, ferner die entsprechende WebDAV-Methode zum Verschließen der Datei exklusiv auf dem Remote-Server aus gibt, die entsprechende WebDAV/HTTP-Methode zum Erlangen der Inhalte der Zieldatei von dem Remote-WebDAV/HTTP-Server ausgibt und die erhaltenen Daten in die neu erzeugte Cache-Datei schreibt. Das SFS-Netzwerkzugriffprogramm sendet ein Datei-Handle an das SFS-Plugin, wenn die angefragte Operation beendet ist. Das SFS-Plugin kann das Datei-Handle der Cache-Datei für einen zukünftigen lokalen Zugriff auf eine Kopie der Remote-Datei aufbewahren. Bei diesem Ausführungsbeispiel können nachfolgende Datei-Deskriptor-Operationen von dem SFS-Plugin an die Cache-Datei umgeleitet werden. Die Dateisystemschnittstelle des lokalen Dateisystems, auf welchem die lokale Cache-Datei liegt, wird zum Ausführen der Datei-Deskriptor-Operationen aufgerufen. Bei FSYNC oder CLOSE gibt das SFS-Netzwerkzugriffprogramm die entsprechende HTTP-Methode aus, um die modifizierten Inhalte der lokal gecachten Datei auf den Remote-Server zu schreiben. Das SFS-Netzwerkzugriffprogramm verwendet den Datei-Handle um zu identifizieren, welche Remote-Datei zu schließen oder zu entsperren ist.
  • Die von dem SFS zum Öffnen eines Verzeichnisses verwendete Sequenz von Aktionen ist ähnlich. Bei einem Ausführungsbeispiel gibt das SFS-Netzwerkzugriffprogramm, da das WebDAV-Protokoll eine Verzeichnis-Aufzählung nicht unterstützt, eine WebDAV-PROPFIND-Anfrage nach sämtlichen Eigenschaften unter Verwendung der Verzeichnis-URI und Spezifizierung einer Header-Tiefe von eins aus. In Beantwortung gibt der WebDAV/HTTP-Server die spezifizierten Eigenschaften sämtlicher der Items in der Sammlung zurück, das heißt sämtlicher Dateien in dem Verzeichnis auf dem Server. Bei einem Ausführungsbeispiel paart das SFS-Netzwerkzugriffprogramm die zurückgegebene XML-Property-Liste, um die Namen der Einträge in dem Verzeichnis zu bestimmen, und erzeugt dann eine lokale Cache-Datei, welche es ermöglicht, dass das Remote-Dateisystem vollständig mit Verzeichniseinträgen gemäß der Verzeichnisauflistungsart des lokalen Computersystems repliziert wird. Der Datei-Deskriptor für die die Remote-Verzeichnisauflistung darstellende gecachte Datei wird zurückgegeben.
  • Bei einem Ausführungsbeispiel bewirkt eine Anfrage zum Schließen eines Verzeichnisses, das das SFS-Netzwerkzugriffprogramm die das Verzeichnis darstellende lokal gecachte Datei schließt. Bei solch einem Ausführungsbeispiel ist keine Kommunikation mit dem WebDAV/HTTP-Server notwendig.
  • 2. Erzeugen von Dateien
  • Wenn dem SFS-Netzwerkzugriffprogramm von dem SFS-Plugin eine Erzeuge-Anfrage weitergeleitet wird, sendet das SFS-Netzwerkzugriffprogramm die URI der Zieldatei mit einer WebDAV-PUT-Methode an den Remote-WebDAV/HTTP-Server. Wenn bereits eine Cache-Datei für das Verzeichnis, in dem der neue Dateieintrag zu erzeugen ist, existiert, wird bei einem Ausführungsbeispiel die Cache-Datei geupdatet, um den neu erzeugten Eintrag zu umfassen. Bei einem anderen Ausführungsbeispiel kann die Cache-Datei geleert und neu erzeugt werden, um die neuen Dateiinformationen zu erhalten.
  • 3. FSYNC
  • Bei einem Ausführungsbeispiel ist FSYNC die primäre Synchronisationsroutine, die zum Bewegen von Daten von dem lokalen Cache zu dem Server verwendet wird. FSYNC-Aufrufe werden von dem SFS-Plugin an das SFS-Netzwerkzugriffprogramm unter Verwendung des von dem SFS-Netzwerkprogramm in Antwort auf eine Öffnen-Anfrage gelieferten Datei-Handle kommuniziert. Das SFS-Netzwerkzugriffprogramm gibt die entsprechende webDAV-Methode aus, um die Daten zurück auf den Remote-Server zu schieben. Das SFS-Netzwerkzugriffprogramm gibt ferner sämtliche von dem WebDAV/HTTP-Server empfangene Fehler an das SFS-Plugin zurück.
  • 4. Erlangen und Setzen von Attributen
  • Bei einem Ausführungsbeispiel werden Attribute von dem SFS-Netzwerkzugriffprogramm über PROFIND- bzw. PROPATCH-WebDAV-Protokollmethoden erhalten und gesetzt.
  • 5. Erzeugen von Verzeichnissen
  • Bei einem Ausführungsbeispiel bewirken Verzeichnis-Erzeugen-Aufrufe, welche als MKDIR bekannt sein können, dass das SFS-Netzwerkzugriffprogramm eine WEbDAV-MKCOL-Anfrage an den WebDAV-Server zum Durchführen einer Sammlung ausgibt.
  • 6. Lesen einer Datei
  • Bei einem Ausführungsbeispiel bewirken Lese-Anfragen, dass Daten aus der lokalen, der entfernt gespeicherten mit der Lese-Anfrage spezifizierten korrespondierenden Datei Cache-Datei gelesen werden. Wenn es keine lokal gecachte Kopie der angefragten Remote-Datei gibt, unterstützen die WebDAV-Erweiterungen des HTTP-Protokolls die Fähigkeit, Teile einer Datei ohne Erlangen einer gesamten Datei zu erlangen. Wenn somit Dateien für nur einen Lesezugriff zu öffnen sind, kann das SFS-Netzwerkzugriffprogramm lediglich den angefragten Abschnitt einer Datei von dem spezifizierten WebDAV-HTTP-Server für jede Leseanfrage erlangen.
  • 7. Schreiben einer Datei
  • Bei einem Ausführungsbeispiel werden sämtliche Schreib-Anfragen an eine lokal gecachte Kopie der spezifizierten entfernt gespeicherten Datei durchgeführt. Ein Schreiben in Dateien wird bei FSYNC oder CLOSE synchronisiert. Bei anderen Ausführungsbeispielen kann eine häufigere Synchronisation zwischen der lokal gecachten Version der Datei und der entfernt gespeicherten Datei erreicht werden, wenn bestimmte Bedingungen erfüllt sind, wie beispielsweise zum Ende einer vorgegebenen Zeitperiode oder wenn ein vordefinierter Prozentsatz der lokal gecachten Datei geändert wurde.
  • 8. Lesen eines Verzeichnisses
  • Das Lesen eines Verzeichnisses kann über den allgemein bekannten READDIR-Befehl angefragt werden. Bei einem Ausführungsbeispiel kann eine Anfrage zum Lesen eines Verzeichnisses nur gemacht werden, nachdem das Verzeichnis geöffnet wurde. Bei diesem Ausführungsbeispiel werden sämtliche Lese-Verzeichnis-Anfragen von dem SFS-Plugin zum Zugreifen auf eine lokal gecachte Darstellung des bereits geöffneten angeforderten Remote-Verzeichnisses umgeleitet.
  • 9. Entfernen eines Verzeichnisses und Löschen einer Datei
  • Nach Empfang einer Anfrage zum Entfernen eines Verzeichnisses oder Löschen einer Datei auf einem Remote-Server gibt das SFS-Netzwerkzugriffprogramm bei einem Ausführungsbeispiel unter Spezifizierung der angefragten URI und, wenn angebracht, der zu löschende Datei eine WebDAV-DELETE-Anfrage an den WebDAV/HTTP-Server. Wenn eine lokal gecachte Darstellung des Remote-Verzeichnisses für das Verzeichnis mit der zu löschenden Datei existiert, wird bei einem Ausführungsbeispiel die lokal gecachte Kopie der Remote-Verzeichnisauflistung zum Entfernen des gelöschten Eintrags geupdated. Bei einem anderen Ausführungsbeispiel leert das SFS-Netwerkzugriffprogramm die lokal gecachte Kopie der Remote-Verzeichnisauflistung und erzeugt eine lokal gecachte Kopie der Verzeichnisauflistung, indem für die entsprechende URI und beliebige Unterverzeichnisse eine WebDAV/PROPFIND-Anfrage an den WebDAV/HTTP-Server ausgegeben wird. Wenn eine lokal gecachte Kopie der Remote-Datei existiert, leert das SFS-Netzwerkzugriffprogramm die lokal gecachte Kopie der entfernt gespeicherten Datei.
  • 10. Trunkieren
  • Bei einem Ausführungsbeispiel werden sämtliche Trunkier-Anfragen an einer lokal gespeicherten Kopie der spezifizierten entfernt gespeicherten Datei durchgeführt. Trunkierte Dateien werden bei FSYNC oder CLOSE synchronisiert.

Claims (24)

  1. Ein System mit einer Mehrzahl von mit dem Internet (32) gekoppelten Web-Servern (34), auf denen das Distributed Authoring and Versioning-fähige Hypertext Transfer Protocol (HTTP), WebDAV, läuft, und einer Mehrzahl von mit dem Internet gekoppelten Personal-Computern (10), wobei jeder Personal-Computer (10) ein Dateisystem-Plugin aufweist (50), das mit einem Dateisystem (56) eines Betriebssystems (48) kommunikativ gekoppelt ist, das von einer Anwendung (54) empfangene Dateisystemanfragen, die auf einem der Mehrzahl von Web-Servern gespeicherte Dateisysteme betreffen, an ein Netzwerkzugriff-Anwendungsprogramm (52) auf dem Personal-Computer weiterleitet, das die Dateisystemanfragen jeweils als eine WebDAV-Anfrage an einen geeigneten der Mehrzahl von Web-Servern (34) sendet, wobei die Dateisystemanfragen einen Dateinamen einer Datei umfassen, auf die zuzugreifen ist, und wobei, wenn der Dateiname ein oder mehrere Zeichen enthält, die von dem besagten einen der Mehrzahl von Web-Servern (34) nicht erkannt werden, das Netzwerkzugriff-Anwendungsprogramm (52) die nicht erkannten Zeichen des Dateinamens in eine oder mehrere, von dem besagten einen der Mehrzahl von Web-Servern erkennbare Escape-Sequenzen umwandelt, bevor die umgewandelten Dateisystemanfragen an den besagten einen der Mehrzahl von Web-Servern (34) übermittelt werden, wobei die eine oder die mehreren Escape-Sequenzen das eine oder die mehreren nicht erkannten Zeichen darstellen, wobei die Dateisystemanfragen von dem Dateisystem-Plugin (50) ohne Kenntnis von der Anwendung (54) weitergeleitet werden, und wobei die Anwendung (54) unabhängig in Bezug auf das Dateisystem-Plugin (50) läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung (54) notwendig sind.
  2. Das System nach Anspruch 1, wobei in Reaktion auf die Dateisystemanfragen das Netzwerkzugriff-Anwendungsprogramm (52) eine lokale Cache-Datei erzeugt, die entfernte Datei auf dem Web-Server (34) für einen exklusiven Zugriff sperrt, um Andere an dem Zugriff auf die entfernte Datei bei dem Web-Server (34) zu hindern, den im wesentlichen gesamten Inhalt der entfernten Datei unter Verwendung eines oder mehrerer WebDAV-Befehle in die lokale Cache-Datei zwischenspeichert, und ein Datei-Handle von der lokalen Cache-Datei an das Dateisystem-Plugin (50) zurückgibt, um dem Dateisystem-Plugin (50) zu ermöglichen, die Dateisystemanfragen unter Verwendung des Inhalts der lokalen Cache-Datei zu verarbeiten.
  3. Das System nach Anspruch 2, wobei die lokale Cache-Datei mit der entfernten, auf dem Web-Server (34) gespeicherten Datei synchronisiert wird, wenn eine vorgegebene Zeitspanne verstrichen ist oder ein vorgegebener Anteil des Inhaltes der lokalen Cache-Datei verändert worden ist.
  4. Das System nach Anspruch 2, wobei nach der Verarbeitung der Dateisystemanfrage das Netzwerkzugriff-Anwendungsprogramm (52) modifizierte Abschnitte der lokalen Cache-Datei in die entfernte Datei zurückschreibt, die entfernte Datei freigibt und die entfernte Datei unter Verwendung eines oder mehrerer WebDAV-kompatibler Befehle schließt.
  5. Das System nach Anspruch 2, wobei das Netzwerkzugriff-Anwendungsprogramm (52) ein Array mit einer Mehrzahl von Einträgen unterhält, um Datei-Deskriptoren von lokalen Cache-Dateien zusammen mit einer URI (Uniform Resource Indicator) der auf dem Web-Server (34) gespeicherten entfernten Datei, die mit der entsprechenden lokalen Cache-Datei verknüpft ist, zu speichern, wobei das Netzwerkzugriff-Anwendungsprogramm einen Index des korrespondierenden Eintrages als einen Datei-Handler und den Datei-Deskriptor an das Dateisystem-Plugin zurückgibt, und wobei der Datei-Deskriptor von dem Dateisystem-Plugin verwendet wird, um auf die entsprechende lokale Cache-Datei zuzugreifen, und der Index von dem Dateisystem-Plugin als eine Referenz verwendet wird, um das Netzwerkzugriff-Anwendungspro gramm zu instruieren, auf die entfernte Datei unter Verwendung der zugehörigen URI zuzugreifen.
  6. Ein Verfahren, aufweisend: Empfangen einer ein entferntes Dateisystem betreffenden Dateisystemanfrage von einem Dateisystem-Plugin, das kommunikativ mit einem Dateisystem eines Betriebssystems gekoppelt ist, wobei das Dateisystem-Plugin die Dateisystemanfrage von einer Anwendung als eine reguläre Dateisystemanfrage in einem anderen Format als dem Distributed Authoring And Versioning-Protokoll empfängt, Erzeugen einer Anfrage im WebDAV-Format in Reaktion auf die Dateisystemanfrage, Umwandeln eines oder mehrerer Zeichen der Dateisystemanfrage, die von einem WebDAV-fähigen HTTP-Server nicht erkannt werden, in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind, Weiterleiten der Anfrage im WebDAV-Format an den entsprechenden WebDAV-fähigen HTTP-Server ohne Kenntnis der Anwendung, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind, Empfangen einer Antwort von dem WebDAV-fähigen HTTP-Server, und Übermitteln von in der Antwort enthaltenen Informationen an das Dateisystem-Plugin, wobei die Informationen als eine reguläre Systemantwort präsentiert werden.
  7. Das Verfahren nach Anspruch 6, ferner aufweisend: Erzeugen einer lokalen Cache-Datei in Reaktion auf die Dateisystemanfrage, Sperren einer entfernten Datei, auf die von der Dateisystemanfrage zugegriffen wird, für einen exklusiven Zugriff, um Andere an dem Zugriff auf die entfernte Datei zu hindern, Zwischenspeichern des im wesentlich gesamten Inhaltes der entfernten Datei in der lokalen Cache-Datei unter Verwendung von einem oder mehreren WebDAV-kompatiblen Befehlen, und Zurückgeben eines Datei-Handlers der lokalen Cache-Datei, wobei der Datei-Handler zum Verarbeiten der Dateisystemanfrage unter Verwendung des Inhaltes der lokalen Cache-Datei verwendet wird.
  8. Das Verfahren nach Anspruch 7, ferner aufweisend ein Synchronisieren des Inhaltes der lokalen Cache-Datei und der entfernten Datei, wenn eine vorgegebene Zeitspanne verstrichen ist oder ein vorgegebener Anteil des Inhaltes der lokalen Cache-Datei verändert worden ist.
  9. Das Verfahren nach Anspruch 7, ferner aufweisend: Zurückschreiben von zumindest modifizierten Abschnitten der lokalen Cache-Datei in die entfernte Datei nachdem die Dateisystemanfrage verarbeitet worden ist, Freigeben der entfernten Datei, und Schließen der entfernten Datei unter Verwendung von einem oder mehreren WebDAV-kompatiblen Befehlen.
  10. Das Verfahren nach Anspruch 7, ferner aufweisend ein Konvertieren eines WebDAV-Status-Codes in einen entsprechenden lokalen Fehlercode des Betriebssystems.
  11. Das Verfahren nach Anspruch 7, ferner aufweisend: Halten eines Arrays mit einer Mehrzahl von Einträgen, wobei jeder Eintrag einen der entsprechenden lokalen Cache-Datei zugeordneten Datei-Deskriptor umfasst, wobei der Datei-Deskriptor gepaart ist mit einer URI, die einem Ort der auf einem Web-Server gespeicherten entfernten Datei zugeordneten ist.
  12. Das Verfahren nach Anspruch 11, wobei der Datei-Deskriptor von dem Dateisystem-Plugin verwendet wird, um auf die entsprechende lokale Cache-Datei zuzugreifen, und die URI wird von dem Netzwerkzugriff-Anwendungsprogramm verwendet, um auf die entfernte Datei zuzugreifen.
  13. Das Verfahren nach Anspruch 12, wobei ein Index eines Eintrages von dem Dateisystem-Plugin verwendet wird, um das Netzwerkzugriff-Anwendungsprogramm zu instruieren, auf die entfernte Datei unter Verwendung der in dem durch den Index referenzierten Eintrag gespeicherten URI zuzugreifen.
  14. Ein maschinen-lesbares Medium mit darauf gespeicherten Befehlen, welche bei Ausführung durch einen Prozessor die Maschine veranlassen, Operationen auszuführen: Empfangen einer ein entferntes Dateisystem betreffenden Dateisystemanfrage von einem Dateisystem-Plugin, das kommunikativ mit einem Dateisystem eines Betriebssystems gekoppelt ist, wobei das Dateisystem-Plugin die Dateisystemanfrage von einer Anwendung als eine reguläre Dateisystemanfrage in einem anderen Format als dem Distributed Authoring And Versioning-Protokoll empfängt, Erzeugen einer Anfrage im WebDAV-Format in Reaktion auf die Dateisystemanfrage, Umwandeln eines oder mehrerer Zeichen der Dateisystemanfrage, die von einem WebDAV-fähigen HTTP-Server nicht erkannt werden, in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind, Weiterleiten der Anfrage im WebDAV-Format an den entsprechenden WebDAV-fähigen HTTP-Server ohne Kenntnis der Anwendung, und wobei die Anwendung unabhängig in Bezug auf das Dateisystem-Plugin läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung notwendig sind, Empfangen einer Antwort von dem WebDAV-fähigen HTTP-Server, und Übermitteln von in der Antwort enthaltenen Informationen an das Dateisystem-Plugin, wobei die Informationen als eine reguläre Systemantwort präsentiert werden.
  15. Das maschinen-lesbare Medium nach Anspruch 14, wobei das Empfangen einer Dateisystemanfrage umfasst: Erhalten von zumindest einem Uniform Resource Indentifier (URI) und eines Anfragetyps.
  16. Das maschinen-lesbare Verfahren nach Anspruch 15, wobei das Erzeugen umfasst: Wählen eines geeigneten WebDAV-Verfahrens in Reaktion auf den Anfragetyp.
  17. Das maschinen-lesbare Verfahren nach Anspruch 14, wobei die von dem Prozessor ausgeführten Befehle das System veranlassen, Operationen auszuführen, ferner aufweisend: Extrahieren von Informationen aus der Antwort.
  18. Das maschinen-lesbare Verfahren nach Anspruch 14, wobei das Extrahieren umfasst: Konvertieren eines WebDAV-Status-Codes in einen entsprechenden Fehlercode des lokalen Betriebssystems.
  19. Das maschinen-lesbare Verfahren nach Anspruch 17, wobei die von dem Prozessor ausgeführten Befehle das System veranlassen, Operationen auszuführen, ferner aufweisend: Erzeugen einer lokalen Cache-Datei zum Speichern von zumindest den Informationen.
  20. Das maschinen-lesbare Medium nach Anspruch 19, wobei das Übertragen umfasst: Übergeben eines Datei-Handle an die lokale Cache-Datei, oder zumindest einen Abschnitt der Informationen.
  21. Das maschinen-lesbare Medium nach Anspruch 17, wobei die von dem Prozessor ausgeführten Befehle das System veranlassen, Operationen auszuführen, ferner aufweisend: Updaten einer lokalen Cache-Datei in Reaktion auf die Informationen.
  22. Ein Computersystem, aufweisend: zumindest ein Anwendungsprogramm (54), ein eine Dateisystemschnittstelle bereitstellendes Betriebssystem (48), ein mit der Dateisystemschnittstelle (56) gekoppeltes Dateisystem-Plugin (50) zum Empfangen einer Anfrage für eine entfernt gespeicherte Datei von der Dateisystemschnittstelle des Betriebssystems, die von dem Anwendungsprogramm (54) initiiert wird, und zum Weiterleiten der Anfrage für die entfernt gespeicherte Datei, ein Netzwerkzugriff-Anwendungsprogramm (52) zum Empfangen der Anfrage für die entfernt gespeicherte Datei von dem Dateisystem-Plugin, zum Übersetzen von in der Anfrage spezifizierten Dateinameinformationen von einer lokalen Dateisystemsyntax in eine Syntax eines entfernten Servers, und zum Verpacken der Anfrage gemäß eines Distributed Authoring and Versioning-Protokolls zum Zugreifen auf eine entfernte Datei eines benutzer-spezifizierten entfernten WebDAV-fähigen HTTP-Servers über das Internet (32), wobei die Anfrage einen Dateinamen einer Datei umfasst, auf die zugegriffen wird, und wobei, wenn der Dateiname ein oder mehrere Zeichen umfasst, die von dem WebDAV-fähigen HTTP-Server (34) nicht erkannt werden, das Netzwerkzugriff-Anwendungsprogramm (52) die nicht erkannten Zeichen des Dateinamens in eine oder mehrere Escape-Sequenzen, die von dem WebDAV-fähigen HTTP-Server erkennbar sind, umwandelt vor einer Übermittlung der konvertierten Dateisystemanfragen an den WebDAV-fähigen HTTP-Server, wobei die eine oder die mehreren Escape-Sequenzen das eine oder die mehreren nicht erkannten Zeichen darstellen, wobei die Dateisystemanfragen von dem Dateisystem-Plugin (50) ohne Kenntnis von der Anwendung (54) weitergeleitet werden, und wobei die Anwendung (54) unabhängig in Bezug auf das Dateisystem-Plugin (50) läuft, ohne das Änderungen der mit dem Dateisystem kommunizierenden Anwendung (54) notwendig sind.
  23. Das Computersystem nach Anspruch 22, wobei das Netzwerkzugriff-Anwendungsprogramm (52) eine von dem benutzerspezifizierten entfernten Computersystem empfangene Antwort neu formatiert, was eine Rückübersetzung sämtlicher Dateinameninformationen aus einer Syntax eines entfernten Servers in eine lokale Dateisystemsyntax umfasst, und eine neu formatierte Antwort an das Extension-Programm des Betriebssystems weiterleitet.
  24. Das Computersystem nach Anspruch 23, wobei die Syntax des entfernten Servers die Syntax eines Uniform Resource Identifiers (URI) ist.
DE60125599T 2000-08-18 2001-08-15 Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien Expired - Lifetime DE60125599T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/642,632 US6842770B1 (en) 2000-08-18 2000-08-18 Method and system for seamlessly accessing remotely stored files
US642632 2000-08-18
PCT/US2001/025640 WO2002017140A2 (en) 2000-08-18 2001-08-15 Method and system for seamlessly accessing remotely stored files

Publications (2)

Publication Number Publication Date
DE60125599D1 DE60125599D1 (de) 2007-02-08
DE60125599T2 true DE60125599T2 (de) 2007-11-29

Family

ID=24577378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60125599T Expired - Lifetime DE60125599T2 (de) 2000-08-18 2001-08-15 Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien

Country Status (5)

Country Link
US (5) US6842770B1 (de)
EP (3) EP1399848B1 (de)
DE (1) DE60125599T2 (de)
HK (1) HK1105232A1 (de)
WO (1) WO2002017140A2 (de)

Families Citing this family (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6629127B1 (en) 1999-07-26 2003-09-30 Microsoft Corporation Methods and systems for processing HTTP requests
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8611873B2 (en) 2004-05-12 2013-12-17 Synchronoss Technologies, Inc. Advanced contact identification system
US8073954B1 (en) 2000-07-19 2011-12-06 Synchronoss Technologies, Inc. Method and apparatus for a secure remote access system
US7895334B1 (en) 2000-07-19 2011-02-22 Fusionone, Inc. Remote access communication architecture apparatus and method
US7818435B1 (en) 2000-12-14 2010-10-19 Fusionone, Inc. Reverse proxy mechanism for retrieving electronic content associated with a local network
US7437429B2 (en) * 2001-02-13 2008-10-14 Microsoft Corporation System and method for providing transparent access to distributed authoring and versioning files including encrypted files
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US6971090B1 (en) * 2001-06-08 2005-11-29 Emc Corporation Common Information Model (CIM) translation to and from Windows Management Interface (WMI) in client server environment
US7130841B1 (en) * 2001-07-31 2006-10-31 America Online, Inc. Enabling a search for both local and remote electronic content
US7406519B2 (en) * 2001-11-13 2008-07-29 Microsoft Corporation Method and system for locking resources in a distributed environment
US7028300B2 (en) * 2001-11-13 2006-04-11 Microsoft Corporation Method and system for managing resources in a distributed environment that has an associated object
US20030097582A1 (en) * 2001-11-19 2003-05-22 Yves Audebert Method and system for reducing personal security device latency
US7213033B2 (en) * 2002-01-08 2007-05-01 International Business Machines Corporation Automatically populating an application's working directory with files having a specified type from other directory locations
US8320241B2 (en) 2002-07-30 2012-11-27 Brocade Communications System, Inc. Fibre channel network employing registered state change notifications with enhanced payload
US7565413B1 (en) * 2002-08-05 2009-07-21 Cisco Technology, Inc. Content request redirection from a wed protocol to a file protocol
JP2004102373A (ja) * 2002-09-05 2004-04-02 Hitachi Ltd アクセス管理サーバ、方法及びプログラム
US20040068523A1 (en) * 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
EP1422901A1 (de) * 2002-11-22 2004-05-26 Sun Microsystems, Inc. Clientgesteuerte Synchronisierung des Datei- und Verzeichnisinhalts beim Veröffentlichen von Webseiteninhalt
US7383586B2 (en) 2003-01-17 2008-06-03 Microsoft Corporation File system operation and digital rights management (DRM)
US7181016B2 (en) * 2003-01-27 2007-02-20 Microsoft Corporation Deriving a symmetric key from an asymmetric key for file encryption or decryption
US20040221015A1 (en) * 2003-04-30 2004-11-04 Weiyun Sun Processing messages having categorized contents
US8645471B2 (en) 2003-07-21 2014-02-04 Synchronoss Technologies, Inc. Device message management system
US7380246B2 (en) * 2003-12-15 2008-05-27 Lenovo (Singapore) Pte. Ltd. Method and system of accessing at least one target file in a computer system with an operating system with file locking implemented with byte-range locking
US8463748B1 (en) * 2004-02-05 2013-06-11 Emc Corporation File system quiescing
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
WO2006061251A1 (en) * 2004-12-11 2006-06-15 Smapper Technologies Gmbh Process and appliance for data processing and computer programme product
US8281014B2 (en) * 2004-12-28 2012-10-02 Sap Ag Session lifecycle management within a multi-tiered enterprise network
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US7801863B2 (en) * 2005-03-04 2010-09-21 Microsoft Corporation Method and computer-readable medium for formula-based document retention
JP2006252001A (ja) * 2005-03-09 2006-09-21 Fuji Xerox Co Ltd ドキュメント処理装置
US20060212507A1 (en) * 2005-03-18 2006-09-21 Clark Darren L Location-based historical performance information for entertainment devices
US7957413B2 (en) * 2005-04-07 2011-06-07 International Business Machines Corporation Method, system and program product for outsourcing resources in a grid computing environment
US20060248199A1 (en) * 2005-04-29 2006-11-02 Georgi Stanev Shared closure persistence of session state information
US7761435B2 (en) * 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US8762547B2 (en) * 2005-04-29 2014-06-24 Sap Ag Shared memory implementations for session data within a multi-tiered enterprise network
US20060248283A1 (en) * 2005-04-29 2006-11-02 Galin Galchev System and method for monitoring threads in a clustered server architecture
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US7853698B2 (en) * 2005-04-29 2010-12-14 Sap Ag Internal persistence of session state information
US9063941B2 (en) 2005-06-03 2015-06-23 Hewlett-Packard Development Company, L.P. System having an apparatus that uses a resource on an external device
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7809777B2 (en) 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US20070055740A1 (en) * 2005-08-23 2007-03-08 Luciani Luis E System and method for interacting with a remote computer
US8010850B2 (en) * 2005-08-31 2011-08-30 Microsoft Corporation Client extended error handling
US7600030B2 (en) 2005-08-31 2009-10-06 Microsoft Corporation Compounding of HTTP authoring protocol
EP1927061A4 (de) * 2005-09-23 2010-03-17 Live Cargo Inc Systeme und verfahren zur fernspeicherung elektronischer daten
US8539374B2 (en) * 2005-09-23 2013-09-17 Disney Enterprises, Inc. Graphical user interface for electronic devices
EP1956818A4 (de) * 2005-11-04 2011-10-12 Sharp Kk Automatisches suchverfahren für poc-server, qualitätsjustierverfahren und diese verfahren verwendendes kommunikationssystem
KR100677623B1 (ko) * 2005-12-13 2007-02-02 삼성전자주식회사 무선 데이터 통신을 이용하여 화상 형성 장치를 원격제어하는 장치 및 방법
US8707323B2 (en) * 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US20080288301A1 (en) * 2006-02-03 2008-11-20 Zywave, Inc. Data processing system and method
US20070220014A1 (en) * 2006-02-03 2007-09-20 Zywave, Inc. Data processing system and method
US20080294479A1 (en) * 2006-02-03 2008-11-27 Zywave, Inc. Data processing system and method
US20080288300A1 (en) * 2006-02-03 2008-11-20 Zywave, Inc. Data processing system and method
US7702781B2 (en) * 2006-03-03 2010-04-20 Teoco Corporation System and method of storing data files at a remote storage facility
US7924780B2 (en) 2006-04-12 2011-04-12 Fon Wireless Limited System and method for linking existing Wi-Fi access points into a single unified network
US9826102B2 (en) 2006-04-12 2017-11-21 Fon Wireless Limited Linking existing Wi-Fi access points into unified network for VoIP
US8280908B2 (en) * 2006-06-30 2012-10-02 Microsoft Corporation Merging file system directories
US20080005472A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Running applications from removable media
KR100739004B1 (ko) * 2006-07-10 2007-07-13 삼성전자주식회사 무선랜 서비스를 이용하여 웹 스토리지에 정보를 저장하는시스템, 이동통신단말기 및 방법
KR101321667B1 (ko) 2006-08-16 2013-10-22 삼성전자주식회사 다큐먼트 포워딩을 위한 xdm 장치 및 방법
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) * 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US7966599B1 (en) 2006-08-29 2011-06-21 Adobe Systems Incorporated Runtime library including a virtual file system
WO2008094508A2 (en) * 2007-01-26 2008-08-07 Fusionone, Inc. System for and method of backing up content for use on a mobile device
US8849940B1 (en) * 2007-12-14 2014-09-30 Blue Coat Systems, Inc. Wide area network file system with low latency write command processing
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
US20090193266A1 (en) * 2008-01-28 2009-07-30 Gable Melvin G Access control for protected and clear AV content on same storage device
EP2144421A1 (de) * 2008-07-08 2010-01-13 Gemplus Verfahren zur Verwaltung des Zugriffs einer Fernvorrichtung auf von einer lokalen Vorrichtung erreichbare Daten und zugehöriges System
US9305013B2 (en) * 2008-08-28 2016-04-05 Red Hat, Inc. URI file system
WO2010037117A1 (en) * 2008-09-29 2010-04-01 Nirvanix, Inc. Client application program interface for network-attached storage system
JP4766350B2 (ja) * 2009-01-06 2011-09-07 ソニー株式会社 ディスク再生装置および方法、プログラム、並びに記録媒体
US8271558B1 (en) * 2009-02-26 2012-09-18 Symantec Corporation Creating a unification directory that unifies a plurality of file system directories
KR101626117B1 (ko) * 2009-06-22 2016-05-31 삼성전자주식회사 클라우드 스토리지를 제공하는 클라이언트, 중개 서버 및 방법
US8601363B2 (en) 2009-07-20 2013-12-03 Facebook, Inc. Communicating information about a local machine to a browser application
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US9063932B2 (en) * 2009-12-18 2015-06-23 Vertafore, Inc. Apparatus, method and article to manage electronic or digital documents in a networked environment
US8700682B2 (en) * 2009-12-24 2014-04-15 Vertafore, Inc. Systems, methods and articles for template based generation of markup documents to access back office systems
WO2011121746A1 (ja) * 2010-03-31 2011-10-06 株式会社日立ソリューションズ ファイルサーバ装置、及びストレージシステムの管理方法、並びにプログラム
US9772834B2 (en) 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
US8762931B2 (en) 2010-05-26 2014-06-24 Red Hat, Inc. Generating an encoded package profile
US8429256B2 (en) * 2010-05-28 2013-04-23 Red Hat, Inc. Systems and methods for generating cached representations of host package inventories in remote package repositories
US9215264B1 (en) * 2010-08-20 2015-12-15 Symantec Corporation Techniques for monitoring secure cloud based content
US20120066322A1 (en) * 2010-09-15 2012-03-15 Veragen, Inc. Computer-network-based system and methodology for enhancing personal-information storage and transfer control
US8656407B2 (en) * 2010-10-22 2014-02-18 Sap Ag Profiling input / output operations
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
US8671221B2 (en) * 2010-11-17 2014-03-11 Hola Networks Ltd. Method and system for increasing speed of domain name system resolution within a computing device
US9384198B2 (en) 2010-12-10 2016-07-05 Vertafore, Inc. Agency management system and content management system integration
US8910149B2 (en) 2010-12-24 2014-12-09 Microsoft Corporation On-demand or incremental remote data copy
US8910300B2 (en) * 2010-12-30 2014-12-09 Fon Wireless Limited Secure tunneling platform system and method
US8942213B2 (en) * 2011-03-18 2015-01-27 Verizon Patent And Licensing Inc. Method and system for accessing storage devices
US8731973B2 (en) 2011-04-19 2014-05-20 Vertafore, Inc. Overlaying images in automated insurance policy form generation
US10684989B2 (en) * 2011-06-15 2020-06-16 Microsoft Technology Licensing, Llc Two-phase eviction process for file handle caches
CN102855432B (zh) * 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及系统
US9031905B2 (en) * 2011-07-20 2015-05-12 International Business Machines Corporation Data synchronization
US9635028B2 (en) * 2011-08-31 2017-04-25 Facebook, Inc. Proxy authentication
US9369504B1 (en) * 2011-10-31 2016-06-14 Rollapp, Inc. Enabling seamless remote access to online applications through a web server
US9361433B2 (en) 2012-08-03 2016-06-07 Synchronoss Technologies, Inc Enterprise leasing license algorithm
US9239855B2 (en) 2012-12-04 2016-01-19 Pixia Corp. Method and system of retrieving data in a data file
US9420002B1 (en) 2013-03-14 2016-08-16 Mark McGovern Authorization server access system
US9813285B1 (en) * 2013-03-14 2017-11-07 Ca, Inc. Enterprise server access system
US20140280484A1 (en) * 2013-03-15 2014-09-18 Oliver Klemenz Dynamic Service Extension Infrastructure For Cloud Platforms
US20160085920A1 (en) 2013-05-31 2016-03-24 Koninklijke Philips N.V. System and method for transferring a group of related files as one logical unit
US9432457B2 (en) * 2013-08-30 2016-08-30 Citrix Systems, Inc. Redirecting local storage to cloud storage
US9507814B2 (en) 2013-12-10 2016-11-29 Vertafore, Inc. Bit level comparator systems and methods
US9367435B2 (en) 2013-12-12 2016-06-14 Vertafore, Inc. Integration testing method and system for web services
CN103702221B (zh) * 2013-12-18 2017-08-08 Tcl集团股份有限公司 在线视频的内容发布呈现系统及发布呈现方法
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US9692879B1 (en) 2014-05-20 2017-06-27 Invincea, Inc. Methods and devices for secure authentication to a compute device
US11038945B2 (en) * 2014-08-13 2021-06-15 ShinyDocs Interfacing with remote content management systems
US10013430B2 (en) * 2014-08-18 2018-07-03 Vmware, Inc. Remotely stored application files
US9747556B2 (en) 2014-08-20 2017-08-29 Vertafore, Inc. Automated customized web portal template generation systems and methods
CN106576078B (zh) 2014-08-26 2020-06-23 Ctera网络有限责任公司 用于在云存储系统中路由数据流的方法和系统
US20160094653A1 (en) 2014-09-30 2016-03-31 International Business Machines Corporation Optimizing resource downloads or streams using a collection of trusted network connected endpoints
US9690501B1 (en) * 2014-12-02 2017-06-27 EMC IP Holding Company LLC Method and system for determining data profiles using block-based methodology
CN105589912B (zh) * 2015-03-27 2019-09-03 上海磁宇信息科技有限公司 一种利用mram处理频写文件的方法及存储结构
US10887371B2 (en) * 2015-09-14 2021-01-05 Google Llc Systems and methods for content storage and retrieval
US9600400B1 (en) 2015-10-29 2017-03-21 Vertafore, Inc. Performance testing of web application components using image differentiation
CN106657182B (zh) 2015-10-30 2020-10-27 阿里巴巴集团控股有限公司 云端文件处理方法和装置
US10387146B2 (en) 2015-11-30 2019-08-20 Visa International Service Association System and method for common request processing
KR102107277B1 (ko) * 2016-08-08 2020-05-06 (주)나무소프트 피싱 또는 랜섬웨어 공격을 차단하는 방법 및 시스템
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US10554580B2 (en) * 2016-11-30 2020-02-04 Hewlett Packard Enterprise Development Lp Fabric cable emulation
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization
US20190146899A1 (en) 2017-11-14 2019-05-16 Microsoft Technology Licensing, Llc Assistive debugging of web applications with port forwarding
US10761753B2 (en) * 2018-07-12 2020-09-01 International Business Machines Corporation Site-based coordination of distributed storage network memory
US20230042394A1 (en) * 2021-08-03 2023-02-09 Bank Of America Corporation Read-Only Caching Network File System

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144659A (en) * 1989-04-19 1992-09-01 Richard P. Jones Computer file protection system
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5263162A (en) * 1990-11-07 1993-11-16 Hewlett-Packard Company Method of validating a label translation configuration by parsing a real expression describing the translation configuration
JPH0799189A (ja) * 1993-04-28 1995-04-11 Mitsubishi Electric Corp 半導体装置の製造方法
EP0629960B1 (de) * 1993-06-17 2000-05-24 Sun Microsystems, Inc. Erweiterbares Dateiensystem
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5778384A (en) * 1995-12-22 1998-07-07 Sun Microsystems, Inc. System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
CA2257309C (en) 1996-06-07 2002-06-11 At&T Corp. Internet file system
US7058696B1 (en) * 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US5889942A (en) * 1996-12-18 1999-03-30 Orenshteyn; Alexander S. Secured system for accessing application services from a remote station
US7143193B1 (en) * 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US6199107B1 (en) * 1998-07-22 2001-03-06 Microsoft Corporation Partial file caching and read range resume system and method
US6308179B1 (en) 1998-08-31 2001-10-23 Xerox Corporation User level controlled mechanism inter-positioned in a read/write path of a property-based document management system
US6266670B1 (en) 1998-08-31 2001-07-24 Xerox Corporation User level accessing of low-level computer system operations.
US6356863B1 (en) 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
US6212640B1 (en) * 1999-03-25 2001-04-03 Sun Microsystems, Inc. Resources sharing on the internet via the HTTP
US6675353B1 (en) * 1999-07-26 2004-01-06 Microsoft Corporation Methods and systems for generating XML documents
US6629127B1 (en) * 1999-07-26 2003-09-30 Microsoft Corporation Methods and systems for processing HTTP requests
US6513048B1 (en) * 1999-11-17 2003-01-28 Serena Software, Inc. Method and apparatus for access to files stored on a mainframe using a personal computer user interface
US6408298B1 (en) * 1999-12-15 2002-06-18 Microsoft Corporation Methods and systems for copying and moving across virtual namespaces
US6735623B1 (en) * 2000-02-09 2004-05-11 Mitch Prust Method and system for accessing a remote storage area
US6654794B1 (en) * 2000-03-30 2003-11-25 International Business Machines Corporation Method, data processing system and program product that provide an internet-compatible network file system driver
US7062541B1 (en) * 2000-04-27 2006-06-13 International Business Machines Corporation System and method for transferring related data objects in a distributed data storage environment
US7509322B2 (en) * 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
JP5667824B2 (ja) * 2010-09-24 2015-02-12 株式会社ジャパンディスプレイ タッチ検出装置およびその駆動方法、タッチ検出機能付き表示装置、ならびに電子機器

Also Published As

Publication number Publication date
US20140365619A1 (en) 2014-12-11
EP1399848B1 (de) 2006-12-27
WO2002017140A2 (en) 2002-02-28
US20050091222A1 (en) 2005-04-28
US6842770B1 (en) 2005-01-11
WO2002017140A3 (en) 2003-12-31
HK1105232A1 (zh) 2008-02-06
EP3125136A1 (de) 2017-02-01
EP1768038A3 (de) 2007-05-09
US7693962B2 (en) 2010-04-06
US8321483B2 (en) 2012-11-27
EP1768038B1 (de) 2016-09-21
DE60125599D1 (de) 2007-02-08
US20100191785A1 (en) 2010-07-29
US8874624B2 (en) 2014-10-28
EP3125136B1 (de) 2021-04-07
EP1399848A2 (de) 2004-03-24
EP1768038A2 (de) 2007-03-28
US20130054732A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
DE60125599T2 (de) Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien
DE60130633T2 (de) Gesicherte Internet-Zwischenablage
DE69832786T2 (de) Vorrichtung und verfahren zur identifizierung von klienten die an netzwer-sites zugreifen
DE69938077T2 (de) Verfahren, Vorrichtung und Programmspeichereinrichtung für einen Klienten und ein adaptiver Synchronisierungs- und Transformierungsserver
DE60221451T2 (de) System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien
JP4378056B2 (ja) イントラネット・ユーザにコンテンツを割り当て、生成し、配布するシステム、方法、およびコンピュータ・プログラム製品
DE69733391T2 (de) Netzwerkarchivierungssystem und Speichermedium, welches ein Programm speichert, um ein Netzwerkarchivierungssystem herzustellen
DE69737925T2 (de) Ultraschalldiagnose-Bildsystem mit universellem Zugang zur Diagnoseinformationen und Bildern
DE10003907B4 (de) Verfahren, Vorrichtung und Datenverarbeitungsprogramm für die Anwendung beim Zugriff auf Hypertext-Dokumente
DE10236188B4 (de) Verfahren, System und Programmprodukt zum Bereitstellen eines Inhalts einer Quellwebsite an eine Verbraucherwebsite durch einen Bildumwandlungsdienst
DE69926459T2 (de) Verfahren und vorrichtung zur umlenkung von serverexternen hyperlink-referenzen
DE69635469T2 (de) Synchronisierung zwischen verschiedenen Computeranbieterumgebungen
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
US8127222B2 (en) Latches-links as virtual attachments in documents
DE69731994T2 (de) Verfahren und Gerät, um Informationen über Netzwerkanbieter zu bekommen und anzuzeigen
DE10052313B4 (de) Verfahren und Vorrichtung zur Beschränkung des freien Verweisens (Hyperlinking) auf Webseiten der ursprünglichen Inhaltserzeuger (Content producers) durch Internet-Inhaltsverteiler (Content distributors)
US20110307597A1 (en) Method for creating global distributed namespace
DE602004013397T2 (de) Verfahren und Apparat zum Verschieben von Daten zwischen Speichersystemen
DE19963981A1 (de) Verfahren und Vorrichtung zum Auffinden von Dokumenten unter Verwendung von Hyperlinks
EP2250588B1 (de) Verfahren und programm zum bereitstellen von datenkohärenz in netzwerken
DE10118064A1 (de) Erweiterung Browser-Bezogener Internetseiteninhaltskennzeichen und Kennwortüberprüfung auf Kommunikationsprotokolle
DE69925435T2 (de) Rechnerimplementiertes Verfahren und Apparat zur Bereitstellung eines logischen Zugriffspunktes zu einer oder mehreren Dateien
DE60108176T2 (de) Verfahren und system zum abliefern von informationen in einem telekommunikationsnetz
DE60208243T2 (de) Kommunikationsendgerät
DE10059931B4 (de) Verfahren und Vorrichtung zur Datenübertragung und ferngesteuerten Erzeugung von Ausgabedaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition