JP2007531071A - 協働的ファイル更新システム - Google Patents

協働的ファイル更新システム Download PDF

Info

Publication number
JP2007531071A
JP2007531071A JP2006518924A JP2006518924A JP2007531071A JP 2007531071 A JP2007531071 A JP 2007531071A JP 2006518924 A JP2006518924 A JP 2006518924A JP 2006518924 A JP2006518924 A JP 2006518924A JP 2007531071 A JP2007531071 A JP 2007531071A
Authority
JP
Japan
Prior art keywords
file
version
data
user
data set
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.)
Pending
Application number
JP2006518924A
Other languages
English (en)
Inventor
エイ. パーカー ジェームス
エム. スパークス ジェームス
Original Assignee
タシット ネットワークス インコーポレーテッド
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 タシット ネットワークス インコーポレーテッド filed Critical タシット ネットワークス インコーポレーテッド
Publication of JP2007531071A publication Critical patent/JP2007531071A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

開示された方法では、ファイルの協働的な更新を容易にし、データは、複数のユーザーの一人から受け入れて保存する。このデータは、ファイルの初期バージョンを表わし、初期バージョンの一人以上の受信者を指定する。そして、ファイルの順次的な更新バージョンの各々に対して、ファイルの更新されたバージョンとファイルの直前のバージョンとの間の差分を表わすデータは、ユーザーから受け入れられる。このデータは、また、行使されたバージョンの一人以上の受信者を指定する。ファイルの更新されたバージョンのデータ値は、更新したバージョンの指定した受信者に伝送される。各受信者に対して伝送されたデータは、更新されたバージョンの受信者として指定され、直前のバージョンをアクセスした受信者へ伝送されたデータは、実質的に、ファイルの更新されたバージョンと前のバージョンとの間の差分からなる。他の方法及びシステムが開示されている。
【選択図】図9

Description

