DE60221451T2 - System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien - Google Patents

System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien Download PDF

Info

Publication number
DE60221451T2
DE60221451T2 DE60221451T DE60221451T DE60221451T2 DE 60221451 T2 DE60221451 T2 DE 60221451T2 DE 60221451 T DE60221451 T DE 60221451T DE 60221451 T DE60221451 T DE 60221451T DE 60221451 T2 DE60221451 T2 DE 60221451T2
Authority
DE
Germany
Prior art keywords
file
webdav
request
server
local
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
DE60221451T
Other languages
English (en)
Other versions
DE60221451D1 (de
Inventor
Pardikar Shishir
Kumar Rohan
Lin Yun
Garg Praerit
Gu Jianrong
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.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of DE60221451D1 publication Critical patent/DE60221451D1/de
Application granted granted Critical
Publication of DE60221451T2 publication Critical patent/DE60221451T2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung bezieht sich im Allgemeinen auf Computer und das Internet, und im Besonderen auf im Internet verteilte Entwicklung von Autorensoftware und Versionierung (Internet Distributed Authoring and Versioning).
  • HINTERGRUND DER ERFINDUNG
  • Die Verwendung von Online-Speicherdiensten zum Speichern und zur Mitbenutzung von Daten wird immer populärer. Im Allgemeinen basieren die meisten heutigen Zugriffe auf Internet-Speicher auf relativ komplizierten Protokollen, wie zum Beispiel FTP (File Transfer Protocol – Dateiübertragungsprotokoll), das eine spezielle Anwendungsunterstützung erfordert.
  • WebDAV, oder einfach DAV, (Distributed Authoring and Versioning – verteilte Entwicklung von Autorensoftware und Versionierung), ist ein Protokoll, das in Extensible Markup Language (XML – erweiterbare Auszeichungssprache) beschrieben ist, welche HTTP (HyperText Transfer Protocol) im Wesentlichen erweitert, so dass Internet-Inhalte und ähnliches manipuliert werden können. Zum Beispiel, obwohl HTTP es erlaubt, dass Inhalt unter Verwendung der PUT und POST Verben geschrieben wird, erlaubt WebDAV das Abfragen und Manipulieren von Metadaten auf den Dateien, wobei Verben verwendet werden wie PROPFIND und PROPPATCH, sowie das Sperren (LOCKing) von Dateien, welches zusammen mit den HTTP-Verben wie PUT und POST eine Dokumentenmanipulation erlaubt. Dazwischenliegende Programme sind geschrieben worden, um die Verwendung von diesen Protokollen zu vereinfachen. Zum Beispiel stellen Windows® 95, Windows® 98 und Windows® 2000 Betriebssysteme von Microsoft Corporations "wWeb-Ordner" (Web Folders) bereit, welche als Schnittstellen zu einer Sammlung von Ressourcen, die auf einem DAV-Server gespeichert sind, fungieren. Web-Ordner erscheinen ähnlich wie lokale Dateiordner, zum Beispiel können Dateien gezogen und in einer Darstellung eines Web-Ordners abgelegt werden (dragged and dropped), und so weiter. Jedoch können Web-Ordner nicht mit einem nicht modifizierten Anwendungsprogramm verwendet werden, und nur Anwendungen, die Web-Ordner in ihren Code integriert haben, können Web-Ordner benutzen.
  • Alternativ gibt es ein paar Anwendungen, die DAV kennen, und in der Lage sind, mit Dateien auf WebDAV-Servern, wie zum Beispiel Dateien die in Web-Ordnern erscheinen, zu arbeiten. Jedoch erfordern solche Anwendungen eine bestimmte Unterstützung der Protokolle, um auf die Daten im Internet zuzugreifen, und sind im Allgemeinen auf ein paar spezielle Web-Authoring-Werkzeuge begrenzt. Die Mehrheit der Anwendungen, einschließlich Anwendungen die bereits existieren, sind nicht in der Lage auf WebDAV-Server-Dateien zuzugreifen, und es ist nahezu unmöglich, solche existierenden Anwendungen rückwirkend anzupassen, um dies zu tun.
  • Whitehead, E.J. und andere, " WebDAV: IEFT standard for collaborative authoring on the Web", IEEE Internet Computing, vol. 2, Nummer 5, Septermber 1998 bis Oktober 1998, Seiten 34-40, beschreiben eine Reihe von Erweiterungen für die Basis des HyperText-Transfer-Protocols für WebDAV, um eine Standardinfrastruktur für ein asynchrones Entwickeln (Authoring) für (Software für eine) Zusammenarbeit quer über das Internet bereitzustellen. Im Besonderen wird es beschrieben, wie ein üblicher Web-Client diese Erweiterung verwenden könnte, um die Quelle einer Web-Ressource zu editieren. Dabei erlangt der Client die Ressource-Eigenschaften und die Inhalte der Ressource, welche anschließend zum Editieren angezeigt werden. Sobald alle Editierungen abgeschlossen worden sind, wird die Ressource auf den WebDAV-Server zurückgespeichert.
  • KURZFASSUNG DER ERFINDUNG
  • Es ist die Aufgabe der Erfindung einen WebDAV-Datei-Zugriff automatisch und unsichtbar zu erledigen, wobei Anwendungen, einschließlich Anwendungen, die sich WebDAV nicht bewusst sind, auf WebDAV-Dateien in einer üblichen Art und Weise zugreifen können.
  • Diese Aufgabe wird durch die Erfindung wie in den unabhängigen Ansprüchen beansprucht gelöst.
  • Bevorzugte Ausführungsformen werden durch die abhängigen Ansprüche definiert.
  • Kurzgesagt stellt die vorliegende Erfindung ein System und Verfahren bereit, das einen WebDAV-Datei-Zugriff automatisch und unsichtbar erledigt, wobei Anwendungen (einschließlich Anwendungen, die sich WebDAV nicht bewusst sind) auf WebDAV-Dateien durch konventionelle auf das Dateisystem gerichtete API-Aufrufe (Application Programing Interface Calls – Anwendungsprogrammierungsschnittstellenaufrufe) oder Ähnli ches zugreifen können. Anwendungen können ebenso netzwerkbezogene Anfragen an WebDAV-Server ausgeben, wie zum Beispiel zum Durchsuchen (browsing), wobei jene Anfragen unsichtbar erledigt werden, als wäre ein freigegebenes WebDAV-Laufwerk (share) ein lokaler Ordner.
  • Zu diesem Zweck umfasst die vorliegende Erfindung einen WebDAV-Umleiter (redirector) und in Beziehung stehende Komponenten, die Anfragen, die an einen WebDAV-Server gerichtet sind, empfangen, und die Maßnahmen ergreifen, um die Anfrage lokal oder dezentral (remotely), soweit erforderlich, zu erledigen. Zum Beispiel unterstützen der WebDAV-Umleiter und in Beziehung stehende Komponenten I/O-Anfragen (Eingabe/Ausgabe-Anfragen) und Netzwerkanfragen, die an WebDAV-Server gerichtet sind, die durch URI-Namen (Universal Resource Identifier Names – universelle Ressourcenkennzeichnernamen) oder durch ein Laufwerk identifiziert werden, können auf ein freigegebenes WebDAV-Laufwerk abgebildet werden.
  • Zu diesem Zweck arbeiten die Umleiterkomponenten, um zu ermitteln, ob eine Erzeugungs- oder Öffnen-I/O-Anfrage einer Anwendung auf einen WebDAV-Server gerichtet ist, der verbunden ist und arbeitet, und wenn dem so ist, ob auf ein bestimmte freigegebenes Laufwerk und eine bestimmte Datei auf diesem Server zugegriffen werden kann. Wenn ja, informiert der Umleiter einen Anbieter für mehrere UNC (multiple UNC provider), dass er die Anfrage bearbeiten kann, und eine lokale Kopie der Datei wird heruntergeladen und für lokalen I/O-Zugriff zwischengespeichert, wobei das Lesen und Schreiben zu dem WebDAV-Server von und zu der zwischengespeicherten Datei gemacht wird. Wenn die lokale Datei geschlossen wird, wird sie zu dem WebDAV-Server heraufgeladen, wenn sie auf dem Client modifiziert worden ist.
  • Netzwerk-bezogene Anfragen, die auf einen WebDAV-Server gerichtet sind, wie zum Beispiel Anfragen die sich auf ein Durchsuchen (browsing) beziehen, werden ebenso durch das Agieren auf API-Aufrufe oder Ähnlichem entsprechend der Anfrage unsichtbar bearbeitet. Zum Beispiel wird ein API-Aufruf zum Enumerieren eines freigegebenen WebDAV-Laufwerks den WebDAV-Umleiterkomponenten bereitgestellt, welche ermitteln, ob der Server und die Beteiligung gültig sind, und wenn dem so ist, einen Router für mehrere Anbieter informieren, dass die Anfrage bearbeitet werden kann. Netzwerkverbindungen werden durch die WebDAV-Umleiterkomponenten gesteuert, um die Anfrage zu bearbeiten. WebDAV-Dateien können auf dem Dateisystemlevel lokal verschlüsselt und entschlüsselt werden, was unsichtbar für die Anwendungen und den WebDAV- Server ist. Ein Verschlüsselungsdateisystem führt lokale Verschlüsselung und Entschlüsselung auf dem lokalen Dateisystemlevel durch, wobei die Dateien bei dem Web-DAV-Server nicht betrachtet werden können, und der WebDAV-Server nicht mit der Verschlüsselungs- oder Entschlüsselungsbearbeitung belastet werden muss.
  • Andere Vorteile werden durch die folgende detaillierte Beschreibung ersichtlich, wenn sie in Zusammenhang mit den Zeichnungen gelesen wird, in denen:
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein exemplarisches Computersystem darstellt, in dem die Erfindung inkorporiert werden kann;
  • 2 ist ein Blockdiagramm, das allgemein Komponenten zum Implementieren von Aspekten des WebDAV-Umleiters gemäß der vorliegenden Erfindung darstellt;
  • 3 und 4 umfassen ein Flussdiagramm, das im Allgemeinen eine Logik zum Zugreifen auf WebDAV-Serverdateien gemäß einem Aspekt der vorliegenden Erfindung darstellt;
  • 5 ist ein Flussdiagramm, das im Allgemeinen eine Logik zum Herunterladen einer WebDAV-Serverdatei für einen lokalen Zugriff gemäß einem Aspekt der vorliegenden Erfindung darstellt;
  • 6 ist ein Flussdiagramm, das im Allgemeinen eine Logik zum Zwischenspeichern einer WebDAV-Serverdatei für lokalen Zugriff gemäß einem Aspekt der vorliegenden Erfindung darstellt;
  • 7 ist ein Flussdiagramm, das im Allgemeinen eine Logik zum Heraufladen einer lokal zwischengespeicherten Datei zu einem WebDAV-Server gemäß einem Aspekt der vorliegenden Erfindung darstellt; und
  • 8 ist ein Blockdiagramm, das im Allgemeinen Komponenten zum Integrieren von WebDAV-Dateien mit einem Verschlüsselungsdateisystem gemäß einem anderen Aspekt der vorliegenden Erfindung darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • EXEMPLARISCHE ARBEITSUMGEBUNG
  • 1 stellt ein Beispiel einer geeigneten Computersystemumgebung 100 dar, auf der die Erfindung implementiert werden kann. Die Computersystemumgebung 100 ist nur ein Beispiel einer geeigneten Computerumgebung und ist nicht gedacht, irgendwelche Einschränkungen auf den Umfang der Verwendung oder Funktionalität der Erfindung vorzuschlagen. Noch sollte die Computerumgebung 100 so interpretiert werden als hätte sie irgendwelche Abhängigkeiten oder Erfordernisse bezüglich irgendeiner oder einer Kombination von Komponenten, die in der exemplarischen Arbeitsumgebung 100 dargestellt sind.
  • Die Erfindung ist mit einer Vielzahl anderer Allzweck- oder Spezialzweckcomputersystemumgebungen oder Konfigurationen betriebsbereit. Beispiele von gut bekannten Computersystemen, Umgebungen und/oder Konfigurationen, die für die Verwendung mit der Erfindung geeignet sein können, schließen ein, sind aber nicht darauf begrenzt, Personalcomputer, Servercomputer, tragbare oder Laptopgeräte, Tablet-Geräte, Multiprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputer, Mainframecomputer, verteilte Computerumgebungen, die irgendeins der oben genannten Systeme oder Geräte einschließen, und Ähnliches.
  • Die Erfindung kann im allgemeinen Kontext von computer-ausführbaren Instruktionen beschrieben werden, wie zum Beispiel Programmmodulen, die durch einen Computer ausgeführt werden. Im Allgemeinen schließen Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw. ein, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Die Erfindung kann ebenso in verteilten Computerumgebungen praktiziert werden, wo Aufgaben durch Remote (entfernt liegende) verarbeitende Geräte durchgeführt werden, die durch ein Datenübertragungsnetzwerk miteinander verbunden sind. In einer verteilten Computerumgebung können Programmmodule sowohl in lokalen als auch Remote-Computerdatenspeicherträgern, einschließlich Datenspeichergeräten, liegen.
  • Mit Bezug auf 1 schließt ein exemplarisches System zum Implementieren der Erfindung ein Allzweckcomputergerät in der Form eines Computers 110 ein. Komponenten des Computers 110 können einschließen, sind aber nicht darauf begrenzt, eine Prozessoreinheit 120, einen Systemspeicher 130 und einen Systembus 121, der verschiedene Systemkomponenten einschließlich des Systemspeichers mit der Prozessoreinheit 120 koppelt. Der Systembus 121 kann irgendeiner von verschiedenen Busstrukturtypen sein, einschließlich einem Speicherbus oder Speicherkontroller, einem Peripheriebus und einem lokalen Bus, der irgendeine von einer Vielfalt von Busarchitekturen verwendet. Als Beispiel, und nicht Einschränkung, schließen solche Architekturen Industry-Standard-Architecture-Bus (ISA-Bus), Micro-Channel-Architecture-Bus (MCA-Bus), Enhanced-ISA-BUS (EISA-Bus), Video-Electronics-Standards-Association-Local-Bus (VESA-Local-Bus), und Peripheral-Component-Interconnect-Bus (PCI-Bus) ebenso bekannt als Mezzannine-Bus, ein.
  • Der Computer 110 schließt üblicherweise eine Vielfalt von computerlesbaren Datenträgern ein. Computerlesbare Datenträger können irgendein verfügbarer Datenträger sein, auf den durch den Computer 110 zugegriffen werden kann, und schließt sowohl flüchtige als auch nicht-flüchtig Datenträger und entfernbare und nicht-entfernbare Datenträger ein. Als Beispiel, und nicht Einschränkung, können computerlesbare Datenträger Computerspeicherdatenträger und Datenübertragungsdatenträger umfassen. Computerspeicherdatenträger schließen sowohl flüchtige und nicht-flüchtige, entfernbare und nichtentfernbare Datenträger ein, die durch irgendein Verfahren oder eine Technologie zur Speicherung von Informationen, wie zum Beispiel computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten, implementiert wurden. Computerspeicherdatenträger schließen ein, sind aber nicht darauf begrenzt, RAM, ROM, EEPROM, flash-memory oder andere Speichertechnologie, CD-ROM, digital versatile disks (DVD) oder andere optische Diskspeicher, magnetische Kassetten, magnetische Bänder, magnetischen Diskspeicher oder andere magnetische Speichergeräte, oder irgendeinen anderen Datenträger, der verwendet werden kann, um die gewünschten Informationen zu speichern, und auf den durch den Computer 110 zugegriffen werden kann. Datenübertragungsdatenträger verkörpern üblicherweise computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie zum Beispiel einer Trägerwelle oder anderem Transportmechanismus und schließen irgendwelche informationsliefernde Datenträger ein. Der Begriff "moduliertes Datensignal" bedeutet ein Signal, das eine oder mehrere seiner Charakteristiken in solch einer Weise gesetzt oder verändert hat, dass Informationen in das Signal codiert wurden. Als Beispiel, und nicht Einschränkung, schließen Datenübertragungsdatenträger verkabelte Datenträger, wie zum Beispiel ein verkabeltes Netzwerk oder direktverkabelte Verbindung, und kabellose Datenträger, wie zum Beispiel akustische RF-, infrarote und andere kabellose Datenträger ein. Kombinationen von irgendwelchen der oben genannten sollten ebenso in den Umfang der computerlesbaren Datenträger eingeschlossen sein. Der Systemspeicher 130 enthält Computerspeicherdatenträger in der Form von flüchtigem und/oder nicht-flüchtigem Speicher, wie zum Beispiel Nur-Lesespeicher (read only memory – ROM) 131 und Speicher mit wahlfreiem Zugriff (random access memon – RAM) 132. Ein Basic-Input/Output-System (BIOS) 133, enthält die Basisroutinen, die helfen, Informationen zwischen Elementen innerhalb des Computers 110, wie zum Beispiel während des Hochfahrens, zu transferieren, ist üblicherweise in dem ROM 131 gespeichert. Der RAM 132 enthält üblicherweise Daten und/oder Programmmodule, auf die unmittelbar durch die Prozessoreinheit 120 zugegriffen werden kann und/oder auf der derzeit durch die Prozessoreinheit 120 gearbeitet wird. Als Beispiel, und nicht Einschränkung, stellt 1 ein Betriebssystem 134, Dateisystem 135, Anwendungsprogramme 136, andere Programmmodule 137 und Programmdaten 138 dar.
  • Der Computer 110 kann ebenso andere entfernbare/nicht-entfernbar, flüchtige/nichtflüchtige Computerspeicherdatenträger einschließen. Nur als Beispiel stellt 1 ein Festplattenlaufwerk 141, das von oder zu nicht entfernbaren, nicht-flüchtigen magnetischen Datenträgern liest oder schreibt, ein magnetisches Disklaufwerk 151, das von oder zu einer entfernbaren, nicht-flüchtigen magnetischen Disk 152 liest oder schreibt, und ein optisches Disklaufwerk 155, das von oder zu einer entfernbaren, nicht-flüchtigen optischen Disk 156 wie zum Beispiel einer CD-ROM oder anderem optischen Datenträger liest oder schreibt, dar. Andere entfernbare/nicht-entfernbare, flüchtige/nicht-flüchtige Computerspeicherdatenträger, die in der exemplarischen Arbeitsumgebung verwendet werden können, schließen ein, sind aber nicht darauf begrenzt, magnetische Bandkassetten, Flash-Speicherkarten, digital versatile disks, digitale Videobänder, solid-state-RAM, solid-state-ROM, und Ähnliches. Das Festplattenlaufwerk 141 ist üblicherweise mit dem Systembus 121 durch eine Schnittstelle für nicht-entfernbaren Speicher, wie zum Beispiel Schnittstelle 140, verbunden, und das magnetische Disklaufwerk 151 und optische Disklaufwerk 155 sind üblicherweise mit dem Systembus 121 durch eine Schnittstelle für entfernbaren Speicher, wie zum Beispiel Schnittstelle 150, verbunden.
  • Die Laufwerke und ihre zugehörigen Computerspeicherdatenträger, die oberhalb diskutiert und in 1 dargestellt sind, stellen Speicher für computerlesbare Instruktionen, Datenstrukturen, Programmmodule und andere Daten für den Computer 110 bereit. In 1 ist zum Beispiel das Festplattenlaufwerk 141 so dargestellt, dass es das Betriebssystem 144, Anwendungsprogramme 145, andere Programmmodule 146 und Programmdaten 147 speichert. Es ist zu beachten, dass diese Komponenten entweder die selben sein können oder verschieden sein können von dem Betriebssystem 134, Anwendungsprogrammen 136, anderen Programmmodulen 137, und Programmdaten 138. Das Betriebssystem 144, Anwendungsprogramme 145, andere Programmmodule 146 und Programmdaten 147 sind hier verschiedene Nummern gegeben worden, um darzustellen, dass sie wenigstens unterschiedliche Kopien sind. Ein Benutzer kann Befehle und Informationen in den Computer 20 durch Eingabegeräte, wie zum Beispiel ein Tablet (elektronischer Digitalisierer) 164, ein Mikrofon 163, eine Tastatur 162 und ein Zeigergerät 161, allgemein als eine Maus, Trackball oder Touch-Pad bezeichnet, eingeben. Andere Eingabegeräte (nicht gezeigt) können einen Joystick, Game-Pad, Satellitenschüssel, Scanner, oder Ähnliches einschließen. Diese und andere Eingabegeräte sind oft mit der Prozessoreinheit 120 durch eine Benutzereingabeschnittstelle 160 verbunden, die mit dem Systembus gekoppelt ist, können aber ebenso durch andere Schnittstellen und Busstrukturen verbunden sein, wie zum Beispiel einem Parallelanschluss, Game-Port oder einem Universal-Serial-Bus (USB). Ein Monitor 191 oder anderer Typ von Anzeigegerät ist ebenso mit dem Systembus 121 über eine Schnittstelle, wie zum Beispiel einer Videoschnittstelle 190, verbunden. Der Monitor 191 kann ebenso ein Berührungsbildschirmpanel (Touch-Screen-Panel) oder Ähnliches integriert haben. Es ist zu beachten, dass der Monitor und/oder das Touch-Screen-Panel physikalisch mit einem Gehäuse gekoppelt sein kann, in dem das Computergerät 110 inkorporiert ist, wie zum Beispiel in einem Personalcomputer des Tablet-Typs. Zusätzlich können Computer, wie zum Beispiel das Computergerät 110, ebenso andere periphere Ausgabegeräte, wie zum Beispiel Lautsprecher 195 und Drucker 196, einschließen, welche durch eine Ausgabeperipherieschnittstelle 194 oder Ähnliches verbunden sind.
  • Der Computer 110 kann in einer Netzwerkumgebung unter Verwendung logischer Verbindungen zu einem oder mehreren Remote-Computern, wie zum Beispiel einem Remote-Computer 180, arbeiten. Der Remote-Computer 180 kann ein Personalcomputer, ein Server, ein Router, ein Netzwerk-PC, ein Peer-Gerät oder anderer allgemeiner Netzwerkknoten sein und schließt üblicherweise viele oder alle der oben mit Bezug auf Computer 110 beschriebenen Elemente ein, obwohl nur ein Datenspeichergerät 181 in 1 dargestellt worden ist. Die logischen Verbindungen, die in 1 gezeigt sind, schließen ein Local Area Network (LAN) 171 und ein Wide Area Network (WAN) 173 ein, aber können ebenso andere Netzwerke einschließen. Solche Netzwerkumbebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet. Zum Beispiel kann in der vorliegenden Erfindung das Computersystem 110 eine Datenquellen-Maschine umfassen, von der Daten migriert werden, und der Remote-Computer 180 kann die Zielmaschine umfassen. Es ist jedoch zu beachten, dass die Quell- und Zielmaschinen nicht durch ein Netzwerk oder irgendwelche anderen Mittel verbunden sein müssen, aber stattdessen Daten über irgendeinen Datenträger, der im Stande ist, durch die Quellplatfform beschrieben zu werden und durch die Zielplattform oder andere Platfformen gelesen zu werden, zu migrieren.
  • Wenn er in einer LAN-Netzwerkumgebung verwendet wird, ist der Computer 110 mit dem LAN 171 durch eine Netzwerkschnittstelle oder -adapter 170 verbunden. Wenn er in einer WAN-Netzwerkumgebung verwendet wird, schließt der Computer 110 üblicherweise ein Modem 172 oder andere Mittel zum Herstellen von Datenübertragungen über das WAN 173, wie zum Beispiel dem Internet, ein. Das Modem 172, welches intern oder extern sein kann, kann mit dem Systembus 121 über die Benutzereingabeschnittstelle 160 oder anderen entsprechenden Mechanismus verbunden sein. In einer Netzwerkumgebung könne Programmmodule, die mit Bezug auf Computer 110 gezeigt sind, oder Teile davon, in dem Remote-Datenspeichergerät gespeichert sein. Als Beispiel, und nicht Einschränkung, stellt 1 Remote-Anwendungsprogramme 185 dar, so dass sie auf dem Speichergerät 181 liegen. Es wird begrüßt, dass die gezeigten Netzwerkverbindungen exemplarisch sind und andere Mittel zum Herstellen einer Datenübertragungsverbindung zwischen den Computern verwendet werden kann.
  • WEBDAV-UMLEITER (Redirector)
  • Die vorliegende Erfindung wird im Allgemeinen in dem Kontext des Windows®XP-Betriebssystems von Microsoft Corporation, welches das NTFS-Dateisystem verwendet, beschrieben. Dennoch kann es leicht erkannt werden, dass die vorliegende Erfindung mit nahezu jedem Betriebssystem und/oder Dateisystem implementiert werden kann.
  • Mit Bezug nun auf 2 der Zeichnungen wird ein Anwendungsprogramm im Benutzermodus (user mode application program) 200 gezeigt, welches verschiedene Systemfunktionen durch das Aufrufen von Anwendungsprogrammierungsschnittstellen (APIs) 202 anfrägt. Zum Zugreifen auf Netzwerkressourcen kann die Anwendung 200 im Allgemeinen auf mindestens eine von zwei möglichen Art und Weisen arbeiten, von denen eine erste das Platzieren von Datei-Eingabe/Ausgabe-API-Aufrufen (Input/Output- I/O), die auf eine Netzwerkressource gerichtet sind, auf einen API-Layer 202 ist. Zum Beispiel können Anwendungen Ressourcen auf Remote-Systemen durch Verwenden eines UNC-Standards (Uniform Naving Convention Standard) mit Win32-Funktionen untersuchen oder darauf zugreifen, um eine Remote-Ressource direkt zu adressieren, zum Beispiel in der Form "\\server\share", oder über ein Laufwerk, das auf einen im Netzwerk, gemeinsam nutzbaren Ordner oder Ähnliches abgebildet (mapped) ist. Eine andere Möglichkeit, wie eine Anwendung auf Netzwerkressourcen zugreifen kann, ist durch das Aufrufen von Netzwerk-APIs, (zum Beispiel Win32-Windows-Networking-APIs (WNet) in dem Windows®2002-Betriebssystem), wie zum Beispiel um die Dateien auf einem Server während des Durchsuchens aufzuzählen. Über diese WNet-APIs können Anwender Computer und Ressourcen, die von Computern zum Teilen exportiert werden, aufzählen.
  • Wenn eine Datei-I/O-API (zum Beispiel eine Datei-Öffen- oder -Erzeugen-Anfrage) mit einem Remote-Dateinamen, wie zum Beispiel einem UNC-Namen, aufgerufen wird, wird eine Datei-I/O-Anfrage bei einem I/O-Manager 204 empfangen. Um den Remote-Namen handzuhaben, ruft der I/O-Manager 204 einen Mehrfach-UNC-Bereitsteller (Multiple UNC Provider), oder MUP 206 auf, um herauszufinden, welches Gerät den Namen bedient (handle). Mit anderen Worten ermittelt der MUP 206 (der zum Beispiel einen Treiber im Kernelmodus umfasst), auf welches Netzwerk zugegriffen werden muss, wenn eine Anwendung 200 eine I/O-API verwendet, um eine Remote-Datei zu öffnen.
  • Spezieller gesagt, um ein Gerät zu ermitteln, das den gegebenen Namen bedienen (bearbeiten) kann, frägt (to poll) der MUP 206 (über asynchrone I/O-Anfragepakete, oder IRPs) irgendwelche Umleiter ab, die vorher mit dem MUP registriert worden sind, zum Beispiel, Umleiter 208 und 212 in 2. Jeder Umleiter, der den Namen bedienen kann, antwortet zurück, und wenn mehr als einer antwortet, ermittelt der MUP 206 aus einer Prioritätsreihenfolge (die zum Beispiel in mindestens einem System-Registrierungsschlüssel oder Ähnlichem geführt ist), welcher die Priorität (Präzedenz) hat, die Anfrage zu bedienen. In einer Implementation hat der SMB-Umleiter (server message block redirector – Servernachrichtenblockumleiter) standardmäßig die erste Priorität zur Bearbeitung von UNC-Anfragen. Der SMB-Umleiter, zusammen mit den IRPs und dem I/O-Manager sind allgemein in dem Literaturhinweis "Inside Microsoft® Windows®2000", dritte Edition, D. Solomon und M. Russinovich, Microsoft Press (2000) beschrieben.
  • Als Teil der Antwort an den MUP 206 indiziert jeder Umleiter, der den Namen erkennt, wie viel von dem Namen für ihn eindeutig ist. Zum Beispiel, wenn der Name der UNC-Name "\\SERVER\SHARE\foo\bar1.doc" ist, erkennt der SMB-Umleiter 208 (Server Message Block Redirector) den Namen als im möglichen Bearbeitungsrahmen, und wenn der Server ein SMB-Server ist, antwortet er durch das Beanspruchen der Zeichenfolge "\\SERVER\SHARE" als seine eigene.
  • Wenn mindestens ein Umleiter antwortet und die Zwischenspeicherinformation bereitstellt, speichert der MUP-Treiber 206 die Information in Zusammenhang mit dem Umleiter, der geantwortet hat, zwischen, (wenn es mehr als einer war, speichert er die Information des einen zwischen, der die Priorität hält) wobei weitere Anfragen, die mit dieser Zeichenfolge beginnen direkt an den Umleiter, ohne die Abfragefunktion (polling operation), geschickt werden Zum Beispiel werden zukünftige SMB-Anfragen, die auf eine Netzwerkbeteiligung entsprechend einer zwischengespeicherten Zeichenfolge gerichtet sind, an den SMB-Umleiter 208 weitergegeben, welcher anschließend jene SMB-Anfragen in eine Datenstruktur packt, die über das Netzwerk zu diesem Remote-SMB-Server gesendet werden kann. Es ist zu beachten, dass die Zeichenfolgeninformation in dem Zwischenspeicher, wenn sie für zu lange Zeit inaktiv war, ablaufen wird, wobei das Abfragen (polling) wieder notwendig werden wird.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird der Zugriff auf WebDAV-Sever Anwendungen in einer Weise bereitgestellt, die im Wesentlichen unsichtbar/transparent für die Anwendung ist. Zu diesem Zweck wird ein WebDAV-Umleiter 210 bereitgestellt, der Dateisystem-I/O- und Netzwerk-Befehle, die an WebDAV-Server gerichtet sind, die durch URI-Namen (Universal Ressource Identifier Names) identifiziert werden, unterstütz. In einer beschriebenen Implementation, die der entspricht, die in 2 dargestellt ist, umfasst der WebDAV-Umleiter 210 eine Umleiter-Reflektorkomponente im Kernelmodus 212, eine Umleiterkomponente im Benutzermodus 214 (web client service) und einen Netzwerkanbieter im Benutzermodus 216 (user mode network provider). Die allgemeinen Funktionen und Strukturen dieser Komponenten werden unterhalb beschrieben.
  • Im Allgemeinen hat ein WebDAV-URI-Name die folgende Syntax, (wobei Teile in eckigen Klammern optional sind):
    http://hostname[:port][/path] oder
    https://hostname[:port)[/path]
    wobei path=rootdir/... gilt, und rootdir ein virtuelles oder physisches Verzeichnis umfasst, das durch einen IIS-WebDAV-Server 218 dargelegt wird. In Übereinstimmung mit der vorliegenden Erfindung, wenn der I/O-Manager 204 zum ersten Mal eine solchen URI-Namen empfängt, kontaktiert der I/O-Manager 204 den MUP 206, welcher den Namen an die verschiedenen Umleiter in der oben beschriebenen Weise bereitstellt, einschließlich der WebDAV-Umleiterkomponente im Kernelmodus 212, welche konfiguriert ist, URI-Namen, wie unterhalb beschrieben, zu unterstützen. Es ist zu beachten, dass die WebDAV-Umleiterkomponente 212 ebenso UNC-Namen unterstützt, um mit all den bestehenden Anwendungen, die eine Win32-Datei-I/O versenden, kompatibel zu sein,.
  • In der vorliegenden Erfindung wird der WebDAV-Kernel-Umleiter 212, weil die Anfrage ein URI-Name ist, der einzige Umleiter sein, der antwortet, (oder andernfalls die Priorität hat), vorausgesetzt, der URI-Name identifiziert einen tatsächlichen, zugreifbaren Web-DAV-Server, wie unterhalb beschrieben. Die Antwort wird dem MUP 206 anzeigen, dass der WebDAV-Kernel-Umleiter 212 im Stande ist, Datei-I/O-Anfragen, die auf diese Beteiligung (share) gerichtet sind, zu bearbeiten, und die Informationen bereitstellt, die notwendig sind, um die Abfragefunktion (polling operation) für nachfolgende Anfragen, die an die selbe Beteiligung gerichtet sind, zu umgehen.
  • Sobald ihre Informationen in dem MUP 206 zwischengespeichert sind, wird auf diese Weise jede I/O-Abfrage, die auf diese WebDAV-Beteiligung gerichtet ist, zu der Web-DAV-Komponente im Kernelmodus 212 des WebDAV-Umleiters 210 gesendet, welcher versucht sie zu erfüllen (zum Beispiel lokal, wie unten beschrieben). Wenn die WebDAV-Umleiterkomponente im Kernelmodus 212 eine I/O-Anfrage nicht lokal durch das Aufrufen des zugrundeliegenden Dateisystems erfüllen kann, wird der WebDAV-Umleiter anschließend die Anfrage zu der WebDAV-Umleiterkomponente im Benutzermodus 214 reflektieren, welche einen WebDAV-Klient implementiert und versucht, die Anfrage über eine Internet-Transport-Komponente 220 (zum Beispiel Winlnet-APIs) und den Web-DAV-Server 218 abzuschließen. Die WebDAV-Umleiterkomponente im Benutzermodus 214 gibt die Steuerung (control) und irgendeine Antwort des WebDAV-Servers zurück an den WebDAV-Umweiter im Kernelmodus 212. Auf diese Weise werden Datei-I/O- Anfragen, die an den WebDAV-Server gerichtet sind, duch den WebDAV-Umleiter 210 bearbeitet, wobei die Anwendung 200 einen transparenten Zugriff (zum Beispiel wenn sie auf einem lokalen oder SNB-Netzwerklaufwerk sind) auf jene Dateien haben wird. WebDAV-Datei-I/O-Anfragen werden unterhalb mit Bezug auf die Flussdiagramme der 3 bis 7 beschrieben. Es ist der Vollständigkeit halber zu beachten, dass 2 jeden Umleiter im Kernelmodus 208 und 212 so darstellt, dass sie mit einem zurückgerichteten Pufferuntersystem 222 (Re-Directed Buffering Subsystem), oder RDBSS, verbunden sind, welches eine Remote-Dateisystemkomponente umfasst, die mehrere Datei-Level-Protokolle durch das Bereitstellen von gemeinsamem Pufferungscode für die Umleiter im Kernelmodus, einschließlich dem SNB-Umleiter 208 und dem WebDAV-Umleiter 212, unterstützt.
  • In der anderen Netzwerk-API-Alternative zum Zugreifen auf Remote-Ressourcen, die oben erwähnt wurden, ruft eine Anwendung 200 Netzwerk-APIs (zum Beispiel WNet-APIs) auf, welche es neben anderen Funktionen Anwendungen erlauben, sich mit einer Netzwerkressource zu verbinden, wie zum Beispiel Dateiservern und Druckern, und durch die Inhalte irgendwelcher Remote-Dateisystemtypen zu stöbern. Weil eine Netzwerk-API aufgerufen werden kann, um in unterschiedlichen Netzwerken, die verschiedene Transportprotokolle verwenden, zu arbeiten, wird ein entsprechender Netzwerkanbieter (zum Beispiel Netzwerkanbieter 216 oder 224) verwendet, wenn eine dieser Netzwerk-APIs aufgerufen wird, um die Anfrage korrekt über das Netzwerk zu senden, und um die Ergebnisse, die der Remote-Server zurückgibt, zu verstehen.
  • Im Allgemeinen umfasst ein Netzwerkanbieter Software-Code, der das Betriebssystem als einen Client eines Remote-Netzwerkservers erstellt. Zum Beispiel schließen manche der Funktionen, die ein Netzwerkanbieter durchführt, das Erstellen und Trennen von Netzwerkverbindungen, das entfernte (remote) Drucken und das Übertragen von Daten ein. Deshalb, und wie es bekannt ist, schließen übliche Funktionen, die durch einen Netzwerkanbieter bereitgestellt werden, Fähigkeitsfunktionen, welche es dem Aufrufer erlauben, die Fähigkeiten des Netzwerkanbieters zu ermitteln, Benutzernamefunktionen, welche den Netzwerkanbieter für den Benutzernamen zugehörig zu einer Verbindung abfragen, und Geräteumleitungsfunktionen, welche es einem Netzwerkanbieter erlauben, Laufwerksbuchstaben, (wie unterhalb beschrieben), MS-DOS®-Geräte und LPT-Anschlüsse umzuleiten, ein. Andere Funktionen schließen anbieterspezifische Dialogfunktionen, welche es einem Netzwerkanbieter erlauben, netzwerkspezifische Informationen anzuzeigen oder darauf zu arbeiten, administrative Funktionen, welche es einem Netzwerkanbieter erlauben spezielle Netzwerkverzeichnisse anzuzeigen oder darauf zu arbeiten, und Aufzählungsfunktionen, welche es erlauben, Netzwerkressourcen zu durchstöbern, ein.
  • Um zu ermitteln, welcher Netzwerkanbieter aufgerufen werden soll, wenn eine Anwendung eine Netzwerkroutine der APIs 204 aufruft, wird der Aufruf, in einer Implementation, an einen Router für mehrere Netzwerkanbieter, oder MPR 228, welcher als eine dynamische Verbindungsbibliothek (Dynamic Link Library- DLL) installiert ist, weitergegeben. Ähnlich zu dem MUP 206 ermittelt der MPR 228, welcher Netzwerkanbieter im Benutzermodus die Ressource, auf die zugegriffen wird, erkennt. Für diesen Zweck liefert jeder installierte Netzwerkanbieter unterhalb des MPR 228 eine Reihe von Funktionen, die zusammengefasst als eine Netzwerkanbieterschnittstelle bezeichnet sind, die es dem MPR 228 erlaubt, zu ermitteln, auf welches Netzwerk die Anwendung versucht zuzugreifen, und um die Anfrage auf die passende Netzwerkanbietersoftware zu richten. Zum Beispiel ist der Netzwerkanbieter der SMB-mini-Umleiter 208 ein LANMAN- (Local Area Network Manager) -Netzwerkanbieter 224, wie es in einem Systemregistrierungsschlüssel oder Ähnlichem spezifiziert ist. Der Netzwerkanbieter des WebDAV-Umleiters 210 ist ein WebDAV-Netzwerkanbieter 216, der ebenso in einem Systemregistrierungsschlüssel oder Ähnlichem spezifiziert ist.
  • In einer beschriebenen Implementation überprüft der MPR 228, wenn er aufgerufen wurde, um mit einer Remote-Netzwerkressource zu verbinden, die Registrierung, um zu ermitteln, welche Netzwerkanbieter geladen sind. Der MPR 228 fragt diese dann (polls them) einen nach dem anderen ab, in der Reihenfolge, in der sie in der Registrierung aufgelistet sind, (was konfigurierbar ist), und jeder Netzwerkanbieter kommuniziert mit seinem entsprechenden Umleiter, bis die Ressource erkannt wurde oder bis alle verfügbaren Netzwerkanbieter abgefragt worden sind. Für den Fall eines Netzwerk-API-Aufrufs, der auf den WebDAV-Server 218 (zum Beispiel über eine URI, die als ein Aufrufparameter übergeben wurde) gerichtet ist, wird der MPR deshalb den WebDAV-Netzwerkanbieter 216 abfragen, welcher wiederum über RPC (Remote Procedure Call – entfernter Prozeduraufruf) den Webservice 214 aufrufen wird, welcher den WebDAV-Umleiter im Kernelmodus 212 kontaktiert, um zu ermitteln, ob die API behandelt werden kann, zum Beispiel, ob die spezifizierte WebDAV-Beteiligung tatsächlich ein zugreifbarer WebDAV-Server ist. Wenn dem so ist, wird die API durch die WebDAV-Umleiterkomponenten 210 bearbeitet.
  • Eine andere Möglichkeit, in der Anwendungen transparent auf Netzwerkressourcen zugreifen zu können, ist über einen Laufwerksbuchstaben oder Gerätename, der vorher dieser Ressource zugewiesen wurde (zum Beispiel über eine Netzwerk-API, wie zum Beispiel WnetAddConnection). Für diesen Zweck steuert die API, wenn aufgerufen, den Aufruf zu dem passenden Netzwerkanbieter, zum Beispiel über das Abfragen (polling) wie oben beschrieben. Der verantwortliche Netzwerkanbieter wiederum erzeugt ein symbolisch verlinktes Objekt (symbolic-link object) in einem Objektmanagernamensbereich, der den definierten Laufwerksbuchstaben seinem zugehörigen Umleiter für dieses Netzwerk zuordnet. Sobald er zugeordnet ist, und wenn die WNet oder andere API einen Aufruf macht, um eine Ressource auf einem unterschiedlichen Netzwerk zu öffnen, lokalisiert der I/O-Manager (in Zusammenhang mit einem Objektmanager, nicht gezeigt) den Umleiter, der die Anfrage bearbeitet. In Übereinstimmung mit der vorliegenden Erfindung kann ein Benutzer deshalb ein Laufwerk einer WebDAV-URI zuordnen, wie zum Beispiel durch die Verwendung einer Shell, um die WnetAddConnection-API-Funktion aufzurufen, und sobald das Laufwerk in dem Namensbereich des Objektmanagers zugeordnet ist, können Anwendungen auf Dateien auf dem WebDAV-Server 212 über den Laufwerksbuchstaben zugreifen, weil das I/O-System die Zuordnung des Buchstabens zu der korrekten URI handhabt.
  • Im Allgemeinen kann ein Benutzer, obwohl es im Wesentlichen für Anwendungen unsichtbar ist, mit der WebDAV-Funktionalität der vorliegenden Erfindung über ein Systembefehlsfenster interagieren, wobei ein "net"-Befehl eine Buchstabenbenutzerschnittstelle für eine WebDAV-Umleitung bereitstellen wird, zum Beispiel "NET USE* HTTP://...", durch das Zuordnen eines Netzwerklaufwerkes, Hinzufügen eines Netzwerk-Ortes, Erzeugen von Verknüpfungen (shortcuts), Öffnen von Dateien, Koppeln (interfacing) einer Browser-Adressleiste, und Eintippen über eine "Start" → "Ausführen" ("run") Schnittstelle oder Ähnliches. Wie es als verstanden gilt, können andere Mechanismen, die mit Netzwerken umgehen, ebenso zu der aufgerufenen WebDAV-Funktionalität führen.
  • Zurückkehrend zu einer Erläuterung der Funktionsweise der Erfindung, und wie es in den Flussdiagrammen der 3 bis 7 allgemein dargestellt ist, arbeitet der Web-DAV-Umleiter im Kernelmodus 212, wenn er gebraucht wird, um zu ermitteln, ob er eine gegebene URI behandeln kann, zuerst durch das Kontaktieren des genannten Server mit einer HTTP-"OPTIONS"-Anfrage. Zum Beispiel kann dies als Antwort auf eine Anfrage vom Typ Datei-I/O-Erzeugen/Öffnen sein, die als ein IRP oder als Teil einer browser ähnlichen Anfrage, um die beteiligten Ordner eines Servers anzuzeigen, ankommt, und die, wie oberhalb beschrieben, von einem WebDAV-Netzwerkanbieter empfangen wird. Um zu ermitteln, ob der WebDAV-Umleiter die Anfrage behandeln kann, kontaktiert der WebDAV-Umleiter im Kernelmodus 212 die WebDAV-Umleiterkomponente im Benutzermodus 214, um den HTTP-OPTIONS-Aufruf zu dem identifizierten Remote-Server über seinen Servernamen (aus der URI erlangt (parsed)) und über die Internettransportkomponente 220 (zum Beispiel Winlnet) auszugeben. Dies ist allgemein in 3 durch die Schritte 300, 302 und 304 dargestellt.
  • Eine Möglichkeit ist es, dass der Remote-Server nicht auf die OPTIONS-Anfrage antwortet, (zum Beispiel wird ein Timeout erreicht oder etwas Unlesbares kommt zurück), während es eine andere Möglichkeit ist, dass der Remote-Server antwortet, aber es kein WebDAV-Server ist, was von der zurückgegebenen Information in der Antwort auf die OPTIONS-Anfrage ermittelbar ist. Die Schritte 306 und 308 stellen die Handhabung dieser Möglichkeiten dar, wobei der Schritt 310 die Fehlerbehandlung darstellt. Wenn zum Beispiel der MUP 206 den WebDAV-Umleiter im Kernelmodus 212 abfragt, kann in einer beschriebenen Implementation die Fehlerbehandlung einfach das Antworten an den MUP 206 mit einem Fehlercode oder Ähnlichem umfassen, was anzeigt, dass er den bestimmten Pfad nicht handhaben kann. Wenn die Funktion durch den MPR 228 initiiert war, der den WebDAV-Netzwerkanbieter 214 aufruft, welcher wiederum den WebDAV-Umleiter im Kernelmodus 212 kontaktiert, um herauszufinden, ob er die URI behandeln könnte, kann der WebDAV-Umleiter im Kernelmodus 212 dem WebDAV-Netzwerkanbieter 214 negativ antworten, um passend zu handeln. Es ist zu beachten, dass es möglich ist, obwohl es nicht notwendig ist, einen Zeitüberschreitungsfehler bei Schritt 206 dadurch zu handhaben, dass es ein paar mal wiederholt versucht wird (zurück zu Schritt 304), bevor die Funktion als ein Fehler erachtet wird.
  • Wenn bei den Schritten 306 und 308 der Server mit Informationen antwortet, die anzeigen, dass der Server ein WebDAV-Server ist, wird Schritt 312 ausgeführt, welcher das Erhalten irgendwelcher relevanter Informationen, die in der Antwort auf die HTTP-OPTIONS-Anfrage zurückgegeben wurden, darstellt, zum Beispiel eine Liste von Fähigkeiten des Servers. Zu dieser Zeit fährt der Schritt 312 aus 3 zu Schritt 400 aus 4 weiter, soweit erforderlich.
  • Die 4 und 5 stellen ein Beispiel dar, was passiert, wenn eine URI für eine URI angefragt wird, die einen Server, eine Beteiligung und Pfad spezifiziert, zum Beispiel in einer Datei-I/O-Anfrage, um eine Datei auf einem WebDAV-Server zu öffnen/erzeugen. Es sollte beachtet werden, dass der Netzwerkanbieter 216 solche Informationen nicht anfragen muss, aber stattdessen, zum Beispiel einfach eine Aufzählung der Beteiligungen auf dem WebDAV-Server anfragt, in welchem Fall eine spezifische Beteiligung und Pfad nicht vorhanden sein müssen. Ebenso kann die Anfrage für eine Aufzählung der Dateien auf einer Beteiligung sein, in welchem Fall keine bestimmte Datei für das Erzeugen/Öffnen identifiziert werden wird. Deshalb kann der Netzwerkprovider zum Beispiel dem MPR antworten, der diesen URI handhabt, wobei der Server-Name und Beteiligung oder Beteiligungen für eine spätere Verwendung zwischengespeichert werden können, wobei der anfragenden Anwendung das passende Ergebnis geliefert wird. Solche Aufzählungen und Ähnliches (zum Beispiel das zuordnen von Laufwerken, Erstellen von impliziten Verbindungen) sind jedoch relativ unkompliziert, und deshalb werden sich die Beispiele der Einfachheit wegen unterhalb auf das Öffnen, Lesen und Schreiben einer WebDAV-gespeicherten Datei, auf die über eine Datei-I/O-Funktion zugegriffen wird, konzentrieren.
  • Bei Schritt 400 aus 4 versucht der Prozess, sobald bekannt ist, dass der Server WebDAV unterstützt, die Eigenschaften der in der URI identifizierten Beteiligung über eine WebDAV-PROPFIND-Anfrage, die die Beteiligung identifiziert, zu erlangen. Es ist zu beachten, dass dies wie oberhalb beschrieben über eine Umleiterkomponente im Benutzermodus 214 (welche zum Beispiel regelmäßig abfragt (poll), um auf Web-Services gerichtete Anfragen zu erlangen, wenn sie durch die Kernelmoduskomponente vorbereitet (readied) werden) und der Internet-Transportkomponente 220 erreicht wird. Schritt 402 stellt das Evaluieren dar, ob die PROPFIND-Anfrage erfolgreich war. Zum Beispiel kann die PROPFIND-Anfrage dazu führen, dass der Server mit einem Fehler antwortet (zum Beispiel wenn die angefragte Beteiligung nicht existiert) oder die PROPFIND-Anfrage kann eine Zeitüberschreitung ohne eine Antwort haben. Wenn die PROPFIND-Anfrage fehlschlägt, wird die Fehlerbehandlung bei Schritt 410 dargestellt, welche, wie es als verstanden gilt, darin variieren kann, was angemessen ist. Zum Beispiel kann eine negative Antwort an den MUP oder MPR ausreichen, wie oberhalb beschrieben. Unter anderen Umständen, wie zum Beispiel, wenn der Server eine WebDAV-Beteiligung ist, aber die bestimmte angefragte Beteiligung nicht existiert, wäre eine Antwort angebracht, die letztendlich die Anwendung informiert, das die spezifizierte Beteiligung nicht gefunden wurde. Natürlich ist es möglich, jeden Zeitüberschreitungsfehler oder Ähnliches wieder zu versuchen, wie es gewünscht ist, bevor ein Fehler in Betracht gezogen wird.
  • Für den Fall dass die Eigenschaften der Beteiligung zurückgegeben werden, werden sie in einem Datei-Steuerungsblock (file control block) oder Ähnlichem bei Schritt 404 aufbewahrt. Zum Beispiel, wie unterhalb beschrieben, kann eine der Eigenschaften anzeigen, dass der Beteiligungsordner verschlüsselt ist, was das System wissen muss, so dass jede neu erzeugte Datei in diesem Ordner in verschlüsselter Form auf dem Web-DAV-Server gespeichert wird. Datei-Steuerungsblöcke sind gut bekannte Datenstrukturen für das Führen von Informationen zugehörig zu Objekten eines Dateisystems, und werden deshalb der Einfachheit halber hier nicht beschrieben.
  • Wenn der Schritt 402 und der nachfolgenden Schritt 404 erfolgreich ausgeführt wurden, wird der Schritt 406 ausgeführt, um eine PROPFIND-Anfrage auf dem identifizierten Pfad auszugeben, um die Dateieigenschaften zu erlangen, zum Beispiel über die Umleiterkomponente im Benutzermodus 214. Wenn die Datei existiert und kein anderer Fehler (zum Beispiel keine Antwort), wie durch Schritt 408 ermittelt, aufgetreten ist, wird Schritt 412 durchgeführt, um die Dateieigenschaften in den Dateisteuerungsblock zu platzieren. Zu dieser Zeit antwortet die Umleiterkomponente im Kernelmodus 212 mit einer Erfolgsmeldung, zum Beispiel an den MUP 206, mit Informationen, die veranlassen, dass der MUP den "Server/Beteiligung"-Teil der URI, wie oberhalb diskutiert, zwischenspeichert. Es sollte beachtet werde, dass manche oder alle der WebDAV-Anfragen in einer einzelnen PROPFIND-Anfrage, die den Pfad spezifiziert, erreicht werden können. Ebenso kann der "Server/Beteiligung"-Teil der URI infolge einer erfolgreichen PROPFIND(Beteiligungs)-Funktion zwischengespeichert werden. In einer bevorzugten Implementation ist es jedoch herausgefunden worden, dass das separate Ausgeben einer OPTI-ONS-Anfrage, einer PRPOFIND-(Beteiligungs)-Anfrage und dann einer PROPFIND(Pfad)-Anfrage, die gewünschten übergreifenden Ergebnisse für verschiedene tatsächliche Umstände bereitstellt.
  • Sobald es bekannt ist, dass die Datei existiert und ihre Eigenschaften empfangen worden sind, wird Schritt 500 in 5 ausgeführt, um eine "GET"-Anfrage auszugeben, um die Datei auf einem lokalen Speicher zu empfangen. Eine Möglichkeit, dass dies erreicht werden kann, ist es, dass die WebDAV-Umleiterkomponente im Benutzermodus 214 die Internet-Transport-Komponente 220 instruiert, die Datei auf das Empfangen hin zwischenzuspeichern. Zum Beispiel kann mit der Winlnet-Funktionalität ein privater, pro Benutzer und/oder versteckter Zwischenspeicher 240 im Voraus spezifiziert werden (zum Beispiel logisch getrennt von einem anderen lokalen Dateisystem und aus dem Internet zwischengespeicherten Dateien 242). Wenn die Dateidaten empfangen wurden, wird die Internet-Transportkomponente 200 die abgerufenen Dateidaten über das lokale Dateisystem 244 (zum Beispiel NTFS, welches mit dem Dateisystem 135 aus 1 übereinstimmen kann) eher zu dem spezifizierten Ort 240 zwischenspeichern, als, zum Beispiel, in einen regulären Ordner oder den Zwischenspeicher, der für normalen Internet-Inhaltsempfang verwendet wird.
  • Für den Zweck der Einfachheit wird die vorliegende Erfindung in erster Linie mit Bezug auf das Herunterladen der gesamten Datei als ein Ganzes über eine GET-Anfrage (Schritt 500), und einem späterem Zurückschreiben auf dem WebDAV-Server als ein Ganzes über eine PUT-Anfrage, wenn die Anwendung die Datei schließt, beschrieben. Nichtsdestotrotz sind READ RANGE (Lesebereich) und andere Erweiterungen gut verstandene Alternativen zum Herunterladen von Dateidaten. Ausserdem gilt es als verstanden, dass, obwohl, WRITE RANGE (Schreibebereich)-Anfragen derzeit nicht in WebDAV implementiert sind, das Zurückschreiben der Datei in Bereichen/Teilen, im Gegensatz zu der gesamten Datei, ebenso eine praktische Alternative ist.
  • Als Beispiel können auch anstatt (oder zusätzlich zu) dem Herausgeben einer GET-Anfrage eine oder mehrere READ-RANGE-Anfragen spezifiziert sein. Dies würde es erlauben einige Dateidaten zu empfangen, ohne das Herunterladen der gesamten Datei abzuwarten, was eine mehr zufrieden stellende Benutzererfahrung bieten würde, insbesondere bei sehr großen Dateien und/oder einer Verbindung mit geringer Bandbreite. Zum Beispiel könnte bei einer existierenden Datei, weil die Datei-Öffnen-Anfrage der Anwendung üblicherweise von einer Lese-Anfrage gefolgt wird, eine separate READ-RANGE-Anfrage wenigstens manche (zum Beispiel der erste Teil) der wahrscheinlich angefragten Daten der Anwendung verfügbar gemacht werden, ohne darauf zu warten, dass die GET-Anfrage abgeschlossen ist. Alternativ könnten mehrere READ-RANGE-Anfragen gesendet werden, um die Dateidaten herunterzuladen. Wie es verstanden wird, können, wenn verwendet, READ-RANGE-Anfragen auf Wunsch gemacht werden, wenn Daten benötigt werden und/oder es kann im Vorgriff auf zu lesende Daten gemacht werden. Wie es ebenso verstanden wird, wenn es der Anwendung erlaubt wird, die Datei zu beschreiben, dann kann es jedoch nicht erlaubt sein, dass irgendwelche beschriebenen (veränderten) Teile der Datei mit eingehenden Daten überschrieben werden, oder das Geschriebene würde verloren gehen. Zu diesem Zweck würden solche veränderten Teile verfolgt werden müssen, wie zum Beispiel über eine Bitmap, wobei die Daten gehalten werden, entweder durch Nichtschreiben der Veränderungen an der Datei, bis die GET-Anfrage oder READ-RANGE-Anfrage zu der veränderten Region abge schlossen ist, oder durch das Verhindern des Überschreibens veränderter Regionen durch heruntergeladene Daten.
  • Zurückkehrend zur 5, stellt Schritt 500 das Ausgeben der GET-Anfrage zum Lesen der Daten der gesamten Datei dar. Wenn sie nicht erfolgreich war, kann die Anfrage eine bestimmte Anzahl von Malen wiederholt werden, bevor von einem Fehler ausgegangen wird, aber sobald ein Fehler ermittelt wurde, wird er bei Schritt 510 behandelt, wie zum Beispiel durch das Zurückgeben eines geeigneten Fehlercodes an die Anwendung, als Reaktion auf die fehlgeschlagene Datei-Erzeugen/Öffnen-API-Anfrage.
  • Der Prozess führt bei Schritt 600 von 6 fort, welcher das Zwischenspeichern der heruntergeladenen Daten darstellt. Bei Schritt 600 wird eine Entscheidung gemacht, ob die heruntergeladene Datei verschlüsselt ist, wie unterhalb beschrieben. Dies kann dadurch getan werden, dass Dateiattributinformationen überprüft werden und/oder durch die Verwendung einer Verschlüsselungsdateisystemfunktion, die die Daten von irgendeiner Datei evaluiert, und ermittelt, ob sie durch das Verschlüsselungsdateisystem verschlüsselt ist. Das Verschlüsselungsdateisystem wird unten mit Bezug auf 8 beschrieben.
  • Für den Zweck des vorliegenden Beispiels, wird zu dieser Zeit nicht davon ausgegangen, dass die Datei verschlüsselt ist, und deshalb geht der Schritt 600 zu Schritt 602 weiter, welcher eine Datei in dem lokalen Dateisystem, zum Beispiel in einem versteckten, privaten WebDAV-Zwischenspeicher 240 öffnet (erzeugt), und Schritt 604 schreibt die Dateidaten (zum Beispiel aus den Pufferspeichern des Internet-Transports 220) in die Datei in dem Zwischenspeicher 240. Der Vorgang kehrt dann zur 5, Schritt 504, zurück, um den Datei-Handle zurückzugeben und damit an die Anwendung, und deshalb kann die Datei zu dieser Zeit offen gelassen werden.
  • Sobald sie lokal zwischengespeichert ist, wird die lokal zwischengespeicherte Dateiinformation (zum Beispiel ein durch das Dateisystem 244 zurückgegebenes Datei-Handle) den WebDAV-Umleiterkomponenten 210 verfügbar gemacht, wie es durch Schritt 504 dargestellt wird. Schritt 506 stellt das Zurückgeben dieses Handle an den I/O-Manager 204 dar, welcher das Handle der Anwendung 200 über die API-Antwort bereitstellt. Es ist zu beachten, dass das File-Handle (Identifizierer), das durch das NTFS-Dateisystem 240 an die WebDAV-Komponenten 210 gegeben wurde, nicht das gleiche Datei-Handle ist, das der WebDAV-Umleiter im Kernelmodus 212 an den I/O-Manager 204 zurückgibt, sondern eher eines, das erzeugt wird, um ihm zu entsprechen. In jedem Fall kennt der WebDAV-Umleiter im Kernelmodus 212 das Datei-Handle, das die Anwendung 200 hat, wobei, wie es unten beschrieben wird, der WebDAV-Umleiter im Kernelmodus 212 entdecken kann, wann dieses Datei-Handle geschlossen wird und danach die Datei zurück auf den WebDAV-Server 218 legt.
  • Einige Zeit, nachdem die Datei geöffnet ist, verwendet die Anwendung das Datei-Handle in einer Datei-I/O-Anfrage (zum Beispiel beim Lesen oder Schreiben), die an den I/O-Manager 204 über eine Datei-I/O-API gesendet wurde, wie es durch Schritt 508 dargestellt wird. Wie es bekannt ist, wird als ein Ergebnis dieses I/O-bezogenen API-Aufrufs ein IRP entsprechend dieser Anfrage durch den WebDAV-Umleiter im Kernelmodus 212 empfangen, was in dem Treiber-Stack ist. Der WebDAV-Umleiter im Kernelmodus 212 erkennt das Datei-Handle und (zum Beispiel wenn die Datei nicht bei Schritt 512 geschlossen worden ist) erfüllt die Anfrage durch das einfache Weitergeben des IRP an den Dateisystemtreiber 244 bei Schritt 514, wobei der Handle-Wert in dem IRP in das Handle der zwischengespeicherten Datei übersetzt wird, wenn sich etwas geändert hat. Mit anderen Worten, weil in dem vorliegenden Beispiel die gesamte Datei in dem lokalen Speicher 240 vorhanden ist, bis die Datei geschlossen wird, werden irgendwelche Datei-I/O-Anfragen (in der Form von IRPs), um von/zu dieser Datei, wie sie durch das Handle identifiziert wird, zu lesen oder zu schreiben, durch den WebDAV-Umleiter im Kernelmodus 212 zu dem Dateisystemtreiber 244 weitergegeben, der das Datei-Handle falls notwendig anpasst. Auf diese Weise wird das Lesen und Schreiben über das Dateisystem 244 auf der lokalen Dateikopie gemacht, was diesen Aspekt des Umleiters im Kernelmodus 2121 einfach hält.
  • Eventuell wird die Anwendung 200 das Schließen der Datei anfragen, wie es durch Schritt 512 entdeckt wird, welcher dann zu Schritt 516 weitergeht. Es ist zu beachten, dass für die Efiizienz der Umleiter im Kernelmodus 212 verfolgen kann, ob mindestens eine Schreibanfrage oder andere (zum Beispiel Eigenschafts-) Veränderung stattfand, so dass, wenn nicht (wobei die Datei möglicherweise nicht verändert wurde), über Schritt 516, die identische Datei nicht auf den WebDAV-Server 218 zurückgelegt werden muss. Jedoch wird, wenn sie modifiziert wurde, wie durch Schritt 516 entdeckt, um die Datei auf dem WebDAV-Server zu bewahren, zu der Zeit des Dateischließens, der Umleiter im Kernelmodus 212 eine PUT-Anfrage ausgeben, um den Dateiinhalt auf den WebDAV-Server 218 über den Umleiter im Benutzermodus 214 und die Internet-Transportkomponente 220 hochzuladen.
  • 7 stellt die PUT-Anfrage dar, die die Datei zu dem Server hochlädt. Die Schritte 700, 702 und 704 sind darauf gerichtet, zu testen, ob die Datei verschlüsselt ist, wie unterhalb beschrieben. Weil in dem vorliegenden Beispiel zu dieser Zeit die Datei nicht verschlüsselt ist, stellen Schritte 706 und 708 das Übertragen der Dateiinhalte zu einem Übermittlungs-Zwischenspeicher (zum Beispiel des Internet-Transports 220) oder Ähnliches, der die Eigenschaft des Anfrageobjekthauptteils hält, und das Schließen der lokalen Datei, sobald das Lesen abgeschlossen ist, dar.
  • Schritt 722 stellt das Ausgeben der "PUT"-Anfrage zum Heraufladen der Datei zu dem WebDAV-Server 218 dar. Wie mit anderen Datenübertragungen wird dies über die Web-Services der WebDAV-Umleiterkomponente im Benutzermodus 214 in Verbindung mit dem Internet-Transport 220 durchgeführt. Schritt 722 kehrt dann zu Schritt 518 aus 5 zurück.
  • Schritt 518 in 5 stellt das Testen dar, ob die PUT-Anfrage erfolgreich war. Wenn PUT nicht erfolgreich war, kann der WebDAV-Umleiter im Kernelmodus 212 bei Schritt 520 in Aktion treten, um sicherzustellen, dass irgendwelche Veränderungen nicht verloren gehen. Zum Beispiel kann der WebDAV-Umleiter im Kernelmodus 212 Information (zum Beispiel in der Registrierung) bewahren, die den Ort der lokal zwischengespeicherten Datei und andere relevante Information anzeigt, so dass der WebDAV-Umleiter im Kernelmodus 212 später die Datei auf den WebDAV-Server schreiben kann, wie zum Beispiel wenn die Konnektivität dorthin wiederhergestellt wurde. Damit die Dateidaten nicht vorrübergehend verloren gehen, kann der WebDAV-Umleiter im Kernelmodus 212 ebenso solch eine unbeschriebene lokale Kopie, anstatt der WebDAV-Kopie, wieder öffnen, wenn es angefragt wurde, bis der WebDAV-Umleiter im Kernelmodus 212 in der Lage ist, die lokale Kopie erfolgreich auf den WebDAV-Server hochzuladen und einen normalen Betrieb wiederaufzunehmen.
  • Wenn die PUT-Anfrage bei Schritt 518 erfolgreich war, (oder wenn die Datei bei Schritt 516 nicht modifiziert war), dann wird Schritt 522 ausgeführt, um irgendwelche Aufräum-Funktionen oder Ähnliches durchzuführen. Auf diese Weise werden die Daten von der Perspektive der Anwendung transparent zu und von einem WebDAV-Server 218 wie jede andere gespeicherte Datei übertragen. Es ist jedoch zu beachten, dass die lokale Datei vorzugsweise nicht gelöscht wird, sondern lokal behalten wird (wenigstens für manche Zeit), für den Fall, dass der Benutzer sich entscheidet, die Datei, zum Beispiel relativ bald, wieder zu öffnen. Auf diese Weise kann die zwischengespeicherte Datei (wenn sie nicht modifiziert worden ist) wieder verwendet werden, anstatt eine GET-Anfrage zu erfordern, um die Datei von dem Server herunterzuladen. Es sollte beachtet werden, dass die Sicherheit durch den Internet-Transport, zum Beispiel die Winlnet-APIs, gehandhabt wird, welcher die Authentifizierung des Servers behandelt. Dies schließt eine Passport-Authentifizierung ein. Wie es bekannt ist, ist Microsoft®-Passport ein Online-Service, der Benutzer mit einem sicheren Zugriff auf mehrere Passport-fähige Websites und Services unter lediglicher Verwendung einer E-Mailadresse und eines einzelnen Passwortes bereitstellt.
  • Auf die oben genannte Weise können bestehende Anwendungen den Vorteil eines WebDAV-Dateizugriffs auf eine Weise erlangen, die im Wesentlichen unsichtbar von der Perspektive der Anwendung im Benutzermodus ist. Als ein Ergebnis arbeiten Anwendungen einfach mit einer WebDAV-Datei, als wäre sie auf einem lokalen Laufwerk oder SMB-Netzwerklaufwerk. Weil WebDAV ein Dateizugriffsprotokoll ist, das über HTTP läuft, läuft WebDAV jedoch über die existierende Internetinfrastruktur (zum Beispiel durch Firewalls und Router), was einen Zugriff auf Dateien im Wesentlichen von irgendeinem Internetverbundenen Ort bereitstellt.
  • VERSCHLÜSSELTE WEBDAVDATEIEN
  • In bekannten früheren Netzwerkspeicherlösungen kann eine Datei eine zugehörige Zugriffskontrollliste (Acces Control List – ACL) haben, wobei nur Benutzer, die Rechte für eine Datei haben, auf sie zugreifen können. Dies setzt jedoch ein sicheres Dateisystem, wie zum Beispiel NTFS, und vertrauenswürdige Systemadministratoren voraus, was außerhalb eines kontrollierten Firmennetzwerkes oder Ähnlichem (wie zum Beispiel mit WebDAV) nicht tatsächlich der Fall sein wird. Des Weiteren haben, selbst mit ACLs, Netzwerkadministratoren Zugriff auf die Dateien, und während dies für geschlossene Firmenumgebungen akzeptabel ist, gibt es keine sicheren Annahmen, die gemacht werden können, wie sorgfältig aussenliegende Speicheranbieter die Daten eines Clients speichern werden, zum Beispiel auf welchem Dateisystem, wie sicher vor Hackern oder wer Administratorenrechte haben wird.
  • Frühere Netzwerkspeicherlösungen behandelten manche dieser Probleme durch das Verschlüsseln der Dateidaten auf ihren Speicherdatenträgern, und anschließend, wenn sie abgerufen wurden, durch das Entschlüsseln der Daten und das Senden von diesen in einem unverschlüsseltem Format an den Empfänger, welcher die Datei dann wieder entschlüsseln kann. Obwohl die unverschlüsselten Dateidaten mit einem anderen Proto koll selbst sicher gesendet werden können, hat ein solches System inhärente Probleme. Ein solches Problem ist das Hochladen auf den Server, zum Beispiel, wenn der Server viele Clients unterstützt und jede eingehende und ausgehende Transaktion verschlüsseln und entschlüsseln muss, wird die Leistung signifikant reduziert. Ein anderes Problem ist, dass der Server in der Lage sein muss, Dateien, die auf seinem System gespeichert sind, zu entschlüsseln, wobei ein Kompromittieren des Servers die Daten kompromittiert.
  • Gemäß einem anderen Aspekt der Erfindung können WebDAV-Dateien lokal auf der Dateisystemebene verschlüsselt und entschlüsselt werden, was für Anwendungen und den WebDAV-Server transparent ist. Weil WebDAV-Dateien in irgendeinem Format arrangiert sein können, kann der lokale Client die Dateien lokal verschlüsseln, in eine Reihe von binären Bits, die ohne einen Schlüssel nicht lesbar sind, welcher dem Server nie gegeben wird, wobei die Dateien auf dem Server nie entschlüsselt werden können. Als ein Ergebnis, weil der Server die Daten nie in unverschlüsselter Form empfängt, können die Clients vertrauliche Informationen auf dem Server halten, ohne sich darüber Sorgen machen zu müssen, dass sie gesehen werden, unabhängig davon, wie sie gespeichert werden, und wer Zugriff darauf hat. Außerdem, weil bei einer verschlüsselten Datei der WebDAV-Server einfach eine bereits verschlüsselte Datei empfängt oder sendet, braucht der Server keine zusätzliche Verschlüsselungs- oder Entschlüsselungsarbeit zu leisten, um zu versuchen, die Daten zu schützen.
  • Um solch eine lokale, transparente Verschlüsselung und Entschlüsselung für WebDAV-Dateien bereitzustellen, setzt die Umleiterkomponente im Kernelmodus 212 die Technologie des Verschlüsselungsdateisystems (Encrypting File System – EFS), das durch das NTFS-Dateisystem bereitgestellt wird, wirksam ein. Wie es in dem US-Patent mit der Nummer 6,249,866 beschrieben ist, verschlüsselt und entschlüsselt EFS automatisch Dateidaten auf der Dateisystemebene unter Verwendung eines Verschlüsselungsschemas mit einem öffentlichen/privaten-Schlüsselpaar. Dateien können (zum Beispiel durch den Benutzer) als verschlüsselt markiert sein, oder gesamte Ordner können als verschlüsselt markiert sein, in welchem Fall irgendwelche Dateien in diesem Ordner in verschlüsselter Form gespeichert werden. Es ist zu beachten, dass derzeit EFS nur mit dem NTFS-Dateisystem arbeitet. Die WebDAV-Umleiterkomponente im Kernelmodus 212 kann überprüfen, wo sie die Datei hinlegt, um sicherzustellen, dass es in dem NTFS-Dateisystem ist.
  • Im Allgemeinen arbeitet EFS wie allgemein in 8 dargestellt, in einer Implementierung, die eine verknüpfte Bibliothek (linked library) 847 (zum Beispiel eine DLL) des Verschlüsselungsdateisystems (Encrypting File System – EFS), eine EFS-Runtime-Bibliothek (FSRTL) 848 und einen EFS-Service 850 umfasst. Die EFS-verknüpfte Bibliothek 847 registriert sich mit dem Dateisystem 244, wobei das Dateisystem eine Verschlüsselungsfunktionalität bereitstellt, die (zum Beispiel für eine Anwendung) dadurch transparent ist, dass die Funktionen der EFS-verknüpften Bibliothek aufgerufen werden, die in einer Funktionstabelle 847A oder Ähnlichem aufgelistet sind, die durch das Dateisystem während der Registrierung erfasst wird.
  • Während der Initialisierung registriert die EFS-verknüpfte Bibliothek 847 Rückrufroutinen der Dateisystem-Runtime-Bibliothek (Routinen der FSRTL 848) mit dem NTFS 244, die in der Funktionstabelle 847A geführt werden. Wie unterhalb beschrieben verwendet NTFS 244 diese Routinen der FSRTL 848, um Rückrufe zu starten, um dateiverschlüsselungsbezogene Dienste zu erlangen. Die EFS-verknüpfte Bibliothek 847 stellt die Unterstützung bereit, um mit dem EFS-Service im Benutzermodus 850 zum kommunizieren, der als Teil des Sicherheitsuntersystems läuft. Während der Initialisierung (oder alternativ wenn die Verschlüsselung oder Entschlüsselung das erste Mal gebraucht wird) kommuniziert die EFS-vernüpfte Bibliothek 847 mit dem EFS-Service 850 unter Verwendung einer GenerateSessionKey-Schnittstelle (Schnittstelle zur Sessionschlüsselerzeugung), um einen symmetrischen Session-Schlüssel herzustellen, der verwendet wird, um sicher zwischen der IFS-verknüpften Bibliothek 847 und dem EFS-Service 850 zu kommunizieren. Daten, die zwischen den zweien kommuniziert werden, sind unter Verwendung dieses Session-Schlüssels verschlüsselt. Dieser Session-Schlüssel wird ebenso durch Aufrufe zu der FSRTL 848 verwendet, um I/O-Steuerungen von dem EFS-Service 850 zu entschlüsseln. Während des Öffnens einer verschlüsselten Datei kommuniziert die EFS-verknüpfte Bibliothek 847 mit dem EFS-Service 850 durch das Weitergeben der Datei-Metadaten, einschließlich Feldern zur Datenentschlüsselung und Datenwiederherstellung, die in EFS-verschlüsselten Dateien gehalten werden, um den Dateiverschlüsselungsschlüssel und irgendwelche Aktualisierungen an den Datei-Metadaten zurückzubekommen. Die Datei-Metadaten können aktualisiert werden, weil der Benutzer zu einem neuen Schlüssel wechseln kann, oder weil der Schlüssel des Wiederherstellungsagenten aktualisiert werden kann. Die EFS-verknüpfte Bibliothek 847 gibt diese Informationen an die FSRTL 848 weiter.
  • Während der Verschlüsselung einer Datei oder eines Verzeichnisses im Klartext oder während des Erzeugens einer neuen verschlüsselten Datei kommuniziert die EFS-verknüpfte Bibliothek 847 mit dem EFS-Service 850, um einen neuen Dateiverschlüsselungsschlüssel und Verschlüsselungsmetadaten für die verschlüsselte Datei zu bekommen. Die EFS-verknüpfte Bibliothek 847 gibt diese Informationen ebenso an die FSRTL 848 weiter.
  • Die FSRTL 848 ist ein Modul, das NTFS-Aufrufe implementiert, um verschiedene Funktionen des Dateisystems 244, wie zum Beispiel Lesen, Schreiben und Öffnen, die auf verschlüsselte Dateien und Verzeichnisse angewandt werden, sowie Funktionen zum Verschlüsseln, Entschlüsseln und Wiederherstellen von Dateidaten, wenn sie zu oder von einer Disk geschrieben oder gelesen werden, handzuhaben. Zu diesem Zweck stellt die vorliegende Erfindung einen Aufrufmechanismus bereit, der eine Schnittstelle zwischen NTFS 244 und der FSRTL 848 bereitstellt. Diese Schnittstelle ist für jegliche passende Bibliothek (und Treiber) allgemein, die Daten transformieren, und deshalb ist die Schnittstelle zwischen NTFS 244 und FSRTL 848 besser als eine Datentransformtionsschnittstelle 852 bezeichnet.
  • Funktionen zwischen der EFS-verknüpften Bibliothek 847 und FSRTL 848 schließen das Schreiben von EFS-Attributdaten (Entschlüsselungsdaten und Wiederherstellungsfelder) als Dateiattribute, und das Kommunizieren eines Dateiverschlüsselungsschlüssels, der in dem EFS-Service 850 berechnet wurde, an die FSRTL 848 ein, so dass er in dem Kontext einer geöffneten Datei eingerichtet werden kann. Dieser Dateikontext wird anschließend für eine transparente Verschlüsselung und Entschlüsselung auf das Schreiben und Lesen von Dateidaten zu und von dem nicht-flüchtigen Speicher 240 verwendet.
  • Die Datentransformationsschnittstelle 852 koppelt die EFS-verknüpfte Bibliothek 847 mit dem Dateisystem 244 zum Bewerkstelligen einer Dateiverschlüsselung. Die EFS-verknüpfte Bibliothek 847 registriert dieses Aufrufe mit dem Dateisystem 244, wobei das Dateisystem 244 die registrierten EFS-Aufruffunktionen zu geeigneten Zeiten verwendet, um die verschiedenen Verschlüsselungs- und Entschlüsselungsaufgaben, die der Benutzer anfragt, durchzuführen. Die Datentransformationsschnittstelle 852 schließt eine Anzahl von Funktions-Pointern oder -Aufrufen ein. Ein erster Aufruf, den das Dateisystem 244 verwendet, der FileCreate-Aufruf (Dateierzeugungsaufruf), berichtet den registrierten EFS-Funktionen, dass ein Datenstrom erzeugt oder geöffnet wurde.
  • Wenn eine Anwendung eine Datei öffnet oder erzeugt, ermittelt das I/O-Untersystem, das den I/O-Manager 204 einschließt, dass die Datei von einem bestimmten Dateisystem ist, zum Beispiel eine NTFS-Datei, und gibt die Anfrage an das NTFS 244 weiter. Das NTFS 244 ermittelt, ob EFS an der Datei interessiert ist, zum Beispiel, wenn die Datei in einem verschlüsselten Verzeichnis erzeugt wird, oder wenn ein Datenstrom erzeugt wird und an eine verschlüsselte Datei angehängt wird. Wenn das NTFS 244 ermittelt, dass die Datei für das EFS von Interesse ist, und sieht, dass die EFS-verknüpfte Bibliothek 847 damit registriert ist, ruft das NTFS 244 eine registrierte EFS-Funktion auf, das heißt den FileCreate-Aufruf. Wenn die Anfrage eine Datei-Öffnen Anfrage für eine existierende Datei ist, liest die FSRTL 848 die Datei-Metadaten von dem Dateiattribut und füllt einen Kontextblock auf, der vorher durch die EFS-verknüpfte Bibliothek 847 zugeteilt wurde, um diese Information zu der EFS-verknüpften Bibliothek 847 zurückzugeben. Wenn der Aufruf von dem NTFS 244 zurückkommt, nimmt die EFS-verknüpfte Bibliothek 847 die Metadaten-Information und kommuniziert mit dem EFS-Service 850, um einen Dateiverschlüsselungsschlüssel aus den Metadaten zu extrahieren. Diese Information wird dann durch die EFS-verknüpfte Bibliothek 847 zu dem NTFS 244 durch eine andere Schnittstelle der FSRTL 848, die FileControl (Dateisteuerungsschnittstelle), zurückgegeben, wie es unten beschrieben wird, was einen Schlüsselkontext für die geöffnete Datei erzeugt. Dieser Schlüsselkontext wird anschließend durch das NTFS 244 für zukünftige Aufrufe zu der EFS-verknüpften Bibliothek 847 bewahrt, bis die Datei geschlossen wird. Wenn die Datei-Metadaten aktualisiert werden, werden die aktualisierten Metadaten ebenso zu den Attributen durch die registrierten EFS-Funktionen durch NTFS-Aufrufe zurückgeschrieben.
  • Wenn eine neue Datei erzeugt wird, endet der FileCreate-Aufruf darin, dass die FSRTL 848 den Kontextpuffer 981 mit einer Anfrage für einen neuen Dateiverschlüsselungsschlüssel und Metadaten auffüllt. Die FSRTL 848 gibt dann den Kontextpuffer 981 an die EFS-verknüpfte Bibliothek 847 zurück. Die EFS-verknüpfte Bibliothek 847 nimmt diese Information und kommuniziert mit dem EFS-Service 850, um einen neuen Dateiverschlüsselungsschlüssel und neue Datei-Metadaten von dem EFS-Service 850 zu erlangen. Unter Verwendung eines Dateisteuerungsaufrufs gibt die EFS-verknüpfte Bibliothek 847 diese Informationen an die FSRTL 848 zurück, wobei unter Verwendung von NtOfs-Funktionsaufrufen die FSRTL 848 den Schlüsselkontext 98 für die Datei, die erzeugt wird, erstellt, und die Datei-Metadaten schreibt. Die NtOfs-API ist eine Reihe von Funktionsaufrufen des NTFS 244, die es der EFS-verknüpften Bibliothek 847 erlaubt, Aufrufe zu dem Dateisystem 244 zu machen, um die Datenströme, die die Verschlüsselungsmetadaten enthalten, zu manipulieren.
  • Ein anderer Aufruf, FileSystemControl_1 (Dateisystemsteuerung_1) wird durch das NTFS 244 als Antwort auf eine Anfrage an die EFS-verknüpfte Bibliothek 847 aufgerufen, wenn ein Benutzer den Verschlüsselungsstatus einer Datei (EFS_SET_ENCRYPT), entweder durch das Markieren von diesem als verschlüsselt oder entschlüsselt, setzt. Als Antwort setzt das NTFS 244 das Verschlüsselungsbit oder löscht es, und die EFS-verknüpfte Bibliothek 847 erzeugt irgendeinen notwendigen Schlüsselspeicher.
  • EFS_SET_ENCRYPT stammt auch von dem EFS-Service 850, wenn begonnen wird, eine Klartextdatei zu verschlüsseln, wobei der Dateistatus modifiziert wird, so dass keine andere Funktion mehr auf der Datei erlaubt wird, bis die Verschlüsselung abgeschlossen ist.
  • Das NTFS 244 ruft ebenso die FileSystemControl_2-Schnittstelle (Dateisystemsteuerung_2-Schnittstelle) mit verschiedenen verschlüsselungstreiberspezifischen Dateisteuerungsanfragen aus der EFS-verknüpften Bibliothek 847 auf. Es ist zu beachten, dass das NTFS 244 keine weitere Aktion mit diesen Aufrufen unternimmt, außer dem einfachen Weitergeben des Aufrufes an die FSRTL 848. Die Dateisteuerungsanfragen enthalten ein EFS_SET_ATTRIBUTE, welches von dem EFS-Filter der EFS-verknüpften Bibliothek 847 stammt, wenn er neue oder aktualisierte Datei-Metadaten schreiben möchte, und ein EFS_GET_ATTRIBUTE, welches von der EFS-verknüpften Bibliothek 847 oder einer Anwendung 30 im Benutzermodus stammt, um die Datei-Metadaten abzufragen. Die Information schließt die Liste mit öffentlichen Schlüsseln des Benutzers und öffentlichen Schlüsseln des Wiederherstellungsagenten ein, die verwendet werden können, um den Dateiverschlüsselungsschlüssel zu verschlüsseln. Eine andere Anfrage, EFS_DECRYPT_BEGIN, stammt von dem EFS-Service 850, wenn er beginnt, eine verschlüsselte Datei zu entschlüsseln. Als Antwort wird der Status der Datei modifiziert, so dass keine weiteren Funktionen an der Datei erlaubt sind, bis die Entschlüsselung abgeschlossen ist. Das Attribut EFS_DEL_ATTRIBUTE ist eine Anfrage, die aus dem EFS-Service 850 herstammt, wenn er mit dem Entschlüsseln einer gesamten verschlüsselten Datei fertig ist und die Dateimetadaten und zugehörigen Attribute löschen möchte. Die EFS_ENCRYPT_DONE-Anfrage stammt ebenso von dem EFS-Service 850, wenn er die Dateiverschlüsselung erfolgreich abschließt. Der Dateistatus wird modifiziert, um irgendwelche Funktionen von diesem Punkt an zu erlauben. Das EFS_OVERWRITE_ATTRIBUTE kommt von dem EFS-Service 850, wenn eine Ver schlüsselungsdatei von ihrem Backup-Format wiederhergestellt wird. Der EFS-Service 850 liefert die Dateimetadaten, die irgendwelche existierenden Metadaten der Datei überschreiben müssen. Diese Anfrage steht ebenso im Zusammenhang mit der Löschung irgendeines Schlüsselkontextes 96, zugehörig zu dieser Datei, so dass keine Lese- oder Schreib-Funktionen durchgeführt werden, während die Datei wiederhergestellt wird.
  • Die FileSystemControl_2-Schnittstelle wird ebenso durch das Dateisystem 244 als Antwort auf die FSCTL_ENCRYPION_FSCTL_IO, die ebenso unterhalb beschrieben wird, aufgerufen. Dies stellt ein Mittel für die EFS-verknüpfte Bibliothek 847 bereit, dass das NTFS 244 die EFS-verknüpfte Bibliothek 847 (sich selbst) aufruft, zum Beispiel wenn das NTFS 244 erkennt, dass eine Datei in einem bestimmten Status ist, der einem Status entspricht, auf den die EFS-verknüpfte Bibliothek 847 wartet.
  • Das Dateisystem 244 verwendet den Aufruf AfterReadProcess (Vorgang nach dem Lesen), nachdem es manche Daten von der Disk für eine verschlüsselte Datei gelesen hat, und bevor sie an den Benutzer zurückgegeben wird. Die AfterReadProcess-Funktion entschlüsselt die Daten während der Übertragung als Antwort auf diesen Aufruf. Umgekehrt wird der BeforeWriteProcess (Vorgang vor dem Schreiben) durch das Dateisystem 244 aufgerufen, bevor es manche Daten für eine verschlüsselte Datei auf die Disk schreibt. Die Funktion verschlüsselt die Daten als ein Ergebnis dieses Aufrufs.
  • Der EFS-Service 850 stellt ebenso eine Unterstützung für Win32-APIs 32 bereit, welches Programmierungsschnittstellen zum Verschlüsseln, Entschlüsseln und Wiederherstellen sind, und stellt eine Unterstützung zum Importieren und Exportieren von verschlüsselten Dateien bereit. Das Importieren und Exportieren verschlüsselter Dateien erlaubt es Benutzern, die Dateien in undurchsichtige (opaque) Daten (verschlüsselt) für Funktionen, wie zum Beispiel Datensicherung, Wiederherstellung und allgemeine Dateiübertragungszwecke, einschließlich WebDAV, wie unterhalb beschrieben, zu konvertieren. Die Win32-APIs 32 stellen Programmierungsschnittstellen zum Verschlüsseln von Klartextdateien, Entschlüsseln oder Wiederherstellen von Chiffriertext-Dateien und Importieren und Exportieren verschlüsselter Dateien (ohne sie zuerst zu entschlüsseln) bereit.
  • Wie oben allgemein beschrieben kann EFS zusätzlich zum transparenten Verschlüsseln und Entschlüsseln von Dateidaten auf Dateisystemebene deshalb Dateien verschlüsseln, die vorher nicht verschlüsselt waren, Benutzerschlüssel zu einer Datei hinzufügen, irgendwelche anderen Basis-EFS-Informationen über eine verschlüsselte Datei ändern, wie zum Beispiel den Typ der verwendeten Verschlüsselung, und andere Funktionen durchführen.
  • Gemäß einem Aspekt der vorliegenden Erfindung kann die Datei, wenn eine Datei bereits auf einem WebDAV-Server verschlüsselt ist, in verschlüsselter Form zu dem Client übertragen werden, lokal zum Lesen entschlüsselt werden, Veränderungen daran gemacht werden, und zurück auf den Client und den Server in verschlüsselter Form gelegt werden. Weil EFS auf dem Level des Dateisystems transparent beim Lesen entschlüsselt und beim Schreiben verschlüsselt, kann die Datei jedoch nicht einfach geöffnet und gelesen werden, um sie hinaufzuladen, andernfalls würden die Daten nicht in ihrer verschlüsselten Form übermittelt werden. Ebenso kann, wenn eine verschlüsselte Datei heruntergeladen wurde, eine Datei, um die Daten zu halten, nicht einfach lokal erzeugt werden und darauf geschrieben werden, weil EFS versuchen würde, die bereits verschlüsselten Daten zu verschlüsseln, wenn es die Daten in die lokale Datei schreibt.
  • Zu diesem Zweck wird, wenn eine verschlüsselte Datei heraufgeladen wird, ein Dateiabbild, das dem entspricht, wie sie erscheint, wenn sie in verschlüsselter Form lokal gespeichert ist, einschließlich EFS-Informationen gesendet, die in der Datei enthalten sind, und die notwendig sind, sie später zu entschlüsseln. Ebenso wird, wenn eine bereits verschlüsselte Datei heruntergeladen wird, die Datei im lokalen Speicher als ein Abbild geschrieben werden, das dem entspricht, wie sie original auf den Server geschrieben wurde, das heißt als eine verschlüsselte Datei.
  • In einer Implementierung, um Daten hin und her zu übertragen, wird das Dateiabbild unter Verwendung bestimmter Funktionen gesendet, nämlich APIs für EFSOpenFile-Raw() (EFS-Öffnen einer unbearbeiteten Datei), EFSReadFileRaw() (EFS-Lesen einer unbearbeiteten Datei), und EFSCIoseFileRaw() (EFS-Schliessen einer unbearbeiteten Datei). Im Wesentlichen umgeht dies hauptsächlich die Verschlüsselungs- oder Entschlüsselungsfunktionen durch EFS auf den Dateidaten, wobei die Datei als ein Block von "unbearbeiteten" Bits übertragen wird.
  • Spezieller gesagt, erlaubt die EFSOpenRawFile()-Funktion (API) dem Benutzer eine verschlüsselte Datei ohne Lesezugriff zu Öffnen, und ohne einen Dateiverschlüsselungsschlüssel einzurichten, um transparente Lese- und Schreibvorgänge durchzuführen. Für diese Funktionen erkennt NTFS 244 das Zugriffslevel und ruft nicht die EFS-verknüpfte Bibliothek 247 für Verschlüsselung auf, um nach einem Schlüssel für dies Datei zu schauen, noch um Lesevorgänge zu Entschlüsseln, noch um Schreibvorgänge zu verschlüsseln. Die einzigsten Funktionen, die auf einer Datei, die über diese Schnittstelle geöffnet wurde, erlaubt sind, sind Dateisteuerungen (file controls). Deshalb erlaubt es eine EFSReadRawFile()-API dem Benutzer Daten von der Datei, einschließlich der Verschlüsselungsmetadaten, als einen zusammenhängenden, undurchsichtigen (opaque) Datenstrom zu lesen, der anschließend an den WebDAV-Server gesendet werden kann. Die EFSWriteRawFile()-API erlaubt es dem Benutzer einen zusammenhängenden, undurchsichtigen (opaque) Datenstrom, der einem WebDAV-Server empfangen wird, einschließlich der Verschlüsselungsmetadaten einer verschlüsselten Datei auf einen NTFS-Diskdatenträger zu schreiben.
  • 6 zeigt diese Logik für eine verschlüsselte Datei, wie es durch ein Dateiattribut oder durch eine EFS-Funktion bei Schritt 600 ermittelt wird. Wenn eine heruntergeladene Datei verschlüsselt ist, geht Schritt 600 zu Schritt 606 weiter, welcher eine lokale Datei auf dem Zwischenspeicher 240 für das Lesen von unbearbeiteten Daten öffnet. Spezieller gesagt, wenn die Daten bereits auf dem Server verschlüsselt sind, dann sind sie bereits in dem richtigen Format, wobei Verschlüsselungsmetadaten (zum Beispiel die verschlüsselten Schlüsselinformationen) in dem Dateiinhalt enthalten sind. Deshalb muss die Zwischengespeicherte Datei ein Abbild der Datei auf dem Server sein, und eine Verschlüsselung sollte nicht wieder auf dieser Datei versucht werden. Bei Schritt 608 erlaubt es eine EFSWriteRawFile()-API-Schnittstelle, dass die empfangenen Daten auf den lokalen Zwischenspeicher 240 von einer spezifizierten Quelle geschrieben werden, wie zum Beispiel dem Empfangspuffer des Internettransports, ohne dass irgendeine Verschlüsselung oder andere EFS-Interpretation durchgeführt wird. Sobald dies getan ist, erscheint die lokal zwischengespeicherte Datei, wie sie auf dem WebDAV-Server ist. Bei Schritt 610 wird eine Funktion EFSCIoseRawFile() aufgerufen, um die Datei zu schließen, welche durch OpenRawFile geöffnet wurde.
  • Zu dieser Zeit wird die heruntergeladene Datei in dem lokalen Speicher geführt, wie jede andere verschlüsselte Datei. Schritt 612 öffnet diese Datei in einer gewöhnlichen Weise, wobei EFS nun automatisch Leseausführungen entschlüsselt und Schreibausführungen verschlüsselt, wenn auf die Datei durch I/O-Befehle zugegriffen wird, in einer Weise, die für andere Komponenten mit höherem Level, einschließlich der Anwendung, transparent ist. Deshalb agieren die Schritte 504 bis 514 wie oben mit Bezug auf nicht verschlüsselte Dateien beschrieben.
  • Sobald die Datei jedoch geschlossen wird, muss sie in ihrer verschlüsselten Form auf den WebDAV-Server 218 zurückgebracht werden. Es wird wiederholt, dass zu beachten ist, dass der WebDAV-Server 218 keine Ahnung von dem Format und Inhalt der Datei hat, da er einfach eine benannte Sammlung an Bits speichert. Die Datei wird jedoch lokal nicht entschlüsselt, wenn Leseausführungen von dem Puffer des Transports oder Ähnlichem für die PUT-Funktion gemacht werden, und deshalb muss der EFS die unbearbeiteten Bits aus dem Puffer als ein Abbild der gesamten verschlüsselten Datei lesen, und nicht nur den entschlüsselten Datenteil davon.
  • Schritt 700 aus 7 ermittelt, ob die Datei als verschlüsselt markiert ist. Wenn nicht, ist es möglich, dass das Verzeichnis als verschlüsselt markiert ist, wobei die Datei ebenso verschlüsselt sein muss. Schritt 702 überprüft diese Möglichkeit. Wenn nicht, ist es möglich, dass das Verzeichnis vorgesehen ist, verschlüsselt zu sein, aber auf dem WebDAV-Server verändert worden ist, wobei Schritt 704 einen Registrierungseintrag (Einstellung) oder Ähnliches überprüft, die nachverfolgt, welche WebDAV-Ordner verschlüsselt sein sollten. Wenn die Registrierungseinstellung anzeigt, dass dieser bestimmte WebDAV-Ordner verschlüsselt sein sollte, aber aus irgendeinem Grund bei Schritt 702 nicht verschlüsselt wurde, dann geht Schritt 704 zu Schritt 710 weiter, um die WebDAV-Ordnereigenschaften zurückzusetzen, um widerzuspiegeln, dass der Ordner verschlüsselt ist. Es ist zu beachten, dass die Schritte 702, 704 und 710 zu anderen Zeiten durchgeführt werden können, nicht nur bei einem Hochladen einer Datei, um sicherzustellen, dass verschlüsselte Ordner so bleiben, und/oder dass Dateien in solchen Ordnern verschlüsselt bleiben.
  • Wenn der Ordner verschlüsselt ist, aber die Datei nicht, wird die Datei bei Schritt 714, wie unterhalb beschrieben, geschlossen. Es ist zu beachten, dass die Datei innerhalb des verschlüsselten WebDAV-Ordners zu dieser Zeit nicht verschlüsselt ist, aber unverschlüsselt bleiben wird, bis auf sie durch den WebDAV-Umleiter zugegriffen wird. Mit anderen Worten, wenn eine Datei nicht verschlüsselt ist (was bedeutet, sie wurde erzeugt, bevor der Ordner als verschlüsselt markiert wurde) wird sie unverschlüsselt bleiben, selbst wenn sie modifiziert ist. Nur wenn eine neue Datei in einem verschlüsselten Ordner erzeugt wird, ist diese erzeugte Datei verschlüsselt.
  • Bei Schritt 714 wird die verschlüsselte lokale Datei geschlossen, und bei Schritt 716 wieder geöffnet, um sie im unbearbeiteten Zustand auf den WebDAV-Server zu kopieren. Wie oberhalb beschrieben, wird das unbearbeitete Kopieren dadurch erreicht, dass das NTFS Dateien mit der EFSOpenFileRaw()-API bei Schritt 716 öffnet, die Datei unbearbeitet (als einen opaquen Datenstrom) über die EFSReadFileRaw()-API in den passenden Puffer liest, um die Datei bei Schritt 718 auf den WebDAV-Server zu übertragen, und anschließend die Datei über die EFSCIoseFileRaw()-API bei Schritt 720 schließt. Die Datei wird zu dem WebDAV-Server bei Schritt 722 wie oberhalb beschrieben hinaufgeladen. Auf diese Weise speichert der WebDAV-Server ein Abbild einer verschlüsselten Datei wie es ist, ohne dass eine EFS-Entschlüsselung vor dem Heraufladen durchgeführt wird. Nachdem die Serverdatei nicht ohne einen Benutzer- oder privaten Schlüssel eines Wiederherstellungsagenten entschlüsselt werden kann, welchen ein WebDAV-Server-Administrator (üblicherweise) nicht besitzen würde, bleiben die Serverdateidaten privat, so lange die Reihe an privaten Schlüsseln, die die Datei öffnen können, sicher ist. Außerdem ist der Typ des Dateisystemspeichers auf dem WebDAV-Server unwichtig, selbst wenn das Dateisystem nicht sicher ist, kann eine verschlüsselte Datei nicht im Klartext betrachtet werden.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung wird eine Unterstützung für andere EFS-APIs bereitgestellt. Zum Beispiel kann eine vorher nicht verschlüsselte WebDAV-Datei als verschlüsselt gesetzt werden, ein Benutzerschlüssel oder Schlüssel eines Wiederherstellungsagenten kann zu einer Datei hinzugefügt werden, oder andere Basis-EFS-Informationen über die Datei können verändert werden. Im Allgemeinen werden solche Funktionen lokal durchgeführt, wobei die Datei vor- und zurücktransferiert wird, unter Verwendung der APIs: EFSOpenFileRaw(), EFSReadFileRaw(), EFSWriteFi-IeRaw() und EFSCIoseFileRaw().
  • Zu diesem Zweck ermittelt das EFS, wenn es aufgerufen wird, ob eine Datei auf einer Netzwerkbeteiligung (network share) liegt, und wie der UNC-Name dieser Datei ist. Die EFS-APIs werden versuchen, den WebDAV-Pfad durch Verwendung von WNet-APIs oder Ähnlichem zu erkennen, zum Beispiel GetDriveType() (erlange Laufwerkstyp) und WNetGetResourcelnformation() (erlange Ressourceinformationen). Zum Beispiel wird in einer Windows®-XP-Umgebung EFS GetDriveType() verwenden, um einen Remote-Pfad zu erkennen. Wenn der Remote-Pfad erlangt wurde, überprüft EFS, ob der Pfad einem WebDAV-Pfad entspricht, wobei WNetGetProviderName() (erlange Anbietername) und WNetGetResourcelnformation() verwendet werden. Wenn dem so ist, stellt EFS, über einen Remote Procedure Call (Remoteprozeduraufruf) den UNC-Namen dem lokalen EFS-Server bereit. Wenn der Pfad kein WebDAV-Pfad ist, stellt EFS dem Remote-EFS-Server, auf dem die Datei existiert, den UNC-Namen bereit.
  • Der EFS-Server verwendet den UNC-Namen, wo ein lokaler Name in dem aktuellen Code verwendet wird, das heißt der EFS-Server verwendet den WebDAV-UNC-Namen, als wäre er der lokale Name. Dies führt dazu, dass der WebDAV-Umleiter im Kernelmodus 212 die EFS-FSCTLs zu dem lokalen NTFS 244 abfängt und umleitet.
  • Der WebDAV-Umleiter im Kernelmodus 212 schaut ebenso nach Aufrufen zu NtQuery-Volumelnformation() (Nt: Abfragen der Datenträgerinformation) auf einen WebDAV-Handle, um Informationen über den Client zurückzugeben. Es ist zu beachten, dass WebDAV, wenn es nicht genügend Platz auf dem Server gibt, einen Fehler in einem separaten Pfad zurückgeben wird, ohne dass EFS dessen bewusst ist. Wenn die EFS-API die Arbeit beendet hat, wird WebDAV die APIs für EFSOpenFileRaw(), EFSReadFile-Raw() und EFSCIoseFileRaw() verwenden, um die modifizierte Datei, wie oben beschrieben, zurück auf den WebDAV-Server zu schieben.
  • Wie es von der vorangegangenen detaillierten Beschreibung gesehen werden kann, wird ein Verfahren und System bereitgestellt, das einen transparenten Zugriff auf WebDAV-Dateien bereitstellt. Das Verfahren und System stellt Datei-I/O-Funktionalität und Netzwerkfunktionalität (zum Beispiel Browsing) bereit, als wäre die Datei auf einem lokalen Dateisystemdatenträger anstatt auf einem WebDAV-Server. Außerdem ermöglicht die vorliegende Erfindung es, Browsern und Ähnlichem, auf WebDAV-gespeicherte Dateien über Netzwerk-APIs zuzugreifen. Als ein Ergebnis wird ein Austauschen (Teilen) von Dateien über das Internet (durch Firewalls, Router, usw.) über WebDAV-Server bereitgestellt, was nicht durch Netzwerkdateiserver erreicht werden kann. Das Verfahren und System arbeitet mit Dateien die verschlüsselt sind, so dass der WebDAV-Server nur Dateien in ihrer verschlüsselten Form sieht und keinen Schlüssel zum Entschlüsseln der Dateien hat.
  • Während die Erfindung empfänglich für verschiedene Modifikationen und alternative Konstruktionen ist, werden bestimmte dargestellte Ausführungsformen davon in den Zeichnungen gezeigt und sind oberhalb im Detail beschrieben worden. Es sollte verstanden sein, dass es jedoch nicht die Absicht ist, die Erfindung auf die spezifische Form oder Formen, die offenbart sind, einzugrenzen, sonder im Gegenteil, die Erfindung soll alle Modifikationen, alternativen Konstruktionen und Entsprechungen, die in den Umfang der Erfindung fallen, abdecken.

Claims (39)

  1. Verfahren zum Betreiben eines Clientsystems in einem Computernetzwerk, wobei das Verfahren umfasst: Empfangen (300), bei einer Komponente (212) im Kemel-Modus eines WebDAV-Umleiters (210), einer I/O-Anfrage, die von einem Anwendungsprogramm ausgelöst wurde und auf eine WebDAV-gespeicherte Datei gerichtet ist; Kommunizieren über eine Web-Client-Service-Komponente (214) des WebDAV-Umleiters mit einem Netzwerkserver, um zu ermitteln, ob der Netzwerkserver einen WebDAV-Server umfasst, der die Anfrage bearbeiten kann, und wenn dem so ist, Herunterladen (500) der Datei in einen lokalen Zwischenspeicher und Zurückgeben (506) eines Datei-Handle, das der Datei in dem lokalen Zwischenspeicher entspricht, an das Anwendungsprogramm; Bereitstellen, durch die Komponente im Kernel-Modus, eines Zugriffs auf die Datei in dem lokalen Zwischenspeicher über das Datei-Handle; und Empfangen, bei der Komponente im Kernel-Modus, einer Anfrage, die Datei über das Datei-Handle zu schließen (512), und wenn sie empfangen wurde, Heraufladen (722) der Datei von dem lokalen Zwischenspeicher zu dem WebDAV-Server.
  2. Verfahren nach Anspruch 1, wobei das Empfangen einer I/O-Anfrage, die von einem Anwendungsprogramm ausgelöst wurde, das Empfangen eines Universal-Resource-Identifier (einheitlicher Ressourcenkennzeichner), der einer Datei auf dem WebDAV-Server entspricht, umfasst.
  3. Verfahren nach Anspruch 1, wobei das Empfangen einer I/O-Anfrage, die von einem Anwendungsprogramm ausgelöst wurde, das Empfangen eines Dateinamens und eines Identifizierers, die vorher einer Beteiligung (Laufwerk – share) auf dem WebDAV-Server zugewiesen wurden, umfasst.
  4. Verfahren nach Anspruch 1, wobei das Kommunizieren mit dem Netzwerkserver, um zu ermitteln, ob die Anfrage bearbeitet werden kann, das Ausgeben (304) einer HTTP-OPTIONS-Anfrage und das Evaluieren einer Antwort davon umfasst.
  5. Verfahren nach Anspruch 1, wobei das Kommunizieren mit dem Netzwerkserver, um zu ermitteln, ob die Anfrage bearbeitet werden kann, das Ausgeben (400) einer WebDAV-PROPFIND-Anfrage, die auf eine Beteiligung auf einem WebDAV-Server gerichtet ist, und das Evaluieren einer Antwort davon umfasst.
  6. Verfahren nach Anspruch 5, wobei der WebDAV-Server Eigenschaftsinformation als Antwort auf die WebDAV-PROPFIND-Anfrage, die auf die Beteiligung gerichtet ist, zurückgibt, und des Weiteren das Führen (404) der Eigenschaftsinformation in einer lokalen Datenstruktur umfasst.
  7. Verfahren nach Anspruch 1, wobei das Kommunizieren mit dem Netzwerkserver, um zu ermitteln, ob die Anfrage bearbeitet werden kann, das Ausgeben (406) einer WebDAV-PROPFIND-Anfrage, die auf eine Datei auf dem WebDAV-Server gerichtet ist, und das Evaluieren einer Antwort davon umfasst.
  8. Verfahren nach Anspruch 7, wobei der WebDAV-Server Eigenschaftsinformation als Antwort auf die WebDAV-PROPFIND-Anfrage, die auf die Datei gerichtet ist, zurückgibt, und des Weiteres das Führen (412) der Eigenschaftsinformation in einer lokalen Datenstruktur umfasst.
  9. Verfahren nach Anspruch 1, wobei das Kommunizieren mit dem Netzwerkserver, um zu ermitteln, ob die Anfrage bearbeitet werden kann, umfasst: a) Ausgeben (304) einer HTTP-OPTIONS-Anfrage, Evaluieren einer entsprechenden Antwort und Ermitteln (308), dass der Server der WebDAV-Server ist; b) Ausgeben (400) einer WebDAV-PROPFIND-Anfrage, die auf eine Beteiligung (Laufwerk) auf dem WebDAV-Server gerichtet ist, Evaluieren einer entsprechenden Antwort, und Ermitteln, dass die Beteiligung auf dem WebDAV-Server existiert, wobei die Antwort Beteiligungseigenschaftsinformation einschließt; und c) Ausgeben (406) einer WebDAV-PROPFIND-Anfrage, die auf die Datei gerichtet ist, Evaluieren einer entsprechenden Antwort, und Ermitteln, dass die Datei existiert, wobei die Antwortdatei Eigenschaftsinformation einschließt.
  10. Verfahren nach Anspruch 9, das des Weiteren das Führen der Beteiligungseigenschaftsinformation und der Dateieigenschaftsinformation in mindestens einer lokalen Datenstruktur umfasst.
  11. Verfahren nach Anspruch 1, wobei das Kommunizieren mit dem Netzwerkserver anzeigt, dass die Anfrage bearbeitet werden kann, und des Weiteren das Kommunizieren mit mindestens einer anderen lokalen Komponente umfasst, um anzuzeigen, dass mindestens diese Anfrage bearbeitet werden kann.
  12. Verfahren nach Anspruch 1, das des Weiteren das Ermitteln (600) umfasst, dass die Datei auf dem WebDAV-Server verschlüsselt ist, und wobei das Herunterladen der Datei zu dem lokalen Zwischenspeicher das Kommunizieren mit dem Dateisystem umfasst, um ein Abbild der Datei in dem lokalen Zwischenspeicher zu erzeugen, das ebenso verschlüsselt ist.
  13. Verfahren nach Anspruch 12, das des Weiteren das Kommunizieren mit dem Dateisystem umfasst, um das Abbild der Datei zu öffnen, so dass das Dateisystem Dateidaten auf Leseanfragen hin transparent entschlüsselt und Dateidaten auf Schreibanfragen zu der Datei hin transparent verschlüsselt.
  14. Verfahren nach Anspruch 12, wobei das Heraufladen (722) der Datei von dem lokalen Zwischenspeicher zu dem WebDAV-Server das Kommunizieren mit dem Dateisystem umfasst, um Daten von dem lokalen Abbild der Datei zu lesen, so dass die Datei als das verschlüsselte Abbild davon heraufgeladen wird.
  15. Verfahren nach Anspruch 1, wobei das Empfangen der I/O-Anfrage das Empfangen, bei einem lokalen Anwendungsprogrammierungsschnittstellenlayer (202), einer Anwendungsanfrage, die einem Uniform-Resource-Identifier entspricht, und das Bereitstellen von Information entsprechend der Anfrage an den lokalen WebDAV-Umleiter (210) umfasst; und wobei das Kommunizieren mit dem Netzwerkserver das Ermitteln (308) bei dem WebDAV-Umleiter, ob der Server, der über die Anwendungsanfrage identifiziert wurde, den WebDAV-Server (218) umfasst, und wenn dem so ist, das Bearbeiten der Anfrage umfasst.
  16. Verfahren nach Anspruch 15, wobei die Anwendungsanfrage den Universal-Resource-Identifier umfasst.
  17. Verfahren nach Anspruch 15, wobei die Anwendungsanfrage einen Kennzeichner einschließt, der vorher mindestens einem Teil des Universal-Resource-Identifier zugewiesen worden ist.
  18. Verfahren nach Anspruch 15, wobei das Bereitstellen von Information, die der Anfrage entspricht, das Abfragen (polling) einer Reihe von mindestens einem Umleiter (208, 212) umfasst.
  19. Verfahren nach Anspruch 15, wobei das Bereitstellen von Information, die der Anfrage entspricht, das Abfragen (polling) einer Reihe von mindestens einem Netzwerkanbieter (216, 224) umfasst.
  20. Verfahren nach Anspruch 15, wobei die Anwendungsanfrage die I/O-Anfrage umfasst, die auf eine Datei gerichtet ist, und wobei das Bearbeiten der Anfrage das Erzeugen (602) einer lokalen Datei entsprechend der I/O-Anfrage umfasst.
  21. Verfahren nach Anspruch 20, wobei das Bearbeiten der Anfrage des Weiteren das Herunterladen mindestens mancher Dateidaten von dem WebDAV-Server zu der lokalen Datei umfasst.
  22. Verfahren nach Anspruch 15, wobei die Anwendungsanfrage eine Netzwerkanfrage umfasst, um eine Netzwerkbeteiligung (share) auf dem WebDAV-Server zu durchstöbern, und wobei das Bearbeiten der Anfrage das Aufzählen von Information auf der Netzwerkbeteiligung einschließt.
  23. Verfahren nach Anspruch 15, wobei das Ermitteln, bei dem WebDAV-Umleiter, ob der Server, der über die Anwendungsanfrage identifiziert wurde, den Web-DAV-Server umfasst, das Ausgeben (304) einer HTTP-OPTIONS-Anfrage an den Server und das Evaluieren einer entsprechenden Antwort einschließt.
  24. Verfahren nach Anspruch 23, wobei die Anwendungsprogrammanfrage eine Beteiligung auf dem WebDAV-Server anzeigt, und des Weiteren das Ausgeben (400) einer WebDAV-PROPFIND-Anfrage, die auf die Beteiligung auf dem Web-DAV-Server gerichtet ist, umfasst.
  25. Verfahren nach Anspruch 24, wobei die Anwendungsprogrammanfrage des Weiteren eine Datei auf der Beteiligung auf dem WebDAV-Server anzeigt, und des Weiteren das Ausgeben (406) einer WebDAV-PROPFIND-Anfrage, die auf die Datei gerichtet ist, umfasst.
  26. Verfahren nach Anspruch 25, wobei die Anwendungsanfrage eine I/O-Anfrage umfasst, die auf eine verschlüsselte Datei gerichtet ist, und des Weiteren das automatische, lokale Entschlüsseln der Daten, wenn die verschlüsselte Datei von dem WebDAV-Server heruntergeladen wird, und das automatische, lokale Verschlüsseln der Daten umfasst, wenn die verschlüsselte Datei auf den WebDAV-Server hochgeladen wird.
  27. Verfahren nach Anspruch 15, wobei die Anwendungsanfrage eine I/O-Anfrage, die auf eine Datei gerichtet ist, die auf dem WebDAV-Server verschlüsselt ist, umfasst, und wobei das Bearbeiten der Anfrage das Erzeugen (606) einer lokalen Datei, die der I/O-Anfrage entspricht, und das Herunterladen eines Abbildes der Datei von dem WebDAV-Server zu der lokalen Datei, umfasst, und wobei die lokale Datei durch ein lokales Dateisystem geschrieben wird, so dass das Abbild dem verschlüsselten Abbild auf dem WebDAV-Server entspricht.
  28. Verfahren nach Anspruch 27, das des Weiteren das Kommunizieren mit dem Dateisystem umfasst, um die lokale Datei zu öffnen, so dass das Dateisystem Dateidaten beim Lesen von Leseanfragen transparent entschlüsselt und Dateidaten, die auf Schreibeanfragen geschrieben werden, transparent verschlüsselt.
  29. Verfahren nach Anspruch 28, das des Weiteren das Erkennen einer Anfrage zum Schließen der lokalen Datei, das Schließen (714) der lokalen Datei, das Kommunizieren mit dem Dateisystem, um die lokale Datei zu öffnen (716), so dass die Datei nicht entschlüsselt wird, wenn sie gelesen wird, und das Heraufladen (722) der Datei auf den WebDAV-Server als eine verschlüsselte Datei umfasst.
  30. Computerlesbarer Datenträger, der computerausführbare Instruktionen zum Ausführen des Verfahrens von einem der Ansprüche 1 bis 29 aufweist.
  31. System in einem Computernetzwerk, wobei das System umfasst: ein Anwendungsprogramm (200), das WebDAV-bezogene Anfragen ausgibt, einschließlich mindestens einer Anfrage, die einen Kennzeichner entsprechend einem WebDAV-Server (218) aufweist; ein WebDAV-Umleiter (210), wobei der WebDAV-Umleiter eine Web-Client-Service-Komponente (214), die eingerichtet ist, mit einem Netzwerkserver zu kommunizieren, um Kapazitätsinformation davon zu erlangen, und eine Kemel-Modus-Komponente (212) umfasst, um die Fähigkeitsinformation zu evaluieren, um zu ermitteln (308), ob der Netzwerkserver den WebDAV-Server umfasst; und wenn die Fähigkeitsinformation anzeigt, dass der Netzwerkserver der WebDAV-Server ist, bearbeitet der WebDAV-Umleiter jede Anfrage, die dem WebDAV-Server entspricht, lokal, die lokal bearbeitet werden kann, und wobei der Web-DAV-Umleiter mit dem WebDAV-Server kommuniziert, um Anfragen zu bearbeiten, die nicht lokal bearbeitet werden können; wobei das lokale Bearbeiten jeder Anfrage das Herunterladen einer Datei, auf die die Anfrage gerichtet ist, das Zurückgeben eines Datei-Handle, das der lokalen Datei entspricht, an das Anwendungsprogramm, das Bereitstellen, durch die Kernel-Modus-Komponente, eines Zugriffs auf die lokale Datei und das Heraufladen der lokalen Datei zu dem WebDAV-Server, wenn eine Anfrage zum Schließen der Datei bei der Kernel-Modus-Komponente empfangen wurde, umfasst.
  32. System nach Anspruch 31, wobei der Identifizierer, der einem WebDAV-Server entspricht, der durch die Anwendung ausgegeben wurde, einen Universal-Resource-Identifier umfasst.
  33. System nach Anspruch 31, wobei der Identifizierer, der einem WebDAV-Server entspricht, der durch die Anwendung ausgegeben wurde, einen Identifizierer umfasst, der vorher auf eine Beteiligung (share) auf dem WebDAV-Server zugewiesen wurde.
  34. System nach Anspruch 31, wobei der WebDAV-Umleiter Anfragen von der Anwendung über eine Anwendungsprogrammierungsschnittstelle (202) empfängt (300).
  35. System nach Anspruch 31, wobei das Anwendungsprogramm I/O-Anfragen ausgibt, die auf eine WebDAV-Datei gerichtet sind, und wobei der WebDAV-Umleiter die I/O-Anfragen von einer Manager-Komponente empfängt.
  36. System nach Anspruch 31, wobei das Anwendungsprogramm I/O-Anfragen ausgibt, die auf eine WebDAV-Datei gerichtet sind, und wobei der WebDAV-Umleiter folgendes durchführt: a) Erzeugen (602) einer lokalen Representation der Datei; b) Ermitteln, ob die Datei auf dem WebDAV-Server existiert, und wenn dem so ist, Herunterladen mindestens mancher der Daten von der WebDAV-Server-Datei zu der lokalen Representation der Datei; c) Zurückgeben (506) des Datei-Handles, das der lokalen Repräsentation der Datei entspricht, an das Anwendungsprogramm; d) Empfangen (508) von I/O-Lese- und -Schreibanfragen, zugehörig zu dem Datei-Handle und Bearbeiten der I/O-Lese- und -Schreibe-Anfragen über die lokale Repräsentation der Datei; und e) Empfangen einer I/O-Schließanfrage zugehörig zu dem Datei-Handle, und Bearbeiten der I/O-Schließanfrage durch das Schließen (714) der lokalen Repräsentation der Datei und des Heraufladens (722) von mindestens einem Teil der lokalen Repräsentation der Datei zu dem WebDAV-Server.
  37. System nach Anspruch 36, wobei die WebDAV-Datei verschlüsselt ist, und wobei ein WebDAV-Anfragebearbeitungsmechanismus die lokale Darstellung der Datei durch folgendes erzeugt, a) Anfragen beim Dateisystem, eine lokale Datei zu erzeugen (606), die geöffnet ist, so dass eine transparente Verschlüsselung und Entschlüsselung dafür nicht aktiv ist, b) Herunterladen mindestens mancher der verschlüsselten Dateidaten durch das Anfragen beim Dateisystem, die lokale Datei ohne eine Übersetzung davon zu schreiben, und c) Anfragen beim Dateisystem, die lokale Datei zu schließen.
  38. System nach Anspruch 37, wobei der WebDAV-Umleiter I/O-Lese- und – Schreibanfragen von der Anwendung durch das Abfragen des Dateisystems zum Wiederöffnen der lokalen Datei bearbeitet, so dass das Lesen davon entschlüsselt ist und das Schreiben dorthin verschlüsselt ist.
  39. System nach Anspruch 38, wobei, wenn der WebDAV-Umleiter die I/O-Schließanfrage bearbeitet, und bevor die Datei heraufgeladen wird (722), der WebDAV-Anfragebearbeitungsmechanismus die lokale Darstellung der Datei schließt (714) und die lokale Datei durch das Anfragen beim Dateisystem zum Öffnen der Datei wiederöffnet (716), so dass das Lesen davon nicht entschlüsselt ist.
