The present application claims priority to Singapore Patent Application No. 10201608149R filed Sep. 29, 2016, the entire content of which is incorporated by reference herein.
The present disclosure relates to methods and apparatus that allow sharing of file content.
File sharing systems allow access to file content to be controlled. Most file sharing systems control the access to the entire file for any operation such as read/write/delete etc. This is an all or nothing approach. Some other sharing forms work based on extracting the contents of the file and creating a new copy of the contents before sharing it with someone. If the original file contents are updated, the updates are not shared automatically with other users. In cases where confidential files are to be made searchable, the meta-data for search indexes may be provided separately by the file owners. When such files are updated, the meta-data becomes invalid, and search results are incorrect.
In general terms, the present disclosure proposes methods of managing access to file content by storing an indication of a shared portion or shared portions of the file content as well as the file content itself. This allows partial sharing of the file content.
According to a first aspect of the present invention, there is provided a method of providing access to file content. The method comprises: receiving, at a shared file content server, a request to access file content stored on the shared file content server from a requestor; determining a shared portion of the file content using stored shared portion indication data; and providing the shared portion of the file content to the requestor.
The shared content indication data may comprise one or more rules and the shared portion of the file content may be determined using stored shared portion indication data, which comprises applying the rules to the content.
The shared content indication data may comprise indications of locations within the stored file content and the shared portion of the file content may be determined using stored shared portion indication data, which comprises using the indications of locations to determine the shared portion.
In an embodiment, the stored file content comprises at least a first file content portion and a second file content portion; and the shared portion indication data comprises a first indication indicating whether the first file content portion is shared and a second indication indicating whether the second file content portion is shared and wherein determining a shared portion of the file content using stored shared portion indication data, which comprises using the first indication and the second indication to determine the shared portion.
The shared content indication data may comprise a search expression, and the shared portion of the file content may be determined using stored shared portion indication data comprises using the search expression to identify the shared portion.
The search expression may be used to identify a location in the file content using the search expression and the location in the file content can then be used to determine the shared portion.
Embodiments of the present invention may further comprise receiving an update to the shared portion; and storing an updated shared portion.
The file content may comprise a plurality of portions and storing an updated shared portion comprises storing updated shared portion indication data indicating the updated shared portion. The updated shared portion indication data may further indicate a version of the shared portion without the update.
According to a second aspect of the present invention, there is provided a method of storing file content for sharing. The method comprises: receiving, at a shared file content server, file content and an indication of a shared portion of the file content; and storing the file content and shared portion indication data indicating the shared portion of the file content.
In an embodiment, the shared content indication data comprises one or more rules for identifying the shared portion of the file content.
In an embodiment, the shared content indication data comprises indications of locations within the stored file content.
In an embodiment storing the file content comprises dividing the file content into at least a first file content portion and a second file content portion, the first file content portion comprising the shared portion of the file content; and storing the shared portion indication data comprises storing a first indication indicating that the first file content portion is shared and a second indication indicating that the second file content portion is not shared.
The indication of a shared portion of the file content may comprise a search expression, and storing the shared portion indication data comprises storing the search expression.
According to a third aspect of the present invention there is provided an apparatus for providing access to file content. The apparatus comprises: a computer processor and a data storage device, the data storage device having a shared content determination module comprising non-transitory instructions operative by the processor to: receive a request to access file content stored on the shared file content server from a requestor; determine a shared portion of the file content using stored shared portion indication data; and provide the shared portion of the file content to the requestor.
According to a yet further aspect, there is provided a non-transitory computer-readable medium. The computer-readable medium has stored thereon program instructions for causing at least one processor to perform operations of a method disclosed above.
Embodiments of the invention will now be described for the sake of non-limiting example only, with reference to the following drawings in which:
The shared file content server 110 comprises storage 112 which stores file content 114 and shared portion indication data 116. The file content 114 may comprise any kind of stored file content such text documents, spread sheets, database files. In some embodiments, the file contents comprises recurring files whose contents are governed by standard syntaxes such as Clearing Files, Settlement files, Payment Authentication messages.
In the system 100, the content owner 120 is the owner of the file content 114 stored in the storage 112 of the shared file content server 110. The content reviewer 130 has read access to the file content 114 stored in the storage 112 of the shared file content server 110. In some embodiments, the content reviewer 130 may also be able to provide feedback on the file contents 114, for example by adding comments which may be stored as meta-data in the storage 112 of the shared file content server 110. The content contributor 140 can make changes to the file content 114 stored in the storage 112 of the shared file content server 110. The search engine indexer 150 can extract data from the file content 114 and make the file content 114 searchable. The shared file content server 110 controls the access of the content reviewer 130; the content contributor 140; and the search engine indexer 150 according to the shared portion indication data 116. The shared portion indication data 116 indicates a part of the file content 114 or a plurality of parts of the file content 114 which is shared. This may be based on a selection made by the content owner 120. The shared file content server 110 allows the content reviewer 130; the content contributor 140; and the search engine indexer 150 to access the parts of the file content 114 indicated to be shared by the shared portion indication data 116. This allows the various users to access parts of the file content 114 without accessing parts which the content owner does not wish to make available, for example confidential information.
In some embodiments, an indication of the access rights of the content reviewer 130; the content contributor 140 and the search engine indexer 150 are stored as part of the shared portion indication data 116. In some embodiments, the indication of the access rights of the content reviewer 130; the content contributor 140 and the search engine indexer 150 are tied to the shared portion indication data 116 via an authorization system which is external to system 100. Such an authorization system may be implemented using a Lightweight Directory Access Protocol (LDAP). The content owner 120 may provide different shared portion indication data 116 for different types of users.
The technical architecture 200 includes a processor 222 (which may be referred to as a central processor unit or CPU) that is in communication with memory devices including secondary storage 224 (such as disk drives), read only memory (ROM) 226, random access memory (RAM) 228. The processor 222 may be implemented as one or more CPU chips. The technical architecture 200 may further comprise input/output (I/O) devices 230, and network connectivity devices 232.
The secondary storage 224 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if RAM 228 is not large enough to hold all working data. Secondary storage 224 may be used to store programs which are loaded into RAM 228 when such programs are selected for execution. In this embodiment, the secondary storage 224 has a shared portion determination module 224a comprising non-transitory instructions operative by the processor 222 to perform various operations of the method of the present disclosure. The ROM 226 is used to store instructions and perhaps data which are read during program execution. The secondary storage 224, the RAM 228, and/or the ROM 226 may be referred to in some contexts as computer readable storage media and/or non-transitory computer readable media.
The I/O devices may include printers, video monitors, liquid crystal displays (LCDs), plasma displays, touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices.
The network connectivity devices 232 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards that promote radio communications using protocols such as code division multiple access (CDMA), global system for mobile communications (GSM), long-term evolution (LTE), worldwide interoperability for microwave access (WiMAX), near field communications (NFC), radio frequency identity (RFID), and/or other air interface protocol radio transceiver cards, and other well-known network devices. These network connectivity devices 232 may enable the processor 222 to communicate with the Internet or one or more intranets. With such a network connection, it is contemplated that the processor 222 might receive information from the network, or might output information to the network in the course of performing the above-described method operations. Such information, which is often represented as a sequence of instructions to be executed using processor 222, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
The processor 222 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 224), flash drive, ROM 326, RAM 328, or the network connectivity devices 232. While only one processor 222 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by a processor, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors.
It is understood that by programming and/or loading executable instructions onto the technical architecture 200, at least one of the CPU 222, the RAM 228, and the ROM 226 are changed, transforming the technical architecture 200 in part into a specific purpose machine or apparatus having the novel functionality taught by the present disclosure. It is fundamental to the electrical engineering and software engineering arts that functionality that can be implemented by loading executable software into a computer can be converted to a hardware implementation by well-known design rules.
Although the technical architecture 200 is described with reference to a computer, it should be appreciated that the technical architecture may be formed by two or more computers in communication with each other that collaborate to perform a task. For example, but not by way of limitation, an application may be partitioned in such a way as to permit concurrent and/or parallel processing of the instructions of the application. Alternatively, the data processed by the application may be partitioned in such a way as to permit concurrent and/or parallel processing of different portions of a data set by the two or more computers. In an embodiment, virtualization software may be employed by the technical architecture 200 to provide the functionality of a number of servers that is not directly bound to the number of computers in the technical architecture 200. In an embodiment, the functionality disclosed above may be provided by executing the application and/or applications in a cloud computing environment. Cloud computing may comprise providing computing services via a network connection using dynamically scalable computing resources. A cloud computing environment may be established by an enterprise and/or may be hired on an as-needed basis from a third party provider.
Various operations of an exemplary method 300 will now be described with reference to
In step 302, the shared file content server 110 receives file content from the content owner 120. In step 304 the shared file content server 110 receives an indication of a shared portion or a plurality of shared portions of the file content from the content owner 120.
The selection of the content as the portion or a plurality of shared portions may be made by the content owner 120 through a document view made available by the shared file content server 110.
In step 306, the shared file content server 110 stores the file content 114 and shared portion indication data 116 in the storage 112. The shared portion indication data 116 indicates the shared portion or plurality of shared portions of the file content 114. Embodiments of the storage of the file content 114 and the shared portion indication data 116 are described in more detail below with reference to
Once the file content 114 and the shared portion indication data 116 are stored in the storage 112, the shared file content server 110 may send a notification to the content reviewer 130, the content contributor 140 and/or the search engine indexer 150 indicating the availability of shared contents.
Various operations of an exemplary method 400 will now be described with reference to
In step 402, the shared file content server 110 receives a request from a requestor to access the file content. The requestor may be the content reviewer 130, the content contributor 140 or the search engine indexer 150. The request to access the file content may be in response to a notification from the shared file content server 110 indicating the availability of shared content.
In step 404, the shared portion determination module 224a of the shared file content server 110 determines a shared portion or shared portions of the file content 114 using the shared portion indication data 116.
In step 406, the shared file content server 110 provides the requestor access to the shared portion or shared portions of the file content. The access may be provided by a document viewer made available by the shared file content server 110. Thus the requestor can only view the file content which is indicated as shared by the shared portion indication data 116. In some embodiments, the requestor may also be able to edit or make comments on the shared file content. For example, the content reviewer 130 may be allowed to add comments on the file contents. The shared file content server 110 would then store these comments as metadata linked to the file contents. The content contributor 140 is able to edit the shared portion of the file contents. This editing may take place through the document viewer made available by the shared file content server 110.
As shown in
Thus, when the shared content file server 510 is implemented as shown in
Similarly, in step 404 of the method 400 shown in
In the embodiment shown in
When the shared file content server 610 is implemented as shown in
Further, in step 404 of the method 400 shown in
In the embodiment shown in
When the shared file content server 710 is implemented as shown in
In step 404 of the method 400 shown in
Various operations of an exemplary method 800 will now be described with reference to
In step 802, the shared file content server 110 receives a request from a requestor to access the file content. In this embodiment, the requestor is the content contributor 140. In step 804, the shared portion determination module 224a of the shared file content server 110 determines a shared portion or shared portions of the file content 114 using the shared portion indication data 116.
In step 806, the shared file content server 110 provides the requestor access to the shared portion or shared portions of the file content. The access may be provided by a document viewer made available by the shared file content server 110.
The content contributor 140 may be provided access to the file content through an editor such as a word processor. Thus the content contributor 140 can make changes to the shared content.
In step 808, the updates to the shared content are received by the shared file content server 110.
In step 810, the updated shared portion is stored by the shared file content server 110. The updates may be stored in response to an action by the content contributor 140, for example a request to save the changes.
In the example shown in
As shown in
As described above, embodiments of the invention allow users to collaborate without having access to all the file contents. Further embodiments of the invention allow a search engine to extract more accurate meta-data to index and frees file owner from trying to keep meta-data and file contents in sync. In some embodiments dynamic rule based content sharing rules are useful for recurring files where contents is governed by standard syntaxes—e.g. Clearing Files, Settlement files, Payment Authentication messages. This could be alternative to masking sensitive information; instead of saying what is confidential, in embodiments of the present invention, a content owner can say what is sharable.
Whilst the foregoing description has described exemplary embodiments, it will be understood by those skilled in the art that many variations of the embodiment can be made within the scope and spirit of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
10201608149R | Sep 2016 | SG | national |
Number | Name | Date | Kind |
---|---|---|---|
9075893 | Jenkins | Jul 2015 | B1 |
20090271448 | Chen | Oct 2009 | A1 |
20150142776 | Solheim | May 2015 | A1 |
20150248384 | Luo | Sep 2015 | A1 |
20170060892 | Vuppula | Mar 2017 | A1 |
Number | Date | Country |
---|---|---|
2 498 201 | Sep 2012 | EP |
Entry |
---|
Zhu et al. (2008) Proceedings of the IEEE International Symposium on Electronic Commerce and Security. pp. 1010-1014. |
International Search Report with Written Opinion corresponding to International Patent Application No. PCT/US2017/050930, dated Oct. 19, 2017. |
Number | Date | Country | |
---|---|---|---|
20180089221 A1 | Mar 2018 | US |