本発明は、複数のユーザによるファイルへのアクセス方法に関する。
ワークグループによる共同作業の基盤として、同僚間で電子的にメッセージを交換し、電子ファイルを共同で使用することが益々増大している。遠隔地からの参加者をワークグループへ接続するインターネットの使用の増加に伴って、ワークグループ内の作業者が、共有ファイルの保存およびアクセスを安全かつ簡便に実行できる共通ポイントに到達できない事態がしばしば生じる。このようなアクセスが可能な場合であっても(例えば、ローカル・エリア・ネットワーク内でのアクセス、あるいは、インターネットに基づくVPN(Virtual Private Network:バーチャル・プライベート・ネットワーク)を介したアクセスの場合)、ワークグループへの参加者が、電子メールの慣れ親しんだ便利なインタフェースを使用することから脱することができないために、結局、電子メールの添付ファイルとしてファイルを授受する結果となることも多い。
電子ファイルに対して協働的にアクセスするために、電子メールの添付ファイルを用いることは、多くの点で非効率的である。添付ファイルとしてファイルを送信することによって、大量のネットワーク資源が消費される。この問題を悪化させる要因は、電子メールシステムで従来使用されているBase−64符号化方式の非効率性である。大きなファイルが添付された電子メールメッセージの受信者は、特に比較的低速である電話回線を介して接続している場合、電子メールをチェックする際の長いダウンロード時間に悩まされることになる。多くのユーザは、ファイルを電子メールの受信箱に「詰め込む」ことよりも、所望の時と場合に応じて共有ファイルにアクセスする方を好むものである。
ワークグループによる共同作業では、単純な添付ファイルによるファイル共有に対して、共有ファイルのアクセス管理とバージョン管理が、さらに重要な問題を提起する。ファイルの起案者(originator)または作成者は、特定のバージョンのファイルを電子メールの添付ファイルとして同僚に送信した後、このバージョンのファイルに対して同僚によってなされる編集に関する制御を失うことになる。ファイルの起案者が「公式」なバージョンのファイルにこの編集を組み込むためには、別の電子メールの添付ファイルとして返送された編集版のファイルを使用して、元のファイルを上書きする必要がある。また、複数の同僚によってなされた編集を組み込むためには、それらの編集を手作業によって統合する必要がある。
サービニス(Serbinis)等による国際特許出願(特許文献1)には、ファイルの起案者が文書管理システムの保存場所にファイルをアップロードすると共に、この文書へのアクセスが認証されたユーザのリストを作成する文書管理システムが開示されている。
国際公開第00/60503号パンフレット
しかしながら、文書管理システムと電子メールシステムをシームレスに統合してその利便性を促進し、ユーザが、添付ファイルによるファイル送信という、慣れ親しんではいるものの非効率なシステムに後退しないようにすることに対する要望は、依然として存在している。より良い電子メール/文書管理統合システムは、共有ファイルへのネットワークアクセスの利点を維持しながら、添付ファイルとしてファイルを送信する際の慣れ親しんだインタフェースと利便性とを提供するものであろう。
本発明の種々の構成に従う方法において、ファイルの協働的な更新を容易にするために、データが、複数のユーザーの一人から受け入れられて保存される。このデータは、ファイルの初期バージョンを表わし、序機バージョンの一人以上の受信者を指定する。
そして、ファイルの順次的に更新された複数のバージョンの各々に対して、複数のユーザーの一人から受け入れられる。このデータは、ファイルの更新されたバージョンとファイルの序九膳のバージョンの間の差分を表わす。また、このデータは、ファイルの非塵以上の受信者を指定する。ファイルの更新されたバージョンを表わすデータは、更新されたバージョンの指定された受信者に伝送される。
本発明の特定の構成によれば、全てのユーザーにアクセス可能なサーバーが、データを受け入れる。有利なことに、これらのユーザーは、ファイルのバージョンに際するリファレンスを交換することができ、指定された受信者によって作動されたとき、サーバーが元のまたは更新されたファイルのバージョンを表わすデータを伝送させる。この結果、ユーザー間に直接ファイルを伝送することを避ける。
更新されたバージョンの受信者として指定された各受信者に伝送され、かつ直前のバージョンにアクセスされたデータは、実質的に、ファイルの更新されたバージョンと前のバージョンとの間の差分からなる。その結果、更新されたファイルのバージョンを得ることができるユーザーは、単に、直前のバージョンをデータファイルとパッチングさせることによって、そのデータファイルのみを受け入れる。更新された全体のファイルは、この場合伝送する必要がない。
本発明の別の特定の構成によれば、直前のバージョンではなくて、更新されたバージョンの受信者として指定されたユーザーは、以前のバージョンからのデータよりも更新されたファイル自体のデータを受け入れる。このファイルは、伝送する前に更新され、そして、伝送した後、更新のために複数のデータを伝送する複雑化を回避する。
上記要約は、本発明の全ての構成を網羅したリストを含まない。実際、この発明者は、本発明は、上述した種々の構成の全ての組み合せから実行することができる全てのシステム及び方法を含むと考えており、更に、以下で詳細に説明する構成および本出願に添付された特許請求の範囲に記載した構成を含む。このような組み合せは、上記要約に開示されていない特定の利点を有するものである。
本発明の様々な態様に従う電子メール・ファイルアクセスシステムは、多くの利点を有しており、それらの利点には、典型的な電子メールソフトウェアで使用される一般的なユーザインタフェースに対して新規な拡張を使用することから生じる、アクセス管理の簡便性が含まれる。このシステムは、相互作用可能なハードウェア部品またはソフトウェアコンポーネントからなる任意の適切なグループを含んでおり、それによって、電子的なメッセージ交換を介するファイルのアクセスを容易にするものである。例えば、図1に示すシステム100は、従来のネットワーク接続14、17、47を介して好適にネットワーク化された第1のコンピュータ110、第2のコンピュータ140、および、第3の「アクセスサーバ」コンピュータ170を含んでいる。
図1は、コンピュータ110、140、170を方形の破線として模式的に示し、システム100においてこれらのコンピュータが実装する機能モジュールを、各コンピュータを表す破線内に模式的に示した図である。これらの機能モジュールは、ハードウェア、ソフトウェア、または、それらの両方によって、好適に実装することができる。各機能モジュールは、相互接続の任意の適切な経路を介して相互作用することができる。これらの相互接続には、ハードウェア(例えば、バス、専用信号線等)、共有記憶媒体(例えば、RAM媒体中の関数呼び出しの引数および戻り値、デュアルアクセスRAM、ハードディスク媒体上に存在するファイル等)へのアクセス、および、ハードウェアと共有記憶媒体へのアクセスとの組合せが含まれる。
コンピュータ110は、I/O(入出力)モジュール112、ストレージ114、および、プラグイン118によって変更された電子メールクライアント・アプリケーション116を含む機能モジュールを実装している。制御モジュール120は、これらのモジュールおよびコンピュータ110が実装する他の任意のモジュールの動作を管理するものである。ハードウェアおよびソフトウェア相互接続モジュール122は、コンピュータ110の様々なモジュール間の相互接続を表している。
コンピュータ140は、I/Oモジュール142、ストレージ144、電子メールクライアント・アプリケーション146、および、ダイレクトファイルアクセス・モジュール148を含む機能モジュールを実装している。制御モジュール150は、これらのモジュールおよびコンピュータ140が実装する他の任意のモジュールの動作を管理するものである。コンピュータ140の様々なモジュール間の相互接続は、ハードウェアおよびソフトウェア相互接続モジュール152によって表されている。
アクセスサーバ170は、ストレージモジュール174中のファイルへのネットワークアクセスを提供する機能モジュールを実装しており、ストレージ174に加えて、ネットワーク転送インタフェースモジュール172および制御モジュール176を含んでいる。相互接続モジュール178は、コンピュータ170の様々なモジュール間のハードウェアおよびソフトウェア接続を表すものである。
本発明の様々な態様に従うI/Oモジュールは、ユーザからの入力を受信すると共にユーザへの出力を伝達する任意のハードウェアまたはソフトウェアを含んでいる。システム100において、コンピュータ110のユーザはファイル管理者102であり、コンピュータ140のユーザはファイル使用者198である。コンピュータ110のI/Oモジュール112は、コンピュータ110の動作を指令するファイル管理者102からの通常のユーザ入力(例えば、マウスおよびキーボードからの入力、音声読取り、およびコマンド入力)を受信する。また、I/Oモジュール112は、図1には図示を省略する通常の出力デバイス(例えば、LCDまたはCRTモニター、スピーカー)を介して、ファイル管理者102にコンピュータ110からの出力を伝達する。同様に、コンピュータ140のI/Oモジュール142は、ファイル使用者198からの入力を受信し、出力を伝達する。ここで、コンピュータのユーザは、コンピュータに向かう人として図示されているが、本発明において、コンピュータのユーザは、このコンピュータの場所に常時存在していなくてもよく、または、リモートリンクを通じてのみ「存在している」人であってもよい。また、人間のユーザを、人工知能システムまたはロボットに置き換えることもできる。
コンピュータ110、140およびアクセスサーバ170のストレージモジュール114、144、174の例には、通常、ハードディスクストレージ、RAM、ブートROMが含まれる。本発明の様々な態様に従うストレージ機能モジュールには、モジュール114、144で使用されるハードウエアおよびソフトウェアに加えて、適切にデータを保存する任意のハードウェアおよび関連するソフトウェアを含めることができる。これらのストレージは、揮発性または不揮発性の媒体への、一時的または永久的なものとすることができる。
コンピュータ110、140およびアクセスサーバ170の制御モジュール120、150、176は、通常、1つまたは複数の中央処理装置(CPU:Central Processing Unit)集積回路が含まれており、CPUは、マイクロコード、ブートソフトウェア(例えば、BIOSチップ中)、および、例えばLinux、BeOS、Mac OS(登録商標)、WINDOWS(登録商標)等の適切なオペレーティングシステムを備えている。(本発明の様々な態様に従う制御モジュールは、ここれ例示したハードウェアおよびソフトウェア、または、コンピュータの動作を制御する他の任意のハードウエアおよびソフトウェアを含んでいてもよい。)オペレーティングシステムは、CPUを制御下に置いた後、そのCPUのコンピュータ中の他のコンポーネントの相互作用を管理する。例えば、制御モジュール120は、I/Oモジュール112、ストレージモジュール114中のハードディスクおよびメモリ、および、電子メールクライアント・モジュール116並びにプラグイン118を実装するためのアプリケーション関数呼び出しの間のデータ交換を管理する。これらのデータ交換は、ハードウェアおよびソフトウェア相互接続モジュール122によって表されている。
本発明の様々な態様に従う電子メールクライアント・モジュール146は、ユーザがネットワークを介して他のユーザと電子メッセージを交換可能な任意の適切なハードウェアおよびソフトウェアによって実装される任意の機能モジュールを含んでいる。プラグインモジュール118によって、本発明の様々な態様を実装する目的のために適切に変更された場合、例示した電子メールクライアント・モジュール116を、従来の電子メールクライアント・アプリケーションとすることができ、それによって、システム100における(後述する)機能を果すものである。適切な電子メールクライアント・アプリケーションには、ロータス社/アイビーエム社(Lotus/IBM)のNOTES(登録商標)、クォルコム社(Qualcomm)のEUDORA(登録商標)、ネットスケープ社(Netscape)のMESSENGER、およびマイクロソフト社(Microsoft)のOUTLOOK(登録商標)が含まれる。あるいは、このような機能をアプリケーション・モジュール116に統合化することもでき、その場合、プラグインモジュール118は省略してもよい。
コンピュータ140の電子メールクライアント・モジュール146は、システム100における機能を果すために、専用にプログラムされている必要はなく、プラグインモジュールによって変更する必要もない。例示したコンピュータ140には、そのような機能を果すために、(好ましくは、電子メールへの添付ファイルの添付時に起動される)ダイレクトファイルアクセス・モジュール148が含まれている。ダイレクトファイルアクセス・モジュールの利点を必要としない例では、ファイル使用者は、単に従来の電子メールクライアントを使用することができる。この例では、電子メールメッセージに埋め込まれたハイパーリンクを選択することによって、ダイレクトファイルアクセス・モジュールを要することなく、ダイレクトファイルアクセスを開始することができる。他の例では、ファイル使用者は、専用にプログラムされた電子メールクライアント、または、プラグインによって変更された電子メールクライアントを使用することができる。このように、本発明の様々な態様に従うシステムは、複数のファイル使用者のすべての電子メールソフトウェアを改造することなく、動作するものである。
少なくとも電子メールクライアントとしてEUDORA(登録商標)を使用する場合には、単一のダイナミックリンクライブラリ(DLL:dynamic-linked library)に常駐するプログラムによって、プラグインモジュール118を実装することができる。インストールプログラムは、そのDLLファイルを、ストレージモジュール114のハードディスク上の「plugins」フォルダ(例えば、C:¥Program Files¥Eudora¥plugins)に保存する。他の電子メールクライアントでは、プラグインは、それぞれの方法で実装される。
システム100においてメッセージおよびファイルを送信するための例示的な方法200は、図2に示すデータフローチャートを参照することで、より理解し易くなるであろう。この例は、本発明の様々な態様を、例示的な構成であるシステム100で使用したときの利点を説明するためのものである。ただし、本発明の特定の態様には、他の様々な態様が省略されていている場合にも、その利点を発揮するものも存在する。したがって、この例または本明細書に記載された他のすべての例は、本発明の範囲を限定するものではない。本発明は、添付請求項のみによって限定される。
方法200の処理200において、ファイル管理者(図2への図示は省略する)は、ファイルアクセスを許可するメッセージを準備する。これを実施するために、ファイル管理者102は、I/Oモジュール112(図1参照)を通じて送受信される入力および出力を介して、コンピュータ110と対話する。ファイル管理者は、ファイル使用者からのアクセスを許可したいファイル222(図1に示すストレージ114のハードディスクまたは他の媒体上に存在する)を指定する。ファイル管理者は、通常、アクセスを許可するファイルの作成者であるが、これに限定されるわけではない。
ファイル管理者は、ファイル使用者の電子メールメッセージのアドレス226を指定する。プラグインモジュール118による機能変更によって、モジュール116(図1参照)は、さらに、ファイル使用者198が、ファイルの閲覧が認証された閲覧者またはファイルの修正が認証された編集者のいずれであるかについての指示データを記録する。(勿論、ファイルの修正を認証することは、同時に、ファイルの閲覧を認証することを意味する。)
通常の電子メールシステムでは、電子メッセージのアドレスには、後尾に「@」記号の付いたユーザID、続いて、そのユーザのネットワークドメイン名が含まれる。例えば、「tom_edison@lightulbs.com」というアドレスには、ユーザID「tom_edison」と、ドメイン名「lightulbs.com」が含まれている。下部構造に互換性がある場合には、他の種類の電子メッセージを使用することもできる。
次いで、方法200の処理230では、ファイル使用者の認証ステータスが判別される。処理230は、図1に示すコンピュータ110、アクセスサーバ・コンピュータ170、および、場合によってはコンピュータ140で実行されるものであり、認証データ228に基づいてこの判別を実施する。認証データ228は、自動的に決定されるものであってもよく、あるいは、ファイル管理者が手作業で決定するものであってもよい。手作業により認証データを決定する場合のシステムおよび方法の例は、図4および図5を参照して、後述する。
特定のファイル使用者に対する認証データは、そのファイル使用者に関連付けられた電子メッセージのアドレスに基づき、任意の適切な方法を使用して、自動的に決定することができる。図1に示すシステム100では、例えば、コンピュータ110の認証データベースモジュール(図示は省略するが、ストレージ114に置くことができる)に、認証された使用者とそれぞれの使用者の認証ステータスのデータベースが保持されるものであってもよい。認証データベースモジュールは、ファイル使用者198のアドレスを検索し、一致するアドレスを発見したならば、認証データ228(図2参照)を更新して、ファイル使用者198を、ダイレクトアクセスが認証された閲覧者または編集者、あるいは、ダイレクトアクセスが認証されていない使用者として指定する。
上記認証データの決定方法に加えて、あるいは、その代りに、システム100は、ファイル使用者198のユーザIDまたはドメイン名に基づいて、認証データを自動的に決定することもできる。例えば、ファイル管理者102のアドレスと同じ会社名のドメイン名を持つすべてのアドレスを、ダイレクトファイルアクセスを認証するデータに関連付けるものであってもよい。別の例として、セキュリティーの観点から、よく知られているフリーメールサービスのドメイン名を持つすべてのアドレスを、ダイレクトファイルアクセスの認証を阻止するデータに関連付けることもできる。認証の自動決定と手動決定を併用する例では、このような阻止処置に対して、あらゆるユーザ認証を覆す高い優先度を割り当てることができる。
次いで、例示した方法200(図2参照)は、処理230で判別された認証ステータスに応じて、処理250、または、処理242、244、246のいずれかに進む。ファイル使用者のアドレス226に対してファイル222へのダイレクトアクセスが認証されていなかった場合、処理250において、通常、メッセージ224の添付ファイルとしてファイル222のコピーが送信される。一方、アドレス226に対してダイレクトファイルアクセスが認証されていた場合には、処理242でファイル222へのファイル参照が作成される。次いで、処理244で、ファイル参照が添付されるかまたは組み込まれたメッセージ222が、ファイル使用者に送信される。次いで、処理246で、ファイル222のデータが、ネットワーク接続17(図1参照)を介してアクセスサーバ170に送信される。
システム100(図1参照)の一例では、ダイレクトファイルアクセスが要求された場合に、添付ファイルの代りにファイル参照を送信することができる。コンピュータ110のこのような動作は、完全に未変更の電子メールクライアント・モジュール、または、閲覧者フィールドおよび編集者フィールドを含むようにのみ変更された電子メールクライアント・モジュールを使用している場合でも、実施することができる。この例では、コンピュータ110に対して、電子メールメッセージへにファイルを添付するためのAPI呼び出しを検出するモジュール(図示省略)を追加的に実装することができる。ダイレクトファイルアクセスが要求された場合、このようなモジュールによって、所望のファイルを参照する実行可能コードのファイルを添付するように、電子メールクライアント・モジュールを欺くことができる。あるいは、コンピュータ110にファイアーウォール型のモジュール(図示省略)を実装し、ネットワーク接続14を介した送信の直前に、メッセージ中に添付ファイルが存在することを検出するものであってもよい。このファイアーウォール型のモジュールによって、添付ファイルをファイル参照に置換すると共に、それまで添付されていたファイルを、ネットワーク接続17を介してアクセスサーバ170に送信することができる。
図1および図2に示すシステム100および方法200において、アクセスサーバ170は、ネットワークファイル転送インタフェース172を通じてファイル222のデータを受信し、そのデータをストレージ174に保存する。ファイル使用者198は、認証のレベルに従って、ファイル222を閲覧または編集するために、ストレージ174からファイル222を取得することができる。本発明の様々な態様に従うアクセスサーバの利点を必要としない例では、アクセスサーバ170を省略することができる。
本発明の様々な態様に従うファイル参照は、ファイルのロケーションを識別する任意の指示データを含んでいる。ファイル参照は、ハイパーリンクであってもよい。この場合、ファイル参照には、人間が解読できる指示データ(例えば、ファイル名)と、その指示データに関連するコンピュータが解読できる指示データ(例えば、そのファイルの取得先のネットワークアドレス)の両方が含まれる。一変形例では、ファイル参照は、ネットワークアドレスを識別するテキストのみからなるものであってもよく、この場合、ファイル使用者は、そのネットワークアドレスを適切なフィールド(例えば、Webブラウザのアドレスフィールド)に入力することによって、ファイルを取得することができる。
特に有利な例では、電子メールメッセージの添付ファイルに、ダイレクトファイルアクセス・モジュール(例えば、システム100のモジュール148)を実装するプログラムを含めることで、ファイル参照を構成することができる。本発明の様々な態様に従うダイレクトファイルアクセス・モジュールは、ファイルへの直接的なアクセスを容易にするための任意の適切なハードウェアおよびソフトウェアによって実装される任意の機能モジュールを含んでいる。ダイレクトファイルアクセス・モジュールを実装するプログラムをファイル使用者に送信することによって、そのファイル使用者の電子メールクライアントがダイレクトファイルアクセス機能を有する必要性がなくなるため、有利なものである。ベンカトラマン(Venkatraman)等に付与された米国特許第6,014,608号明細書には、この例の実施に役立つ事項が開示されている。
ファイル参照には、参照されるファイルに関連付けられた一意的と見なし得る識別コードを表すデータ、および、他のコードを表すデータを含めることができる。本発明の様々な態様に従う一意的と見なし得る識別コードは、任意の適切な方法によって生成された任意の種類の数列であって、(1)特定の文書、文書の版数、サーバ、ユーザ、または、他の識別可能な実体(entity)に関連付けられていると共に、(2)所望の統計的確実性の範囲で、任意の他のこのような実体に関連する可能性が小さいものである。
例えば、ファイル参照には、(1)参照されるファイルが存在するアクセスサーバ、(2)参照されるファイル、(3)送信ユーザ、および、(4)ファイルの現在の版数のそれぞれに関連付けられた4つの一意的と見なし得る識別コードを含めることができる。有利なことに、このようなファイル参照の受信者は、複数のサーバに対してポーリングを実施することも、あるいは、複数のサーバのうちのいずれのサーバがファイルを保存しているのかを推定することもなく、マルチサーバ・システム中の特定の指定されたアクセスサーバから、そのファイルにアクセスすることができる。マルチコードファイル参照のこの利点および他の利点を必要としない例では、1つのコードを使用してファイルを識別することができる。
複数のアクセスサーバを使用することは、特に次のような点で有利である。例えば、ユーザが地理的にクラスタ化されている場合、互いに遠距離に存在するそれぞれのクラスタに属するユーザに対して、そのクラスタに近いアクセスサーバを割り当てることができる。各ユーザは、割り当てられたアクセスサーバに対してのみファイルを送信することが許可される。受信者は、上述したように、ファイル参照と共にそのアクセスサーバの識別コードを受信するか、または、ユーザとユーザに許可された「書き込み用」サーバの登録リストから該当する送信ユーザを検索することによって、複数のサーバのうちのいずれのサーバがファイルを保存しているのかを推定することができる。ランダムに選択されるかまたは所定の選択スキームに従って選択される複数のアクセスサーバを1箇所で使用して、複数のコンピュータ間で負荷を分散することもできる。
特定レベルの認証ユーザのみがその権限を行使できるようことを保障して、セキュリティーを強化するために、ファイル参照は、暗号化されるか、または、一方向暗号化関数に代入されることが好ましい。指定されたファイル使用者の公開鍵、または、ファイル使用者とファイル管理者だけが知っている共有秘密鍵に従ってファイル参照を暗号化することによって、指定されたファイル使用者以外のユーザがそのファイル参照を使用することを、防止することができる。また、ファイル参照を一方向暗号化関数に代入することによって、侵入者がファイル参照に基づいてファイル名を識別することを、防止することができる。ファイル参照を暗号化しない例では、パスワードまたはパスフレーズを要求するか、または、認証されたネットワークアドレスへのSSL接続のみを許可する等の、別のアクセス制御手段を使用することが好ましい。
1998年12月23日を国際公開日とする国際公開第98/58332号パンフレットに先行技術文献として掲げられた1997年6月17日を出願日とする米国特許出願第08/877,065号、および、1998年6月5日を出願日とする米国特許出願第09/092,132号には、ファイル参照のセキュリティー強化を実施するために役立つ事項が開示されている。
図2に示す方法200に従って動作する場合、コンピュータ110(図1参照)の電子メールクライアント・モジュール116は、ファイル管理者102の制御の下に、コンピュータ140の電子メールクライアント・モジュール146にメッセージ224を送信する。ダイレクトファイルアクセスが認証されているファイル使用者198は、メッセージ224とは別にファイル222(図2参照)にアクセスすることができる。ファイル222のファイル使用者198、および、任意の他の認証されたファイル使用者は、アクセスサーバ170を介してファイル222のデータを取得し、(編集者とし認証されている場合には、)それを修正することができる。このような、通常は帯域幅集中的(bandwidth-intense)であってかつ規制されたファイルアクセスは、コンピュータ110とコンピュータ110との間のネットワーク接続14とは別に、ネットワーク接続47を介して生じる。したがって、ネットワーク接続14は、ファイル222がアクセスサーバ170に保存された後、ファイル222へのアクセスの特性に影響を及ぼすことなく、低帯域幅かつ散発的な接続によって実現することができる。
ネットワーク接続14、17、47は、任意の適切な接続設備および通信プロトコルを使用して実装することができる。適切な接続設備の例には、対撚り線ケーブル、光ファイバーケーブル、スペクトラム拡散方式無線通信(赤外線またはRF)、RF衛星中継、可聴変調の電話接続が含まれる。様々な階層における適切な通信プロトコルの例には、ATM、TCP/IP、HTTP、FTP、NetBEUI、および、対称鍵暗号または公開鍵暗号が含まれる。システム100の典型的の実装において、特に、ネットワーク接続14、17、47が、インターネットのような広域的かつプラットフォームに依存しないネットワークである場合には、複数種類の接続設備およびプロトコルが使用されるものである。
システム100の特に有利な例では、コンピュータ110は、低帯域幅または他の非理想的な状況下で、ファイル222のアクセスサーバ170への送信を延期する一方、コンピュータ140に対して電子メッセージ224を送信することができる。このようなシステムは、ネットワーク接続17の状況を監視し、接続17の品質レベルが改善したときにファイル222を送信する。品質レベルは、好ましくは速度に基づいて判別されるが、中断頻度(interruption frequency)の要因ともなるものである。
ファイル転送の延期は、任意の適切な基準を用いて任意の適切な方法により解析することができる。例示的な方法では、コンピュータ110は、ファイル使用者へ送信されるメッセージの送信の間に、ネットワーク接続14を介して送信されるパケットを解析することにより、接続の状況を判別する。パケット送信のタイミングが、(予め定められた基準により、)接続17の品質が、参照として「添付された」ファイルを送信するための品質として不適当であることを示す場合には、コンピュータ110は、状況が改善されるまで、その送信を延期する。コンピュータ110は、ファイルが添付された電子メッセージ以外の電子メッセージの送信の間、または、インターネットのWebページの取得の間に送信されるパケットを解析することによって、定期的に状況を監視することもできる。この方法に代わる多くの可能な方法のうちの1つは、コンピュータ110のローカルエリアネットワーク接続が動作中であるか、または、モデム接続が動作中であるかを検査して、ローカルエリアネットワーク接続が動作中になるまで、ファイル送信を延期する方法である。別の方法とは、送信のレイテンシーに基いて、アクセスサーバ170で「pinging」を実行し、送信時間を判別する方法である。
1999年5月27日を国際公開日とする国際公開第99/26121号パンフレットに先行技術文献として掲げられた1997年11月13日を出願日とする米国特許出願第60/065,533号、1998年5月14日を出願日とする米国特許出願第60/085,427号、および、1998年9月17日を出願日とする米国特許出願第60/100,962号、には、ファイル参照のセキュリティー強化を実施するために役立つ事項が開示されている。
本発明の様々な態様に従う電子メッセージの送信のための信号の例は、図6を参照することにで、より理解し易くなるであろう。搬送される信号600は、一連のデータフレームを含んでおり、図6Aに示す部分で開始し、図6Bに示す部分で終了する。一連のデータフレーム(連続する列または無関係のデータを散在させた列をなす、並列フォーマットまたは直列フォーマット)を有する任意の適切な種類の信号を使用することができる。
フレーム610は、サブフレーム612〜618を含み、このメッセージを識別し、従来のメッセージ送信プロトコル(例えば、MIME)を使用して従来のシステムでメッセージを処理可能にするための補助メッセージデータを含んでいる。
フレーム620〜660はのそれぞれには、2つのサブフレームが含まれている。サブフレーム622、632、642、652、662は、各フレームの内容を識別するヘッダを含んでいる。サブフレーム624、634、644、654、664は、それぞれのヘッダに関連付けられた指示データのセット(例えば、電子メールアドレスのASCIIテキスト)を含んでいる。フレーム620〜660のいくつかは、左側を空白とし、フレームを識別するヘッダのみを含むものであってもよい。
フレーム620、630、640は、メッセージ受信者フレームである。これらのフレームは、電子メッセージのウィンドウにおける従来のフィールド(この例では、「TO:」、「CC:」、および、「BCC:」)で指定されたメッセージ受信者の1つまたは複数のアドレスを含んでいる。フレーム650、660には、それぞれ、メッセージ中で参照されるファイルへの直接的な閲覧アクセスまたは編集アクセスが認証された閲覧者または編集者として指定されたメッセージ受信者の1つまたは複数のアドレスを含めることができる。
フレーム670は、サブフレーム672、674を含み、メッセージの実際の情報を含んでいる。例えば、ダイレクトファイルアクセスが認証されていないユーザに対して、添付ファイルと共に送信されるメッセージの場合、サブフレーム674には、添付ファイルの実際のデータを含めることができる。しかし、図6Bに示すように、メッセージ信号600は、ファイルを参照するデータ674を含むものである。上述したように、ファイル参照データには、例えば、実行時にダイレクトファイルアクセス・モジュールを実装するプログラム、または、ハイパーリンクを含めることができる。
システム100におけるファイルアクセスのための例示した方法300は、図3を参照することで、より良く理解できるであろう。(ここで、この例および本明細書に記載された他の例は、本発明を限定するものではないことを再記しておく。)図1に示すコンピュータ140は、ダイレクトファイルアクセス・モジュール148が動作している間に、方法300を実施する。
方法300は、図3に示す処理310において、電子メールクライアント・モジュール146を使用してメッセージ325(図3参照)を閲覧するファイル使用者198(図1参照)の動作で開始する。メッセージ325は、メッセージ222(図2参照)のデータのコピーであり、コンピュータ110から、ネットワーク接続14(図1)を介してコンピュータ140で受信される。メッセージ325は、図2に示すファイル222への参照含んでいる。例示したシステム110および方法200、300では、このファイル参照は、添付されたプログラムであり、これによって、ファイル使用者198は、ダイレクトファイルアクセス・モジュール148を実装することができる。
方法300は、図3に示す処理330に進んでダイレクトファイルアクセス・モジュール148を起動し、次いで、処理340、350、370(図3では、これらの処理148は、方形の破線で表されたモジュール148中に示されている)を実行する。処理340は、ファイル使用者に対するユーザインタフェースを表示する。このユーザインタフェースは、ユーザが指定されたファイルにアクセスするかどうかを確認するためのダイアログボックスのような、単純なものであってもよい。ユーザインタフェース処理340は、モジュール148の起動時に自動的に1つのファイルを開くことが許容される場合には、完全に省略することができる。
ユーザインタフェース処理340は、ファイル使用者198の指示に従って処理350を実行し、アクセスサーバ170(図1参照)からファイル222(図2参照)のデータを取得する。図3では、コンピュータ140の外で発生するすべてのイベントは、ネットワークを示す雲360によって露あされているため、この処理350は、図1を参照することで、より良く理解されるであろう。処理350の間に、コンピュータ140のダイレクトファイルアクセス・モジュール148は、アクセスサーバ170のネットワークファイル転送インタフェース172と通信し、ストレージ174からファイル222を取得して、ファイル222のデータを、ネットワーク接続47を介してモジュール148へ送信する。
処理350は、ファイル222のデータを、コンピュータ140がそのストレージモジュール144に保持しているローカルデータストレージ380(図3参照)に保存する。次いで、ユーザインタフェース処理340は、ユーザインタフェースのフォーカスを編集または閲覧処理390に送信する(例えば、新たなユーザインタフェースウィンドウを開く)ことができる。次いで、ファイル使用者198は、適切なソフトウェアモジュールを使用して、ファイル222を閲覧または修正することができる。例えば、ファイル使用者198は、ワードプロセッサを使用してテキスト文書を閲覧または編集することができる。
例示した方法300におけるファイル222へのアクセスは、ローカルデータストレージ380内にキャッシュされたファイルのコピーを使用した間接的なものである。有利なことに、ファイル222に対してなされる任意の修正は、ます、キャッシュされたコピーに対してなされるものであり、その後初めて、アクセスサーバ170のストレージ174内にある元のファイルに適用される。処理370は、ローカルデータストレージ380内にキャッシュされたコピーの状態に基づいて、元のファイル222の更新を実行する適切な時期を判別する。次いで、処理370は、雲370で示すネットワークによってアクセスサーバ170と通信し、適宜に更新を実行する。
例示した方法300において、ファイル修正を延期することは、ファイルに対してローカルに(すなわち、コンピュータ140内で)アクセスし、それによって、大規模なファイルの閲覧および修正に要するネットワークトラフィック量を削減する点で、有利である。加えて、修正を延期することによって、元のファイル222に対する修正のバージョン管理を単純化することができる。図7〜図10を参照して後述するように、編集者の修正の伴うファイルの更新は、ブロックまたはバイト差分法を使用して実施することができる。
本発明の様々な態様に従うダイレクトファイルアクセスの有利な例では、ドライブマッピングインタフェースを含むものである。このインタフェースを使用すると、アクセスサーバ170(図1参照)のストレージモジュール174中の1つまたは複数のフォルダに、それらのフォルダがコンピュータ140に保持されているかのようにして、アクセスすることができる。
本発明の様々な態様に従う、直接的にアクセスされたファイルに対する修正の例示的な調整方法700、800は、図7〜図10を参照することで、より良く理解されるであろう。これまでの説明と同様に、例示したファイル222(図2参照)に対する修正は、例示したシステム100(図1参照)、および方法200、300(図2、図3参照)に基づいて説明される。
図7は、バイト差分法を使用してファイル222を維持するための方法700を示す機能フローチャートである。方法700は、2つの並列なステップで開始する。決定ステップ710は、ファイル222がファイルの編集者によってアクセスされた(または、編集者にリンクされた)かどうかを判別する。ステップ720は、決定ステップ710の結果とは独立に、アクセスサーバ170にファイル222のデータへの参照(例えば、リンク)を作成する。
方法700(または、少なくとも図7に示す方法700のインスタンス)の開始前にファイルの編集者がファイル222に直接的にアクセスしていた場合には、ステップ750に進み、ファイル222の直前のバージョンを取得する。次いで、処理760は、バイト差分エンジンを使用して、直前のバージョンと現在の(すなわち、使用者により修正された)バージョンとを比較する。バイト差分エンジンは、任意の適切なハードウェアまたはソフトウェアを使用して、2つのファイルを個々のバイト毎に比較し、個々のバイト間の差分の指示データを生成する。次いで、処理770に進み、この指示データを含む差分ファイルを作成する。処理770は、保存処理730により示されているように、処理720で作成された参照に従って、この差分ファイルをアクセスサーバ170に送信する。(差分ファイルは、好ましくは、適切に暗号化または圧縮されたフォーマットで送信される。)方法700の最後の処理780は、任意選択で、ファイル222の直前のバージョンを削除する。
方法700が開始する前にファイルの編集者がファイル222に直接的にアクセスしていなかった場合、処理740は、単にファイル222を圧縮(および、好ましくは暗号化)し、それを、ファイル管理者102のコンピュータ110から(例えば、方法200を使用して)アクセスサーバ170に送信する。ファイル222の修正が認証されたユーザが誰もアクセスしなかった場合、差分ファイルは必要ない。
図8は、(バイト差分法ではなく、)ブロック差分法を使用してファイル222を維持するための方法800を示す機能フローチャートである。方法800は、方法700とほぼ同様に進行し、方法800の処理810、820、830、840は、方法700の処理710、720、730、740と同様のものである。ただし、処理850では、ファイルそれ自体ではなく、ファイル222の直前のバージョンのブロックの統計情報を取得する。この理由は、各ブロックはファイル222の異なるユニットであり、アクセスサーバ170へ送信する必要があるのは、ファイル222のうち、編集者による修正の結果、変更されたブロックのみであるからである。ブロック中のデータを、所望の統計的確実性の範囲で、一意的に記述する任意の適切な種類の統計情報、例えば、SHA−1ハッシュまたは32ビットCRC、を使用することができる。
方法800は、ステップ855に進み、ファイル222の修正された(すなわち、現在の)バージョンを読取る。次いで、ステップ860は、2つのバージョンのブロックの統計情報を比較し、ステップ870は、変更されたファイルのブロックの統計情報を使用して、変更されたブロックの差分ファイルを作成する。方法800の最後のステップであるステップ800は、任意選択で、ファイル222の直前のバージョンの統計情報を削除する。
図3、図7、図8にそれぞれ例示した方法300、700、800は、図1に示すシステム100、ファイル管理者102、および、ファイル使用者198を参照するダイレクトファイルアクセスのさらに詳細な例を示すことで、より良く理解されるであろう。この例は、以下の表1、表2、表3を参照することで、より良く理解されるであろう。この例において、システム100は、次のように構成されている。(1)ファイル使用者198に対して、例示したファイルを編集するダイレクトファイルアクセスが認証されている。(2)ダイレクトファイルアクセスの対象となるファイルは、そのファイルを開くときおよび保存するときには、暗号が解除されているかまたは圧縮が解凍されている。(3)電子メールクライアント・モジュール146は、本発明の様々な態様に従うように、その機能が適切にカスタマイズされている。(4)コンピュータ140は、添付ファイルをファイル参照に置換するタイプの上述した追加モジュール(図示は省略する)を実装している。
Figure 2007531071
表1は、ファイル使用者198がファイルにアクセスする際の、好ましい一連のステップのリストとして、この例の説明を始めるものである。次の表2は、ファイル使用者198が修正ファイルをファイル管理者102に返送する際の、好ましい一連のステップのリストにより、この例の説明を継続するものである。
Figure 2007531071
次の表3は、ファイル管理者が修正されたファイルにアクセスする際の好ましい一連のステップのリストとして、この例の説明を完結するものである。
Figure 2007531071
手作業により認証データを決定するためのシステムおよび方法の例は、図4および図5を参照することで、より良く理解されるであろう。図4および図5には、それぞれ電子メッセージのウィンドウが示されている。本発明の様々な態様に従う電子メッセージのウインドウは、ユーザが電子メッセージを作成するために適切な、コンピュータディスプレイ上に表示される可視要素の任意の集合体を含んでいる。ウィンドウ400、500は、それぞれ、「TO:」のラベルが付いた受信者フィールド412、512、「CC:」のラベルが付いた二次的な受信者フィールド414、514、「BCC:」のラベルの付いた秘匿性の二次的受信者フィールド416、516、ファイル名フィールド430、530、件名フィールド440、450、および、メッセージテキストフィールド450、550を含んでいる。これらのフィールドの利点を必要としない例では、これらのフィールドのいくつかを省略することができる。
本発明の様々な態様に従って、メッセージウィンドウ400、500のそれぞれは、さらに、閲覧者フィールドおよび編集者フィールドを含んでいる。ファイル使用者のアドレスの指示データを閲覧者フィールドに記録することによって、そのファイル使用者に対してメッセージウィンドウのファイル名フィールドに指定されたファイルの閲覧を認証すると共に、修正を認証しないことが指定される。ファイル使用者のアドレスの指示データを編集者フィールドに記録することによって、そのファイル使用者に対して指定されたファイルの修正を認証することが指定される。ファイル管理者は、該当するフィールドに複数のアドレスを入力することにより、複数のファイル閲覧者およびファイル編集者を、所望の組み合わせで指定することができる。
例示したシステム100、および方法200、300では、ファイル使用者198は、ファイルアクセス認証を受信することに加えて、「TO:」、「CC:」、または、「BCC:」のいずれの受信者としても、メッセージ224を受信することができる。メッセージ224の他の受信者に対して、ファイル使用者198がメッセージ224に加えてアクセス認証を受けたことを通知する必要はないが、所望の場合には、メッセージ224に、その旨を公開する可読指示データを含めることもできる。
図4に示すウィンドウ400は、「Viewer:」とラベルの付いた閲覧者フィールド、および、「Editor:」とラベルの付いた編集者フィールドを含んでいる。(ラベルのテキストは、言語学的に等価な(例えば、外国語における)任意の単語であってもよく、大文字または小文字であってもよい。)ファイル管理者102は、ファイル使用者198の電子メールアドレスを閲覧者フィールド424または編集者フィールド426に入力することによって、ファイル使用者198を閲覧者または編集者として指定することができる。また、ファイル管理者102は、各フィールド412、414、416にアドレスを入力することによって、ファイル使用者198を、「TO:」、「CC:」、「BCC:」の受信者として指定するこもできる。
ファイル管理者102は、単に再度タイプ入力するかまたは切り取りと貼り付けを使用することにより、ファイル使用者のアドレスを、メッセージウィンドウ400の第2のフィールドに複製することできる。有利な電子メールクライアント・モジュール116の例では、アドレスが最初に入力されたフィールドを参照して、そのアドレスが第2のフィールドに自動的に複製される。これによって、ファイル管理者102がアドレスを二回入力する手間が省けるものである。
その一例では、(例えば、ポインティングデバイスでアドレス上を右クリックすることによって)入力されたアドレスを選択すると、そのアドレスに対する異なるフィールドの指定を素早く実行するためのコンテキストメニューが表示される。例えば、図4には、アドレス462「charles@company.com」上を右クリックした結果、ウィンドウ400上に表示されたコンテキストメニュー464が示されている。コンテキストメニュー464は、アドレス「charles@company.com」を、フィールド312、414、または、416に複製するための、3つのメニュー項目を含んでいる。アドレス464「alice@company.com」を同様に選択することによって、選択項目として「Viewer」および「Editor」を有するコンテキストメニュー(図示は省略する)が表示され、このアドレスをアドレスフィールド424または426に複製することができる。図4の例は、ファイル管理者102が、「alice@company.com」を「BCC:」フィールド416に入力し、それを「Viewer:」フィールド424に複製したものである。
他の場所に複製したアドレスのテキストを、ハイパーリンクとして機能させることもできる。ポインティングデバイスによる選択の際に、このようなテキストは、カーソルのフォーカスを参照アドレスに送るか、または、コンテキストメニュー(例えば、メニュー464)を表示するものである。
有利なことに、手作業により入力および複製されるアドレスは、本発明の様々な態様に従うウィンドウに様々な態様で表示させることができる。例えば、メッセージウィンドウ400では、複製されないアドレス(例えば、アドレス466「consultant@university.edu」)は、第1の表示態様を有している。ウィンドウ400において、第1の表示態様は、単なる通常の文字である。最初にフィールドに入力されて別のフィールドに複製されたアドレス(例えば、アドレス462)は、第2の表示態様を有しており、ウィンドウ400において、第2の表示態様は、下線付き文字である。別のフィールドから複製されたアドレス(例えば、フィールド41のアドレス468)は、第3の表示態様を有しており、ウィンドウ400において、第3の表示態様は、斜体文字である。異なる表示態様に対して異なる色を使用することも可能であり、この場合、第2の表示態様を有するテキストは、ハイパーリンクで一般的に使用される青色を有していてもよい。
電子メールクライアント・モジュール116の他の有利な例では、ファイルの閲覧者および編集者のフィールドは、従来の「TO:」、「CC:」、「BCC:」の受信者フィールドとは異なるものであってもよい。例えば、図5に示すウィンドウ500は、従来の受信者フィールド512〜516に加えて、閲覧者フィールド524および編集者フィールド526を含んでいる。例示したメッセージウィンドウ500の領域520において、各フィールド524、526は、縦に配列されたラジオボタンの列をなしており、それぞれの行は、従来の受信者フィールド512〜516に入力されたアドレスに対応している。
通常、ラジオボタン・ユーザインタフェース要素は、グループ内において、、唯一のボタンが選択されると共に少なくとも1つのボタンは選択されるようにクラスタ化されるものである。従来の規則に従うために、領域520は、「no authorization」フィールド522のラジオボタン含んでいる。特定のアドレスに対して、フィールド524の「VIEWER」ラジオボタンも、また、フィールド526の「EDITOR」ラジオボタンも選択されない場合には、該当する「no authorization」ラジオボタンが選択状態になる。このように、各アドレスに対応するそれぞれの行において、1つのラジオボタンが選択された状態が維持される。
ウィンドウ500において、各フィールド522、524、526の行数は、フィールド512〜516に記録されたアドレスの数と一致する。記録されるアドレスの数の増減に応じて、領域520のボタンの行数も増減する。好ましくは、削除された行の状態は、それが削除された後も(例えば、グレイテキストを使用することにより)保持されるものであり、それによって、フィールド512〜516の1つに再び該当するアドレスが記録された場合、その行を復元することができる。例えば、システム100および方法200において、ファイル管理者102は、「CC:」フィールド514から「alice@company.com」を削除し、代わりに、このアドレスを「BCC:」フィールド516に置くこともできる。このアドレスをフィールド514に記録した際に、ファイル管理者102が、このアドレスを、ファイル「Widget Design Spec.rtf」の閲覧者に属するアドレスとして指定していた場合、このアドレスをフィールド516に記録する際に同じ指定が保持されていれば、ファイル管理者にとって便利である。
認証の自動決定と手動決定とを併用する例では、ユーザの利便性を向上するために、閲覧者および編集者のデフォルトの指定を自動決定により生成することができる。例えば、「bob@company.com」が、ファイル「Widget Design Spec.rtf」の編集権限を有する編集者に属するアドレスとして決定された場合、このアドレスのフィールド412、414、または416への入力時に、ウィンドウ400の「Viewer:」フィールド424に自動的に複製することができる。同様に、このアドレスのフィールド512、514、516への入力時に、ウィンドウ500の領域520に、フィールド526の該当するラジオボタンが自動的に選択されて、このアドレスが表示されるものであってもよい。
さらに、自動決定による認証は、閲覧者または編集者として手作業で指定された任意のアドレスをオーバーライドする、高い優先度を有するものであってもよい。手作業によるい指定のオーバーライドは、視覚的に表示することもできる。例えば、ウィンドウ500の領域520中のいくつかのラジオボタンを、グレイ表示するものであってもよい。ウィンドウ400において、アドレスを閲覧者または編集者として指定するためのメニュー項目を、同様にグレイ表示することもできる。
図4および図5の例は、本発明の様々な態様に従う電子メールを介したファイルアクセスの簡便性を例示するものである。両方の例において、ファイル「Widget Design Spec.rtf」のファイル管理者は、単純な電子メールのみを使用して、4人のユーザに対して3つの異なる種類の認証を実行している。それらのユーザのうちの2人(「Bob」と「Charles」)は、「Company」内のファイル管理者の同僚であり、ダイレクトアクセスが認証された編集者として指定されている。したがって、彼等はファイルを修正することができ、ファイル管理者は、メッセージの本文(フイールド450および550)で、その旨を指示している。
「Company」内の他のユーザ(「Alice」)も、このファイルに対するダイレクトアクセスが認証されているが、そのレベルは閲覧のみである。「Alice」は、例えば、異なる部署の人間であって査察的な役割でのみ参加しているか、または、組織内おける権限として、ファイルの内容に対してコメントを付けることのみを許可されているものである。
外部の組織(「University」)の人間である第4のユーザ(「Consultant」)に対しては、ダイレクトファイルアクセスを認証していない。これには多くの理由が想定される。例えば、この外部の組織が、ファイルに対して直接的にアクセスするためのアクセスサーバに接続する、互換性を有するネットワーク接続を有していないこともあり得る。別の例としては、「Company」のコンピュータシステム管理者が、この組織のローカルエリアネットワークの外部の人間からのダイレクトファイルアクセスを禁止する、セキュリティーポリシーを有している場合もある。「Consultant」は、受信するメッセージのコピーに添付された通常の添付ファイルとして、ファイルのコピーを受け取るものである。(メッセージの他の受信者は、ファイルに直接的にアクセスできるため、添付ファイルとしてファイルのコピーを受信する必要はない。)
ウィンドウ400、500は、ファイル管理者に対して、ファイル「Widget Design Spec.rtf」へのアクセスを管理するために、慣れ親しんだ直感的なインタフェースを提示するものである。ファイル管理者は、ダイレクトファイルアクセスを認証するために、3つの単純な作業の1つを実施すればよい。第1の選択肢は、「Viewer:」または「Editor:」フィールド(424または426)に電子メールアドレスを入力することである。第2の選択肢は、通常の「TO:」、「CC:」、または、「BCC:」フィールド(412〜416)に既に入力された電子メールアドレスを右クリックすることである。第3の選択肢は、ラジオボタンを選択することである。従来の電子メールシステムに見られる周知のインタフェースにこれらの新規な拡張を施すことによって、本発明の様々な態様に従って、共有ファイルへのネットワークアクセスの利点を維持しながら、添付ファイルとしてファイルを送信することの利便性を提供することができる。
図7、図8、および表2に関連して上述したように、ファイルは、受信者がそのファイルの直前のバージョンを有しているか否かに応じて、異なる方法で送信することができる。受信者が、そのファイルの直前のバージョンを取得していた場合には、(例えば、直前のバージョンから変更されたブロックまたはバイトのみを含む)差分ファイルを送信するのみで十分である。受信者のコンピュータは、受信者が差分ファイルを開いたときに、元のファイルにパッチを当てて要求されたバージョン(最新のバージョンとは限らない)のファイルをコンパイすることが可能なように、直前のバージョンと共に差分ファイルを保存することができる。受信者が直前のバージョンを取得していなかった場合、受信者のコンピュータに全ファイルが送信されて保存される。
さらに、ユーザがファイルを更新する際に、更新の送信先に対応するエンティティーが、ファイルの直前バージョンを保持するものであることが知られている場合、ユーザのコンピュータは、差分ファイルのみを送信することができる。そのユーザのコンピュータは、更新バージョンのファイルを、別のエンティティーへ送信する場合、繰返して閲覧する場合、または、さらに更新する場合等の必要に応じて、差分ファイルを直前のバージョンに適用して更新バージョンを再構築できる場所に、直前のバージョンと共に差分ファイルをローカルに保存することができる。そうでない場合、ユーザのコンピュータは、更新されたファイル全体を送信することができる。
本発明の様々な態様に従う協働的ファイル更新システムは、ファイルの更新バージョンを表すデータを、ファイルの受信者に指定されたユーザに効果的に送信するものである。更新バージョンと直前のバージョンの両方の受信者として指定されたユーザは、差分ファイルを受信する。差分ファイルは、ファイルの更新バージョンと直前のバージョンとの間の差を実質的に表すデータからなる。したがって、単に差分ファイルを使用して直前のバージョンにパッチを当てることにより、ファイルの更新バージョンを取得可能なユーザは、差分ファイルのみを受信する。このような場合、更新されたファイル全体を送信する必要はない。
本発明の特定の態様に従って、更新バージョンの受信者に指定されているが、直前のバージョンの受信者ではないユーザは、以前のどのバージョンからの差分ファイルでもなく、更新されたファイル自体を受信する。このファイルは、送信の前に更新されているため、送信後の更新ために複数の差分ファイルを送信する複雑性を回避することができる。
本発明の様々な態様に従う協働的ファイル更新システムには、本発明に係る電子メール・ファイルアクセスシステムの(上述した)すべてのハードウェアおよびソフトウェアを含めることができる。例えば、このようなシステムは、図1〜図3を参照して上述したように、ファイル自体ではなく、ファイルへの参照を含む電子メールメッセージを送信することができる。参照されるファイルは、ファイルの送信者と受信者の両方からアクセス可能なアクセスサーバに保存される。参照ファイルを送信することの利点を必要としない協働的ファイル更新システムの例では、このシステムは添付ファイルとしてファイルそれ自体を送信することができる。
図10〜図19は、本発明の様々な態様に従う電子メール・ファイルアクセスシステムの一部として、図9に例示する方法900により使用される協働的ファイル更新システムの様々な状態を示す図である。
方法900に例示する本発明に係る協働的なファイル更新方法は、ユーザ「A」から「D」の複数(この例では4人、ただし、図示は省略する)の間で、ユーザファイルの版数を管理するものである。例示した方法900は、図9においてユーザのワークステーション(すなわち、コンピュータ)によってグループ化され、ワークステーション上で実行される様々な処理装置を含んでいる。グループ910の処理914〜920は、ローカルデータストレージ912を有する第1のユーザAのコンピュータ1020(図10参照)上で実行される。処理934〜938は、ローカルデータストレージ932を有する第3のユーザBのコンピュータ1030(図14参照)上で実行される。処理954〜956は、ローカルデータストレージ952を有する第3のユーザCのコンピュータ1040(図14参照)上で実行される。処理974は、ローカルデータストレージ972を有する第4のユーザDのコンピュータ1630(図16参照)上で実行される。
図示された処理方法900のそれぞれは、ユーザの1人によって送信されるファイルのデータへの参照を受信し、参照されたデータを共通のアクセスサーバ990から取得し、そのデータをローカルデータストレージに書き込むものである。処理装置916、918、934、974は、また、次のバージョンにファイルを修正し、そのファイルのデータをサーバ990に送信し、そのファイルデータへの参照を少なくとも1人のユーザに送信する。
図10〜図19は、方法900における処理914〜974の間に使用されるハードウェアおよびデータ構造を破線で囲んで示す図である。図10〜図19の符号は、図9に示処理に関連する。
図に例示した方法900は、ユーザAがファイルの「rev0」を起案する処理914で開始する。ファイルの版数の送信を管理する本発明の方法は、より包括的な方法の一部であってもよく、方法900の「rev0」は、実施には、方法900を含む方法(図示は省略)で以前に起案されたファイルの何版目かのファイルであってもよい。同様に、方法900では、ファイルに対して「rev4」(処理974、図18)を超える修正はなされていないが、このような方法900を含む包括的な方法は、さらなるファイルの修正を含んでいてもよい。
処理914(図10参照)において、ユーザAは、ファイルを起案(または、図示しない以前の処理により起案されたファイルを編集)し、ファイルのデータをファイルデータセット1024として、ユーザAのコンピュータ1020(図10参照)上に保存する。データセット1024は、コンピュータ1020のローカルストレージのアドレス指定可能なデータセグメント1022中に存在する。図9は、コンピュータ1020のローカルストレージを、データ保存庫912として概念的に示すものである。
コンピュータ上のローカルストレージの、本発明の様々な態様に従うアドレス指定可能なデータセグメントは、特定の名前または識別コードで適切に選択できるデータの集合を含んでいる。例えば、図20を参照して以下に詳述するように、コンピュータ1020のローカルストレージのセグメント1022(図10参照)は、コンピュータ1020によって制御されるハードディスク上の階層化ディレクトリ(すなわち、フォルダ)構造である。ファイルデータセット1024は、セグメント1022の最新のサブディレクトリ中に存在するファイルであり、(作成またはローカルに受信した)ファイルの初期バージョンと、ファイルを現在の版数に再構築するための差分ファイルを保存している。データセット1024は、標準的なファイルシステムのファイル、すなわち、ファイルシステムのパスおよびファイル名によってアドレス指定可能な文字の集合である。アドレス指定可能なデータセグメントおよびファイルデータセットの他の適切な種類には、例えば、mySQLデータベーステーブルおよびそのレコード、および、オフセットインデックス付きのレコードを備えた「フラットファイル」データベースが含まれる。
処理914は、図9に太い矢印915で示すように、ファイルの全体を表すデータ1010をサーバ990に送信する。サーバ990は、そのファイルのデータを、アドレス指定可能なデータセグメント992でユーザAのために維持を開始したファイルデータセット994に書き込む。データ1010は、適切に圧縮するか、または、暗号化するか、あるいは、その両方の処理を施すことができる。
処理914は、電子メールメッセージ1012を、電子メールサーバ1040を介してユーザBのコンピュータ1030に送信する。メッセージ1012は、例えば、ハイパーリンクまたはダイレクトファイルアクセス・モジュールのような、図1のシステム100に関連して上述したタイプのファイル参照(図示しない)を含んでいる。このファイル参照によって、ユーザBは、処理934において、サーバ990からファイルのデータのコピー1050を取得することができる。処理1030は、ファイルのデータを、ディレクトリ1032内のファイルデータセット1034に書き込む。
図11に示すように、処理914の結果として、(1)ユーザAのコンピュータ1020のファイルデータセット1024、(2)サーバ990のファイルデータセット994、(3)ユーザBのコンピュータ1030のファイルデータセット1034中に、「rev 0」のファイルのコピーが存在する。処理914の終了後には、電子メールサーバ1040のローカルストレージ1042中に、電子メールメッセージ1012(図10参照)のコピー1044が存在する。一例では、電子メールサーバ1040は、処理934が電子メールメッセージ1012を取得した後に、そのすべてのコピーを削除する。
図9および図12から分かるように、ユーザBは、処理934において、ファイルを「rev1」に編集する。この処理は、編集の結果修正されたファイル1210をローカルに書き込むことによって方法900に進み、ファイルデータセット1034に対するファイル修正を表す差分「rev1」を書き込み、この差分を表すデータ1212をサーバ990に送信する。図9には、データ全体ではない差分ファイルの送信が、細い矢印935で示されている。
本発明の様々な態様に従う協働的ファイル更新システムにおけるユーザのコンピュータでは、コンピュータのユーザは、コンピュータ自体がサーバから受信された以前のバージョンからファイルを更新したときに、更新されたファイルの全データを、共通にアクセス可能なサーバへ書き込むことを回避することができる。例えば、図12に示す処理934の間に、コンピュータ1030は、ローカルのファイルデータセット1034中にファイルの「rev0」が存在しているか否かを判別する。したがって、処理934は、修正されたファイル1210の内容全体を送信して資源を消費する代わりに、差分データ1212のみをサーバ994に返信すればよい。
ファイルデータセットを保存するために準備されたデータ構造は、図20、図21を参照することで、より良く理解されるであろう。上述したように、図20は、アドレス指定可能なデータセグメント1022の階層的ディレクトリ構造を示すものであり、このデータセグメント1022は、ユーザAのコンピュータ1020(図10参照)により制御されるハードディスク912(図9)上に存在する。セグメント1022は、所望のディレクトリまたはハードディスクのファイル構造のルートに存在する、トップレベルのディレクトリ2010およびサブディレクトリ2020、2030を含んでいる。
ファイルデータセットの素早くかつ秩序だった選択を容易にするために、本発明の様々な態様に従う協働的ファイル更新システムは、自動的に名付けられた一連のディレクトリ中の自動的に名付けられたファイルとして、データセットを保存することができる。例えば、ファイルデータセグメント1022のディレクトリ2010〜2030は、一意的と見なし得るコード(図示は省略する)の異なる部分文字列であるような名前を有している。例示したファイルデータセグメント1022は、128ビットの識別コード(32個の16進文字)を使用しており、Microsoft Windows(登録商標)APIへの標準的な呼び出しの結果として生成された、GUID(GLobally Unique ID)とすることができる。トップレベルのディレクトリ2010は、このGUIDコードの最初の2つの16進文字をその名前として使用し、一方、ディレクトリ2020および2030は、それぞれ第2および第3のペアを、それらの名前として使用する。ファイルデータセット1024は、このコードの残りの26文字をその名前として使用する。一意的と見なし得る他の種類のコードとして、例えば、ファイル名、作成日時タイムスタンプ、および、作成者のユーザ名を連結した文字列のSHA−1ハッシュ値を使用することができる。
図20、図21に示す階層化ディレクトリ構造1022、992のツリーのバランスを容易に取るために、使用される一意的と見なし得るコードは、統計的に一様に分布した数字を有することが好ましい。Microsoft Windows(登録商標)2000またはXPのAPIへの呼び出しによって生成されるGUIDは、そのような分布に十分適合すると見なし得るものであるが、Microsoft Windows(登録商標)95のAPIへの呼び出しによって生成されるGUIDは、所望のレベルの統計的確実性を確保するために、さらなる処理を施す必要がる場合がある。
図12および図13に示したように、サーバ990は、ユーザBのコンピュータ1030からデータ(この時点では、「rev1」差分データのみ)を保存するために、アドレス可能なデータセグメント992中に、分離されたファイルデータセット1220を維持してい。各ユーザに対して分離されたファイルデータセットを維持することによって、サーバ990は、異なるユーザが同時にいくつかの版数をファイルへ保存することによって発生する書き込み衝突を解決することを回避することができる。代わりに、(例えば、データセット994、1229が標準的なコンピュータファイルであるカーネルレベルのファイルシステムのような、)分離されたデータセットを維持するどんなメカニズムも、同時の文書編集の解決を管理するものである
図21は、アドレス指定可能なデータセグメント992を詳細に示すものであり、4つの階層化されたディレクトリ2110〜2140、および、ディレクトリ2140の最深レベルに存在する2つのファイルデータセット994、1220を含んでいる。ディレクトリ2110〜2130は、上述した32の文字コードの、第1、第2、および、第3のペアの英数文字を、それぞれに、その名前として使用している。ファイルデータセット994、1220は、ユーザAおよびユーザBに関連付けられた一意的と見なし得る識別コードを、それらの名前としてそれぞれ使用している。(ファイルデータセットを含むすべてのファイルは、ベールファイル名に加えて標準的なファイル拡張子を有することができる。)
図9および図12、図13を参照することで、より良く理解されるように、方法900は、サーバ1040によってメッセージ1230から中継された電子メールメッセージ1240を受信する処理916に進む。ユーザAは、電子メールメッセージ1240中のファイル参照(図示は省略する。例えば、図6b参照)を介してサーバ990から「rev1」データにアクセスする。ユーザAのコンピュータのファイルデータセット1024は、既にファイルの「rev0」のデータを含んでいるため、サーバ990は、ユーザBのコンピュータ1030が処理934でサーバ990に送信した差分データ1210のコピーである、差分データ1310のみを送信する。データ1310は、コンピュータ1030が元のデータ1210を送信した日付および時刻、他のユーザによってアクセスされたデータ1210の他のコピーに関する情報、等の追加のデータ要素を含んでいてもよい。データ1210、1310は、同じフォーマットでもよく、適切に使用可能な異なるフォーマットでもよい。例えば、データ1210は、クライアントのアップロードデータ速度が通常は低速である点から、より圧縮されたものであってもよい。
ファイルの「rev1」を受信した後、ユーザAは、処理916(図9、図14参照)
で、ファイルを「rev2」に編集し、差分ファイル1405をサーバ990に返送し、ファイルの更新版へのファイル参照を含む電子メールメッセージ1410を、ユーザB(電子メールのコピー1420を処理936)およびユーザC(電子メールのコピー143を処理954)に、電子メールサーバ1040を介して送信する。サーバ990は、データセット994中に「rev2」差分データを保持しており、ユーザAのために維持される。
図15を参照することでよく理解されるように、処理936は、ファイルの「rev2」のための差分データ1510をサーバ990から取得し、サーバ990は、データセット994からデータを取得する。処理936は、ローカルのファイルデータセット1034中にファイル1210の「rev1」のローカルコピーを有しているため、ファイルの更新版の完全なコピーではなく、差分データ1510のみを要するものである。差分ファイル1510に基づいて、(例えば、特定のバイトまたはブロックを置換することによって)コピー1210を更新することは、容易である。しかし、処理954は、ファイルの以前の(または、関連する任意のコピー)を有しておらず、したがって、ファイル1520の「rev2」の内容全体を取得するものである。
ユーザAは、処理918(図16参照)において、ファイルの編集を継続し、ファイルの「rev3」を表す差分データ1605をサーバ990に送信する。再び、サーバ990は、このファイルの直前のバージョンを有しているため、必要なのは差分データのみである。また、処理918は、更新版への参照を含む電子メールメッセージ1610を、ユーザCのコンピュータ1630に送信する。処理974は、電子メールサーバ1040により中継されたコピー1620を介して、メッセージを受信する。図17に示すように、処理974は、ファイルの「rev3」のデータ1710を、更新された通りに受信する。サーバ990は、データセット994の内容に基づいて、「rev2」状態のファイルから、サーバ990がユーザAによる改版のために維持するデータ1710を構築する。
あるいは、サーバ990は、図10の処理914から受信してデータセット994に保存したときに、データセット1220に保存されている「rev1」差分データみより、パッチを当てることにより元の「rev0」状態のファイルにパッチを当て、次いで、生成された「rev1」状態のファイルに、データセット994中の「rev2」差分データを使用してパッチを当て、次いで、生成された「rev2」状態のファイルに、同様にデータセット994中の「rev3」差分データを使用してパッチを当てることによって、様々な版数のファイルのコピーを維持することを回避することもできる。
処理974は、ローカルのファイルデータセット1720に、ファイルのコピー1710を書き込むものである。図18を参照することで、より良く理解されるように、ユーザDは、次に、処理974でファイルを修正し、「rev4」レベルのファイルのローカルコピー1810を保存し、「rev4」の差分を表す差分データ1820を、サーバ990に返送する。サーバ990は、この差分データをデータセット1830に書き込み、ユーザDのコンピュータ1630のためのデータの維持が開始する。処理974は、ユーザA、B、Cをフ「rev4」ファイルの受信者として指定して、電子メールメッセージ1840を電子メールサーバ1040に送信する。
図19に示すように、電子メールサーバ1040は、メッセージ1840のコピー1910、1920、1930を、コンピュータ1020、1030、1040に中継する。ユーザAのコンピュータ1020は、差分データ1912をサーバ990から取得する。ファイルデータセット1024は、ファイルの「rev3」を含んでいるため、そこから「rev4」への差分データのみを要するものである。ユーザBのコンピュータ1030およびユーザCのコンピュータ1440は、コンピュータ1030のファイルデータセット1034とコンピュータ1440のデータセット1550の何れにも、直前の「rev3」レベルのファイルは含まれていないため、「rev4」レベルのファイルの完全な内容のデータ1932を取得する。
本発明の様々な態様に従う電子メール・ファイルアクセスの様々な望ましい特徴は、方法900の間に使用することができる。例えば、図7を参照して上述したように、差分ファイル1212は、「rev0」レベルのファイルの個々のバイトと「rev1」レベルのファイルの個々バイトとの間の相違を実質的に示す指示データからなるものであってもよい。換言すれば、データ1212には、そのようなバイトの差分を除く(ファイルの内容に関連する)内容のどんなデータも含める必要がない。あるいは、図8を参照して上述したように、データ1212は、2つの版のファイルの内容の個々のブロックの間の差分を実質的に示す指示データからなるものであってもよい。
本発明の様々な態様従う協働的ファイル更新システムの動作の間に送信される電子メールメッセージは、図4、図5を参照して上述した種類の「Viewer」フィールドおよび「Editor」フィールドを含むことができる。例えば、方法900がそのようなメッセージ1012(図10参照)を送信する場合、ユーザBは編集者として、ユーザBは、処理934(図13)におけるファイル修正により分かるように、メッセージ1012参照するファイルを修正するように認証されているため、ユーザBを編集者に指定している。メールサーバ1040がメッセージ1420、1430としてユーザBおよびユーザCに中継するメッセージ1410(図14)は、ユーザCはファイルを閲覧するだけであり修正しないため(図9、図14、図15、図19の処理954、956の間)、ユーザCをそのファイルの閲覧者として指定している。
本発明の様々な態様に従う協働的なファイルの更新を容易にするための方法では、複数のユーザの一人からファイルの初期バージョンを表すデータを受信して保存する。例示的な方法900を参照して上述したように、サーバ990(図10)は、ユーザAのコンピュータ1020からファイルの初期バージョンを表すデータを受信する。例えば、方法900におけるコンピュータ1030を有するユーザBのように、初期バージョンの1人または複数の受信者が指定される。
次いで、ファイルの受信更新された複数のバージョンの1つのそれぞれに対して、複数のユーザの一人から、ファイルの更新されたバージョンと直前のバージョンとの間の差分を表すデータが受信される。例えば、サーバ990は、ユーザBによって更新されたファイルの「rev1」とユーザAによって作成された直前のファイルの「rev0」との間の差分データ121(図12)を受信する。更新されたバージョンの一人または複数の受信者、例えば、方法900(図9)の処理934において(電子メールメッセージ1230を介して指定された)ユーザAが指定される。別の例として、「rev2」、「rev3」と順次的に更新された後、サーバ990は、更新された「rev4」バージョンとユーザDのコンピュータ1630(図18)からの直前の「rev3」との間の差分を表すデータ1820を受信する。この例では、メッセージ1910、1920、1930(図19)として電子メールサーバ1040が中継する電子メールメッセージ1840は、ユーザA、B、Cをこの更新バージョンの受信者として指定している。
本方法において、更新された版の受信者として指定された各受信者に送信され、直ちに以前の版にアクセスされるデータは、ファイルの更新された版とファイルの以前の版との間に、実質的な相違がある。方法900のプロセス920で、例えば、ユーザAが更新された“4版”の受信者として指定され、直ちに以前の版“3版”の受信者として指定されたので、サーバ990は、ユーザAのコンピュータ1020へ差分データ1912(図19)のみを送信する。したがって、サーバ990はユーザB及びCへ更新されたものとしてファイルを示すデータ1932を送信し、そのためこれらユーザは、その版の作成者又は編集者、あるいはその版の指定された受信者のいずれかとして、ファイルの以前の版にアクセスできない。
“合作ファイル更新システム”の名称での米国仮出願60/486,708は、全体としてここに参考として含まれる。さらに、詳細な説明の好ましい実施形態は、ある特許および一般的に参照し得る特許出願の詳細な記述に言及しており、それら全てはここに参考として包含される。これら挙げられた特許あるいは出願中に参考として含まれる全ての米国特許および出願の詳細な説明の部分は、また、特に参考としてここに含まれる。
本発明及び特許請求の範囲の有効範囲に関する一般的注意
本発明は、好ましい実施形態及びこれに関連した方法について記載してきたが、本発明者は、好ましい実施形態及び方法の変形及び置換は、明細書を読み及び図面の調べることにより、当業者には明らかになるであろう。
さらなる構成は、このような構成または方法に関連しないで本発明の請求項に記載した種々の構成を実践しながら実行された付加的な方法を含むことができる。
従って、好ましい例示的な実施形態の上記記載または要約のいずれにも、本発明を限定しまたは制限するものではない。むしろ、特許請求の範囲に記載された内容が本発明を定めるものである。本発明の各変形例は、その請求項に記載の限定および等価物によってのみ制限されるものであり、請求項に表現されていない他の言葉によって制限されるものではない。
更に、本発明の構成は、技術用語を用いて特定されており、本発明者は、最も広い合理的な解釈を有するものと考える。
本発明者は、本発明のある実施に多分、絶対不可欠で有利なものとして、出願された特許請求の範囲に引用される特徴および方法の種々な要素を考慮している。しかしながら、本発明者は、特定の請求項に規定される場合を除き、“本質的”であるものとして特別な要素は何も注意していない。
図1は、本発明の様々な態様に従う電子ファイルアクセスシステムを概念的に示すブロック図である。用するイオン注入装置の概要を示す図である。 図2は、図1に示すシステムにおいて、ファイルデータを送信するための方法を示すフローチャートである。 図3は、図2の方法によって送信されたデータにアクセスするための方法を示すフローチャートである。 図4は、本発明の様々な態様に従う電子メールメッセージウィンドウの一例を示す図である。 図5は、本発明の様々な態様に従う電子メールメッセージウィンドウの別の一例を示す図である。 図6Aは、メッセージエンコード・データストリームとして実現された、本発明の様々な態様に従う搬送信号を示す図である。 図6Bは、メッセージエンコード・データストリームとして実現された、本発明の様々な態様に従う搬送信号を示す図である。 図7は、本発明の様々な態様に従って、バイト差分法を使用して、ファイル修正の維持管理を実行するための処理を示すフローチャートである。 図8は、本発明の様々な態様に従って、ブロック差分法を使用して、ファイル修正の維持管理を実行するための処理を示すフローチャートである。 図9は、本発明の様々な態様に従う協働的ファイル更新システムの動作を示すフローチャートである。 図10は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図11は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図12は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図13は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図14は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図15は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図16は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図17は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図18は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図19は、図9に示す様々な状態において、本発明の様々な態様に従う協働的ファイル更新システムを概念的に示すブロック図である。 図20は、本発明の様々な態様に従うローカルストレージのアドレス指定可能なデータセグメントとして使用される階層化ディレクトリ構造を示すブロック図である。 図21は、本発明の様々な態様に従うローカルストレージのアドレス指定可能なデータセグメントとして使用される階層化ディレクトリ構造を示すブロック図である。

