JP2004265415A - 編集時にサーバファイルのロックを遅延させる方法 - Google Patents

編集時にサーバファイルのロックを遅延させる方法 Download PDF

Info

Publication number
JP2004265415A
JP2004265415A JP2004055388A JP2004055388A JP2004265415A JP 2004265415 A JP2004265415 A JP 2004265415A JP 2004055388 A JP2004055388 A JP 2004055388A JP 2004055388 A JP2004055388 A JP 2004055388A JP 2004265415 A JP2004265415 A JP 2004265415A
Authority
JP
Japan
Prior art keywords
file
user
computer
edit
copy
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.)
Granted
Application number
JP2004055388A
Other languages
English (en)
Other versions
JP4455100B2 (ja
Inventor
Noah Edelstein
エーデルスタイン ノア
Hai Liu
ハイ リュウ
Hani Saliba
サリバ ハニ
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 JP2004265415A publication Critical patent/JP2004265415A/ja
Application granted granted Critical
Publication of JP4455100B2 publication Critical patent/JP4455100B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B23/00Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes
    • G09B23/24Models for scientific, medical, or mathematical purposes, e.g. full-sized devices for demonstration purposes for chemistry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Chemical & Material Sciences (AREA)
  • Medicinal Chemistry (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 修正ファイルオープン動作を用いてサーバを実装すること。
【解決手段】 修正ファイルオープン動作では、ユーザが修正オープンを実行するとき、当初はファイルをロックせずにファイルが開かれる。ユーザがそのファイルを開くよう試みている、またはそのファイルを開く意図があることをユーザが(明示的または暗黙的に)示したとき、そのファイルを編集用にロックすることができる。このように、ユーザがファイルを要求するときのデフォルト動作は、他のユーザがファイルにアクセスすることを拒否することなくファイルを開くことである。次いで、ユーザが編集を行うことを示したとき、そのファイルに対するロックがかけられる。
【選択図】 図4

Description

本発明は文書管理の分野に関し、より詳細には、ユーザがアクセスするサーバファイルのロックを遅延させるための方法およびシステムに関する。
ウェブサーバなどのサーバコンピュータは2重の役割を果たす場合がある。サーバは、ユーザがコンテンツにアクセスすることのできる発信元(publishing location)として使用することができる。また、サーバは2ユーザ以上が文書に関して共同作業を行うことのできる共同作業環境としても使用することができる。すなわち、各ユーザは、文書を更新または編集することができるわけである。サーバが発信元として使用される場合、サーバは、サーバ上のバージョンを変更せずに維持して、ファイルを要求する任意のユーザにファイルのコピーを別個に配信する。サーバが共同作業環境として使用される場合、サーバは、ファイルの編集を求めるユーザが最新のコピーにアクセスすることを許可する機能を持つ。しかし、発信機能と共同作業機能の双方をサポートするサーバは、しばしばこれらの両方の目的で同時に使用される。
このような二重に使用することにより問題が発生する。例えば、サーバがウェブサーバである場合、(ハイパーリンクをたどることによって)ウェブサーバ上のファイルにアクセスするためのデフォルトの機構は、2つの動作の一方しか行わない。ハイパーリンクおよびウェブサーバに応じて、ハイパーリンクをクリックすることにより、ユーザが元のファイルを変更することなく読み取ることができるファイルのコピーが作成され、またはハイパーリンクをクリックすることにより、サーバ上のファイルが開かれて、ユーザがファイルを編集することが可能となる。ファイルが編集用に開かれるとき、そのファイルはロックされ、他のユーザがファイルを編集することはできない。
一般に、ファイルは、ファイルを開くユーザに許可される様々なアクセス権で開くことができる。読取り用にファイルを開くと、ファイルは読取り専用として開かれ、ユーザはファイル中のデータを変更しない限りそのデータを読み取り/閲覧し、あるいは閲覧することを許可される。編集用にファイルを開くと、ファイルは読取り/書込みとして開かれ、ユーザは同じ特権を許可されるが、またデータを修正したり、データに付加したりすることも許可される。ファイルが読取り/書込みとして開かれると、このファイルはロックされる。このファイルロックにより、ファイルの修正は一度に1ユーザだけとなるよう保証され、2ユーザ以上による修正の不一致(conflict)が防止される。
デフォルト動作がユーザの望む動作ではないときに問題が生じる。例えば、ユーザがファイルを編集することを望む場合に、デフォルトが読取り用のコピーのオープンであるならば、ユーザに対する所望の機能は提供されない。同様に、デフォルトが編集用のファイルのオープンであり、ユーザがファイルの読取りだけを望む場合、ファイルはロックされ、そのファイルを編集することを望む別のユーザはファイルの編集ができなくなる。読取り用にファイルを開き、次いでファイルを編集することを望むユーザは、ファイルを終了させ、次いで編集用にそのファイルを再び開かなければならない。
サーバには修正ファイルオープン動作が実装され、この修正ファイルオープン動作では、ユーザが修正オープンを実行すると、当初はファイルをロックせずにファイルが開かれる。ユーザがそのファイルを開くことを試みているとき、またはそのファイルを開く意図があることをユーザが(明示的または暗黙的に)指示したとき、そのファイルは編集用にロックされる。このように、ユーザがファイルを要求するときのデフォルト動作は、他のユーザがファイルにアクセスすることを拒否することなくファイルを開くことである。次いで、ユーザが編集を行うことを指示したとき、そのファイルに対しロックがかけられる。
上記の概要、ならびに以下の好ましい実施形態の詳細な説明は、添付の図面と共に読むときにより良く理解されよう。本発明を例示するために、図面には本発明の例示的実施形態が示されている。しかし、このことにより本発明は、開示される特定の方法および手段に限定されるわけではない。
(概説)
ユーザが共用サーバ上の文書を開くときの柔軟性を可能にするために、修正オープンが実装される。修正オープンを使用してファイルを開くとき、ファイルは読取り専用で開かれる。修正オープンを使用してファイルを開いたユーザが、ファイルに対して編集を行うことを指示したときにだけ、ファイルに対しロックがかけられ、そのユーザに関してファイル読取り/書込みが行われ、その他のユーザはファイルに対する編集特権を得ることができない。
(例示的コンピューティング装置)
図1および以下の記載により、本発明を実施することができる適切なコンピューティング環境について、簡潔で一般的な説明が与えられる。しかし、前述のように、ハンドヘルド装置、ポータブル装置、およびその他のコンピューティング装置と、すべての種類のコンピューティングオブジェクトとが、本発明と共に使用するように企図されることを理解されたい。したがって、汎用コンピュータについて以下で説明するが、これは一例であって、本発明は、ネットワーク/バス互換性があり対話型のシンクライアントなど、その他のコンピューティング装置でも実施することができる。したがって、非常にわずかな、または最小のクライアント資源しか含まれないネットワークホストのサービス環境、例えば、情報家電(appliance)内に配置されたオブジェクトのようなクライアント装置が単にネットワーク/バスに対するインターフェースとして働くネットワーク環境や、その他のコンピューティング装置とオブジェクトとで本発明を実施することができる。実質的には、データを格納することができ、またはデータをそこから取り出すことができるどんな場所も、本発明による操作に対して望ましく、または適した環境である。
必須ではないが、本発明は、装置またはオブジェクトのためのサービスの開発者が使用するために、オペレーティングシステムを介して実施することができ、および/または本発明に従って動作するアプリケーションソフトウェア内に含めることができる。ソフトウェアは、クライアントワークステーション、サーバ、あるいはその他の装置など1つまたは複数のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能は、様々な実施形態で必要に応じて組み合わせても分散させてもよい。さらに、本発明を他のコンピュータシステム構成を用いて実施できることを当業者は理解されるであろう。本発明に使用するのに適していると考えられる周知のコンピューティングシステム、環境、および/または構成としては、限定はしないが、パーソナルコンピュータ(PC)、現金自動預払機、サーバコンピュータ、ハンドヘルド装置またはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な消費者向け電子機器、ネットワークPC、アプライアンス、照明、環境制御要素、ミニコンピュータ、メインフレームコンピュータなどがある。本発明は、通信ネットワーク/バスあるいはその他のデータ伝送媒体を通じてリンクされたリモート処理装置でタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶装置を含むローカルとリモートのどちらのコンピュータ記憶媒体にも配置することができ、クライアントノードがサーバノードとして振舞うことができる。
したがって、図1は本発明を実施することのできる適切なコンピューティングシステム環境100の一例を示しているが、上記で明らかにしたようにコンピューティングシステム環境100は適切なコンピューティング環境の一例に過ぎず、本発明の使用法または機能の範囲について何らかの制限を示唆するものではない。例示的動作環境100に示す構成要素のいずれか1つあるいはその組合せに関して、コンピューティング環境100が何らかの依存関係または要件を有するものと解釈すべきでもない。
図1を参照すると、本発明を実施する例示的システムは、コンピュータシステム110の形態の汎用コンピューティング装置を含む。コンピュータシステム110の構成要素には、限定はしないが、処理装置120と、システムメモリ130と、システムメモリを含む様々なシステム構成要素を処理装置120に結合するシステムバス121とを含めることができる。システムバス121は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。例えばこうしたアーキテクチャには、限定はしないが、ISA(Industry Standard Architecture)バス、MCA(Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、VESA(Video Electronics Standards Association)ローカルバス、およびPCI(Peripheral Component Interconnect)バス(メザニンバスとも呼ばれる)が含まれる。
通常、コンピュータシステム110は様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体はコンピュータシステム110がアクセスできる利用可能などんな媒体でもよく、それには不揮発性媒体と揮発性媒体の両方、取り外し可能媒体と固定媒体の両方が含まれる。例えば、限定はしないが、コンピュータ読取可能媒体にはコンピュータ記憶媒体と通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、あるいはその他のデータなどの情報を格納するために任意の方法または技術で実装された揮発性および不揮発性の、取り外し可能および取り外し不能の媒体が含まれる。コンピュータ記憶媒体には、限定はしないが、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリ、またはその他のメモリ技術、コンパクトディスク読取り専用メモリ(CDROM)、デジタル多用途ディスク(DVD)、またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータシステム110がアクセスできる他のどんな媒体も含まれる。通信媒体は通常、コンピュータ読取可能命令、データ構造、プログラムモジュール、あるいはその他のデータを、搬送波や他の移送機構などの被変調データ信号として実施し、それには任意の情報配信媒体が含まれる。「被変調データ信号」という用語は、信号の特性集合のうちの1つまたは複数を有する信号、または情報を信号内に符号化するように変化する信号を意味する。例えば、限定はしないが、通信媒体には、有線ネットワークやダイレクトワイヤード接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、他のワイヤレス媒体などのワイヤレス媒体が含まれる。上記のいずれかの組合せもコンピュータ読取可能媒体の範囲内に含めるべきである。
システムメモリ130は、読取り専用メモリ(ROM)131やランダムアクセスメモリ(RAM)132など、揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータシステム110内の要素間で情報を転送する助けとなる基本ルーチンを含む基本入出力システム133(BIOS)は、通常はROM131に格納される。RAM132は通常、処理装置120から即座にアクセス可能であり、および/または処理装置120によって現在操作されているデータおよび/またはプログラムモジュールを含む。例えば、限定はしないが、図1に、オペレーティングシステム134、アプリケーションプログラム135、その他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータシステム110は、その他の取り外し可能/固定、揮発性/不揮発性のコンピュータ記憶媒体も含むことができる。単なる例に過ぎないが、図1に、固定不揮発性の磁気媒体を読み書きするハードディスクドライブ141、取り外し可能な不揮発性の磁気ディスク152を読み書きする磁気ディスクドライブ151、およびCD−ROMやその他の光学媒体などの取り外し可能な不揮発性の光ディスク156を読み書きする光ディスクドライブ155を示す。この例示的動作環境で使用することができるその他の取り外し可能/固定、揮発性/不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体RAM、固体ROMなどが含まれる。ハードディスクドライブ141は通常、インターフェース140などの取り外し不能メモリインターフェースを介してシステムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェース150などの取り外し可能メモリインターフェースによってシステムバス121に接続される。
上記で議論し、図1に図示するドライブとその関連するコンピュータ記憶媒体は、コンピュータシステム110に関するコンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータの記憶を実現する。例えば図1では、ハードディスクドライブ141がオペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして図示している。これらの構成要素は、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同一であっても、異なっていてもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147には、少なくともこれらが相異なるコピーであることを示すために異なる番号を付けてある。ユーザは、キーボード162や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス161などの入力装置を介して、コマンドおよび情報をコンピュータシステム110に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。これらの入力装置や他の入力装置はしばしば、システムバス121に結合されるユーザ入力インターフェース160を介して処理装置120に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続することもできる。ノースブリッジなどのグラフィックスインターフェース182もシステムバス121に接続することができる。ノースブリッジは、CPUまたはホスト処理装置120と通信するチップセットであり、アクセラレーテッドグラフィックスポート(AGP)通信に対する任を担う。1つまたは複数のグラフィックス処理装置(GPU)184が、グラフィックスインターフェース182と通信することができる。この点で、GPU184は一般に、レジスタ記憶装置などのオンチップメモリ記憶装置を含み、ビデオメモリ186と通信する。しかしGPU184はコプロセッサの一例であり、したがって様々なコプロセッシング装置をコンピュータ110内に含めることができる。モニタ191または他のタイプのディスプレイ装置も、ビデオインターフェース190などのインターフェースを介してシステムバス121に接続され、そのインターフェースはビデオメモリ186と通信することができる。モニタ191に加えて、コンピュータシステムはまた、スピーカ197やプリンタ196などの他の周辺出力装置も含むことができ、その周辺出力装置は、出力周辺インターフェース195を介して接続することができる。
コンピュータシステム110は、リモートコンピュータ180などの1つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境または分散環境で動作することができる。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、または他の共通ネットワークノードでよく、一般に、コンピュータシステム110に関して上記で述べた要素のうちの多数またはすべてを含むが、図1にはメモリ記憶装置181だけを示している。図1に示す論理接続は、ローカルエリアネットワーク(LAN)171および広域ネットワーク(WAN)173を含むが、他のネットワーク/バスも含むことができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
LANネットワーキング環境で使用する際、コンピュータシステム110は、ネットワークインターフェース/アダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用する際、コンピュータシステム110は一般に、インターネットなどのWAN173を介して通信を確立するためのモデム172または他の手段を含む。モデム172は内蔵でも外付けでもよく、ユーザ入力インターフェース160、または他の適切な機構を介してシステムバス121に接続することができる。ネットワーク環境では、コンピュータシステム110に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置内に格納することができる。例えば、限定はしないが、図1にリモートアプリケーションプログラム185を、メモリ装置181上に常駐するものとして示す。図示するネットワーク接続は例示的なものであって、コンピュータ間の通信リンクを確立する他の手段も使用できることを理解されよう。
パーソナルコンピューティングとインターネットとが相互に影響し合った結果、様々な分散コンピューティングフレームワークが開発され、また開発されつつある。個人ユーザもビジネスユーザにも等しくシームレスに相互運用およびウェブ使用が可能なアプリケーションおよびコンピューティング装置に対するインターフェースが提供され、コンピューティング活動をいっそうウェブブラウザ指向またはネットワーク指向にする。
例えば、MICROSOFT(登録商標)の.NETプラットフォームは、ウェブベースのデータ記憶装置やダウンロード可能なデバイスソフトウェアなどの、サーバおよびビルディングブロックサービスを含む。本明細書では、コンピューティング装置上に常駐するソフトウェアに関連して例示的実施形態を説明するが、本発明の1つまたは複数の部分は、.NETの言語およびサービスのすべてでサポートされ、またはそれを介してアクセスされる、本発明による動作を実行できるようなオペレーティングシステム、またはアプリケーションプログラミングインターフェース(API)、またはコプロセッサと、ディスプレイ装置と、要求側オブジェクトとのいずれかの間の「仲介(middle man)」オブジェクトを介して実装することもでき、その他の分散コンピューティングフレームワークとしても実装することができる。
(ロックの遅延)
図2を参照すると、ファイル210がサーバコンピュータ200上に常駐している。権限を有するユーザが、ファイルを開くよう要求を行う。ユーザは、いくつかの方法でサーバコンピュータに接続することができる。例えばユーザは、直接に、ローカルエリアネットワーク(LAN)を介して、またはインターネットなどのネットワークを介してリモートに接続することができる。図2の例では、ユーザコンピュータ230が、ネットワーク220を介してサーバコンピュータ200に接続される。
ユーザは、ファイルを開くよう要求する。そのような要求を出す方法としては、サーバコンピュータ200によってサービスされるウェブページ上のハイパーリンクを選択する方法がある。サーバが要求を受け取ると、サーバは、ユーザコンピュータ230がファイルを開くことを許可する。ファイルは、ユーザのコンピュータ上でアプリケーション240によって開かれる。例えばこのアプリケーションは、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、オーディオプレーヤアプリケーション、またはダウンロードしたデータをユーザが利用することができるどんなアプリケーションでもよい。一実施形態においては、ユーザは、ユーザコンピュータ230上のウェブ閲覧アプリケーションで表示されるウェブページ内のハイパーリンクを選択し、ウェブ閲覧アプリケーションは、適切なアプリケーションでファイルを開く。
ファイルが開かれたとき、一実施形態においては、ファイルのコピーがユーザコンピュータ230のキャッシュ内に作成される。ユーザは、サーバコンピュータ200上のコピーを閲覧し、または読み取る(あるいは、対話、例えばファイルがオーディオデータを含む場合、オーディオプレーヤでそれを再生する等を行う)。当初ファイルを開くとき、ファイルは、「読取り専用」権限で開かれる。このようにして、複数のユーザが、ファイルにアクセスしてそれを使用することができる。
これに代わる実施形態においては、ユーザコンピュータ230でローカルコピーを作成する代わりに、読取り専用権限を有するすべてのユーザがサーバ上のファイルを閲覧する。
ファイルのロックは、ユーザのファイル編集の意図が示されたときにだけ行われる。このロックにより、ユーザがファイルに対する「読取り/書込み」許可を有することとなる。次いでユーザは、ファイルデータを修正し、またはファイルデータに付加することができる。
この編集意図の表示(intent to edit indication)は、さまざまな形態のうちの1つとすることができる。一実施形態においては、編集意図は、何らかの形でファイルを修正するユーザによって示される。別の実施形態においては、編集意図はユーザによって示される。これは、アプリケーションに組み込まれた特別な「編集」コマンドによって行うことができ、または既に行った変更を保存するようにユーザが要求したときに行われる。別の実施形態においては、編集意図の判定は、予め定められた期間、ユーザが前記ファイルをオープンにしているかについて判定する。例えば、ユーザが読取り専用モードでファイルを10分間オープンにしている場合、ユーザはファイルを編集する意図があると推定することができる。
一実施形態においては、ロックがかけられると、ユーザコンピュータ230のキャッシュ内のファイルのコピーが、現在サーバ上にあるバージョンと同じバージョンであるかについて判定が行われる。これは、その間に編集が行われなかったことを保証するためである。例えば、ユーザAが、ファイルの第1バージョンを開くが、編集意図を示さない(したがってロックをかけない)。次いでユーザAが、編集意図を示すことによってロックをかける場合、現在サーバ上にあるファイルのバージョンが、ユーザAが閲覧中の、編集しようとするバージョンと同一となることを保証しなければならない。ユーザがファイルを開いた時点と、ユーザが編集意図を示した時点の間のある時点とで、ユーザBがサーバコンピュータ200上のファイルを開いて修正した場合、不一致が生じる恐れがある。不一致解決の選択肢をユーザに提示すべきである。
例えば、ユーザAは、ファイルにかなりの変更を行った可能性があり、その変更により、その間に行ったどんな変更も置き換えられるべきであると判断される可能性がある。その場合、ユーザコンピュータ230上のバージョンがファイル210としてサーバコンピュータ200に書き込まれ、ユーザAが読取り/書込み特権を有するようにファイルがロックされる。あるいは、ユーザAは、ユーザAがローカルで作業中のバージョンを別のファイルとして保存し、サーバコンピュータ200上のファイル210を編集用に再び開くよう判断する可能性もある。その他の不一致解決の選択肢(conflict resolution options)もユーザに提示することができる。
ユーザコンピュータ230内のファイルのコピーが、現在サーバ上にあるファイル210のバージョンと同一のバージョンであるか否かを判定するために、バージョン情報を格納して比較することができる。この情報は、バージョン番号、保存した時間/日付情報、またはその他のバージョンデータを含むことができる。あるいは、実際のファイル210と、ユーザコンピュータ230内にキャッシュされたバージョンとの完全な比較を行ってファイルの内容が同一であるか否かを判定することもできる。
ユーザがユーザコンピュータ230にファイル210をコピーしないが、その代わりにファイル210をサーバコンピュータ200から直接開く代替の実施形態においては、編集発生(edit trigering)イベントが発生したとき、そのユーザに関して編集ファイル210に対するロックがかけられる。
図3に示すように、ステップ300では、ファイルを開く要求を受け取る。ステップ310ではファイルを開く。一実施形態においては、ファイルは、読取り専用モードでサーバから直接開かれる。これに代わる実施形態においては、ファイルのコピーが作成されてそれが開かれる。ステップ320では、編集発生(editing triger)イベントが発生したかについて判定を行う。この編集発生イベントは、ファイルのローカルコピーが作成された場合には、ユーザがファイルのローカルコピーに対する変更を保存することでよい。この編集発生イベントはまた、ファイルのサーバコピーが読取り専用で開かれた場合には、ユーザがファイルに対して変更を試みることでもよい。この編集発生イベントはまた、所定の期間が経過したこと、ユーザから受け取った「編集」の表示、または編集用にサーバファイルのロックを必要とするその他のどんなイベントでもよい。
ステップ330では、ファイルに対してロックがかけられる。これにより、ユーザが修正を不一致にさせることなしに修正するために、ファイルのサーバコピーがロックされる。
図4に示すように、一実施形態においては不一致解決を実施することができる。図3と同様に、第1ステップ410は、ファイルを開く要求を受け取るときである。第2ステップ420では、ファイルのローカルコピーを作成し、そのローカルコピーを編集用に開く。第3ステップ430では、編集発生イベントが発生したかについて判定を行う。次いで比較440を行って、サーバ上のファイルのバージョンがステップ420でコピーしたバージョンと同一であるか否かを判定する。同一のバージョンである場合、ステップ450でファイルに対してロックがかけられる。ユーザがファイルのローカルコピーに対して変更を行った場合、こうした変更を反映するためにファイルのサーバコピーを更新することができる。バージョンが変化した場合、ステップ460で不一致解決の選択肢をユーザに提示する。これにより、ステップ450のように、ファイルに対しロックをかけることができるが、その他の不一致解決の選択肢をとることもできる。
このようにして、何人かのユーザによって同時にファイルを開くことができ、そのユーザすべてがファイルの内容を使用することができる。しかし、ユーザがファイルを修正することを要求すると、そのユーザに関してロックがかけられ、ファイルに対する読取り/書込み特権を有することになる。
(結論)
上述のように、様々なコンピューティング装置およびネットワークアーキテクチャに関連して本発明の例示的実施形態を説明したが、基礎となる概念は、修正ファイルオープンを実装することが望ましいどんなコンピューティング装置またはシステムにも適用することができる。したがって、本発明の方法およびシステムは、様々なアプリケーションおよび装置に適用することができる。本明細書では例示的なプログラミング言語、名前、および実施例を様々な選択肢の代表として選んだが、こうした言語、名前、および実施例は限定を意図するものではない。本発明で達成されるのと同じ、類似の、または同等のシステムおよび方法を達成するオブジェクトコードを提供する多数の方法があることを当業者は理解されよう。
本明細書で説明した様々な技法は、ハードウェアまたはソフトウェア、あるいは適切である限り、両者の組合せに関連して実施することができる。したがって、本発明の方法および装置、あるいは本発明のある態様または部分は、フロッピィ(登録商標)ディスケット、CDROM、ハードドライブ、またはその他の任意の機械読取可能記憶媒体などの有形媒体として実施されたプログラムコード(すなわち命令)の形態を取ることができ、プログラムコードがコンピュータなどのマシンにロードされ実行されたときに、そのマシンが本発明を実施するための装置となる。プログラム可能コンピュータ上のプログラムコード実行のケースでは、コンピューティング装置は一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体(揮発性および不揮発性のメモリおよび/または記憶素子を含む)、少なくとも1つの入力装置、および少なくとも1つの出力装置を含む。例えばデータ処理APIなどを使用することによって本発明の信号処理サービスを利用することができる1つまたは複数のプログラムは、コンピュータと通信するために高水準の手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装することが好ましい。しかし、望むならアセンブリ言語または機械語でプログラムを実装することもできる。いずれにしても、言語はコンパイル型言語またはインタプリタ型言語でよく、ハードウェア実装と組み合わせることができる。
本発明の方法および装置は、電気的な配線またはケーブル、光ケーブル、あるいは他の任意の形態の伝送などの、何らかの伝送媒体を介して伝送されるプログラムコードの形で実施された通信を介して実施することも可能であり、プログラムコードが、EPROM、ゲートアレイ、プログラマブルロジックデバイス(PLD)、クライアントコンピュータ、ビデオレコーダなどのマシンで受信され、ロードされ、実行されるとき、上記の例示的実施形態で説明した信号処理機能を有する受信側のマシンが本発明を実施する装置になる。汎用プロセッサ上に実装するとき、このプログラムコードは、プロセッサと結び付き、本発明の機能を起動するように動作する固有の装置が提供される。加えて、本発明に関連して使用する任意の記憶技術は常にハードウェアとソフトウェアの組合せでよい。
様々な図の好ましい実施形態と共に本発明を説明したが、本発明から逸脱することなく、他の類似の実施形態を使用することができ、あるいは本発明と同じ機能を実施するために記載の実施形態に修正や追加を行うことができることを理解されたい。さらに、特に無線ネットワーク装置の数が引き続き増加しているので、ハンドヘルド装置のオペレーティングシステム、およびアプリケーション特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されることを強調しておく。したがって、本発明はどの単一の実施形態にも限定すべきではなく、添付の特許請求の範囲による幅と範囲において解釈すべきである。
本発明の諸態様を実施することができる例示的コンピューティング環境を示すブロック図である。 サーバコンピュータと、ネットワークと、ユーザコンピュータと、その他のコンピュータとの間の関係の一例を示す機能図である。 本発明の一実施形態による遅延ロックを示す流れ図である。 本発明の一実施形態による遅延ロックを示す流れ図である。
符号の説明
100 コンピューティングシステム環境
110 コンピュータシステム
120 処理装置
121 システムバス
130 システムメモリ
131 読取り専用メモリ(ROM)
132 ランダムアクセスメモリ(RAM)
133 基本入出力システム(BIOS)
134、144 オペレーティングシステム
135、145 アプリケーションプログラム
136、146 他のプログラムモジュール
137、147 プログラムデータ
140、150 インターフェース
141 ハードディスクドライブ
151 磁気ディスクドライブ
152 磁気ディスク
155 光ディスクドライブ
156 光ディスク
160 ユーザ入力インターフェース
161 ポインティングデバイス
162 キーボード
170 ネットワークインターフェース/アダプタ
171 LAN
172 モデム
173 WAN
180 リモートコンピュータ
181 メモリ記憶装置
182 グラフィックインターフェース
184 グラフィックス処理装置(GPU)
185 リモートアプリケーションプログラム
186 ビデオメモリ
190 ビデオインターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
200 サーバコンピュータ
210 ファイル
220 ネットワーク
230 ユーザコンピュータ
240 アプリケーション

Claims (36)

  1. 開かれるファイルのロックを遅延させる方法であって、
    前記ファイルを開く要求を受け取るステップと、
    前記ファイルを読み取るために開くステップと、
    編集発生イベントが発生したことを判定するステップと、
    前記ファイルにロックをかけるステップと
    を備えたことを特徴とする方法。
  2. 前記ファイルを開くステップは、前記ファイルを読取り専用モードで開くステップを含み、前記ロックをかけるステップは、前記ユーザについて読取り/書込みモードを変更するステップを含むことを特徴とする請求項1に記載の方法。
  3. 前記編集発生イベントが発生したことを判定するステップは、前記ファイルに対する変更を受け取るステップを含むことを特徴とする請求項1に記載の方法。
  4. 前記編集発生イベントが発生したことを判定するステップは、前記ファイルを編集する要求をユーザから受け取るステップを含むことを特徴とする請求項1に記載の方法。
  5. 前記編集発生イベントが発生したことを判定するステップは、予め定められた期間、ユーザが前記ファイルをオープンにしていることについての判定を含むことを特徴とする請求項1に記載の方法。
  6. 前記ファイルを開くステップは、前記ファイルのユーザコピーを作成するステップを含むことを特徴とする請求項1に記載の方法。
  7. 前記ファイルはサーバコンピュータ上に配置され、ユーザはユーザコンピュータを使用しており、前記サーバコンピュータと前記ユーザコンピュータは動作可能に接続され、前記ファイルのユーザコピーは前記ユーザコンピュータに対してローカルであることを特徴とする請求項6に記載の方法。
  8. 前記ファイルにロックをかけるステップは、
    前記ユーザコピーが作成されてから前記ファイルが変更されたか否かを判定するステップと、
    前記ファイルが変更された場合、前記ファイルにロックをかけるステップと
    を含むことを特徴とする請求項6に記載の方法。
  9. 前記ファイルが変更されたか否かを判定するステップは、前記サーバコンピュータ上の現在のバージョンのファイルのバージョン情報を、前記ユーザコピーのバージョン情報と比較するステップを含むことを特徴とする請求項8に記載の方法。
  10. 所定のバージョンの前記ファイルのバージョン情報は、前記所定のバージョンに対する最後の変更時に関する情報を含むことを特徴とする請求項9に記載の方法。
  11. 前記ファイルにロックをかけるステップは、
    前記ファイルが変更された場合、1つまたは複数の不一致解決の選択肢を前記ユーザに提供するステップをさらに含むことを特徴とする請求項8に記載の方法。
  12. 前記不一致解決の選択肢は、前記ファイルのユーザコピーを保存する選択肢を含むことを特徴とする請求項8に記載の方法。
  13. 前記不一致解決の選択肢は、前記サーバコンピュータ上の前記ファイルの現在のバージョンを取り出す選択肢を含むことを特徴とする請求項8に記載の方法。
  14. 請求項1に記載の方法を実行することを特徴とする、オペレーティングシステムの少なくとも1つ、複数のコンピュータ実行可能命令が格納されたコンピュータ読取可能媒体、コプロセッシング装置、コンピューティング装置、およびコンピュータ実行可能命令を搬送する被変調データ信号。
  15. 動作可能に接続されたサーバにファイルを要求するコンピュータシステムであって、
    サーバコンピュータ上のファイルを開く要求を受け取る入力モジュールと、
    前記ファイルを読取り専用モードで開くための、前記ユーザ入力モジュールに動作可能に接続された読取り専用モードオープニングモジュールと、
    編集が発生したか否かを判定する編集発生表示モジュールと、
    前記ファイルを読取り書込みモードで開くための、前記編集発生表示モジュールに動作可能に接続された読取り書込みモードオープニングモジュールと、
    前記ファイルを使用するための、前記読取り専用モードオープニングモジュールおよび前記読取り書込みモードオープニングモジュールに動作可能に接続されたファイル使用モジュールと
    を備えたことを特徴とするコンピュータシステム。
  16. 前記動作可能な接続は、ネットワーク接続を含むことを特徴とする請求項15に記載のシステム。
  17. 前記編集発生表示モジュールは、前記ユーザが前記ファイルに対する変更を要求したか否かを判定することを特徴とする請求項15に記載のシステム。
  18. 前記編集発生表示モジュールは、前記ファイルを編集用に使用可能とすることを前記ユーザが要求したか否かを判定することを特徴とする請求項15に記載のシステム。
  19. 前記編集発生表示モジュールは、予め定められた期間の間、前記ユーザが前記ファイルをオープンにしているか否かを判定することを特徴とする請求項15に記載のシステム。
  20. 前記ファイルのユーザコピーを格納するための記憶装置をさらに備えたことを特徴とする請求項15に記載のシステム。
  21. 前記ファイルのユーザコピーが前記サーバ上の前記現在のバージョンのファイルのコピーであるか否かを検出するための、前記読取り書込みモードオープニングモジュールに動作可能に接続された変更検出モジュールをさらに備えたことを特徴とする請求項20に記載のシステム。
  22. 前記サーバ上の前記ファイルの現在のバージョンの変更が前記変更検出モジュールによって検出されなかった場合、前記読取り書込みモードオープニングモジュールは、前記ファイルを前記ユーザに対して読取り書込みモードで開くことを特徴とする請求項21に記載のシステム。
  23. 前記サーバ上のファイルの現在のバージョンの変化を検出する際に、前記ユーザに少なくとも1つの変更解決の選択肢を提示する変更解決モジュールをさらに備えることを特徴とする請求項21に記載のシステム。
  24. 前記不一致解決の選択肢は、前記ファイルの前記ユーザコピーを保存する選択肢を含むことを特徴とする請求項23に記載のシステム。
  25. 前記不一致解決の選択肢は、前記サーバコンピュータ上の前記現在のバージョンのファイルを取り出す選択肢を含むことを特徴とする請求項23に記載のシステム。
  26. 前記変更検出モジュールは、前記サーバコンピュータ上の前記現在のバージョンのファイルのバージョン情報を、前記ユーザコピーのバージョン情報と比較することを特徴とする請求項20に記載のシステム。
  27. 前記ファイルの所定のバージョンについての前記バージョン情報は、前記所定のバージョンに対する最後の変更時に関する情報を含むことを特徴とする請求項26に記載のシステム。
  28. リモートサーバ上のリモートファイルを使用する方法であって、
    ユーザからの前記リモートファイルのオープンを要求するとの表示の際、前記リモートサーバから前記現在のバージョンのリモートファイルのコピーを受け取るステップと、
    前記リモートファイルと同一のタイプのファイルと共に使用するように適合されたソフトウェアアプリケーションを使用して、前記ユーザに対して前記コピーを表示するステップと、
    前記ユーザからの前記リモートファイルの編集を意図するとの表示の際、他のユーザからの書き込みに対して前記リモートサーバ上のファイルをロックすることを要求するステップと
    を備えたことを特徴とする方法。
  29. 前記リモートファイルのオープンを要求するとのユーザからの表示は、前記ユーザがハイパーリンクをクリックすることを含むことを特徴とする請求項28に記載の方法。
  30. 前記ユーザが前記リモートファイルの編集を意図するとの表示は、前記アプリケーションにおけるの前記コピーに対する変更を受け取ることを含むことを特徴とする請求項28に記載の方法。
  31. 前記ユーザが前記リモートファイルの編集を意図するとの表示は、前記ユーザから前記アプリケーションにおいて前記コピーを編集する要求を受け取ることを含むことを特徴とする請求項28に記載の方法。
  32. 前記ユーザが前記リモートファイルの編集を意図するとの表示は、予め定められた期間、前記ユーザが前記コピーをオープンにしているとの判定を含むことを特徴とする請求項28に記載の方法。
  33. 前記他のユーザからの書き込みに対して前記リモートサーバ上のファイルをロックすることを要求するステップは、
    前記コピーが作成されて以降前記リモートファイルが変更されたか否かを判定するステップと、
    前記リモートファイルが変更された場合、他のユーザからの書き込みに対して前記リモートサーバ上のリモートファイルをロックすることを要求するステップと
    を含むことを特徴とする請求項28に記載の方法。
  34. 前記ファイルが変更されているか否かを判定するステップは、前記リモートサーバ上のリモートファイルのバージョン情報と、前記コピーのバージョン情報とを比較するステップを有することを特徴とする請求項33に記載の方法。
  35. 前記ユーザのためにロックをかけるステップは、
    前記リモートファイルが変更された場合、1つまたは複数の不一致解決の選択肢を前記ユーザに提供するステップをさらに含むことを特徴とする請求項33に記載の方法。
  36. 請求項28に記載の方法を実行することを特徴とする、オペレーティングシステムの少なくとも1つ、複数のコンピュータ実行可能命令が格納されたコンピュータ読取可能媒体、コプロセッシング装置、コンピューティング装置、およびコンピュータ実行可能命令を搬送する被変調データ信号。
JP2004055388A 2003-02-28 2004-02-27 編集時にサーバファイルのロックを遅延させる方法 Expired - Fee Related JP4455100B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/376,716 US8706760B2 (en) 2003-02-28 2003-02-28 Method to delay locking of server files on edit

Publications (2)

Publication Number Publication Date
JP2004265415A true JP2004265415A (ja) 2004-09-24
JP4455100B2 JP4455100B2 (ja) 2010-04-21

Family

ID=32771504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004055388A Expired - Fee Related JP4455100B2 (ja) 2003-02-28 2004-02-27 編集時にサーバファイルのロックを遅延させる方法

Country Status (19)

Country Link
US (3) US8706760B2 (ja)
EP (1) EP1452981A3 (ja)
JP (1) JP4455100B2 (ja)
KR (1) KR101024769B1 (ja)
CN (1) CN100386731C (ja)
AU (1) AU2004200458A1 (ja)
BR (1) BRPI0400358A (ja)
CA (1) CA2458247C (ja)
CO (1) CO5550076A1 (ja)
IL (1) IL160355A0 (ja)
MX (1) MXPA04001925A (ja)
MY (1) MY150936A (ja)
NO (1) NO332246B1 (ja)
NZ (1) NZ531281A (ja)
PL (1) PL365552A1 (ja)
RU (1) RU2344476C2 (ja)
SG (1) SG135020A1 (ja)
TW (1) TWI379193B (ja)
ZA (1) ZA200401309B (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006243883A (ja) * 2005-03-01 2006-09-14 Hitachi Information Technology Co Ltd 電子データファイル管理システム、管理方法及び管理プログラム
JP2007265135A (ja) * 2006-03-29 2007-10-11 Murata Mach Ltd データ管理サーバおよび通信システム
JPWO2007034858A1 (ja) * 2005-09-22 2009-03-26 株式会社ジャストシステム データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
US8069246B2 (en) 2007-12-28 2011-11-29 Murata Machinery, Ltd. Relay server and relay communication system including a relay group information registration unit, a shared resource information registration unit, and a control unit
US8296391B2 (en) 2008-09-05 2012-10-23 Murata Machinery, Ltd. Relay server, relay communication system, and communication apparatus
US8307100B2 (en) 2007-05-09 2012-11-06 Murata Machinery, Ltd. Relay server and relay communication system
US8316134B2 (en) 2006-10-11 2012-11-20 Murata Machinery, Ltd. File server device arranged in a local area network and being communicable with an external server arranged in a wide area network
US8321575B2 (en) 2007-12-27 2012-11-27 Murata Machinery, Ltd. Relay server and relay communication system
US8356116B2 (en) 2008-09-01 2013-01-15 Murata Machinery, Ltd. Relay server and relay communication system
US8443088B2 (en) 2006-10-11 2013-05-14 Murata Machinery, Ltd. File transfer server
US8472454B2 (en) 2006-09-12 2013-06-25 Murata Machinery, Ltd. Relay-server arranged to carry out communications between communication terminals on different LANS
US8499083B2 (en) 2006-03-29 2013-07-30 Murata Kikai Kabushiki Kaisha Relay device and communication system
US8606941B2 (en) 2007-05-02 2013-12-10 Murata Machinery, Ltd. Relay server and relay communication system
US8738788B2 (en) 2009-03-13 2014-05-27 Murata Machinery, Ltd. First relay server and second relay server
US8949419B2 (en) 2007-12-25 2015-02-03 Murata Machinery, Ltd. Synchronizing sharing servers
JP2019506643A (ja) * 2015-12-30 2019-03-07 ドロップボックス, インコーポレイテッド 共有コンテンツの制御転送

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US20040236752A1 (en) * 2003-05-19 2004-11-25 Keli Han Document sharing in a distributed server system
US20050091215A1 (en) * 2003-09-29 2005-04-28 Chandra Tushar D. Technique for provisioning storage for servers in an on-demand environment
US8135755B2 (en) 2005-06-29 2012-03-13 Microsoft Corporation Templates in a schema editor
US7716168B2 (en) 2005-06-29 2010-05-11 Microsoft Corporation Modifying table definitions within a database application
US7487548B1 (en) * 2004-04-21 2009-02-03 Symantec Corporation Granular access control method and system
CN100438416C (zh) * 2005-12-02 2008-11-26 无锡永中科技有限公司 一种实现文件协同处理的方法
US7743026B2 (en) * 2006-01-31 2010-06-22 Microsoft Corporation Redirection to local copies of server-based files
FR2912520B1 (fr) * 2007-02-13 2009-05-15 Stg Interactive Sa Procede de gestion de fichiers.
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
US8433693B2 (en) * 2007-04-02 2013-04-30 Microsoft Corporation Locking semantics for a storage system based on file types
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
CN102193927A (zh) * 2010-03-05 2011-09-21 新奥特(北京)视频技术有限公司 一种文稿系统中文稿编辑的控制方法及装置
WO2012051298A2 (en) * 2010-10-12 2012-04-19 Nasuni Corporation Versioned file system with sharing
US9542237B2 (en) * 2012-09-04 2017-01-10 Red Hat Israel, Ltd. Shared locking for storage centric exclusive locks
RU2526282C2 (ru) * 2012-09-21 2014-08-20 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
RU2577200C1 (ru) * 2014-10-31 2016-03-10 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ синхронизации доступа к разделяемым ресурсам вычислительной системы под управлением posix-совместимой ос и обнаружения и устранения повисших блокировок с использованием блокировочных файлов
US10108688B2 (en) 2015-12-22 2018-10-23 Dropbox, Inc. Managing content across discrete systems
GB2560010B (en) * 2017-02-24 2021-08-11 Sage Uk Ltd Data collaboration
CN110968563B (zh) * 2018-09-29 2023-11-17 华为技术有限公司 一种数据存储方法、元数据服务器及客户端
US11100053B2 (en) 2018-11-06 2021-08-24 Dropbox, Inc. Technologies for integrating cloud content items across platforms
CN114090503B (zh) * 2021-11-10 2024-06-14 中国航空工业集团公司雷华电子技术研究所 一种文件管理方法、系统、电子设备及其可读存储介质
US20230418624A1 (en) * 2022-06-24 2023-12-28 Microsoft Technology Licensing, Llc File opening optimization

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0340042A (ja) 1989-07-06 1991-02-20 Nec Corp 多重アクセス装置
US5799320A (en) * 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
EP0569605A1 (de) * 1992-05-06 1993-11-18 International Business Machines Corporation Verfahren zur Zugriffsverwaltung und -steuerung mehrerer Rechner auf gemeinsame Daten
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5689699A (en) * 1992-12-23 1997-11-18 International Business Machines Corporation Dynamic verification of authorization in retention management schemes for data processing systems
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
CA2165201C (en) 1993-06-15 2010-08-17 Wayne David Michaels Telecommunications system
GB9505939D0 (en) 1995-03-23 1995-05-10 Intelligence Quotient Int A method of operating a computer system
US5615373A (en) * 1993-08-26 1997-03-25 International Business Machines Corporation Data lock management in a distributed file server system determines variable lock lifetime in response to request to access data object
US5678040A (en) * 1993-10-29 1997-10-14 Motorola, Inc. Method for managing a hierarchical design transaction
JP3488500B2 (ja) 1994-02-07 2004-01-19 富士通株式会社 分散ファイルシステム
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
JPH0816553A (ja) * 1994-06-27 1996-01-19 Canon Inc 文書処理システム及び文書処理方法
US5628005A (en) * 1995-06-07 1997-05-06 Microsoft Corporation System and method for providing opportunistic file access in a network environment
FI98587C (fi) 1995-07-06 1997-07-10 Nokia Telecommunications Oy Järjestelmä pakettiverkon yhdistämiseksi digitaaliseen radioverkkoon
US5892954A (en) * 1995-07-07 1999-04-06 Sun Microsystems, Inc. Method and apparatus for refreshing file locks to minimize conflicting accesses to data files
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US5960173A (en) 1995-12-22 1999-09-28 Sun Microsystems, Inc. System and method enabling awareness of others working on similar tasks in a computer work environment
EP0972247B1 (en) * 1996-08-02 2004-03-17 Hewlett-Packard Company Method and apparatus for allowing distributed control of shared resources
US6151609A (en) * 1996-08-16 2000-11-21 Electronic Data Systems Corporation Remote editor system
US6134705A (en) * 1996-10-28 2000-10-17 Altera Corporation Generation of sub-netlists for use in incremental compilation
DE19647833B4 (de) 1996-11-19 2005-07-07 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur gleichzeitigen Funkübertragung digitaler Daten zwischen mehreren Teilnehmerstationen und einer Basisstation
US6021413A (en) 1997-04-01 2000-02-01 The University Of Illinois Board Of Trustees Application-directed variable-granularity caching and consistency management
US6081807A (en) * 1997-06-13 2000-06-27 Compaq Computer Corporation Method and apparatus for interfacing with a stateless network file system server
JPH1196209A (ja) 1997-09-24 1999-04-09 Oki Electric Ind Co Ltd 共有データベースの編集方法
US6094659A (en) * 1997-09-26 2000-07-25 3Com Corporation Web server for use in a LAN modem
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6067551A (en) * 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6801911B1 (en) * 1997-11-21 2004-10-05 International Business Machines Corporation Data processing system and method for accessing files
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US6073161A (en) * 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
US6393437B1 (en) * 1998-01-27 2002-05-21 Microsoft Corporation Web developer isolation techniques
US6405225B1 (en) * 1998-06-17 2002-06-11 Microsoft Corporation Integrating email functionality into a word processor by incorporating an email GUI within the word processor
JP2000181863A (ja) * 1998-12-14 2000-06-30 Dream Technologies Kk 排他制御を行うクライアントサーバシステム
US6393419B1 (en) * 1999-02-08 2002-05-21 Telefonaktiebolaget Lm Ericsson (Publ) Multipoint database synchronization protocol to avoid data corruption
US6343301B1 (en) * 1999-02-24 2002-01-29 Navigation Technologies Corp. Method and system for collecting data for updating a geographic database
JP2000305831A (ja) 1999-04-22 2000-11-02 Tadamitsu Ryu 分散環境におけるファイル管理の方法、システム。
CN1154054C (zh) * 1999-06-04 2004-06-16 网络装置公司 对不同文件锁定协议强制实施统一文件锁定的方法及文件服务器
US6529905B1 (en) * 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
JP2003521061A (ja) * 2000-01-25 2003-07-08 オートデスク,インコーポレイテッド インターネット上で建築図面へのアクセスを提供し、処理する方法および装置
US6535893B1 (en) * 2000-02-24 2003-03-18 International Business Machines Corporation Method for estimating the elapsed time required for a log apply process
US6289000B1 (en) 2000-05-19 2001-09-11 Intellon Corporation Frame control encoder/decoder for robust OFDM frame transmissions
CN1200369C (zh) 2000-06-16 2005-05-04 未来理想科技股份有限公司 客户机服务器系统、排他控制方法和数据同步方法
WO2002017115A2 (en) * 2000-08-21 2002-02-28 Thoughtslinger Corporation Simultaneous multi-user document editing system
US8719703B2 (en) * 2000-12-08 2014-05-06 Xerox Corporation Systems and methods for editing a web page
US7222291B2 (en) * 2000-12-29 2007-05-22 International Business Machines Corporation Method and system for importing HTML forms
US7107518B2 (en) * 2001-04-03 2006-09-12 Microsoft Corporation Automating a document review cycle
US7398323B1 (en) * 2001-09-19 2008-07-08 Juniper Networks, Inc. Configuring a network router
US7051031B2 (en) * 2001-10-09 2006-05-23 Sun Microsystems, Inc. Method, system, and program for managing accesses to data objects by multiple user programs over a network
US6708313B2 (en) * 2001-12-10 2004-03-16 Charles Pfeil Parallel electronic design automation: shared simultaneous editing
US20030225764A1 (en) * 2002-05-29 2003-12-04 Smith Keith W. Method and system for displaying data in a collaborative work environment
US6993713B2 (en) * 2002-06-06 2006-01-31 International Business Machines Corporation Web content management software utilizing a workspace aware JSP servlet
US20040068505A1 (en) * 2002-10-04 2004-04-08 Chung-I Lee System and method for synchronously editing a file on different client computers
US8706760B2 (en) * 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
US7602933B2 (en) 2004-09-28 2009-10-13 Westone Laboratories, Inc. Conformable ear piece and method of using and making same
US7897781B2 (en) * 2006-05-10 2011-03-01 Janssen Pharmaceutica Nv Cold menthol receptor-1 antagonists
US7926748B2 (en) 2008-03-10 2011-04-19 Illinois Tool Works Inc. Generator for air-powered electrostatically aided coating dispensing device
JP5010665B2 (ja) 2009-11-02 2012-08-29 株式会社東芝 営業支援システム

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006243883A (ja) * 2005-03-01 2006-09-14 Hitachi Information Technology Co Ltd 電子データファイル管理システム、管理方法及び管理プログラム
JPWO2007034858A1 (ja) * 2005-09-22 2009-03-26 株式会社ジャストシステム データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JP2007265135A (ja) * 2006-03-29 2007-10-11 Murata Mach Ltd データ管理サーバおよび通信システム
US8499083B2 (en) 2006-03-29 2013-07-30 Murata Kikai Kabushiki Kaisha Relay device and communication system
US8472454B2 (en) 2006-09-12 2013-06-25 Murata Machinery, Ltd. Relay-server arranged to carry out communications between communication terminals on different LANS
US8316134B2 (en) 2006-10-11 2012-11-20 Murata Machinery, Ltd. File server device arranged in a local area network and being communicable with an external server arranged in a wide area network
US8443088B2 (en) 2006-10-11 2013-05-14 Murata Machinery, Ltd. File transfer server
US8606941B2 (en) 2007-05-02 2013-12-10 Murata Machinery, Ltd. Relay server and relay communication system
US8307100B2 (en) 2007-05-09 2012-11-06 Murata Machinery, Ltd. Relay server and relay communication system
US8949419B2 (en) 2007-12-25 2015-02-03 Murata Machinery, Ltd. Synchronizing sharing servers
US8321575B2 (en) 2007-12-27 2012-11-27 Murata Machinery, Ltd. Relay server and relay communication system
US8069246B2 (en) 2007-12-28 2011-11-29 Murata Machinery, Ltd. Relay server and relay communication system including a relay group information registration unit, a shared resource information registration unit, and a control unit
US8356116B2 (en) 2008-09-01 2013-01-15 Murata Machinery, Ltd. Relay server and relay communication system
US8296391B2 (en) 2008-09-05 2012-10-23 Murata Machinery, Ltd. Relay server, relay communication system, and communication apparatus
US8738788B2 (en) 2009-03-13 2014-05-27 Murata Machinery, Ltd. First relay server and second relay server
JP2019506643A (ja) * 2015-12-30 2019-03-07 ドロップボックス, インコーポレイテッド 共有コンテンツの制御転送

Also Published As

Publication number Publication date
MXPA04001925A (es) 2005-04-25
CO5550076A1 (es) 2005-08-31
TW200506605A (en) 2005-02-16
KR101024769B1 (ko) 2011-03-24
TWI379193B (en) 2012-12-11
US20140229507A1 (en) 2014-08-14
SG135020A1 (en) 2007-09-28
CA2458247C (en) 2015-04-07
AU2004200458A1 (en) 2004-09-16
US20160171230A1 (en) 2016-06-16
JP4455100B2 (ja) 2010-04-21
RU2344476C2 (ru) 2009-01-20
ZA200401309B (en) 2005-11-30
IL160355A0 (en) 2004-07-25
MY150936A (en) 2014-03-14
US9280553B2 (en) 2016-03-08
CN100386731C (zh) 2008-05-07
NO20040830L (no) 2004-09-01
EP1452981A3 (en) 2005-02-09
US20040172395A1 (en) 2004-09-02
BRPI0400358A (pt) 2004-12-28
RU2004105882A (ru) 2005-08-10
US9594925B2 (en) 2017-03-14
KR20040077531A (ko) 2004-09-04
CN1525324A (zh) 2004-09-01
NZ531281A (en) 2005-07-29
EP1452981A2 (en) 2004-09-01
US8706760B2 (en) 2014-04-22
CA2458247A1 (en) 2004-08-28
NO332246B1 (no) 2012-08-06
PL365552A1 (en) 2004-09-06

Similar Documents

Publication Publication Date Title
JP4455100B2 (ja) 編集時にサーバファイルのロックを遅延させる方法
JP4643915B2 (ja) 複製ファイルの複数のファイル状態を管理する方法
US8516486B2 (en) Loading applications in non-designated environments
JP2912840B2 (ja) ファイル管理システム
US9705946B2 (en) Method to initiate server based collaboration on e-mail attachments
US10242181B2 (en) Isolating applications hosted by plug-in code
KR101099297B1 (ko) 전자파일의 제1 버전과 제2 버전을 동기화하기 위한 방법 및 컴퓨터 판독가능 기록 매체
US12079171B2 (en) Symbolic link based placeholders
US7496576B2 (en) Isolated access to named resources
TW200521676A (en) Method, system, and program for processing a file request
JP2006195968A (ja) ツリービューベースエディタでのインラインプロパティ編集のシステムおよび方法
US20070234359A1 (en) Isolation of application execution

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100129

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100203

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4455100

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees