The present invention relates to co-authoring for a document management system.
Enterprise Content Management (ECM) system refers to a system organizing and storing organization's electronic documents and other business-related objects and/or content. ECM system may comprise content management systems (CMS), document management systems (DMS) and data management systems. Such systems comprise various features for managing electronic documents, e.g. storing, versioning, indexing, searching for and retrieval of documents. It is appreciated that there are both dynamic and static content management systems. The difference between dynamic and static systems is the way they store files. In the static systems files are stored e.g. in a constant treelike hierarchy that defines relationships for folders and documents stored in the tree. In the dynamic systems the files may be given identifications that define their existence in the system. The location of the files is not constant, but may vary in a virtual space depending on the situation.
Now there has been invented an improved method and technical equipment implementing the method, by which the operation of the enterprise content management system can be expanded. The present embodiment enables co-authoring of a document between users and non-users of a document management system. In addition, the present embodiments enable co-authoring between users of an on-premise document management system and external users. Various aspects of the invention include a method, a server, a client device, a computer program product comprising a computer program stored therein, and a document management system, which are characterized by what is stated in the independent claims. Various embodiments of the invention are disclosed in the dependent claims.
According to a first aspect, the method in a document management system for co-authoring an electronic object between at least two devices comprises performing a reservation of an electronic object from a server for co-authoring from a first client device; writing the electronic object in modifiable form to a co-authoring folder in a common location accessible by the first client device and at least one other device; providing an access to at least one other device to said co-authoring folder; and when co-authoring of the electronic object is finished, reading the electronic object from the co-authoring folder and writing the electronic object to the server.
According to a second aspect, the server for a document management system for co-authoring an electronic object between at least two devices comprises a processor, memory including computer program code, the memory and the computer program code configured to, with the processor, cause the server to perform at least the following: receiving a reservation of an electronic object for co-authoring from a first client device; writing the electronic object in modifiable form to a co-authoring folder in a common location accessible by the first client device and at least one other device; providing an access to at least one other device to said co-authoring folder; and when co-authoring of the electronic object is finished, reading the electronic object from the co-authoring folder and writing the electronic object to the server.
According to a third aspect, a client device for a document management system for co-authoring an electronic object with at least one other device comprises a processor, memory including computer program code, the memory and the computer program code configured to, with the processor, cause the client device to perform at least the following: performing a reservation of an electronic object from a server for co-authoring; writing the electronic object in modifiable form to a co-authoring folder in a common location accessible by said client device and said at least one other device; providing an access to at least one other device to said co-authoring folder; and when co-authoring of the electronic object is finished; reading the electronic object from the co-authoring folder and writing the electronic object to the server.
According to a fourth aspect, the computer program product for co-authoring an electronic object comprises a computer-readable medium bearing computer program code embodied therein for use with a computer, the computer program code comprising: code for performing a reservation of an electronic object from a server for co-authoring from a first client device; code for writing the electronic object in modifiable form to a co-authoring folder in a common location accessible by the first client device and at least one other device; code for providing an access to at least one other device to said co-authoring folder; and code for reading the electronic object from the co-authoring folder and writing the electronic object to the server when co-authoring of the electronic object is finished.
According to a fifth aspect, the document management system comprises at least one server and at least a first client device, said at least one server being configured to store a document, and said system being configured to allow co-authoring of an electronic object between at least two devices, wherein the server is configured to receive a reservation of an electronic object for co-authoring from a first client device; the system is configured to write the electronic object in modifiable form to a co-authoring folder in a common location accessible by the first client device and at least one other device; the system is configured to provide an access to at least one other device to said co-authoring folder; and when co-authoring of the electronic object is finished, to read the electronic object from the co-authoring folder and to write the electronic object to the server.
According to an embodiment, the co-authoring folder is located in a cloud service.
According to an embodiment, the at least one other device is a device not having a client access to the document management system.
According to an embodiment, the at least one other device is a second client device of the document management system.
According to an embodiment, the co-authoring folder is located in the document management system.
According to an embodiment, the electronic object is removed from the co-authoring folder when the co-authoring is finished.
According to an embodiment, the electronic object being written to the co-authoring folder comprises at least one of the following: a file, part of the metadata of the electronic object, all metadata of the electronic object.
According to an embodiment, a link is sent to said at least one other device. said link being configured to provide the access to the electronic object in said co-authoring folder.
According to an embodiment the server is an on-premise server.
In the following, various embodiments of the invention will be described in more detail with reference to the appended drawings, in which
In the following, several embodiments of the invention will be described in the context of enterprise content management system. It is to be noted, however, that the invention is not limited to enterprise content management systems.
In fact, the different embodiments have applications widely in any environment where documents can be reserved for modification.
In this context, the term document management system (DMS) refers to a file arrangement that stores objects that are defined by metadata (i.e. properties). Other terms that are typically used for document management system are content management system (CMS) and data management system. In the present disclosure the term “document management system” is a general term referring also to content and data management systems. In addition, term enterprise content management (ECM) can be used as an umbrella term covering one or more of such systems. Document management system comprises various features for managing electronic documents, e.g. storing, versioning, indexing, searching for and retrieval of documents. It is appreciated that there are both dynamic and static document management systems. The difference between dynamic and static systems is the way they store files. In the static systems files are stored e.g. in a constant treelike hierarchy that defines relationships for folders and documents stored in the tree. In the dynamic systems the files may be given identifications that define their existence in the system. The observed location of the files is not constant, but may vary in a virtual space depending on the situation.
In the present embodiments, the document management system is an on-premise type of a system. “On-premise” means that the document management server(s) are located behind the organization's network firewall, where they are generally not accessible by the public. Instead, such “on-premise” server(s) are generally accessible only by users within the firewall-protected local area network, or by connecting to the organization's virtual private network with appropriate tools, requiring organization-specific authentication. The “on-premise” server(s) are typically physically located in buildings owned or leased by the organization, or in a private data center controlled and maintained by a contractor of the organization. As opposed to an “on-premise” document management system, a “cloud-based” document management system has its server(s) located outside the organization's firewall.
Before describing the invention in a more detailed manner, a few terms are defined in order to ease the reading and understanding of the invention. In this disclosure, the term “document” relates to a medium (a file) that has been created by a certain application and that has been associated with metadata. For example, a piece of text created by using the Microsoft Word application is a file. For the purposes of the present solution the document (i.e. electronic document) should also support co-authoring (e.g. a file created by Microsoft Office Word 2010). Instead of term “document” also term “electronic object” may be used. “Metadata” refers to information on a document's properties. For example, a creator of the file or a creation date may represent the metadata. Documents and other metadata defined electronic objects are located statically or virtually in the file arrangement. Virtual location is defined by giving a document location(s) based on its metadata, which then addresses the document into a certain virtual folder depending on the route the document is approached. Therefore the content of each folder depends on the current property values of objects and may vary according to a use case and is thus dynamic.
An example of a file arrangement is illustrated in
As an example, in
As was mentioned, the document management system can be dynamic so that the folders are virtual, and the documents are virtually located in the folders depending on the user's viewpoint that builds on top of metadata. The present solution can however be utilized in a file management system statically storing folders that comprises files. Documents can have more than one location in the dynamic document management system but the document as such is the same document throughout the locations. In other words, the document is stored into the document management system only once, but is given multiple locations based on its metadata items. Therefore, term “location” should be interpreted both physical and virtual location depending on the file arrangement to cover both dynamic document management system and file management system.
The typical functions of a document management system are the check-out and the check-in operations for the document. When a user wishes to modify document's content, s/he may check out the document, whereby the document becomes reserved for that user. No other users are allowed to check-out the document simultaneously. Other users may, however, open the document in read-only mode. When the user having checked-out the document finishes with the document, the user makes the document available to other users by checking the document in again. At least at that point the modifications can be saved to the document. Now, another user may check the document out to make his/her modifications to the document. The check-out function thus reserves the document for a certain user, and makes it possible to allow the user to make changes to the document in exclusive editing mode.
The basic procedure of check-out mode is also illustrated in
It is realized that this kind of a solution excludes the possibility to perform co-authoring of a document between several users. Co-authoring (i.e. coauthoring, shared modification, simultaneous editing) means that more than one user may work with a document simultaneously and to see the changes other users are doing in real-time or near real-time, e.g., each time the user chooses the Save command to save interim changes.
The nature of the document management system is such, that the document management server 100 stores the document data, and each client device 101, 102, 103 has its own working copy of the document. When, for example, client device 101 checks out a document, the document is reserved for modifications made by client device 101. Client devices 102, 103 cannot check out the same document—they can only open the document in a read-only mode. When the client device 101 checks in the document, the document is saved with the modifications to the server 100, and made available to the other client devices 102, 103.
The present embodiments propose solutions for allowing several client devices to access the same document and to perform co-authoring of the document. The solutions are usable in document management system according to the example of
In the present embodiments, the document may have, in addition to modes “check-out”, “check-in”, “read-only”, yet a new mode “remote check-out”. The remote check-out is configured to locate the document to such a folder (i.e. a common folder) that can be used by more than one user. The locating in practice may be creating a copy of the document to such a place that can be accessed by applications of various users and where the copy of the document can be modified.
When the user A performs “remote check-out” for a document, the document becomes reserved for user A and made available for other users in a co-authoring folder. This means that the document is written in modifiable form to the co-authoring folder in a common location accessible by the users. The other users are provided with an access to the co-authoring folder. The document that is written to the co-authoring folder is typically a copy of the document file. It is not necessary to copy also all or part of the metadata of the document. However, that is also possible. Therefore, when describing that an electronic object is copied (i.e. written) to a co-authoring folder, the copy of the electronic object may include a file and/or one or more properties (i.e. pieces of metadata). It is thus also possible that in some situations the electronic object that is copied to the co-authoring folder comprises only metadata or part of the metadata without the actual file.
When the users finish co-authoring of the document, the document is read from the co-authoring folder and written to the server. At this point, the document may be removed from the co-authoring folder.
In an embodiment, the co-authoring folder is located on the document management server, as on-premises. Such a folder is accessible by any user who has logged in to the document management system (i.e. any client device for the document management system). In another embodiment, the co-authoring folder is located on another on-premises server. Such a folder is generally accessible by any user working in the organization's local area network or virtual private network and possessing appropriate authentication credentials that the server requires.
In yet another embodiment, the co-authoring folder is located in a cloud service, as off-premises. The cloud-based co-authoring folder can be in any cloud service that makes it possible to perform co-authoring (e.g. SkyDrive of Microsoft). Such a folder can be accessed by any user, even the ones that cannot access the document management system. Such a solution is a great achievement because it combines a co-authoring space of a public cloud to a document management system that is located within a firewall of an organization. An example of this kind of a co-authoring folder is shown in
Yet another example is shown in
At the time the document D1 is copied to the cloud service 700, the document management system is configured to send an invitation to one or more selected external users (i.e. users of device 810) to participate in the co-authoring. Such an invitation can be formed by a user of at least one of the client devices 101, 103 or by the server. The invitation may comprise a link to the document “D1” and any authentication means, e.g., an authentication key contained in the link, by means of which the link can be directly used to access the document in the co-authoring folder. Instead of the authentication key contained in the link, the user of the device 810 may be required to input a user name and/or a password defined by the document management system.
The invitation can be as follows (please note that the link points to a cloud service, and “M-Files” is the name of the on-premise document management system):
Subject:
Agenda—Project Meeting Apil 2012
Message:
I've shared a file with you for co-authoring. To view it, click the link below.
Agenda—Project Meeting 4/2012.docx
https://cloudserver.domain.com/redir?resid=8B7960A336C3E603!526&authk ey=!AJqngBnSJ6vvz74
You can edit the file simultaneously with me and other users.
Each time you save, the file is refreshed, and you can see the changes made by others.
Shared from M-Files
The various embodiments of the invention can be implemented with the help of computer program code that resides in a memory and causes the relevant apparatuses to carry out the invention. For example, a client device may comprise circuitry and electronics for handling, receiving and transmitting data, computer program code in a memory, and a processor that, when running the computer program code, causes the client device to carry out the features of an embodiment. Yet further, a server device may comprise circuitry and electronics for handling, receiving and transmitting data, computer program code in a memory, and a processor that, when running the computer program code, causes the server device to carry out the features of an embodiment.
It is obvious that the present invention is not limited solely to the above-presented embodiments, but it can be modified within the scope of the appended claims.