Claims (36)

  1. ファイルの協働的な更新を容易にするための方法であって、
    (a)複数のユーザの一人から、(i)第1のバージョンのファイルを表すと共に(ii)該第1のバージョンのファイルの一人または複数の受信者を指定する第1のデータセットを受信し、保存するステップと、
    (b)次いで、順次的に更新される複数のバージョンのファイルのそれぞれについて、
    (1)複数のユーザの一人から、(i)更新されたバージョンのファイルと直前のバー
    ジョンのファイルとの差分を表すと共に(ii)該更新されたバージョンのファイルの一人
    または複数の受信者を指定する第2のデータセットを受信し、そして、
    (2)前記更新されたバージョンのファイルを表す第3のデータセットを、前記第2
    のデータセットで指定された前記更新されたバージョンの受信者に送信するステップと、
    を含んでおり、
    (c)前記直前のバージョンのファイルにアクセスし、かつ、前記第2のデータセットで
    指定されたそれぞれの受信者のための前記第3のデータセットは、実質的に前記更新され
    たバージョンのファイルと前記直前のバージョンのファイルとの差分からなる、
    ことを特徴とする方法。
  2. 前記第1のデータセットを受け入れる前に、
    (a)前記ファイルのオリジナルバーションを発生させる1人のユーザーを有し、
    (b)前記第1のバーションの前に前記ファイルの順次更新される複数のバーションを受け入れる、各ステップをさらに含むことを特徴とする請求項1記載の方法。
  3. 更新されたバーションの各受信者が、前のバーションの受信者として指定されておらず、前記第3のデータセットが、実質的に更新された前記ファイルからなることを特徴とする請求項1記載の方法。
  4. ディレクトリの階層構造内にデータファイルとして前記データセットを保存するステップをさらに含むことを特徴とする請求項1記載の方法。
  5. 前記ファイルに関連した最もらしいユニークな識別コードを発生するステップを更に含み、各ディレクトリは、このディレクトリの名前の中に、前記識別コードの少なくとも一部分を含んでいることを特徴とする請求項4記載の方法。
  6. 前記識別コードは、統計的に均一な分布を有するディジットを含んでいることを特徴とする請求項5記載の方法。
  7. 複数のユーザーの各々に対して、前記ユーザーに関連した最もらしいユニークな識別コードを発生させ、各データファイルが、このファイルの名前の中に、前記複数のユーザーの一人と関連した識別コードの少なくとも一部分を含んでいることを特徴とする請求項4記載の方法。
  8. 前記第2データセットの異なるデータは、異なるバージョンのデータ識別バイトを含んでいることを特徴とする請求項1記載の方法。
  9. 前記第2データセットの異なるデータは、異なるバージョンのデータ識別ブロックを含んでいることを特徴とする請求項1記載の方法。
  10. (a)複数のユーザーの全てにアクセス可能なファイルサーバーを設け、
    (b)第1、第2、及び第3のデータセットを受入れかつこれを伝送するファイルサーバーを有することを、更に含んでいることを特徴とする請求項1記載の方法。
  11. (a)複数のユーザーの全てにアクセス可能なe−メールサーバーを設け、
    (b)前記複数のユーザーの間でe−メールメッセージを中継するe−メールサーバーを有し、前記e−メールメッセージは、各々、指定された受信者が、前記ファイルサーバーからデータセットを読み出すことができるリファレンスを含んでいることを特徴とする請求項10記載の方法。
  12. リファレンスは、各々がダイレクトファイルアクセスモジュールを実行するコードを含むアタッチメントであることを特徴とする請求項11記載の方法。
  13. e−メールメッセージは、それぞれメッセージを符号化したデータストリームを更に含み、このデータストリームは、一連のデータフレームを有しており、このデータフレームは、
    (a)メッセージ受信者フレームと、
    (b)ヘッダーを有するファイルビューワーフレームと、
    (c)ヘッダーを有するファイルエディターフレームとを含み、
    (d)少なくとも1つの前記ビューワーフレームと前記エディターフレームは、(1)前記ビューワーフレームに対して、前記ファイルを見るために認可されたビューワーを識別するデータを含み、(2)前記エディターフレームに対して、前記ファイルを修正するために認可されたエディターを識別するデータを含んでいること、
    を特徴とする請求項11記載の方法。
  14. ディレクトリーの階層構造内にデータファイルとしてデータセットを保存するステップを更に含むことを特徴とする請求項10記載の方法。
  15. 前記ファイルに関連した最もらしいユニークな識別コードを発生するステップを更に含み、各ディレクトリが、前記識別コードの少なくとも一部分に、前記ディレクトリの名前を含んでいることを特徴とする請求項14記載の方法。
  16. 前記識別コードは、統計的に均一な分布を有するディジットを含んでいることを特徴とする請求項15記載の方法。
  17. 前記複数のユーザーの各一人に対して分離したファイルデータセット内にデータを保存するファイルサーバーを有することをさらに含んでいる請求項10記載の方法。
  18. 複数のユーザーの各々に対して、前記ユーザーに関連した最もらしいユニークな識別コードを発生させ、各データファイルセットが、このファイルの名前の中に、前記複数のユーザーの一人と関連した識別コードの少なくとも一部分を含んでいることを特徴とする請求項17記載の方法。
  19. ファイルの協働的な更新を容易にする方法を実行するために、1以上のプロセッサに対する命令の証印を含んでいるデータ保存媒体であって、
    (a)複数のユーザーの一人を受け入れ、そして、(i)前記ファイルの第1バージョンを表わし、そして、(ii)前記最初のバージョンの一人以上の受信者を指定する、第1データセットを保存し、
    (b)その後、前記ファイルの順次更新された複数のバージョンの各々が、
    (1)前記複数のユーザーの一人から(i)前記ファイルの更新されたバージョンと前記ファイルの直前のバージョンとの間の差分を表わし、(ii)前記更新されたバージョンの1つ以上の受信者を指定する第2データセットを受入れ、
    (2)前記第2データセットによって指定された前記更新されたバージョンの受信者に前記ファイルの更新されたバージョンを表わす第3データセットを伝送する、各ステップを含み、
    (c) 前記ファイルの直前のバージョンをアクセスされ、前記第2データセットによって指定された各受信者に対して、前記第3データセットが、前記ファイルの更新されたバージョンと前記ファイルの前のバージョンとの間の差分からなることを特徴とするデータ保存媒体。
  20. 前記第1のデータセットを受け入れる前に、前記第1バーションの前の前記ファイルにおける順次更新された複数のバーションを受け入れる、ステップをさらに含むことを特徴とする請求項19記載のデータ保存媒体。
  21. 更新されたバーションの各受信者が、前のバーションの受信者として指定されておらず、前記第3のデータセットが、更新されたものとして実質的に前記ファイルからなることを特徴とする請求項19記載のデータ保存媒体。
  22. ディレクトリの階層構造内にデータファイルとして前記データセットを保存するステップをさらに含むことを特徴とする請求項19記載のデータ保存媒体。
  23. 前記ファイルに関連した最もらしいユニークな識別コードを発生するステップを更に含み、各ディレクトリが、前記識別コードの少なくとも一部分に、前記ディレクトリの名前を含んでいることを特徴とする請求項22記載のデータ保存媒体。
  24. 前記識別コードは、統計的に均一な分布を有するディジットを含んでいることを特徴とする請求項23記載の方法。
  25. 複数のユーザーの各々に対して、前記ユーザーに関連した最もらしいユニークな識別コードを発生させ、各データファイルが、このファイルの名前の中に、前記複数のユーザーの一人と関連した識別コードの少なくとも一部分を含んでいることを特徴とする請求項22記載の方法。
  26. 前記第2データセットの異なるデータは、異なるバージョンのデータ識別バイトを含んでいることを特徴とする請求項19記載の方法。
  27. 前記第2データセットの異なるデータは、異なるバージョンのデータ識別ブロックを含んでいることを特徴とする請求項19記載の方法。
  28. 複数のユーザーの全てにアクセス可能なファイルサーバーにおいて、前記方法を実行し、さらに、第1、第2、及び第3のデータセットを受入れかつこれを伝送する前記ファイルサーバーを有することを、更に含んでいることを特徴とする請求項19記載の方法。
  29. ファイルの協働的な更新を容易にするためのシステムであって、
    (a)複数のユーザーの一人を受け入れ、そして、(i)前記ファイルの第1バージョンを表わし、そして、(ii)前記最初のバージョンの一人以上の受信者を指定する、第1データセットを保存する手段と、
    (b)前記ファイルの順次更新された複数のバージョンの各々が、
    (1)前記複数のユーザーの一人から(i)前記ファイルの更新されたバージョンと前記ファイルの直前のバージョンとの間の差分を表わし、(ii)前記更新されたバージョンの一人以上の受信者を指定する第2データセットを受入れ、
    (2)前記第2データセットによって指定された前記更新されたバージョンの受信者に前記ファイルの更新されたバージョンを表わす第3データセットを伝送するための手段と、を含み、
    (c) 前記ファイルの直前のバージョンをアクセスされ、前記第2データセットによって指定された各受信者に対して、前記第3データセットが、前記ファイルの更新されたバージョンと前記ファイルの前のバージョンとの間の差分からなることを特徴とするシステム。
  30. 複数のユーザーの間でファイルのバージョンにおける伝送を管理する方法であって、
    (a)前記ファイルの第1バージョンを表す第1データセットを第1のユーザから受け入れて保存し、
    (b)第2のユーザが、前記第1バージョンに対するリファレンスを作動させた結果として、前記第2のユーザに前記第1データセットを伝送し、
    (c)前記ファイルの第1バージョンと第2バージョンとの間の差分を表わす第2データセットを前記第2のユーザーから受け入れて保存し、
    (d)前記第2のユーザが、前記第2バージョンに対するリファレンスを作動させた結果として、前記第1のユーザに前記第2データセットを伝送し、前記リファレンスが前記第2のユーザーから受け入れたe−メールメッセージ内に含まれており、
    (e) 第3のユーザーが、前記第2のユーザーから受け入れたe−メールメッセージ内に含まれている前記リファレンスを、前記第2バージョンに対して作動させた結果として、
    (1)前記ファイルの第1バージョンを第2データセットとパッチングさせ、これにより、前記ファイルの第2バージョンを表わす第3データセットを作り出し、
    (2)前記第3データセットを前記第3のユーザーに伝送する、各ステップを有することを特徴とする方法。
  31. 前記複数のユーザーの各一人に対して分離したファイルデータセット内にデータを保存する、ステップをさらに含むことを特徴とする請求項30記載の方法。
  32. 前記複数のユーザーの各々に対して関連した最もらしいユニークな別個の識別コードを発生させ、各データファイルが、このファイルの名前の中に、それぞれの識別コードの少なくとも一部分を含んでいることを特徴とする請求項31記載の方法。
  33. 複数のユーザーの間でファイルのバージョンにおける伝送を管理する方法を実行するために、1以上のプロセッサに対する命令の証印を含んでいるデータ保存媒体であって、前記方法が、
    (a) 第1のユーザーから受け入れた、前記ファイルの第1バージョンを表わす第1データセットを保存し、
    (b) 第2のユーザーが前記第1バージョンに対するリファレンスを作動させた結果として、前記第2のユーザーに前記第1データを伝送し、前記リファレンスが前記第1のユーザーから受け入れたe−メールメッセージに含まれており、
    (c)前記ファイルの第1バージョンと第2バージョンとの間の差分を表わす第2データセットを前記第2のユーザーから受け入れて保存し、
    (d)前記第1のユーザが、前記第2バージョンに対するリファレンスを作動させた結果として、前記第1のユーザに前記第2データセットを伝送し、前記リファレンスが前記第2のユーザーから受け入れたe−メールメッセージ内に含まれており、
    (e) 第3のユーザーが、前記第2のユーザーから受け入れたe−メールメッセージ内に含まれている前記リファレンスを、前記第2バージョンに対するリファレンスを作動させた結果として、
    (1)前記ファイルの第1バージョンを第2データセットとパッチングさせ、これにより、前記ファイルの第2バージョンを表わす第3データセットを作り出し、
    (2)前記第3データセットを前記第3のユーザーに伝送する、各ステップを含んでいることを特徴とするデータ保存媒体。
  34. 前記方法は、複数のユーザーの各一人に対して別個のファイルデータセット内にデータを保存するステップを更に含むことを特徴とする請求項33記載のデータ保存媒体。
  35. 前記方法は、前記複数のユーザーの各一人に対して関連した最もらしいユニークな別個の識別コードを発生させ、各データファイルが、このファイルの名前の中に、それぞれの前記識別コードの少なくとも一部分を含んでいることを特徴とする請求項34記載のデータ保存媒体。
  36. 第1、第2、及び第3のユーザを含む複数のユーザーにアクセス可能なファイルサーバーであって、
    (a)第1のユーザーから受け入れた、前記ファイルの第1バージョンを表わす第1データセットを保存する手段と、
    (b)前記第1バージョンに対するリファレンスを作動させた第2のユーザーに応答し、前記リファレンスが前記第1のユーザーから受け入れたe−メールメッセージ内に含まれ、前記第2のユーザーに前記第1データセットを伝送するための手段と、
    (c)前記第2のユーザーから受け入れた、前記ファイルの第1バージョンと第2バージョンとの間の差分を表わす第2データセットを保存する手段と、
    (d)前記第2バージョンに対してリファレンスを作動させた第1のユーザーに応答し、前記リファレンスが前記第2のユーザーから受け入れたe−メールメッセージ内に含まれ、前記第1のユーザーに前記第1データセットを伝送するための手段と、
    (e)前記第2バージョンに対してリファレンスを作動させた第2のユーザーに応答し、前記リファレンスが前記第2のユーザーから受け入れたe−メールメッセージ内に含まれ、
    (1)前記ファイルの第1バージョンを第2データセットとパッチングさせ、これにより、前記ファイルの第2バージョンを表わす第3データセットを作り出し、
    (2)前記第3データセットを前記第3のユーザーに伝送する手段と、を含むことを特徴とするファイルサーバー。