DE60221451T 2001-02-13 2002-02-13 System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien Expired - Lifetime DE60221451T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US26831101P 2001-02-13 2001-02-13
US268311P 2001-02-13
US52039 2002-01-17
US10/052,039 US7437429B2 (en) 2001-02-13 2002-01-17 System and method for providing transparent access to distributed authoring and versioning files including encrypted files

Publications (2)

Publication Number Publication Date
DE60221451D1 DE60221451D1 (de) 2007-09-13
DE60221451T2 true DE60221451T2 (de) 2007-11-29

Family

ID=26730089

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60221451T Expired - Lifetime DE60221451T2 (de) 2001-02-13 2002-02-13 System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien

Country Status (4)

Country Link
US (1) US7437429B2 (de)
EP (1) EP1233351B1 (de)
AT (1) ATE368898T1 (de)
DE (1) DE60221451T2 (de)

Families Citing this family (183)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096370B1 (en) * 1999-03-26 2006-08-22 Micron Technology, Inc. Data security for digital data storage
US6857076B1 (en) * 1999-03-26 2005-02-15 Micron Technology, Inc. Data security for digital data storage
ATE396577T1 (de) 1999-12-02 2008-06-15 Western Digital Tech Inc System zum fernaufnehmen von fernsehprogrammen
US7587467B2 (en) * 1999-12-02 2009-09-08 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8688797B2 (en) 1999-12-02 2014-04-01 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7917628B2 (en) 1999-12-02 2011-03-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) 1999-12-02 2014-07-29 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7934251B2 (en) * 1999-12-02 2011-04-26 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9191443B2 (en) * 1999-12-02 2015-11-17 Western Digital Technologies, Inc. Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7120692B2 (en) * 1999-12-02 2006-10-10 Senvid, Inc. Access and control system for network-enabled devices
CA2402307A1 (en) * 2000-03-10 2001-09-13 Herbert Street Technologies Ltd. A data transfer and management system
US7526795B2 (en) * 2001-03-27 2009-04-28 Micron Technology, Inc. Data security for digital data storage
WO2003001378A2 (en) * 2001-06-21 2003-01-03 Telefonaktiebolaget Lm Ericsson (Publ) Method for secure file transfer to multiple destinations with integrity check
US20030105830A1 (en) * 2001-12-03 2003-06-05 Duc Pham Scalable network media access controller and methods
JP2003223378A (ja) * 2002-01-29 2003-08-08 Fujitsu Ltd コンテンツデリバリネットワークサービス方法及びシステム
CA2391717A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Transferring data and storing metadata across a network
US6678828B1 (en) * 2002-07-22 2004-01-13 Vormetric, Inc. Secure network file access control system
US7334124B2 (en) * 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
US20040066536A1 (en) * 2002-08-08 2004-04-08 Kouichi Takamine Data control apparatus, and printing method and system
US7711539B1 (en) * 2002-08-12 2010-05-04 Netapp, Inc. System and method for emulating SCSI reservations using network file access protocols
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
DE10257819B4 (de) * 2002-12-10 2005-10-13 Web.De Ag Netzwerkbasierter Datenzugriff mit getrenntem Datenübergang und Datenübertragung
US7383586B2 (en) 2003-01-17 2008-06-03 Microsoft Corporation File system operation and digital rights management (DRM)
US20040163037A1 (en) * 2003-02-17 2004-08-19 Richard Friedman System and method for invoking WebDAV methods via non-WebDAV protocols
US20040162872A1 (en) * 2003-02-17 2004-08-19 Richard Friedman System and method for invoking WebDAV methods via component technologies
US20040162918A1 (en) * 2003-02-17 2004-08-19 Richard Freidman System and method for invoking WebDAV methods via non-WebDAV communication protocols
US20040167983A1 (en) * 2003-02-21 2004-08-26 Richard Friedman WebDAV URL connection
US7110843B2 (en) 2003-02-24 2006-09-19 Smar Research Corporation Arrangements and methods for monitoring processes and devices using a web service
US7349943B2 (en) * 2003-03-12 2008-03-25 Microsoft Corporation Protocol-independent client-side caching system and method
US20040215747A1 (en) * 2003-04-11 2004-10-28 Jonathan Maron System and method for a configuration repository
US7266812B2 (en) 2003-04-15 2007-09-04 Smar Research Corporation Arrangements, storage mediums and methods for transmitting a non-proprietary language device description file associated with a field device using a web service
US20040230899A1 (en) * 2003-05-13 2004-11-18 Pagnano Marco Aurelio De Oliveira Arrangements, storage mediums and methods for associating an extensible stylesheet language device description file with a non- proprietary language device description file
US20040230582A1 (en) * 2003-05-13 2004-11-18 Pagnano Marco Aurelio De Oliveira Arrangement, storage medium and method for providing information which is obtained via a device type manager, and transmitted in an extensible mark-up language format or a hypertext mark-up language format
US7426637B2 (en) * 2003-05-21 2008-09-16 Music Public Broadcasting, Inc. Method and system for controlled media sharing in a network
US20040257614A1 (en) * 2003-06-04 2004-12-23 Murata Kikai Kabushiki Kaisha Communication device and communication system
US8135759B2 (en) * 2003-08-07 2012-03-13 Teamon Systems, Inc. Communications system including protocol interface device for use with multiple operating protocols and related methods
US8032593B2 (en) * 2003-08-07 2011-10-04 Teamon Systems, Inc. Communications system providing reduced access latency and related methods
US8028078B2 (en) * 2003-08-07 2011-09-27 Teamon Systems, Inc. Communications system including protocol interface device providing enhanced operating protocol selection features and related methods
US7685302B2 (en) * 2003-08-11 2010-03-23 Teamon Systems, Inc. Communications system providing extensible protocol translation and configuration features and related methods
US7644170B2 (en) * 2003-08-11 2010-01-05 Teamon Systems, Inc. Communications system providing extensible protocol translation features and related methods
US7774486B2 (en) * 2003-08-11 2010-08-10 Teamon Systems, Inc. Communications system providing multi-layered extensible protocol interface and related methods
US7289975B2 (en) 2003-08-11 2007-10-30 Teamon Systems, Inc. Communications system with data storage device interface protocol connectors and related methods
US7693973B2 (en) * 2003-08-28 2010-04-06 International Business Machines Corporation Pluggable state meta-data processors based on meta information modeling in a service oriented architecture
US7483973B2 (en) * 2003-08-28 2009-01-27 International Business Machines Corporation Gateway for service oriented state
AU2012209053B2 (en) * 2003-09-12 2015-09-17 Aristocrat Technologies Australia Pty Limited Communications Interface for a Gaming Machine
AU2004282819B2 (en) * 2003-09-12 2009-11-12 Aristocrat Technologies Australia Pty Ltd Communications interface for a gaming machine
US7280956B2 (en) * 2003-10-24 2007-10-09 Microsoft Corporation System, method, and computer program product for file encryption, decryption and transfer
US7231397B2 (en) * 2003-10-24 2007-06-12 Microsoft Corporation Method and system for transacted file operations over a network
US7962843B2 (en) * 2003-12-15 2011-06-14 Microsoft Corporation Browser session overview
US7774721B2 (en) 2003-12-15 2010-08-10 Microsoft Corporation Intelligent backward resource navigation
US7614004B2 (en) 2003-12-15 2009-11-03 Microsoft Corporation Intelligent forward resource navigation
GB2409541A (en) 2003-12-23 2005-06-29 Mandorla Technology Ltd Editable information management system and method
US7546291B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Data source task pane
US7716168B2 (en) 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US8135755B2 (en) 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
JP2005234860A (ja) * 2004-02-19 2005-09-02 Hitachi Ltd バージョン管理システム、バージョン管理サーバ装置、及び記憶デバイス制御装置
US7546286B2 (en) * 2004-02-19 2009-06-09 Microsoft Corporation Offline multi-table data editing and storage
US7584477B2 (en) * 2004-07-14 2009-09-01 Xerox Corporation Cross repository copier
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US8145601B2 (en) 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7567974B2 (en) * 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8266438B2 (en) * 2004-10-25 2012-09-11 Security First Corp. Secure data parser method and system
JP3810425B2 (ja) * 2004-12-16 2006-08-16 松下電器産業株式会社 改竄検出用データ生成方法、および改竄検出方法及び装置
US20060156418A1 (en) * 2005-01-10 2006-07-13 Ibm Corporation Method and apparatus for preventing unauthorized access to data
US7590868B2 (en) * 2005-02-09 2009-09-15 Hewlett-Packard Development Company, L.P. Method and apparatus for managing encrypted data on a computer readable medium
US20060218435A1 (en) * 2005-03-24 2006-09-28 Microsoft Corporation Method and system for a consumer oriented backup
US7565358B2 (en) * 2005-08-08 2009-07-21 Google Inc. Agent rank
US8010850B2 (en) 2005-08-31 2011-08-30 Microsoft Corporation Client extended error handling
US20070073989A1 (en) * 2005-08-31 2007-03-29 Interdigital Technology Corporation Method and apparatus for efficient data storage and management
US7600030B2 (en) * 2005-08-31 2009-10-06 Microsoft Corporation Compounding of HTTP authoring protocol
KR100754179B1 (ko) * 2005-09-23 2007-09-03 삼성전자주식회사 WebDAV protocol을 이용한 문서 분배 시스템및 방법
US20070130149A1 (en) * 2005-10-12 2007-06-07 Lenovo (Singapore) Pte. Ltd. Method, system, and computer program product for troubleshooting/configuring communications settings of a computer system
US7921304B2 (en) * 2005-12-06 2011-04-05 Microsoft Corporation Securing data set images
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
GB2435945B (en) * 2006-03-04 2008-10-29 Ahmed Eltigani Transparent encryption and zipping file management system that tunnels ntfs functionality to other file system formats
US8214395B2 (en) * 2006-04-21 2012-07-03 Microsoft Corporation Tracking and editing a resource in a real-time collaborative session
US7603350B1 (en) 2006-05-09 2009-10-13 Google Inc. Search result ranking based on trust
JP4788768B2 (ja) * 2006-05-15 2011-10-05 ソニー株式会社 Getメソッドで長いデータを取得する方法
CN100418319C (zh) * 2006-05-18 2008-09-10 清华大学 透明计算系统中端设备间数据的传送方法
US7783710B2 (en) * 2006-05-21 2010-08-24 Venkat Ramaswamy Systems and methods for spreading messages online
US7792301B2 (en) * 2006-06-29 2010-09-07 Microsoft Corporation Access control and encryption in multi-user systems
US20090037520A1 (en) * 2007-07-30 2009-02-05 Caterpillar Inc. System and method for secure file transfer
US20090164521A1 (en) * 2007-12-20 2009-06-25 George Lo Method and system for integrating multiple authoring applications in a collaborative environment
US8321915B1 (en) * 2008-02-29 2012-11-27 Amazon Technologies, Inc. Control of access to mass storage system
CA2720398C (en) 2008-04-02 2016-08-16 Twilio Inc. System and method for processing telephony sessions
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
US8738531B1 (en) * 2008-07-08 2014-05-27 InfoWatch Cryptographic distributed storage system and method
US9817680B1 (en) 2008-08-04 2017-11-14 Open Invention Network, Llc Application configuration tool
WO2010040010A1 (en) 2008-10-01 2010-04-08 Twilio Inc Telephony web event system and method
US8509415B2 (en) 2009-03-02 2013-08-13 Twilio, Inc. Method and system for a multitenancy telephony network
WO2010101935A1 (en) 2009-03-02 2010-09-10 Twilio Inc. Method and system for a multitenancy telephone network
US8364984B2 (en) 2009-03-13 2013-01-29 Microsoft Corporation Portable secure data files
US9336375B1 (en) * 2009-07-28 2016-05-10 Sprint Communications Company L.P. Restricting access to data on portable storage media based on access to a private intranet
US20110083179A1 (en) * 2009-10-07 2011-04-07 Jeffrey Lawson System and method for mitigating a denial of service attack using cloud computing
US8582737B2 (en) * 2009-10-07 2013-11-12 Twilio, Inc. System and method for running a multi-module telephony application
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US20110283259A1 (en) * 2009-10-07 2011-11-17 Jeffrey Lawson Method and system for creating a platform application with multiple applets
WO2011091085A1 (en) 2010-01-19 2011-07-28 Twilio Inc. Method and system for preserving telephony session state
US8606792B1 (en) 2010-02-08 2013-12-10 Google Inc. Scoring authors of posts
US8416923B2 (en) 2010-06-23 2013-04-09 Twilio, Inc. Method for providing clean endpoint addresses
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US9459926B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9459925B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9338064B2 (en) 2010-06-23 2016-05-10 Twilio, Inc. System and method for managing a computing cluster
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
JP5539126B2 (ja) * 2010-09-09 2014-07-02 キヤノン株式会社 データ処理装置、制御方法、及びプログラム
US8751789B2 (en) 2010-09-17 2014-06-10 International Business Machines Corporation General purpose distributed encrypted file system
US9116911B2 (en) * 2010-11-02 2015-08-25 International Business Machines Corporation Remote file sharing based on content filtering
US9058497B2 (en) 2010-12-23 2015-06-16 Microsoft Technology Licensing, Llc Cryptographic key management
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
US8577836B2 (en) * 2011-03-07 2013-11-05 Infinidat Ltd. Method of migrating stored data and system thereof
US9648006B2 (en) 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
WO2012162397A1 (en) 2011-05-23 2012-11-29 Twilio, Inc. System and method for connecting a communication to a client
EP2759123B1 (de) 2011-09-21 2018-08-15 Twilio, Inc. System und verfahren zum autorisieren und verbinden von anwendungsentwicklern und -benutzern
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
US9280377B2 (en) 2013-03-29 2016-03-08 Citrix Systems, Inc. Application with multiple operation modes
US20140032733A1 (en) 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
US8881229B2 (en) 2011-10-11 2014-11-04 Citrix Systems, Inc. Policy-based application management
US9215225B2 (en) 2013-03-29 2015-12-15 Citrix Systems, Inc. Mobile device locking with context
US8799994B2 (en) 2011-10-11 2014-08-05 Citrix Systems, Inc. Policy-based application management
US9529996B2 (en) 2011-10-11 2016-12-27 Citrix Systems, Inc. Controlling mobile device access to enterprise resources
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US9479598B2 (en) * 2012-05-07 2016-10-25 Wyse Technology L.L.C. System and method for providing session-level access management of a redirected device
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US20130304928A1 (en) 2012-05-09 2013-11-14 Twilio, Inc. System and method for managing latency in a distributed telephony network
US9240941B2 (en) 2012-05-09 2016-01-19 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US8738051B2 (en) 2012-07-26 2014-05-27 Twilio, Inc. Method and system for controlling message routing
US9774658B2 (en) 2012-10-12 2017-09-26 Citrix Systems, Inc. Orchestration framework for connected devices
US8745755B2 (en) * 2012-10-12 2014-06-03 Citrix Systems, Inc. Controlling device access to enterprise resources in an orchestration framework for connected devices
US9516022B2 (en) 2012-10-14 2016-12-06 Getgo, Inc. Automated meeting room
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US20140109171A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Providing Virtualized Private Network tunnels
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US8910239B2 (en) 2012-10-15 2014-12-09 Citrix Systems, Inc. Providing virtualized private network tunnels
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
CN104854561B (zh) 2012-10-16 2018-05-11 思杰系统有限公司 用于应用程序管理框架的应用程序封装
US9971585B2 (en) 2012-10-16 2018-05-15 Citrix Systems, Inc. Wrapping unmanaged applications on a mobile device
US20140108793A1 (en) 2012-10-16 2014-04-17 Citrix Systems, Inc. Controlling mobile device access to secure data
US9606774B2 (en) 2012-10-16 2017-03-28 Citrix Systems, Inc. Wrapping an application with field-programmable business logic
US20140143553A1 (en) * 2012-11-20 2014-05-22 Cloudioh Inc. Method and Apparatus for Encapsulating and Encrypting Files in Computer Device
US9253254B2 (en) 2013-01-14 2016-02-02 Twilio, Inc. System and method for offering a multi-partner delegated platform
US9881177B2 (en) * 2013-02-13 2018-01-30 Security First Corp. Systems and methods for a cryptographic file system layer
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US20140280484A1 (en) * 2013-03-15 2014-09-18 Oliver Klemenz Dynamic Service Extension Infrastructure For Cloud Platforms
US9001666B2 (en) 2013-03-15 2015-04-07 Twilio, Inc. System and method for improving routing in a distributed communication platform
US10284627B2 (en) 2013-03-29 2019-05-07 Citrix Systems, Inc. Data management for an application with multiple operation modes
US9985850B2 (en) 2013-03-29 2018-05-29 Citrix Systems, Inc. Providing mobile device management functionalities
US9455886B2 (en) 2013-03-29 2016-09-27 Citrix Systems, Inc. Providing mobile device management functionalities
US20140297840A1 (en) 2013-03-29 2014-10-02 Citrix Systems, Inc. Providing mobile device management functionalities
US9355223B2 (en) 2013-03-29 2016-05-31 Citrix Systems, Inc. Providing a managed browser
US8813179B1 (en) 2013-03-29 2014-08-19 Citrix Systems, Inc. Providing mobile device management functionalities
US9413736B2 (en) 2013-03-29 2016-08-09 Citrix Systems, Inc. Providing an enterprise application store
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9240966B2 (en) 2013-06-19 2016-01-19 Twilio, Inc. System and method for transmitting and receiving media messages
US9338280B2 (en) 2013-06-19 2016-05-10 Twilio, Inc. System and method for managing telephony endpoint inventory
US9483328B2 (en) 2013-07-19 2016-11-01 Twilio, Inc. System and method for delivering application content
US9338018B2 (en) 2013-09-17 2016-05-10 Twilio, Inc. System and method for pricing communication of a telecommunication platform
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US20150188910A1 (en) * 2013-12-26 2015-07-02 Iswind Digital Engineering Inc. Policy group based file protection system, file protection method thereof, and computer readable medium
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9749428B2 (en) 2014-10-21 2017-08-29 Twilio, Inc. System and method for providing a network discovery service platform
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity
US10929210B2 (en) * 2017-07-07 2021-02-23 Box, Inc. Collaboration system protocol processing
TWI731287B (zh) * 2018-12-22 2021-06-21 威聯通科技股份有限公司 網路應用程式產品及處理應用層協定的方法
CN112100134A (zh) * 2020-08-25 2020-12-18 深圳市星砺达科技有限公司 导出大文件的方法及装置、存储介质及计算机设备
TWI789168B (zh) * 2021-12-16 2023-01-01 威聯通科技股份有限公司 檔案版本管理方法及檔案系統

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341499A (en) * 1992-04-02 1994-08-23 International Business Machines Corporation Method and apparatus for processing multiple file system server requests in a data processing network
WO1996029664A1 (en) 1995-03-17 1996-09-26 Microsoft Corporation Computer system and computer-implemented process for creation and maintenance of on-line services
IL116804A (en) 1996-01-17 1998-12-06 R N S Remote Networking Soluti Application user interface redirector
US5918228A (en) * 1997-01-28 1999-06-29 International Business Machines Corporation Method and apparatus for enabling a web server to impersonate a user of a distributed file system to obtain secure access to supported web documents
US6249866B1 (en) * 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6735631B1 (en) * 1998-02-10 2004-05-11 Sprint Communications Company, L.P. Method and system for networking redirecting
US6185681B1 (en) * 1998-05-07 2001-02-06 Stephen Zizzi Method of transparent encryption and decryption for an electronic document management system
US6629127B1 (en) * 1999-07-26 2003-09-30 Microsoft Corporation Methods and systems for processing HTTP requests
US6732361B1 (en) * 1999-07-28 2004-05-04 Xerox Corporation Generating combinations of offers and using action identifiers from the offers to obtain performance of combinations of actions
US6578069B1 (en) * 1999-10-04 2003-06-10 Microsoft Corporation Method, data structure, and computer program product for identifying a network resource
US6760886B1 (en) * 1999-11-17 2004-07-06 International Business Machines Corporation Ensuring referential integrity when using WebDAV for distributed development of a complex software application
US6714968B1 (en) * 2000-02-09 2004-03-30 Mitch Prust Method and system for seamless access to a remote storage server utilizing multiple access interfaces executing on the remote server
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
US6842770B1 (en) * 2000-08-18 2005-01-11 Apple Computer, Inc. Method and system for seamlessly accessing remotely stored files
WO2002019272A1 (en) * 2000-09-01 2002-03-07 Togethersoft Corporation Methods and systems for animating a workflow and a project plan
CA2317825C (en) * 2000-09-07 2006-02-07 Ibm Canada Limited-Ibm Canada Limitee Interactive tutorial

