Method and apparatus for providing attribute of collaboration system in operation system folder type file system
Abstract
Problem to be solved.To provide an attributes of a collaboration system in a folder type file system.
Solution.A conventional operating system folder type or directory based file system is implemented with, or enhanced to provide attributes of shared collaborative workspaces. In particular, the conventional file system is connected to either a server based or a distributed collaboration system, and the user interface of the operating system file system is augmented to allow it to control aspects of the collaboration system. Each folder or directory can be synchronized and treated as a "workspace" that can be viewed and shared with other users or groups of users. Folder can also be provided with "awareness" information that indicates collaborators that are present and those that are sharing the workspace.
Copyright (C)2005,JPO&NCIPI
Term
No projected expiry on record.
- Priority
- Filed
- Published
- Today
54 claims: 8 independent, 46 dependent
- 1Provides collaborative system information and services that allow multiple members to collaborate on shared folders in a folder-type file system that is part of an operating system that has a user interface. The method of including the collaboration interface in the operating system user interface (a) and the use of the collaboration system to display information about the members collaborating within the relevant scope of the shared folder. The step of using the collaboration interface (b), the step of determining the changes made in the folder-type file system (c), and informing other members of these changes through the collaboration system. Step (d) and the method comprising. ユーザインタフェースを有するオペレーション・システムの一部であるフォルダー式のファイル・システムにおいて共有されるフォルダーで複数のメンバーがコラボレーション的に作用し合うことを可能にするコラボレーション・システムの情報とサービスとを提供する方法であって、 オペレーション・システム・ユーザインタフェースにコラボレーション・インタフェースを含む工程(a)と、 前記コラボレーション・システムの使用によって、共有フォルダーの関連の範囲内でコラボレートするメンバーに関する情報を表示するために前記コラボレーション・インタフェースを使用する工程(b)と、 前記フォルダー式のファイル・システム内で行われた変更を決定する工程(c)と、 前記コラボレーション・システムを介して他のメンバーにこれらの変更を知らせる工程(d)と、を含む方法。
- 1312. The step (d) further comprises the step of maintaining information indicating whether or not each member in the shared folder has the contents of each synchronization file in the folder. the method of. 工程(d)は更に、共有フォルダー内に在る各メンバーに関して、そのメンバーが前記フォルダー内の各同期化ファイルの内容を持っているかどうかを示す情報を維持する工程を含む、請求項12に記載の方法。
- 27Provides collaborative system information and services that allow multiple members to collaborate on shared folders in a folder-type file system that is part of an operating system that has a user interface. A device for having a collaboration interface in the user interface and an interface for connecting the collaboration interface to the collaboration system in order to search for and display information about the member in the user interface. A device that includes a file synchronizer that determines changes made in the folder-type file system, and a document sharing engine that notifies the collaboration system of the changes. ユーザインタフェースを有するオペレーション・システムの一部であるフォルダー式のファイル・システムにおいて共有されるフォルダーで複数のメンバーがコラボレーション的に作用し合うことを可能にするコラボレーション・システムの情報とサービスとを提供する装置であって、 前記ユーザインタフェースにコラボレーション・インタフェースを有するための手段と、 前記ユーザインタフェース内の前記メンバーに関する情報を検索して表示するために前記コラボレーション・インタフェースを前記コラボレーション・システムに接続するインタフェースと、 前記フォルダー式のファイル・システムで行われた変更を決定するファイル・シンクロナイザと、 前記変更を前記コラボレーション・システムに知らせるドキュメント共有エンジンと、を含む装置。
- 32The interface further comprises a web service interface that allows the collaboration interface to interact with the collaboration system in order to invite one of the plurality of members to participate in the shared space. Item 31. 前記インタフェースは更に、前記複数のメンバーの一人を前記共有空間に参加するように勧誘するために前記コラボレーション・インタフェースが前記コラボレーション・システムと作用し合うことを可能にするウェブサービス・インタフェースを含む、請求項31に記載の装置。
- 3938. The document sharing engine further comprises means for each member in the shared space to maintain information indicating whether the member has the contents of each synchronization file in the shared space. The method described. 前記ドキュメント共有エンジンは、共有空間内に在る各メンバーに関して、そのメンバーが前記共有空間内の各同期化ファイルの内容を持っているかどうかを示す情報を維持する手段を更に含む、請求項38に記載の方法。
- 47The interface includes a web service interface that allows the collaboration interface to interact with the collaboration system to create a shared space and a means of notifying the file synchronizer of the changes. 27. The document sharing engine is located in the shared space, and the document sharing engine further includes means for receiving changes made to a file in the shared space. The device described. 前記インタフェースは共有空間を生成するために前記コラボレーション・インタフェースが前記コラボレーション・システムと作用し合うすることを可能にするウェブサービス・インタフェースと前記変更を前記ファイル・シンクロナイザに知らせる手段とを含んでおり、かつ、前記ドキュメント共有エンジンは前記共有空間内に配置され、また前記ドキュメント共有エンジンは前記共有空間内で、あるファイルに対して行われた変更を受け取る手段とを更に含んでいる、請求項27に記載の装置。
- 53Provides collaborative system information and services that allow multiple members to collaborate on shared folders in a folder-type file system that is part of an operating system that has a user interface. A computer program product that collaborates to display information about the program code for having a collaboration interface in the user interface and the members collaborating within the association of the shared folder through the use of the collaboration system. -Program code for using the interface, program code for determining changes made in the folder-type file system, and programs for notifying other members of the changes through the collaboration system. A computer program product, including a computer-usable medium having a computer-readable program code on it, with the code. ユーザインタフェースを有するオペレーション・システムの一部であるフォルダー式のファイル・システムにおいて共有されるフォルダーで複数のメンバーがコラボレーション的に作用し合うことを可能にするコラボレーション・システムの情報とサービスとを提供するコンピュータプログラム製品であって、 前記ユーザインタフェースにコラボレーション・インタフェースを有するためのプログラムコードと、 前記コラボレーション・システムの使用を介して、前記共有フォルダーの関連内でコラボレートするメンバーに関する情報を表示するためにコラボレーション・インタフェースを使用するためのプログラムコードと、 前記フォルダー式のファイル・システムで行われた変更を決定するためのプログラムコードと、 前記コラボレーション・システムを介して前記変更を他のメンバーに知らせるためのプログラムコードと、を有する、コンピュータ可読プログラムコードをその上に有するコンピュータ使用可能媒体を含む、コンピュータプログラム製品。
- 54Provides collaborative system information and services that allow multiple members to collaborate on shared folders in a folder-type file system that is part of an operating system that has a user interface. A computer data signal realized on a carrier for a member that collaborates within the association of the shared folder through the use of the collaboration system with the program code for having the collaboration interface in the user interface. Program code for using the collaboration interface to display information about, program code for determining changes made in the folder-type file system, and the changes made through the collaboration system. Computer data signals, including program code to inform other members. ユーザインタフェースを有するオペレーション・システムの一部であるフォルダー式のファイル・システムにおいて共有されるフォルダーで複数のメンバーがコラボレーション的に作用し合うことを可能にするコラボレーション・システムの情報とサービスとを提供するための、搬送波に実現されたコンピュータデータ信号であって、 前記ユーザインタフェースにコラボレーション・インタフェースを有するためのプログラムコードと、 前記コラボレーション・システムの使用を介して、前記共有フォルダーの関連内でコラボレートするメンバーに関する情報を表示するためにコラボレーション・インタフェースを使用するためのプログラムコードと、 前記フォルダー式のファイル・システムで行われた変更を決定するためのプログラムコードと、 前記コラボレーション・システムを介して前記変更を他のメンバーに知らせるためのプログラムコードと、を含むコンピュータデータ信号。
Independent claims8
110 paragraphs, as filed
The present invention relates to a collaboration system and a folder-type file system that is a part of a conventional operation system, and also relates to a method and an apparatus for giving attributes of the collaboration system in the folder-type file system.
Collaboration includes the ability of each member in a group of members called a "collaborator" to automatically send information to and receive information from other collaborators in that group. To facilitate such collaboration, various systems have been developed that allow such information to be transmitted between personal computer systems, including handheld radios, communication equipment and other communication equipment. It was. These devices are collectively referred to herein as "computers."
Computer-based collaboration may also occur locally between users connected to or working with a single computer or server. In other cases, collaboration may take place on a network, such as the Internet, where each user is located at a computer connected to the network. A server may be connected to the network. Several collaboration models are currently being realized as networked computer collaboration systems. One of these models is a client-server model in which all collaborators are connected to a central server over a network. The information generated by each collaborator is sent to a server on the network, which in turn sends that information to each of the other collaborators on this network. In one version of this system, data that is being modified collaboratively can be centrally stored on the server. Each collaborator who wants to modify the data then sends information to the server to make changes to the server data. The server modifies that copy of the data, and then synchronously or asynchronously provides all collaborators with information that represents a "view" of the modified data so that each collaborator can view the data locally. send.
In other cases, in a server-based system, in addition to the data copy maintained on the server, additional local data copies can be maintained on each collaborating computer. Each collaborator who wants to modify the data sends information to the server to make changes to the server data. The server modifies that copy of the data and then sends the command to all collaborators. Each collaborator uses this command to update its local data copy. This local data copy is then displayed locally. Examples of this model are Lotus Notes®, sold by IBM in Armonk, NY, and Exchange, sold by Microsoft in Redmond, Washington.
Another collaboration model is a "peer-to-peer" or "distributed" model in which a direct connection is established on the network between each of the collaborating computers. The information generated by each collaborator is then sent directly to each other collaborator. In such systems, collaborators communicate in a private "virtual" shared space created and maintained by the collaboration system.
Peer-to-peer collaboration systems do not require a central data repository because each collaborator has a local copy of the collaboratively modified data. Either a "push" or "pull" model can be used to modify the data. In the "push" model, the collaborators generate data change requests that are forwarded to each of the other collaborators. The incoming data change request is then used by each collaborator to modify its local data copy. In the "pull" model, one collaborator presents such changes when modifying local data and requesting it asynchronously. Other collaborators issue requests, retrieve and collect changes, and then modify these local data copies to reflect such changes. An example of this peer-to-peer model is the Kubi Client developed and sold by Kubi Software in Lincoln, Massachusetts, and the 100 Cummings Center Suite, detailed at http://www.groove.net. Groove Workspace collaboration system developed and sold by Groove Networks, Inc. at 535Q, Beverly, MA 019015 (Beverly, Massachusetts, Cummings Center Suite 535Q, 100, zip code 019015). See Patent Document 1.<patcit num="1"><text>U.S. Pat. No. 6,446,113 B1</text></patcit><patcit num="2"><text>U.S. Patent Application No. 10 / 631,206</text></patcit><patcit num="3"><text>U.S. Patent Application No. 10 / 615,281</text></patcit><patcit num="4"><text>U.S. Patent Application No. 09 / 571,851</text></patcit>
<p> However, all of these latter collaboration systems are application programs that work in concert with the operating systems that exist on all traditional computer systems. Since these collaboration systems are purely application programs (email applications, groupware applications, or browser-based applications, etc.), they allow each collaborator to learn a user interface that is specific to a particular program. Has the drawback of requiring. Many users are reluctant to learn new controls and features associated with such interfaces.</p><p> Modern operating systems typically include a file system composed of folders or directories. These folders or directories can be explicit user-specified collections of files, or "virtual" collections in which files are constructed based on queries or search criteria. This file system and associated foldering or directory system (hereinafter referred to as the "folder-type" file system) has the advantage of being recognized by the user as part of the operating system. Therefore, if the user has this operating system, the user is already familiar with this built-in file system and will learn an additional set of commands and functions to operate the system. No need.</p><p> Such a folder-type file system is shown in Figure 1, which is a display of the file system from the operating system of Windows® XP Pro sold by Microsoft Corporation in Redmond, Washington. Screen shot 100. This display shows various folders 102 that can have files or additional subfolders. This display also includes a task pane 104 that presents the user with various tasks 106 that can be performed on the folder 102. These tasks include renaming folders, moving folders, copying folders, and so on. Yet another section 110 allows the user to navigate (navigate) to other areas of the computer such as local disks, "My Documents" folders, and other selected locations. Further section 112 provides details about the selected folder (Folder D is selected and shown in Figure 1), such as the date the file was last modified.</p><p> However, because the collaboration system is a separate application program, these files are the normal operating system file system in order to perform collaborative work on the files that are part of the folder file system. Must be moved or copied between and the collaboration application program. Such movement or copying of files, typically between a regular file system directory and a collaboration system, can be tedious and error-prone. Moreover, such duplication of information can result in overuse of storage and can cause confusion for the user as multiple copies can be out of sync with each other when modified.</p><p> It would be nice if these files could be shared collaboratively without having to move them from the file system to the collaboration system. For this reason, in many folder-based file systems, folders or directories can be shared with others by treating them as "remote folders" or "remote on-board volumes." For example, in Figure 1, for the folder, select a folder such as Folder D, then from Task Pane Section 106, "Share this. You can share it by selecting the "folder (share this folder)" task 108. To select a shared task, screen photo 200 opens the dialog box shown in Figure 2. This dialog box allows various shared parameters to be set. For example, radio button 202 can be used to select whether a folder should be shared. Text boxes 204, 206 allow the user to enter the name and comment of the folder share. Radio button 208 allows a user to control the number of other users allowed to share the selected folder. Finally, additional buttons 210, 212 set parameters that allow the user to set sharing permissions and allow the selected folder to be accessed even when a user is not connected to the network. Make things possible. When the selected folder is designated as shared, a "hand" overlay is applied to the icon representing the folder, as shown in 114 in Figure 1.</p><p> Working with folders in this way allows sharing of data within folders, but users cannot easily reconcile their actions with how they use the data, and are therefore given by the collaboration system described above. It is not possible to "collaborate" efficiently in the same way as. Folder sharing, for example, does not give any indication of the user who made changes to a folder or file, nor does it identify that user (it does not notify other users when changes are made). Moreover, file sharing systems do not provide any mechanism to indicate who is currently accessing a folder or who is looking at the files in that folder. In addition, file sharing does not allow the user to remember comments about the file, instead all communication between collaborators must be done via the file. Collaboration systems, in contrast, provide a mechanism for collaborators to communicate "out of band" and yet "in context." In practice, the collaboration system allows collaborators not only to modify shared files, but also to communicate with them within the context of the folder that contains these files themselves.</p>
<p> According to the principles of the present invention, traditional operating system folder or directory-based file systems are extended to include or provide attributes for shared collaboration workspaces. In particular, a normal file system is connected to either a server-based or distributed collaboration system, and the operating system file system user interface allows it to control the mode of the collaboration system. Designed to do, extend, otherwise augment. Each folder or directory can be treated as a "workspace" that can be seen and shared by other users or groups of users, and each folder exists and shares that work area. It has "awareness" information that indicates the collaborator.</p><p> In one embodiment, the solicitation mechanism allows a user in one work area to solicit another user or computer to join the work area. This solicitation mechanism allows the person accepting the solicitation to choose a new workspace location on their computer or merge that workspace with an existing folder on their computer. You can also.</p><p>In other embodiments, different users may also be given specific permissions to perform operations such as adding, updating, deleting, and so on.</p><p> In yet another embodiment, the display of the operating system folder may be enhanced by an area that displays meta information about the shared folder or work area. Such meta information includes modification logs (eg the user who made the change and the date the change was made) and workspace attributes (eg workspace name, last synchronization time, last time the collaborator was online). Time, etc.) can be included.</p><p> In other embodiments, a "chat" or real-time conversation mechanism is provided so that members can communicate immediately.</p><p> Other embodiments can have a cognitive mechanism that indicates whether the member is online and available. This recognition mechanism can also show if another user currently has a folder open in a window. The recognition mechanism can also indicate whether other members are actively working on any of the files in the folder.</p><p> Yet another embodiment can also have a notification mechanism that alerts members when the monitored object (target) changes. Such notification mechanisms can alert the user using alert mechanisms such as the taskbar or sidebar of the operating system, or by other mechanisms such as voice alerts, email alerts, or immediate message alerts.</p><p> Other embodiments may also have a commenting mechanism that allows members to leave permanent comments about the file.</p><p> Yet another embodiment can have a check-in / check-out mechanism so that one member can save the file to prevent or discourage other members from modifying the file. Such systems also have a version control mechanism that allows a large number of update mismatches to be handled and a "read / unread / corrected / uncorrected" mechanism that indicates whether a file has been read or modified. It is possible to have it.</p><p> In yet another embodiment, an "asymmetric file service" is provided in a distributed collaboration system in which a copy of the file is stored locally. Asymmetric file services are a mechanism that allows collaborators to choose to store only files that are of interest to them locally. Subsetting collaboration data is often useful, especially in distributed collaboration systems where all users store a local copy of the collaboration data. For example, if a user collaborates on a library of 1,000 files in a distributed collaboration system, it may be wasteful or unnecessary for all collaborators to have their own local copy of each file. is there. Instead, each collaborator can choose to have a copy of only the files that interest him. Then, in any respect, other collaborators can request a copy of the files they don't have. The collaboration system will then retrieve the file from any suitable other collaborator that has a copy of the file.</p>
The overall architecture of the system 300 of the present invention is shown in Figure 3. For purposes of explanation in the discussion below, the operating system that can be used in the present invention (hereinafter commonly referred to as the "OS") is the aforementioned Windows XP Pro operating system and the collaboration that can be used in the present invention. The system is Groove mentioned above. Workspace collaboration system. However, peers will understand that other operating systems can be modified in the manner discussed below to achieve the results provided by the present invention, and that other collaborative systems can also be used in the present invention. Let's go. Furthermore, although this discussion focuses on modifications to existing operating systems below, it is clear to peers that new operating systems incorporating the features of the present invention can be designed in a direct way. Will. This new operating system is not only a user interface designed to provide collaboration services so that the operating system and collaboration software can function as an integrated program, but also the collaboration software itself. Could also be included.
The Windows XP Pro operating system has a built-in folder file system as described above for Figures 1 and 2. As used here, the term "folder" is dynamically assembled either by explicit user behavior or by a database-like query that selects a set of objects in response to a user-specified selection statement. Or it means one set of persistent objects. As used herein, the term "file" means a set of persistent data that has relevant metadata such as name, last modified date, or customer attributes specified by the user. Finally, the term "user" used below includes a person, computer, or agent operating on behalf of a user. Windows XP The Pro operating system includes a "Windows shell" program with operational system functionality and operational system user interfaces. This shell program can be customized by the user. In particular, Windows shell programs have a function and user interface for a folder-type file system, which will be called "OS file system" in the future.
According to the principles of the present invention, a Windows shell program can be extended by the Windows shell extension 306. The Windows shell extension provides the main user interface for the present invention in the following manner. This is done by receiving commands from the Windows shell file system 302 and by issuing commands to the Windows shell file system 302, as schematically indicated by arrows 342 and 344, respectively. -Extend the shell. It also communicates with the collaboration system as schematically illustrated by arrow 305 in the manner described below.
Generally, the Groove Workspace collaboration system described above is a decentralized collaboration system, and collaborative computers are connected to each other by a network such as the Internet. Although various networks can be used in such a system, the following discussion assumes that the network is the Internet. In this system, the collaborative computer system constitutes multiple peer units, and communication via the Internet can be directed from one peer unit to another without any intermediary. Each peer unit can be implemented as a personal computer or other form of networkable device such as a set-top box or handheld device. The collaboration system is implemented on the peer unit by a client program called a "transceiver" that receives and processes communications from other peer units.
In the Groove Workspace collaboration system, a program called "activity" resides on each collaborative computer system, communication device, or other network-connectable device. This activity allows shared and focused tasks, such as "chat", playing games, or business applications, to be performed in collaboration with other distant collaborators. This collaboration involves collaboration and mutual activities between individuals and small groups in a private shared space. Each shared space is a embodiment of one or more activities that can be run on each of the collaborative computers of the members of this shared space.
In this system, participants or members in a shared space access the system by opening an "account" associated with an "endpoint." Since individual collaborators can access the system through more than one device, the endpoint is defined as a unique combination of one individual and one device. Each endpoint stores an individual local copy of the shared space data.
Each activity contains one or more tools that each induces to interact with the collaborator, for example by receiving mouse and keyboard events, and invokes a data change request in response to these interactions. To do. These data change requests are used locally and sent to other members of the shared space. Each activity also includes one or more data modification engines to maintain a local copy of shared space data according to a common data model, separate from these tools. This data model is, for example, activity-specific and preferably the same across all members of the shared space. Each collaborative computer also examines locally generated data change requests and data change requests received from other shared space members to coordinate the execution of that local data change request with other data change requests. And includes a dynamics manager that tells the data change engine to make the changes requested for a local copy of the data.
However, the Windows shell file system 302 does not incorporate a collaboration system transceiver, so it interacts directly with the collaboration program in the same way that users can interact using the collaboration system user interface. You can't interact with each other. According to the principles of the present invention, the Windows shell file system 302 and the Groove Workspace collaboration system interact with event notifications and the window shell extension 306.
The file system RAMP program 304 is part of the collaboration system code and detects file changes in the OS file system 302. It communicates with the file synchronizer 308 as schematically indicated by arrow 340 to inform the file synchronizer 308 that these changes need to be synchronized. In particular, the Windows XP Pro operating system has a system event notification system that clients can subscribe to to receive notifications of selected events. These events include changes in the OS file system such as editing, adding, and deleting folders and files. To receive these notifications, the client must register with the notification system for the selected type of event. At startup of the collaboration system, the file system RAMP program 304 is called so that it can register with the OS event notification system for file notifications indicating changes in files and file contents in the Windows shell file system 302.
The File Synchronizer 308 makes any changes to a file in the Windows shell file system 302 to a copy of that file stored in the collaboration system, and vice versa. It is a software program that guarantees that. The file system RAMP program 304 receives a notification from the Windows shell file system 302 when a file is modified, but this notification does not indicate which file has been modified or what changes have been made. Therefore, the file synchronizer 308 stores a "snapshot" of the Windows shell file system 302 in the collaboration system datastore. This snapshot has enough information to describe the state of each synchronization file at the time of the last successful synchronization. The format and content of this snapshot depends on the operating system used. For example, this snapshot is a set of records (for each file) that each record has the directory structure and the information needed to tell if a file has changed since the snapshot was last taken. It consists of one record), but the contents of the file may be omitted. This information includes the size of the file, the date it was last modified, the non-data "extended" file attributes, and their values (such as those used by the IBM OS / 2 operating system). These values may include flexible schemas, or "non-data forks" (such as MacOS operating systems) or inode information (for Unix® operating systems), or these. It is also called "metadata" in operational systems that further handle files as semi-structured database items with hash values calculated from the file contents.
When the file synchronizer 308 is notified by the file system RAMP304 of the changes in the Windows shell file system 302, the file synchronizer 308 tells us what changes have been made to the Windows shell file system and what. You can examine the snapshot information to determine if the file (s) have changed. The file synchronizer 308 receives input from the Windows shell extension 306 (as schematically indicated by arrow 334) and the OS file RAMP program 304 as schematically indicated by arrow 336.
The file synchronizer 308 also interacts with the document sharing engine associated with each shared virtual space, as schematically indicated by arrows 326, 328, 330, 332. Figure 3 shows the four shared spaces 315, 314, 318, and 322 generated by the collaboration system. Each of these spaces has its own associated document sharing engines 312, 316, 320, 324. Each document sharing engine stores a "file descriptor" for each file in the synchronization folder. File descriptors consist of file metadata (such as filename, size, and modification time) and are used to track files in the collaboration system.
While the collaboration system is running, each engine also sends a data change request, including a file descriptor, to each collaborator in its shared space to keep all collaborators in sync. Each document sharing engine also holds the aforementioned file system snapshots that the file synchronizer needs to detect file changes. Depending on how the modified files are distributed, the document sharing engine can also use a copy in the document sharing engine as a comparison point when the file is edited (as determined by the file synchronizer). As such, you can keep a copy of the contents of the synchronization file in the engine. Then, instead of the entire file contents, only the actual changes are sent to the other collaborators (via binary diff updates as discussed below).
The collaboration system will also be provided with a file sharing program 303. In the case of the Groove Workspace collaboration system, the file sharing program 303 can be a modified Files Tool that is part of a regular Groove Workspace system. This fixed Files The Tool is associated with a shared space and discloses user interface options for enabling or disabling folder synchronization within the tool. Such user interface options are available via the Tools menu for the folder of interest, the Properties dialog box button, or both. This option makes folder synchronization mode operational and inoperable in the appropriate document sharing engine associated with the shared space. This option is a tool for (1) setting the identity policy (identification policy) defined for the identity (identification information) currently used by the user and (2) the synchronization mode defined by the document sharing engine. It can be operational or inoperable based on inspection with permission. For user identity and identity policies and their implementation, see Raymond E. Ozzie, George Moromisato, Nimisha Asthagiri, Wei Dai, "METHOD AND APPARATUS FOR MANAGING AND DISPLAYING CONTACT AUTHENTICATION IN A PEER-TO-PEER COLLABORATION SYTEM" filed by Alexei Evdokimov, Mark Cote, and Adam Weiss on July 31, 2003. It is discussed in more detail in the co-pending Patent Document 2 entitled Control and Display Methods and Devices), the entire application of which is incorporated by reference.
The process of synchronizing folders in the Windows shell file system 302 with folders in the collaboration system is illustrated by the flowchart formed when Figures 4A and 4B are placed together. This process starts at step 400 and proceeds to step 402 where the Windows shell extension 306 displays a "Synchronize" button.
Especially for Windows XP Pro operating systems, the Windows Shell Extension 306 is a "band object" that produces an "explore band" graphic display in the Windows Shell File System user interface. Band objects and how to use them to extend the Windows XP Explore user interface can be achieved using: http://www.microsoft.com/msj/defaultframe.asp?page=0msj / 1199 / bandobj / bandobj.htm & nav = / msj / 1199 / newnav.htm and http://msdn.microsoft.com/library/default.asp?url=0/library/en-us/shellcc/platform/Shell/programmersguide / shell You can read more about it on the adv / bands.asp) Microsoft website. In addition, Shell Extension 306 can also extend the Windows XP Explorer button bar. In this exemplary embodiment, the Windows Explorer button bar adds a "Synchronize" button with a band object created when the collaboration system is installed on the computer running the operating system. Is modified to.
FIG. 5A is a portion 500 of a screen shot of a Windows Explorer screen display showing a button bar 502 and a list of folders 512 that allow folders to be selected for synchronization. According to the principles of the invention, the button bar is modified by the Windows shell extension 306 to add an exemplary Synchronize button 506.
In Figure 5A, the user has selected a folder named "Project X", but the Synchronize button 506 says "Explorer Band display shows normal File and Folder Tasks pane 504. It is "off". When the user clicks the Synchronize button 506, the task pane 504 is replaced with the "Synchronize pane" and the Synchronize button 506 becomes "pushed in". This operation follows the same user interface conventions as the Search button 508 and Folders button 510 on the regular button bar 502.
The user then uses the Windows shell extension 306 to enable synchronization in step 404. FIG. 5B shows a screen shot 500 of a Windows Explorer screen display showing an exemplary Synchronize pane 514 that appears when the Synchronize button 506 is selected. The elements of FIG. 5B (and the corresponding elements of FIGS. 7-12) corresponding to the elements of FIG. 5A are given the corresponding numeric designations. For example, the button bar 502 of FIG. 5A corresponds to the button bar 502 of FIG. 5B. The corresponding elements of Figure 5B discussed in connection with Figure 5A will not be discussed further in connection with Figure 5B. In FIG. 5B, the task pane 504 shown in FIG. 5A has been replaced by the Synchronize pane 514, and the Synchronize button 506 is "pushed in".
If the currently selected folder is not currently synchronized, the Synchronize pane 514 is a small initial pane with an introductory text explaining how synchronization works. When this is selected, the Learn more about synchronization link 518 opens a help window (and a potentially help browser window). The selection of the "Enable synchronization" button 516 sets up the selected folder in Listing 512 for synchronization.
If the collaboration system is not currently running at this point, it will be started as specified in step 406. As mentioned earlier, the Windows Shell Extension 306 does not have access to the transceivers needed to communicate directly with the Groove collaboration system, so this collaborates using the web services interface disclosed by this collaboration system. -Access the system. Groove Workspace collaboration system software in particular is Simple Object Access Modified to include the Protocol (Simple Object Access Protocol) (SOAP) interface. With these interfaces, the collaboration access method uses the SOAP language to communicate with this collaboration client even if other programs such as the Windows shell extension 306 do not have a transceiver that is part of the collaboration system software. It is disclosed in standard SOAP format so that it can interact and extract collaboration data.
FIG. 6 is a schematic block diagram showing the internal structure of the SOAP engine 602 on an exemplary collaboration client 600 that processes SOAP messages, such as messages generated by the Windows shell extension 306. This SOAP engine includes a SOAP surrogate component 604, a subscription manager 606 and various services 608-614. SOAP engine 602 registers with the communication manager and is interested in all incoming HTTP communications. When the communication manager removes any data from these communications in this way, the SOAP enveloped data is passed to the SOAP engine 602 for processing.
SOAP surrogate component 604 is a component that translates SOAP RPC requests into method calls on the target COM interface. Component 604 is initialized by the system service on the collaboration client and listens in anticipation of HTTP communications coming from the local SOAP server. When the communication is received, the SOAP surrogate component 604 reads the header from the SOAP request. The SOAP surrogate component 604 then determines which service to call and the target object from the SOAP header.
This surrogate component 604 then exemplifies a service and, if it implements some interface, arbitrarily calls several methods on that service to determine more detailed relationships about that method. To do. The surrogate component then converts all inbound parameters from the SOAP representation to the COM (VARIANT) representation. The selected service then processes the data to generate a response. The surrogate component 604 converts any return value back into a SOAP response envelope. The SOAP surrogate component 604 then returns this envelope to the local SOAP server. In particular, the SOAP engine 602 returns the result in the SOAP response envelope after processing the request to a specific queue in the SOAP server owned by the SOAP client based on the information from the original SOAP request.
The Collaboration Client 600, which can be accessed via SOAP requests, lists 11 services. These are account service 608, calendar service 610, contact service 612, discussion service 614, event service 616, file (base 64) service 618, file (DIME) service 620, message service 622, free space. Includes (space) service 624, tool service 626, and transceiver service 628. Each service implements and supports up to four methods, including Create (), Read (), Update (), and Delete () methods. The Read () method searches for a single record or a list of multiple records. The Create () method creates a new record. The Update () method modifies an existing record, and the Delete () method deletes an existing record. Each method is responsible for updating or returning collaboration data. In addition, the service can provide a similar method of working on the data items managed by this service.
Account service 608 provides information about all accounts to the local collaboration device and is a starting point for hierarchical access to all web services available on that device. Calendar service 610 provides information about events in the collaboration calendar tool, allowing SOAP clients to generate new events and delete or modify existing events. The contact service 612 provides information about collaborative contacts stored for identity. Discussion service 614 provides information about entries in the discussion tool, allowing SOAP clients to generate new entries and delete or modify existing entries. Event service 616 provides a mechanism for SOAP clients to search for web service events.
File (Base64) Service 618 provides information about files in File Tools, allowing SOAP clients to read the contents of files, generate new files, and delete or modify existing files. .. File (DIME) service 620 works the same way and supports the same method as file (base64) service 618, except that it uses the SOAP DIME protocol to transfer file contents. Message service 622 provides a mechanism for remote SOAP clients to retrieve messages sent by collaboration clients but not received by SOAP clients due to their expiration date. Free space service 624 provides information about the shared space owned by the specified identity. Tool service 626 provides information about the tools in the shared space.
Transceiver service 628 allows an external application to open a workspace window on the local device and point the user at a specified URL, or allow the user to send an immediate message or shared space solicitation. The V-card service 630 provides additional information such as an email address and full name for an identity, which will typically be found on the V-card. Finally, Subscription Manager 606 provides a subscription service that allows remote endpoints to subscribe to any data model supported for notification.
The behavior of the web services interface is as follows: http://www.groove.net/pdf/gws features-v25.pdf and http://www.groove.net/pdf/wp-groove web services. METHOD AND APPARATUS FOR, filed on July 8, 2003 by Weidong Wang, John Burkhardt and Jack Ozzie at the pdf and http://www.groove.net/pdf/datasheet-gws gdk.pdf URLs. It is discussed in detail in Patent Document 3 entitled PROVIDING WEB SERVICES IN A COLLABORATIVE COMPUTING SYSTEM. The entire content of this application is incorporated herein by reference in its entirety.
In one embodiment, the web service interface and transceiver service are used to automatically activate the collaboration system without further user intervention. In other cases, the user may be asked via a dialog box if the collaboration system should be started.
Even if the collaboration system is already running, it may still need to get some initialization information. Groove mentioned above Some decentralized collaboration systems, such as the Workspace collaboration system, are account-based so that accounts must be determined for folder synchronization. This can be determined in a direct way. First, the Windows shell extension uses the account service via a web service to determine which account is logged in. For example, if one and only one account is logged in, that account will be used. In other cases, if only one account exists on the user's machine, that account will be used (log in if necessary). If more than one account exists, the user may be prompted by a dialog box or other mechanism to select one account. In addition, if the selected account has multiple identities about it, additional prompts will prompt the user to select one identity (identification), with additional dialog boxes. Made using.
It is also possible to perform a safety check at this point to warn the user if they are trying to enable synchronization for folders that do not benefit from synchronization. For example, folders on removable media or on remote drives cannot be synchronized. Similarly, folders that are already part of the Collaboration System folder hierarchy or part of the Windows XP Pro system directory cannot be synchronized. Finally, a folder cannot be synced if the user does not have write permission to the folder, or if the folder has already been synced by another collaboration system account.
In other cases, if the folder with synchronization is open and the collaboration system is not running, a task pane may be displayed prompting the user to run the collaboration application. Similarly, if the collaboration system is running but the account that enabled synchronization is not logged in, another task pane will appear prompting the user to log in (if that account has a password). And if the login process cannot be automated).
Assuming that the "Project X" folder has not yet been synchronized, Enable according to the principles of the invention. When the synchronization button 516 is selected, the system synchronizes the collaboration system to the Windows shell file system folder. In particular, returning to FIG. 4, in step 408 the Windows shell extension creates a new shared workspace (eg 312, shared space 1 in FIG. 3). Because the account and identity (identification) are known, the Windows shell extension uses the collaboration system's web services interface and transceiver service to provide the collaboration system with the specified account and identity (identification). Request to create a new file sharing workspace for. This workspace is created from a pre-determined template and includes a file tool, a document sharing engine 316, a chat tool (not shown in Figure 3), and a comment tool (not shown in Figure 3). Including. The workspace template labels this workspace 312 as a special file-sharing workspace. Also, when the workspace is created, the file path of the folder to be synchronized within the Windows shell file system 302 is passed to the collaboration system as a parameter.
Step 410 then adds a mapping that associates the folder file path with the URL of the document sharing engine 316 to the datastore associated with the new workspace. This folder / file path is also then given to the document sharing engine 316.
Then, in step 412, identification information about the document sharing engine (such as the GUID and the account URL mapped to the document sharing engine in the account data store) is stored in the Windows shell file system. This can be done, for example, by adding a special file to the collaboration initialization directory (in the case of the Groove Workspace collaboration system mentioned above, this directory is "Groove.ini"), or by writing to the desktop initialization file (desktop.ini). , Or by adding a mapping table to the operating system registry.
The process then proceeds to step 418 via the off-page connectors (page connectors) 414, 416. In step 418, after the workspace is created, synchronization is triggered by putting the file descriptor in the document sharing engine (step 418) and initializing the file synchronizer snapshot (step 422). File. At this point, there is a consistent view across the Windows shell file system, the document sharing engine, and the file synchronizer, and this process ends at step 424.
Windows Shell Extension 306 then displays a workspace user interface for synchronized folders. The full-size Synchronize pane, which provides information specifically about synchronized folders, replaces the regular File and Folder Task pane. The Synchronize pane is created by one of the band objects mentioned above and provides shared space information and Windows Explorer Band options for synchronized file system folders. The Windows shell extension 306 uses web services to access the shared space and its document sharing engine (as schematically indicated by arrow 307), and then uses the free space service to list members and members. Search for information about file sharing workspaces such as status.
Figure 7 shows the full-size Synchronize pane 720. Similar to Figures 5A and 5B, the elements of Figure 7 that correspond to the elements of Figures 5A and 5B have been given the corresponding numeric designations and will not be discussed further with respect to Figure 7. For example, element 702 corresponds to element 502 in FIGS. 5A and 5B. Synchronize pane 720 displays shared space information and options for synchronized OS files, systems, and folders (Project X in Figure 8).
Since folders can be synchronized with many shared spaces, the Synchronize pane 720 contains a combo box 722 with a list of synchronized shared space names. The user selects the appropriate shared space name in the combo box 722 to display the relevant shared space information and options in the rest of the Synchronize pane 720.
In one embodiment, the shared space information in the Synchronize pane 720 can include state information about the shared space selected in the combo box 722. This state information appears below the shared space combo box 722. As shown in FIG. 7, this information now includes a member list 724 containing member names, and may also include icons representing members. The shared space information can also include an authentication icon 726 for each member. The authentication icon can be generated in the manner described in more detail in the above-mentioned simultaneous pending Patent Document 2. This shared space information can also include a list of devices that share space with respect to the current identity (identification information) (not shown in FIG. 7). This device list can include the name of each device. Figure 7 shows a single member. This member corresponds to the user who created the file sharing workspace.
Depending on the collaboration system, member list 724 can also display member permissions. For example, the Groove Workspace collaboration system described above allows the creator of a shared space to assign a "role" to each of its members. These roles specify whether members can create, delete, or modify files in this space. Option buttons can be provided to open a dialog box that allows roles or permissions to be assigned to each member through the collaboration system, as described below.
The member list can also display additional icons or otherwise indicate whether the listed members are online and available. This "recognition" mechanism can also show if the listed members have an open folder in the current window. This recognition mechanism can also indicate if other members are actively working on any of the files in that folder. The recognition mechanism can be realized by retrieving member information from the collaboration system via the web service interface and the free space service 624.
Two option buttons 728 and 730 are provided to allow the user to solicit new endpoints into the shared space. Button 728 opens a modal dialog box (not shown in Figure 7) that provides options for synchronizing with people or for recruiting new members to this shared space. Button 728 invites new members to the currently selected shared space in combo box 722. The second button, 730 (Synchronize with computer), is another modal that provides an option to solicit other devices for the current identity to the selected shared space. Open a dialog box (not shown in Figure 7). This latter button also invites the device to the currently selected shared space in the combo box 722.
According to the principles of the present invention, solicitations can be generated and sent from the OS file system user interface in the same way that ordinary solicitations are generated and sent in a collaboration system. Regarding how solicitations are sent and received in the Groove Workspace collaboration system mentioned above, METHOD AND APPARATUS FOR MANAGING SECURE COLLABORATIVE TRANSACTIONS by Walter E. Tuvell and Nimisha Asthagiri, filed on May 12, 2000. Refer to Patent Document 4 entitled (Methods and Devices for Managing Transactions). This content is incorporated herein by reference. In particular, the Windows Shell Extension 306 uses transceiver services via the web services interface to issue solicitations in the manner of a normal collaboration system. This behavior allows the solicitation to follow all of the usual protocols in the process of a collaboration system.
In the latter Groove Workspace system, after a solicitation is issued, the solicitor must accept the solicitation in order to participate in the shared space. After the solicitation is sent, the solicited person appears in the member list. Certain mechanisms can be used to indicate that the solicitor has not yet accepted the solicitation. For example, the user interface could display the word "Pending" in parentheses after the solicited name.
According to the Groove Workspace Collaboration System Protocol mentioned above, solicitors generally receive solicitation notices via email notifications. The process that occurs when accepting a solicitation is shown in the flowchart illustrated in Figure 8. This process begins at step 800 and proceeds to step 802, where the solicitor generally accepts the solicitation by clicking the accept solicitation button. As described in step 804, the solicitor then navigates (navigate) into the space for the first time using the link forwarded by the solicited member or using the collaboration system user interface. .. If the collaboration system is not running on the solicited system at this time, it will be started at this time.
In step 806, the collaboration system then looks up the type of workspace and searches the registration table to determine the type of application to launch to see the workspace in the collaboration system. Typically this latter application would be a default workspace viewer in a collaboration system. The collaboration system then examines this work area and checks for Windows shell file system paths for folders on the invitee's computer to synchronize. Since this space is new, no route has been set yet, and the collaboration system prompts the solicitor to specify where the new synchronized folder can be stored in the OS file system on the solicitor's computer. To do this, display a dialog box similar to the one shown in Figure 9. This dialog box allows the invitee to create a new location for a folder / workspace or merge a new folder / workspace into an existing folder.
As shown in FIG. 9, the dialog box 900 displays a directory list 902 that allows the solicitor to select an existing location to merge the new workspace. You can also create a new folder for a new workspace by using the new folder command button 904. Once a folder is selected or a new folder is created, the solicitor can accept the action with the "OK" command button 906 or abandon the selection with the "Cancel" command button 908. Once the location is selected, the directory is initialized and the collaboration system launches the Windows shell file system and navigates to the specified folder.
In other cases, if the new shared space was already associated with a folder, the file sharing system 303 would simply run the Windows shell file system by running the program explorer.exe. Navigate to a folder.
The collaboration system then orders the file synchronizer 308 to synchronize the folders specified in step 808. File Synchronizer 308 checks the new workspace with the document sharing engine and puts three in the synchronized folder "Project X" entitled "Detail of Kevlar Blades", "Inner Mechanism" and "Weed Basket Design". Determines that the files exist, that the specified folder does not have these files, and that there are no snapshots for these files. Therefore, these files must be created.
In a server-based collaboration system where all files are stored on the server, the files to be synchronized will already be available to the user. However, in server-based collaboration systems that use local data copy and distributed collaboration systems that provide asymmetric file services as described above, the files do not exist on the local datastore and are from a suitable source. Must be downloaded to the local data store. In the case of server-based systems, this source would be the local datastores of other collaborators.
According to one aspect of the invention, the file can be downloaded at this time, but can also be downloaded at other times or as requested by the user. Returning to Figure 7, the Settings and Options link 732 allows the user to set the options selected by replacing the Synchronize pane 720 with a new task pane that may be similar to the task pane 1040 in Figure 10. To. In task pane 1040, the Download Settings radio button control 1042 controls when synchronization occurs and what is synchronized when synchronization occurs. Synchronization generally occurs when changes are made to nearly any of the synchronization files. In one embodiment, the synchronization is asynchronous and there may be a small suppression timer that ensures that the synchronization does not occur very often.
In particular, file data downloads are controlled by download settings that can be selected by radio button 1042. The download settings are (1) always download a new file, (2) if the file size is less than the selected kilobytes (if the selected kilobytes can fit in the text box 944) the new file There can be three cases: (3) downloading a new file manually as specified by the user. In one embodiment, the download settings apply to the entire folder. By default, the setting for radio button 1042 can be "Downroad new files manually".
If the download setting says that the download of the file is postponed later, then that file represents a target file that has a small file on the OS file system that contains the information needed to find the target file. Represented as a "stub" file, much like a Windows shortcut (.lnk file). The stub file is represented in the user interface by the same icon as the target file, but can have some sort of overlay to indicate that it is a stub file in a manner similar to the hand overlay shown in Figure 1.
Assuming that the files will not be downloaded when the new synchronization folder is initialized, in step 810 the file synchronizer 308 will generate 3 stub files to represent 3 files in the synchronization space. .. Each of these stub files is tied to Windows Shell Extension 306 so that Windows Shell Extension 306 runs when the file is opened. In step 812, the file synchronizer 308 creates three snapshots of these three stub files in the new directory.
Finally, in step 814, the Windows shell file system 302 sees the new stub file along with the Synchonize pane, which details the new workspace and the members who recruited the solicitor. Updated by extension 306. The process then ends at step 816.
In one embodiment, the user can download the target file associated with the stub file by double-clicking on the stub file icon. Then a menu with appropriate actions will appear. This menu may include actions such as "Download" (default action) and "Download From". The Download From option is used in distributed collaboration systems and displays a pop-up menu listing the endpoints from which the target file can be retrieved. Also, when a stub file is selected, the Synchronize pane can indicate the area where the user should start the download.
In Figure 10, the Change security settings link 1046 opens a dialog box (not shown in Figure 10) that lets the user set roles and permissions for the workspace. The Change notification settings link 1048 opens a dialog box (not shown in Figure 10) that lets the user set the notification level (high, medium, low, etc.). The New synchronization group link 1050 is a dialog box that lets the user create a new workspace in the same folder or any folder in the current synchronization workspace (not shown in Figure 10). )open. Finally, "End "synchronization" link 1052 terminates synchronization. Selecting link 1052 allows a user to leave the space (become unsolicited), remove the space from the current device, or shut down the space for everyone. Open the box. The selected option is applied or abandoned by selecting the appropriate command button 1054 or 1056. Selecting either Button 1054 or 1056 closes the Options pane 1040 and restores the Synchronize pane 720 (Figure 7).
The Synchronize pane 720 also includes a "chat" section 734 that can be extended as shown in Figure 11. The Chat pane 1150 includes a combo box 1152 that allows the user to select the online members involved in the chat. Another area, 1154, is provided to allow the user to type in a chat message. The chat function is realized by the Windows shell extension 306, which provides a chat service by sequentially using the web service interface and the transceiver function of the collaboration system.
Returning to Figure 7, when a synchronized file is selected in file list 712, a new section dedicated to the tasks available for that file is added to the Synchronize pane 720. Figure 12 shows an example of this new section. The tasks shown in Figure 12 rely on file selection and generally include operations on files that make sense with respect to synchronization.
For example, a file upload button 1262 and a file download button 1263 can be provided. The upload button 1262 is only operational when one or more non-stub files (files whose contents are stored in the local datastore) are selected from the file list 1212. The upload button allows the user to "push" the selected file contents to a specified endpoint (s) in one or more of the synchronized shared spaces. When this button is selected, a pop-up menu will appear that allows the user to select the endpoint to which the file will be pushed.
The download button 1263 is only operational when one or more stub files are selected from the file list 1216. Download button 1263 triggers (triggers) an fetch request for the contents of the selected stub file. This request is sent to each endpoint across all synchronization spaces for the specified file system folder.
In either case, at some point the user / solicitor either double-clicks the file or selects a file in the list and then uses the File Tasks pane to download the file. Will download the file. The Windows shell extension 306 is called as described above to access the collaboration system through the web service interface. It retrieves files using a file tool in shared space. As the file is being downloaded, the Download pane 1370, as shown in Figure 13, appears in the Synchronize pane 1320. The Downroad pane 1370 displays the status of the download, for example using the progress bar 1372 or other means. The "Cancel" button 1374 allows the user to cancel the download. Download pane 1370 always applies to the selected file. If no selection exists and some files are being downloaded, in one embodiment the download pane will display a statement such as "Downroading 3 files" instead of the progress bar 1372. It may be displayed. If a large number of files are selected and all of these files are downloaded stub files, a similar statement may be displayed. The information in this pane is provided by a Windows shell extension that sequentially uses file tools in shared space to obtain the required information (via a web service interface).
When the file arrives, the stub file that represents the actual file is replaced with the actual file, and the file system snapshot indicates that the file has been updated and the contents of the file have changed.
Returning to Figure 12, some additional tasks and actions are possible. The Comments for this file link 1264 opens the comments pane (not shown in Figure 12). The number in parentheses following this link 1264 indicates the number of comments about the selected file. This functionality is also achieved by the Windows shell extension by using the services of the collaboration system through the web services interface. "Who has this file? (Who owns this file?) Link 1266 shows a list of all members in the space, along with a column that specifies whether a given member has a copy of the selected file. Open a dialog box (not shown in Figure 12). If a member does not have a copy, the upload button described above causes the user to "push" the file to that member. In another embodiment, instructions may be added to the latter dialog box to indicate whether the user has ever opened (ie read) the selected file. This functionality is provided by the Windows Shell Extension 306, which accesses the document sharing engine 312 through the web services interface.
Once a folder is synced, the folder icon that appears in the OS file system user interface display that represents the file indicates that the folder is synced through the collaboration system. An icon overlay is given. This icon overlay can be similar to the "hand" overlay 114 (Figure 1) displayed by the Windows XP Pro file system when folders are shared over the network. The Sync Folder Icon Overlay is provided by the Icon Overlay Shell extension, which is only available on Windows 2000 and later versions. See below for more information on icon overlay shell extensions: http://msdn.microsoft.com/msdnmag/issues/0300/w2kui/default.aspx
The Windows Explorer Details view displays a column of information about each file in the file system. In one embodiment, the sync folder displays extended column information for each file (download status, download progress, etc.). Column extensions are provided by the column handler shell extension, which is only available on Windows 2000 and later versions. See below for more information on column handler shell extensions: http://msdn.microsoft.com/msdnmag/issues/0300/w2kui/default.aspx
It is also possible to display extended information in "info tips" about the contents of the sync folder. This extended information can include the status and progress of the download for the synced file. This infotip extension is provided by the infotip shell extension, which is only available on Windows 2000 and later versions. See below for more information on column handler shell extensions: http://msdn.microsoft.com/msdnmag/issues/0300/w2kui/default.aspx
In another embodiment, the context menu for the stub file can provide an option to download the relevant file contents. When the file contents are downloaded, the stub file is upgraded to the required type of file. Context menu options are provided by the context menu shell extension. See below for more information on context menu shell extensions: http://msdn.microsoft.com/library/default.asp?url=0/library/en-us/shellcc/platform/shell/programmersguide/shell int / shellint extending / extensionhandlers / contextmenuhandlers.asp
In yet another embodiment, the properties dialog box for the synchronization folder can include additional tabs that contain additional information about the collaboration system. This information can include, for example, folder permissions for the synchronized shared space and shared information for the synchronized shared space (member list, device list, etc.). Each tab has a combo box for selecting the synchronized shared space used to display permissions and shared information. The Property Sheet Shell Extension Handler provides extension tabs in the Property dialog box for synchronized folders. The above information is only available when the user is logged on locally to the collaboration system. When logged off otherwise, these tabs have place folder text indicating that the user must be logged on to the collaboration system to retrieve the information. See below for more information on property sheet handlers: http://msdn.microsoft.com/library/default.asp?url=0/library/en-us/shellcc/platform/shell/programmersguide/shell int /shell int extending / extensionhandlers /propsheethandlers.asp
Returning to FIG. 3, the document sharing engines 312, 316, 320, 324 are associated with the shared spaces 310, 314, 318, 322 as described above. Each document sharing engine stores shared file information and file contents. By default, this information is stored in the collaboration system storage. Each document sharing engine, such as the document sharing engine 312, communicates with the file synchronizer 308 to manage the files in the synchronization folder. The document sharing engine 312 will be discussed in detail below, but it should be understood that all document sharing engines work in virtually the same way. To support folder synchronization, the Document Sharing Engine 312 provides the following information: folder download settings per endpoint, file download settings per endpoint, synchronization mode properties, and Memorize special version processing for binary differential dissemination support (discussed below).
The document sharing engine 312 provides an asymmetric file service via a global folder / file download setting that specifies when and when files are downloaded. These settings are discussed above with respect to "Settings and options link". Initially, the contents of the synced file may be sent manually or automatically according to the download settings described above and via a file transfer service with a collaboration system as described above. The file contents are then sent to all endpoints in the shared space via a data change request.
Once the initial download is complete, the file with the downloaded contents will always be in automatic download mode. Downloaded files are never overdue under these conditions. Therefore, after the download of the target file contents is finished on the stub file, the resulting file will be in automatic download mode for future updates, even if the folder download setting allows you to specify that the download is manual. To use. In addition, files in auto download mode will remain in auto download mode after the initial download, even if the folder download setting is later changed to "manual download". Due to these constraints, the file download settings must be maintained for each endpoint, and for consistency the folder download settings are also maintained for each endpoint. Newly created files and folders inherit the download settings of any parent folder.
Endpoint download settings are disseminated to all shared space members via data change requests. These members will automatically send new file content updates to those members in automatic download mode using the disseminated download settings. The disseminated download settings for all endpoints, especially for a particular file, are automatic with file descriptor information to target these endpoints in manual mode, and with file descriptors and file contents. Inspected to target these endpoints in mode.
The document sharing engine 312 maintains and persists file system synchronization mode properties that are relevant only to that engine. This file synchronization mode property has two values, that is, file system synchronization operation is possible and file system synchronization operation is not possible. By default, file system synchronization is disabled and the folder contents are stored in the collaboration system storage. In response to file content changes, the document sharing engine 312 requests data changes to either the OS file system (via the file synchronizer 308) or the collaboration system storage based on the file system synchronization mode. Set a goal. The engine uses the File Synchronizer 308 to export the folder contents to the specified OS file system folder, especially when it is enabled for folders that have file system synchronization. When file system synchronization is disabled, the engine uses the file synchronizer 308 to download the folder contents to the collaboration system storage. As mentioned above, in a distributed collaboration system, the file content that must be downloaded to the collaborator can be present at any endpoint across the synchronized shared space. In this way, each document sharing engine must be prepared to handle the receipt of file contents from the file download request invoked by the file synchronizer 308. The document sharing engine 312 has a policy of enabling folder synchronization within that engine. This policy allows shared space managers to advise members not to synchronize files in their own file system.
In one embodiment, the document sharing engine 312 provides support for disseminating file content changes using binary differences. This support allows the document sharing engine to keep the old version of the file contents as the base version for generating binary differences for the dissemination of file changes and for restoring the file contents version from the incoming binary differences. Need that.
Binary difference dissemination support for synchronized files requires version mirroring within the collaboration system storage. Since this mirroring consumes additional disk space, the document sharing engine 312 uses techniques to minimize the degree of file version mirroring. These techniques include delaying the mirroring of synchronized file system file versions until the initial update of the file contents. The initial update to the file ensures that the new file contents are stored not only in the OS file system but also in the collaboration system. The file contents for all subsequent updates are then stored in the collaboration system storage, but only the latest file contents are represented in the OS file system. The first update for each file cannot be disseminated as a binary diff because the previous file content version is not currently available in the collaboration system storage. However, subsequent file changes will be disseminated as binary differences. The collaboration system storage keeps a history of file contents until the file contents are purged through a normal purge event.
Binary diff support can be disabled via local-only settings on folders and files. When binary delta support is disabled, the document sharing engine 312 does not store older file versions in collaboration system storage.
File Synchronizer 308 is responsible for maintaining file system synchronization between the OS file system and the synchronized "site" of the collaboration system in shared space. The synchronization process consists of (1) inconsistent changes across the file system folder and the collaboration system synchronization "site" (document sharing engine) and (2) the collaboration system synchronized to the same file system folder. Several scenarios including permission mismatch between "sites", (3) processing of stub files across collaboration system synchronization "sites", and (4) numerous collaboration system synchronization "sites" To process.
In particular, OS file system folders can be synchronized with a number of collaborative system "sites", each with its own set of members. For example, a single folder can be synchronized with two different groups of people at the same time. File Synchronizer 308 synchronizes the OS file system folder by maintaining a mapping between the OS file system folder and the unique address for the synchronized collaboration system "site". Associate with the collaboration system "site". The design of the file synchronizer is to ensure that the results of synchronization (including the handling of matches) are consistent and deterministic across many "sites". Without this consistency, it would be impossible to prevent a synchronization loop in which the generation of match files within one "site" produces additional matches within the associated "site".
File Synchronizer 308 supports automatic and manual synchronization of changes between the synchronization file system folder and the collaboration system "site". In automatic synchronization mode, changes to a file require that they be synchronized when the change occurs. Manual synchronization mode requires reconciling changes that have accumulated across various synchronization locations (OS file system and collaboration system "site") when file synchronization is requested by the user. ..
During operation, the file synchronizer first detects file system updates made between the collaboration system site and the OS file system. This is done by comparing the current state of the collaboration system site with the current state of the OS file system to the file system snapshots maintained within the document sharing engine 312. Then any match between multiple file system match operations must be resolved. The solution procedure is typically carried out by an algorithm. Any remaining match may require user input. The usual synchronization techniques and algorithms for resolving matches can be found at http://www.cs.indiana.edu/pub/techreports/TR507.html, Indiana University CSCI Technical report # dated April 22, 1998. "What is a File" by S. Balasubramaniam and BC Pierce of 507 A paper entitled "Synchronizer?" And N. of the 2001 Foundations of Software Engineering at http://www.eecs.harvard.edu/~nr/pubs/sync.pdf. It is discussed in detail in a paper entitled "An Algebraic Approach to File Synchronization" by Ramsey and E. Csirmaz. These treatises are incorporated by reference in their entirety.
Once the file synchronizer 308 determines that the file system has changed, the file synchronizer 308 passes the changes to the document sharing engine in the shared workspace that then disseminates the changes. If the file has been edited, the document sharing engine can disseminate the entire updated file content, or to the file by comparing the current file content with a copy of the content it maintains. It is also possible to determine the changes made and disseminate only the differences.
The steps involved in processing folder changes that occur in a shared space, such as shared space 1 (310 in FIG. 3), are shown in FIG. 14A. This process begins at step 1400 and proceeds to step 1402 where changes are made to the synchronized folder or its contents in shared space 1 (310). This change may be a file edit, add or delete file, or may be made by another computer, such as a user or server. This change is disseminated to the computers of all members of the shared space through the normal mechanism of the collaboration system as described in step 1404. In step 1406, when the document sharing engine 312 of a one-member computer in shared space 1 (310) receives a change, the document sharing engine 312 communicates with the file synchronizer 308 as indicated by arrow 326. Then, in step 1408, the file synchronizer 308 controls the Windows shell file system 302 to make that change, as indicated by arrow 338. Changes made in shared space 1 (310) in this way are now automatically reflected in the Windows shell file system. The process then ends at step 1410.
Figure 14B shows a similar process in which a user modifies a file on the OS file system. This process begins at step 1412 and proceeds to step 1414 where the file system RAMP304 detects the change and communicates with the file synchronizer 308. The file synchronizer 308 then uses the snapshot in step 1416 to determine which files need synchronization. Once the file synchronizer decides which changes need to be made, it communicates with the document sharing engine in the shared space associated with the sync folder (eg, document sharing engine 312) and makes this change as described in step 1418. Disseminate. Once shared space 1 (310) receives the change, it will disseminate the change in step 1420 using the normal mechanism of the collaboration system. Thus all members of the shared space will receive the change. The process then ends in step 1422.
As mentioned above, files with no content are called stub files and are only maintained and synchronized between the source collaboration system "site" and the OS file system folder. The stub file is not synchronized with the non-originating collaboration system "site". The stub file can be upgraded to a content file by downloading the file content, and upon upgrade the file synchronizer 308 transfers the new content file to the non-source collaboration system "Site". Thus, the file synchronizer 308 is not required to forward the retrieval request made from the non-source collaboration system "site" to the source collaboration system "site".
In other cases, the content file can be downgraded to a stub file. After the downgrade, future content changes to the file will no longer be synchronized across all shared spaces / tools synchronized to that folder. As the edits are processed in each of the synchronized spaces / tools, the contents of the file diverge between these synchronized spaces / tools. Therefore, this downgrade may require the creation of a separate stub file for each shared space / tool synchronized to its parent folder. In this way, each stub file can be avoided from being synchronized with the non-source collaboration system "site".
File Synchronizer 308 also handles a match between the synchronized OS file system folder and the collaboration system "site". In particular file synchronizer 308 is associated with each change made to the synchronization file and time that are unique version identifier and last modified put. The file synchronizer 308 then keeps track of the existing version identifier / latest modification time for the files at each synchronization location. When changes to a file arrive from a particular synchronization location, File Synchronizer 308 looks up the base version identifier / latest modification time information for that file, which is the latest known version identifier / across all synchronization locations. The matching condition can be determined by determining whether the time is behind the latest correction time. Below are some common matching scenarios: File Edit (Replace) / File Edit (Replace) Match File Edit / File Delete Match File Add / Parent Folder Delete Match Add Folder / Parent Folder Delete Match
File Synchronizer 308 can use a naming convention for matching files / folders that does not reveal confidential information about other shared spaces that sync to the same folder.
In addition, permission mismatch scenarios can occur across collaboration system "sites" that are synchronized to the same OS file system folder. When the synchronization file system folder permission is too restrictive to support the collaboration system "site" permission, the file synchronizer 308 can no longer synchronize the OS file system folder. In this case, the user is warned that the file system folder permissions need to be less restrictive in order to continue proper synchronization.
Below are some permission discrepancies between collaboration system "sites" synced to the same file system folder and an exemplary file synchronizer solution for these scenarios.
Edit Permission / Edit Permission Conflict can be caused by an edit permission / edit denial mismatch in the following ways: Collaboration system "Site" A has edit permission Collaboration system "Site" B has edit permission Edits that you do not have are made on either collaboration system "Site" A or the synchronized OS file system folder Remote edits reach collaboration system "Site" B, but these edits are not permitted Cannot be synchronized via collaboration system "Site" B
In this case, File Synchronizer 308 generates a conflict when it detects a discrepancy between the base version identifier / latest modification time of collaboration system "Site" B and the latest synchronization version identifier / latest modification time for this file. To do.
Another conflict can be caused by a file (folder) add permission / file (folder) add disallow mismatch in the following way: Collaboration system "Site" A has file (folder) add permission Collaboration System "Site" B does not have permission to add files (folders) Files (folders) were added in the previous step before being added to either collaboration system "Site" A or the synchronized file system folder. (Folder) cannot be synchronized via collaboration system "Site" B Collaboration system "Site" B receives permission to add files
In this case, File Synchronizer 308 needs to synchronize the collaboration system "Site" B with the newly added files (folders).
File (folder) delete permission / file deletion disapproval mismatch can cause further conflicts: Collaboration system "Site" A has file (folder) deletion permission Collaboration system "Site" B Does not have file (folder) deletion permission Files (folders) are deleted by either the collaboration system "Site" A or the synchronized file system.
In this case, for the deleted file, the file synchronizer puts a stub file in place of the deleted file to satisfy the collaboration system "Site" B permission. The file synchronizer 308 then adds this folder back to the file system folder and collaboration system "site" A to satisfy collaboration system "site" B with respect to this deleted file.
A software embodiment of the above embodiment is a set of computer instructions fixed on a tangible medium such as a computer readable medium, such as a diskette, CD-ROM, ROM memory or fixed disk, or a modem or other interface device on the medium. It can include a set of computer instructions that can be transmitted to a computer system via. The medium can be a tangible medium including, but not limited to, an optical or analog communication line, or can be realized by a wireless method including, but not limited to, microwave, infrared and other transmission methods. It may also be the internet. This series of computer instructions embodies all or part of the functions described herein with respect to the present invention. Those skilled in the art will recognize that such computer instructions can be written in a number of programming languages for many computer architectures or operating systems. In addition, such instructions can be stored using any current or future memory technology, including but not limited to semiconductor, magnetic, optical, and other memory devices, or optical, infrared, microwave, and others. It can be transmitted using any current or future communication technology, including but not limited to the transmission technology of. Such computer program products can be distributed as ancillary printed or electronic documents, eg, removable media with shrinkwrap software, or can be preloaded by a computer system, eg, on a system ROM or fixed disk, or It can also be distributed over a network, for example on the Internet or the Worldwide Web, from a server or electronic bulletin board.
Although exemplary embodiments of the invention have been disclosed, it is in the art that various modifications and modifications can be made to achieve some of the advantages of the invention without departing from the spirit and scope of the invention. It will be obvious to those who are familiar with it. For example, it will be apparent to those who are reasonably familiar with the art that in other embodiments different protocols and conversion processes than those shown herein can be performed. Other aspects, such as a particular process flow and sequence of steps illustrated, as well as other modifications to the ideas of the invention are intended to be covered by the appended claims.
The aforementioned and additional advantages of the present invention can be better understood by reference to the above description in connection with the accompanying drawings below.
<figref num="1">FIG. 1 is a screen shot of a screen display taken from a conventional operating system file system.</figref><figref num="2">Figure 2 is a screen shot of a dialog box that allows the user to set shared parameters on a traditional file system.</figref><figref num="3">FIG. 3 is a schematic block diagram showing the overall architecture of a conventional file system connected to a collaboration system and extended by the principles of the present invention.</figref><figref num="4">FIG. 4A, when placed together, forms a flow chart showing the steps of an exemplary process for file synchronization in an exemplary collaboration system with files from an operating folder file system. FIG. 4B, when placed together, forms a flow chart showing the steps of an exemplary process for file synchronization in an exemplary collaboration system with files from an operating folder file system.</figref><figref num="5">FIG. 5A is a screen shot of a screen display taken from a conventional operating system file system modified according to the principles of the invention to add a file sync button. FIG. 5B is a screen shot of a screen display taken from a conventional operating system file system modified according to the principles of the invention to add an explorer band with file synchronization options.</figref><figref num="6">FIG. 6 is a schematic block diagram showing the internal structure of the SOAP engine on an exemplary collaboration client.</figref><figref num="7">Figure 7 shows a screen display taken from a conventional operating system file system modified according to the principles of the invention to add a Synchronize pane with a collaborator solicitation option to the Sync Explorer band. It is a screen shot.</figref><figref num="8">FIG. 8 is a flow chart showing steps in an exemplary process in which files are synchronized when a solicitor accepts a solicitation.</figref><figref num="9">FIG. 9 is a screen shot of a dialog box screen display that allows the solicited person to select a location for the solicited folder work area.</figref><figref num="10">FIG. 10 is a screen shot of the Settings and Options pane that is displayed when the user selects the "Settings and Options" link 732 shown in FIG.</figref><figref num="11">FIG. 11 is a screen shot of the chat pane displayed when the user selects the Chat selection 734 shown in FIG.</figref><figref num="12">FIG. 12 is a screen shot of the File Tasks pane that is displayed when the user selects a file or folder in the file list 712 shown in FIG.</figref><figref num="13">FIG. 13 is a screen shot of the file download pane displayed when the user selects the file download selection 1262 shown in FIG.</figref><figref num="14">FIG. 14A is a flow chart showing steps in an exemplary process for synchronizing changes made within a collaboration system to an OS file system. FIG. 14B is a flow chart showing steps in an exemplary process for synchronizing changes made within the OS file system to files in the collaboration system.</figref>
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8838721B2 | Cited by | United States of America | Applicant |
| JP2009527054A | Cited by | Japan | Search report |
| US9251163B2 | Cited by | United States of America | Applicant |
| KR20190116540A | Cited by | Republic of Korea | Search report |
| US11038973B2 | Cited by | United States of America | Applicant |
| JP2012523596A | Cited by | Japan | Search report |
| US11222162B2 | Cited by | United States of America | Applicant |
| KR20140117421A | Cited by | Republic of Korea | Search report |
| JP2015505627A | Cited by | Japan | Search report |
| JP2016522941A | Cited by | Japan | Search report |
| JP2014510314A | Cited by | Japan | Examiner |
| US10922426B2 | Cited by | United States of America | Applicant |
| US8745489B2 | Cited by | United States of America | Applicant |
| US10592595B2 | Cited by | United States of America | Applicant |
| JP2003140958A | Cites | Japan | Examiner |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 10656904 | United States of America | – | |
| 65690403 | United States of America | A | |
| 2003656904 | – | – | – |
| US20030656904 | – | – | – |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Decision of refusalA02 | A02 | |
| Written amendmentA521 | A521 | |
| Notification of reasons for refusalA131 | A131 | |
| Written amendmentA521 | A521 | |
| Notification of reasons for refusalA131 | A131 | |
| Notification of resignation of power of attorneyRD04 | RD04 | |
| Notification of change in applicantA711 | A711 | |
| Written request for application examinationA621 | A621 |
Numbers
- Publication
- 2005129018
- Publication, DOCDB
- 2005129018
- Publication, EPODOC
- JP2005129018
- Application
- 256696
- Application, DOCDB
- 2004256696
- Application, EPODOC
- JP20040256696
Titles3
- Japanese
- オペレーション・システム・フォルダー式ファイル・システムにおけるコラボレーション・システムの属性を提供するための方法及び装置
- English
- Methods and equipment for providing the attributes of a collaboration system in an operating system folder file system
- English
- METHOD AND APPARATUS FOR PROVIDING ATTRIBUTE OF COLLABORATION SYSTEM IN OPERATION SYSTEM FOLDER TYPE FILE SYSTEM
Classification
- CPC, 1
- G06Q10/10
- IPC, 3
- G06F12 00
- G06F15 00
- G06Q10 00