JP2006518924A 2003-07-10 2004-07-08 協働的ファイル更新システム Pending JP2007531071A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US48670803P 2003-07-10 2003-07-10
US10/699,065 US7277901B2 (en) 2003-07-10 2003-10-31 Collaborative file update system
PCT/US2004/021994 WO2005008407A2 (en) 2003-07-10 2004-07-08 Collaborative file update system

Publications (1)

Publication Number Publication Date
JP2007531071A true JP2007531071A (ja) 2007-11-01

Family

ID=33567955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006518924A Pending JP2007531071A (ja) 2003-07-10 2004-07-08 協働的ファイル更新システム

Country Status (6)

Country Link
US (2) US7277901B2 (ja)
EP (1) EP1649340A2 (ja)
JP (1) JP2007531071A (ja)
AU (1) AU2004258591A1 (ja)
CA (1) CA2531840A1 (ja)
WO (1) WO2005008407A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013054584A1 (ja) * 2011-10-12 2013-04-18 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュリティレベルを維持するために情報を削除する方法、システム、仲介サーバ、クライアント及びコンピュータプログラム

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6453334B1 (en) 1997-06-16 2002-09-17 Streamtheory, Inc. Method and apparatus to allow remotely located computer programs and/or data to be accessed on a local computer in a secure, time-limited manner, with persistent caching
US8831995B2 (en) * 2000-11-06 2014-09-09 Numecent Holdings, Inc. Optimized server for streamed applications
US7062567B2 (en) 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
KR100595633B1 (ko) * 2003-12-18 2006-06-30 엘지전자 주식회사 이동통신 단말기의 멀티미디어 메시지 작성 방법
US7296023B2 (en) * 2004-01-15 2007-11-13 International Business Machines Corporation Method and apparatus for persistent real-time collaboration
US20050240773A1 (en) * 2004-04-21 2005-10-27 Fuji Xerox Co., Ltd. Secure file sharing
US20050289639A1 (en) * 2004-06-23 2005-12-29 Leung Wai K System and method of securing the management of documentation
WO2006055445A2 (en) * 2004-11-13 2006-05-26 Stream Theory, Inc. Hybrid local/remote streaming
US8024523B2 (en) 2007-11-07 2011-09-20 Endeavors Technologies, Inc. Opportunistic block transmission with time constraints
US9716609B2 (en) * 2005-03-23 2017-07-25 Numecent Holdings, Inc. System and method for tracking changes to files in streaming applications
US20060218200A1 (en) * 2005-03-24 2006-09-28 International Business Machines Corporation Application of log records by storage servers
US20060265394A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265395A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060265377A1 (en) * 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US20060277229A1 (en) * 2005-05-31 2006-12-07 Michihiro Yoshida Document management server, information terminal, document managing method, and program
US20060288049A1 (en) * 2005-06-20 2006-12-21 Fabio Benedetti Method, System and computer Program for Concurrent File Update
US20070100902A1 (en) * 2005-10-27 2007-05-03 Dinesh Sinha Two way incremental dynamic application data synchronization
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US20070168975A1 (en) * 2005-12-13 2007-07-19 Thomas Kessler Debugger and test tool
WO2007072371A2 (en) * 2005-12-20 2007-06-28 Koninklijke Philips Electronics, N.V. Apparatus, method and system for tracking shared information
US7661064B2 (en) * 2006-03-06 2010-02-09 Microsoft Corporation Displaying text intraline diffing output
US20080133714A1 (en) * 2006-05-25 2008-06-05 Saveas Service Provider And Consulting Plc. Eagleeyeos zone: method of control of separation technology of file sharing for network computers
US8099520B2 (en) 2006-06-23 2012-01-17 Pro Softnet Corporation System and method for storing and accessing data
US8121990B1 (en) 2006-06-28 2012-02-21 Insors Integrated Communications Methods, systems and program products for communicating file modification information
US8395652B1 (en) * 2006-06-28 2013-03-12 Insors Integrated Communications Data network collaboration systems having a shared file
US8458283B1 (en) * 2006-06-28 2013-06-04 Insors Integrated Communications Methods and program products for efficient communication of shared file modifications during a collaboration event
US8144632B1 (en) 2006-06-28 2012-03-27 Insors Integrated Communications Methods, systems and program products for efficient communications during data sharing event
US8023437B1 (en) 2006-06-28 2011-09-20 Insors Integrated Communications Methods, systems and program products for a distributed communications configuration
US8412773B1 (en) 2006-06-28 2013-04-02 Insors Integrated Communications Methods, systems and program products for initiating a process on data network
US8516050B1 (en) * 2006-06-28 2013-08-20 Insors Integrated Communications Methods and program products for communicating file modifications during a collaboration event
US7882064B2 (en) * 2006-07-06 2011-02-01 Emc Corporation File system replication
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
JP2008059063A (ja) * 2006-08-29 2008-03-13 Fujitsu Ltd 情報管理プログラム
US8261345B2 (en) 2006-10-23 2012-09-04 Endeavors Technologies, Inc. Rule-based application access management
DE102006057977A1 (de) * 2006-12-08 2008-06-12 Siemens Ag Verfahren und Vorrichtung zum Aktualisieren einer Datenbank und Computerprogrammprodukt
US9299055B2 (en) * 2006-12-28 2016-03-29 International Business Machines Corporation Delegation of data entry tasks
US9563640B2 (en) * 2007-02-09 2017-02-07 Micro Focus Software Inc. Techniques for versioning files
US8161457B2 (en) * 2007-03-06 2012-04-17 International Business Machines Corporation Detection of errors caused by interactions of independent software vendor code with host code
US20080256186A1 (en) * 2007-04-12 2008-10-16 Hartmann Thomas W Collaboration system
US8868566B2 (en) * 2007-09-17 2014-10-21 Apple Inc. Electronic communication messaging
US9178957B2 (en) * 2007-09-27 2015-11-03 Adobe Systems Incorporated Application and data agnostic collaboration services
US8458727B2 (en) * 2007-11-05 2013-06-04 Microsoft Corporation Asynchronous client to server updates
US8892738B2 (en) 2007-11-07 2014-11-18 Numecent Holdings, Inc. Deriving component statistics for a stream enabled application
US9420014B2 (en) * 2007-11-15 2016-08-16 Adobe Systems Incorporated Saving state of a collaborative session in an editable format
US8352509B2 (en) * 2007-12-19 2013-01-08 International Business Machines Corporation Methods, systems, and computer program products for accessing a multi-format data object
US8589788B2 (en) * 2007-12-19 2013-11-19 International Business Machines Corporation Methods, systems, and computer program products for automatic parsing of markup language documents
US8365140B2 (en) * 2007-12-20 2013-01-29 Hsbc Technologies Inc. Automated methods and systems for developing and deploying projects in parallel
US8458127B1 (en) 2007-12-28 2013-06-04 Blue Coat Systems, Inc. Application data synchronization
US8924947B2 (en) * 2008-03-05 2014-12-30 Sap Se Direct deployment of static content
US7552421B1 (en) 2008-04-07 2009-06-23 International Business Machines Corporation Method for adding comments to deleted code
US20100023557A1 (en) * 2008-07-28 2010-01-28 Novell, Inc. System and method to extend a file manager user interface
US9294291B2 (en) 2008-11-12 2016-03-22 Adobe Systems Incorporated Adaptive connectivity in network-based collaboration
US8245192B1 (en) * 2008-11-18 2012-08-14 Sprint Communications Company L.P. Independent software development zones
US20100131940A1 (en) * 2008-11-26 2010-05-27 Microsoft Corporation Cloud based source code version control
US9489217B2 (en) * 2008-12-09 2016-11-08 Oracle America, Inc. Dynamic software documentation
US20100235403A1 (en) * 2009-01-14 2010-09-16 Mathematical Science Publishers Department of Mathematics University of California, Berkeley Method and system for on-line edit flow peer review
US20100306180A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File revision management
US8561163B2 (en) * 2009-12-03 2013-10-15 International Business Machines Corporation Maintaining the integrity of email authorship
US20110258534A1 (en) * 2010-04-16 2011-10-20 Microsoft Corporation Declarative definition of complex user interface state changes
US9418356B2 (en) * 2010-05-07 2016-08-16 Microsoft Technology Licensing, Llc Streamlined collaboration on document
US8612399B2 (en) * 2010-06-01 2013-12-17 Kabushiki Kaisha Toshiba Alteration detecting apparatus and alteration detecting method
US9239708B2 (en) * 2010-12-28 2016-01-19 Microsoft Technology Licensing, Llc Contextually intelligent code editing
US20130159402A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Social aspects for data collaboration
US20130232109A1 (en) * 2012-03-05 2013-09-05 Computer Associates Think, Inc. Methods and systems for performing three-way merge of models
EP2637368A1 (en) * 2012-03-09 2013-09-11 BlackBerry Limited Method for sharing a file when multiple versions exist
US9348802B2 (en) 2012-03-19 2016-05-24 Litéra Corporation System and method for synchronizing bi-directional document management
US9063938B2 (en) 2012-03-30 2015-06-23 Commvault Systems, Inc. Search filtered file system using secondary storage, including multi-dimensional indexing and searching of archived files
US9639297B2 (en) 2012-03-30 2017-05-02 Commvault Systems, Inc Shared network-available storage that permits concurrent data access
US10021052B1 (en) 2012-09-22 2018-07-10 Sitting Man, Llc Methods, systems, and computer program products for processing a data object identification request in a communication
US9395979B1 (en) 2012-12-20 2016-07-19 Sprint Communications Company L.P. Pre-emptive development conflict resolution
US20130218829A1 (en) * 2013-03-15 2013-08-22 Deneen Lizette Martinez Document management system and method
US10025782B2 (en) 2013-06-18 2018-07-17 Litera Corporation Systems and methods for multiple document version collaboration and management
US10373611B2 (en) * 2014-01-03 2019-08-06 Gracenote, Inc. Modification of electronic system operation based on acoustic ambience classification
US10169121B2 (en) * 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9904472B2 (en) * 2015-01-30 2018-02-27 Sandisk Technologies Llc Memory system and method for delta writes
US10454872B2 (en) * 2015-06-22 2019-10-22 Microsoft Technology Licensing, Llc Group email management
US11212363B2 (en) * 2016-02-08 2021-12-28 Microstrategy Incorporated Dossier interface and distribution
US11126665B1 (en) 2017-04-18 2021-09-21 Microstrategy Incorporated Maintaining dashboard state
US11290253B2 (en) * 2020-02-14 2022-03-29 Gideon Samid Document management cryptography

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5418908A (en) 1992-10-15 1995-05-23 International Business Machines Corporation System for automatically establishing a link between an electronic mail item and a remotely stored reference through a place mark inserted into the item
US5475753A (en) * 1993-11-12 1995-12-12 Matsushita Electric Corporation Of America Apparatus and method for certifying the delivery of information
US5689560A (en) 1994-04-25 1997-11-18 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction
US5790793A (en) 1995-04-04 1998-08-04 Higley; Thomas Method and system to create, transmit, receive and process information, including an address to further information
CA2172746C (en) 1995-04-20 2001-06-05 Michael Scott Baldwin Electronic messaging in a wide area network
US5870746A (en) * 1995-10-12 1999-02-09 Ncr Corporation System and method for segmenting a database based upon data attributes
US5923846A (en) 1995-11-06 1999-07-13 Microsoft Corporation Method of uploading a message containing a file reference to a server and downloading a file from the server using the file reference
US5903723A (en) 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5781901A (en) 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5771355A (en) 1995-12-21 1998-06-23 Intel Corporation Transmitting electronic mail by either reference or value at file-replication points to minimize costs
US5815663A (en) 1996-03-15 1998-09-29 The Robert G. Uomini And Louise B. Bidwell Trust Distributed posting system using an indirect reference protocol
US5923845A (en) 1996-07-26 1999-07-13 Nec Corporation Integrated electronic information system
US6018761A (en) 1996-12-11 2000-01-25 The Robert G. Uomini And Louise B. Bidwell Trust System for adding to electronic mail messages information obtained from sources external to the electronic mail transport process
US6026410A (en) * 1997-02-10 2000-02-15 Actioneer, Inc. Information organization and collaboration tool for processing notes and action requests in computer systems
US6009462A (en) 1997-06-16 1999-12-28 Digital Equipment Corporation Replacing large bit component of electronic mail (e-mail) message with hot-link in distributed computer system
AU8050298A (en) 1997-06-17 1999-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for accessing and retrieving messages
US6052735A (en) 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6393437B1 (en) 1998-01-27 2002-05-21 Microsoft Corporation Web developer isolation techniques
US6088702A (en) 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
US6489950B1 (en) * 1998-06-26 2002-12-03 Research In Motion Limited Hand-held electronic device with auxiliary input device
GB2343768A (en) * 1998-08-17 2000-05-17 Connected Place Limited Merging a sequence of delta files
GB2342195A (en) 1998-09-30 2000-04-05 Xerox Corp Secure token-based document server
US6145012A (en) 1998-10-14 2000-11-07 Veritas Software Corporation Apparatus and method for efficiently updating files in computer networks
US6489980B1 (en) * 1998-12-29 2002-12-03 Ncr Corporation Software apparatus for immediately posting sharing and maintaining objects on a web page
US6651087B1 (en) 1999-01-28 2003-11-18 Bellsouth Intellectual Property Corporation Method and system for publishing an electronic file attached to an electronic mail message
AU4077900A (en) 1999-04-07 2000-10-23 Critical Path Inc. Apparatus and methods for use of access tokens in an internet document management system
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
TW504619B (en) 1999-06-04 2002-10-01 Ibm Internet mail delivery agent with automatic caching of file attachments
US6662212B1 (en) 1999-08-31 2003-12-09 Qualcomm Incorporated Synchronization of a virtual workspace using E-mail extensions
US6687741B1 (en) * 2000-05-24 2004-02-03 Microsoft Corporation Sending a file as a link and/or as an attachment
US6732101B1 (en) 2000-06-15 2004-05-04 Zix Corporation Secure message forwarding system detecting user's preferences including security preferences
US20020019851A1 (en) 2000-07-26 2002-02-14 Jordan Pollack System and method for the electronic mail based management and manipulation of stored files
WO2002047351A2 (en) 2000-12-08 2002-06-13 Truedisk.Com, Inc. Multi-stage message assembly
US20020161860A1 (en) * 2001-02-28 2002-10-31 Benjamin Godlin Method and system for differential distributed data file storage, management and access
US20020147849A1 (en) * 2001-04-05 2002-10-10 Chung-Kei Wong Delta encoding using canonical reference files
US7409424B2 (en) * 2001-04-24 2008-08-05 Parker James A Electronic mail file access system
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
CA2414154A1 (en) * 2002-12-12 2004-06-12 Mark W. Brooks System and method for transmitting a file associated with an e-mail
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013054584A1 (ja) * 2011-10-12 2013-04-18 インターナショナル・ビジネス・マシーンズ・コーポレーション セキュリティレベルを維持するために情報を削除する方法、システム、仲介サーバ、クライアント及びコンピュータプログラム
GB2507935A (en) * 2011-10-12 2014-05-14 Ibm Method, system, mediation server, client, and computer program for deleting information in order to maintain security level
CN103858127A (zh) * 2011-10-12 2014-06-11 国际商业机器公司 用于删除信息以维持安全级别的方法、系统、中介服务器、客户端和计算机程序
GB2507935B (en) * 2011-10-12 2014-07-30 Ibm Method, system, mediation server, client, and computer program for deleting information in order to maintain security level
US9460295B2 (en) 2011-10-12 2016-10-04 International Business Machines Corporation Deleting information to maintain security level
CN103858127B (zh) * 2011-10-12 2017-01-25 国际商业机器公司 用于删除信息以维持安全级别的方法、系统和中介服务器
US9910998B2 (en) 2011-10-12 2018-03-06 International Business Machines Corporation Deleting information to maintain security level