Also Published As

Publication number Publication date
US7437429B2 (en) 2008-10-14
EP1233351B1 (de) 2007-08-01
ATE368898T1 (de) 2007-08-15
EP1233351A2 (de) 2002-08-21
US20030046366A1 (en) 2003-03-06
DE60221451D1 (de) 2007-09-13
EP1233351A3 (de) 2003-07-23

Similar Documents

Publication Publication Date Title
DE60221451T2 (de) System und Verfahren für Erstellung des transparenten Zugangs auf WebDAV Dateien inklusive verschlüsselte Dateien
DE69838443T2 (de) Verteiltes Netzwerkrechnersystem
DE10051571B4 (de) Methode und System zur Unterstützung von Sicherheitsvorgaben unter Verwendung einer Stylesheet-Verarbeitung
US10079726B1 (en) System and method for displaying and operating multi-layered item list in web browser with supporting of concurrent users
DE60125599T2 (de) Verfahren und system zum transparenten zugreifen auf ferngespeicherte dateien
DE60130633T2 (de) Gesicherte Internet-Zwischenablage
CN104767834B (zh) 用于加速计算环境到远程用户的传送的系统和方法
US9547726B2 (en) Virtual file-sharing network
US6567918B1 (en) Saved Web page security system and method
DE60024696T2 (de) System und Verfahren zur Manipulation eines Rechnersbestandes und/oder eines Programms
DE602004001716T2 (de) Verfahren und System zur Verbindung eines Fernbenutzers mit einer lokalen Rechnerumgebung über einen Intranet-Server
DE60219169T2 (de) System und Verfahren zum schieben von Daten von einer Informationsquelle zu einem mobilen Endgerät beinhalten die Transcodierung der Daten
EP3314806B1 (de) Verschlüsselungsfilter
US8341258B2 (en) Display, view and operate multi-layers item list in web-browser with supporting of concurrent multi-users
DE102021206841A1 (de) Verfahren zur verschlüsselung der daten im ruhezustand für daten, die sich auf kubernetes-persistenten volumen befinden
Shepler NFS Version 4 Design Considerations
US6965924B1 (en) Method and system for transparent file proxying
US11533365B2 (en) System and method for displaying and operating multi-layered item list in web browser with supporting of concurrent users
DE60211332T2 (de) Verfahren und Chipkarte zur Verwaltung von Cookie-Dateien
Rhodes et al. CHAPTER 17 FTP
Shepler RFC2624: NFS Version 4 Design Considerations
Jin et al. Implementation of an on-site web multimedia collector
JP2002373104A (ja) ファイル管理システムおよびサーバ装置

Legal Events

Date Code Title Description
8364 No opposition during term of opposition