Also Published As

Publication number Publication date
EP1649340A2 (en) 2006-04-26
WO2005008407A3 (en) 2006-09-08
WO2005008407A2 (en) 2005-01-27
US7277901B2 (en) 2007-10-02
US20080010378A1 (en) 2008-01-10
AU2004258591A1 (en) 2005-01-27
US20050010607A1 (en) 2005-01-13
CA2531840A1 (en) 2005-01-27

Similar Documents

Publication Publication Date Title
JP2007531071A (ja) 協働的ファイル更新システム
US7409424B2 (en) Electronic mail file access system
US10860784B2 (en) Collaborative email with hierarchical signature authority
JP4887365B2 (ja) トレーサビリティが減少された電子メッセージシステムおよび方法
CA2469503C (en) Instant messaging object store
US8719325B2 (en) Method to initiate server based collaboration on e-mail attachments
US20070150551A1 (en) Automatic sharing of online resources in a multi-user computer system
US8775542B2 (en) Device and method for user-based processing of electronic message comprising file attachments
US20060031352A1 (en) Tamper-proof electronic messaging
US20100235456A1 (en) Storage medium storing a mail management program, and mail management apparatus and method
US7577704B1 (en) Methods and systems for implementing customized data to control groupware environment data exchange
US20060031927A1 (en) Information management system, information management method, and system control apparatus
US20050021947A1 (en) Method, system and program product for limiting insertion of content between computer programs