WO2001033829A2 - Service de fichiers partages a base d'internet avec semantique et acces client du pc natif et controle d'acces distribue - Google Patents
Service de fichiers partages a base d'internet avec semantique et acces client du pc natif et controle d'acces distribue Download PDFInfo
- Publication number
- WO2001033829A2 WO2001033829A2 PCT/US2000/030201 US0030201W WO0133829A2 WO 2001033829 A2 WO2001033829 A2 WO 2001033829A2 US 0030201 W US0030201 W US 0030201W WO 0133829 A2 WO0133829 A2 WO 0133829A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- node
- client node
- file server
- remote
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 158
- 238000004891 communication Methods 0.000 claims description 88
- 230000004044 response Effects 0.000 claims description 67
- 230000004048 modification Effects 0.000 claims description 64
- 238000012986 modification Methods 0.000 claims description 64
- 230000009471 action Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 12
- 238000012790 confirmation Methods 0.000 claims 6
- 230000008569 process Effects 0.000 description 43
- 238000012546 transfer Methods 0.000 description 24
- 230000015654 memory Effects 0.000 description 21
- 238000007792 addition Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 206010000210 abortion Diseases 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
Definitions
- the present invention pertains to a multi-user shared file access service provided over
- a wide area network such as the Internet.
- computing resources such as data, programs and applications, processing capacity, storage capacity, etc.
- computing resources such as data, programs and applications, processing capacity, storage capacity, etc.
- a local area network provides some measures of security against eavesdropping and other unauthorized
- Local area networks enable sharing at two levels. First, groups of users may simultaneously access files in a common storage space. More importantly, users
- contemporaneous and simultaneous file access amongst multiple users provide "locks," i.e., controls for maintaining the integrity of data. For instance, multiple users are only allowed to
- write access to a file, or a specific portion of a file is typically exclusive to one user.
- privilege access rights are typically specifiable for directories and files. Specifically, read, write and delete privileges can be restricted to individual users and groups.
- one user might be provided read, write and delete rights to an entire directory.
- An entire user group might have only read and write privileges for all files in a directory, but certain users of that group might have only read privileges for a certain file within that
- a third user group might have only read privileges for all files in a directory. Certain products and services are currently available for assisting users to obtain
- remote storage device which the user can access while executing a web browser program on the user's computer terminal, to store data for later retrieval.
- Most of these services operate according to a so-called "publish/subscribe" schema. According to a publish/subscribe schema, the user must take deliberate actions while executing the web browser program to
- the user uses the pointing to device to select a
- the user selects a locally stored file for uploading (by locating the file and
- a copy of the file is then transfe ⁇ ed via the Internet to the remote storage device where it is stored.
- a similar sequence of steps can be used to retrieve files from the remote storage device.
- certain applications executing at the user's local terminal can freely automatically access files maintained at the local terminal without the need for human intervention.
- the application may access locally stored data and configuration files, unbeknownst to the user.
- the application is incapable of automatically accessing such a remote file. Rather, the user must know which remote files will be needed for access and must take deliberate
- SSL secured socket layer transfers
- SSL provides a manner whereby the server at the service encrypts information immediately before it is transmitted via the Internet to the client node (and vice versa). This tends to thwart unauthorized access by eavesdroppers to the files while in transit over the Internet.
- a second user B may access and modify the same remotely stored file.
- the file includes the most recent modifications by user B and not the modifications by user A.
- integrity can also be compromised where multiple users have access to the files simultaneously.
- a mechanism should be provided to prevent each user from accessing the same portion ofa file according to an incompatible file sharing access mode.
- StoragepointTM provides a WindowsTM ExplorerTM Name Space extension object. As a result, certain aspects pertaining to user file access are similar for both files which are stored remotely and files which are stored locally. For instance, a user executing
- X-DriveTM provides a more extensive file service for a single user.
- X-DriveTM enables the user to transfer files between the remote storage device and the user's computer terminal using the same actions for transferring the files between locally physically present devices of the user's computer terminal (i.e., icon dragging and dropping).
- X-DriveTM also allows applications and programs executing at the user's terminal to seamlessly access files which reside at the remote storage device as such applications or programs would access files stored locally at the user's computer terminal.
- StoragepointTM uses a secured socket layer to transfer encrypted information
- the information is "re-encrypted" prior to storage to prevent against
- encryption is performed at the site of the remote file storage device. Again, security can still be
- Punch NetworksTM provides a version control system whereby every version of a file
- remote file server is to the most up-to-date copy of the file.
- these services enable contemporaneous and simultaneous access by multiple users to the same files.
- these services do not provide adequate encryption according to which the manner of
- Each user of a user group of one or more users is enabled to operate an arbitrary client node at an arbitrary geographic location to communicate
- Each user of the user group is
- each access to one of the files at the remote file server is performed, if at all, on a respective portion of each of the one files as most recently updated at the remote file server node.
- an interface is provided for adapting file access at
- the interface designates at the first client node each of the one or more accessible files of the file group as stored on a virtual storage device.
- the interface also enables access to the designated files in a fashion which is indistinguishable, by users of,
- an encrypted key is transferred from the remote
- the key is encrypted
- the key is decrypted at the first client node.
- the key is used at the first client node to decrypt information of the files downloaded from the remote file server node or to encrypt
- a manger node which chooses which users may join the group, transmits a message to an Internet email address of a user inviting the user to
- the message is usable only once to join the user group.
- remote file server node is authenticated. Specifically, the particular client node verifies the identity of the remote server node, and the remote server node verifies the identity of the user of the particular client node.
- the particular client node illustratively encrypts data of a file using an encryption methodology known to the client node but not known to the remote file server node.
- the client node then uploads the encrypted data to the remote file server node.
- the remote file server node stores the encrypted file data.
- the remote file server node illustratively retrieves from storage the encrypted data ofa particular file and transmits the encrypted data to a specific client node. Using a decryption methodology known to the specific client node but not known at the
- the client node decrypts the data.
- the remote file server node determines whether or not
- the particular access requested by the specific client node is permitted by privilege access rights associated with the particular file.
- the remote file server node only permits the access to the particular file by the specific client node if permitted by the privilege access rights
- one of the files is delegated to a version control node.
- FIG 1 shows an illustrative network in which an embodiment of the present invention is intended to be used.
- FIG 2 shows an illustrative computer terminal or remote file server of the network of FIG 1.
- FIG 3 shows an illustrative architecture according to an embodiment of the present invention.
- FIG 4 shows an illustrative screen displayed on a client node according to an embodiment of the present invention.
- FIGs 5, 6A and 6B show a flowchart describing a process for joining a new client user to a group of users permitted to access a virtual storage device according to alternate embodiments of the present invention.
- FIG 7 shows a flowchart describing an authentication process according to an embodiment of the present invention.
- FIGs 8 and 9 show flowcharts describing, respectively, a download process and an upload process according to an embodiment of the present invention.
- FIG 10 shows a flowchart describing a file access process according to an
- FIGs 11-12 show tables illustrating a reconciliation process according to an
- FIG 13 shows an illustrative environment of use of another embodiment of the present
- FIG 14 shows a flowchart illustrating distributed access control according to an embodiment of the present invention.
- FIG 15 shows a flowchart illustrating distributed version control according to an
- FIG 1 shows a wide area network 100 such as the Internet. This network is composed of local networks 11-16, access networks a-d and backbone networks A-C forming backbone
- Devices rl-rl8 denote switches or routers
- devices hl-hlO denote computer terminals
- devices asl-as4 denote access servers.
- Computer terminals typically originate and terminate communications and messages
- switches, routers and access servers typically merely
- Access servers also control access of
- the Internet 100 is an interconnection of a plurality of private
- NAPs network access providers
- ISP Internet service providers
- IP Internet protocol
- TCP control protocol
- ftp file transfer protocol
- http hypertext transfer protocol
- the Internet 100 can carry (in packets) messages for requesting information, and such requested information, from a source device to an appropriate destination device.
- FIG 2 depicts a typical node in the form of a computer terminal 10.
- the computer terminal 10 typically includes a processor 11 or CPU, memory 12, one or more I/O devices 13-1, 13-2,..., 13-N (e.g., modems, cable modems network interface cards, etc.), disk 15 (fixed magnetic, removable magnetic, optical, etc.), graphics accelerator and display monitor 16 and keyboard and mouse 17. Each of these devices is connected via one or more busses
- An illustrative example of the computer terminal 10 is a "PC" compatible computer
- processors 11 of appropriate sizes, number and/or capacity.
- the memory 12 can be any type of memory 12 that can be used to store data.
- main memory e.g., implemented with SDRAM circuits
- smaller main memory e.g., implemented with SDRAM circuits
- cache memory e.g., implemented with SRAM circuits.
- PC computers such as desktops, laptops and
- file servers as nodes.
- the invention is also applicable for other types of nodes such as
- nodes will be presumed to include "pointer devices"
- an input device such as a mouse, track pad, joy stick, track ball, stylus,
- Such a pointer device accepts user input regarding direction and selection and supports the
- the invention is illustrated herein for the Internet as the wide area network, but of
- Client node describes a device such as a computer terminal hl-h8, adapted according to the invention for purposes of enabling
- Remote file server node describes an apparatus, such as a file server computer h9-hl0, including a storage device, such as one or more disk drives 15, memory circuits 12, etc., adapted according to the invention to enable multiple simultaneous client node access to groups of files.
- remote file server nodes e.g., nodes h9-hl0, which can be implemented using Proliant
- disk storage capacity e.g., implemented using EMC Symetrix SANsTM, distributed by EMC Corp.TM, a company located in Hopkinson, Massachusetts. This disk storage capacity is
- a group of users is enabled to access the group of files on such a virtual storage device by accessing data in local caches and interaction between the remote file servers nodes
- the remote file server nodes effectively provide a consistent and persistent "home" at which a master copy of
- each file of the group is persistently maintained.
- the remote file server nodes h9-hl0 enable
- access to the files in a shared fashion-multiple client nodes operated by users can simultaneously access the files of the group stored on the virtual storage device.
- the copies of the files on the remote file server nodes serve as a master or true source copy
- the accesses to the copies of the files at the remote file server nodes illustratively are performed in a fashion described below which maintains the integrity of these master copies of the files at the remote file seiver nodes.
- the files "appear,” i.e., entirely behave, and can be accessed using pre-existing programs and applications, as if locally present on the client nodes. Any file or directory information transfer and integrity maintenance is performed transparently to
- remote file server nodes are geographically remote and may be operated by
- a secure channel is provided to enable transfer of file data over the Internet, which
- the users illustratively can access the files while operating client nodes on a local area
- client node h8 can access the files using portable client nodes, such as laptops.
- client node h8 can access the files using portable client nodes, such as laptops.
- client node h8 can access the files using portable client nodes, such as laptops.
- client node h8 can access the files using portable client nodes, such as laptops.
- client node h8 can access the files using portable client nodes, such as laptops.
- a mobile client node that can connect to a remote file server node h9 or hlO via any available communication channel to the Internet 100, e.g., a land-line
- the remote file server nodes can implement several virtual storage devices.
- a group FI of one or more virtual storage devices can be provided for a single group of users Gl.
- a group F2 of one or more additional virtual storage devices can be implemented using any number of virtual storage devices.
- Gl and G4 two different groups, say Gl and G4, where Gl ? G4, where the users of Gl can access the file group FI and where the users of G4 can access the file group F4 of another virtual storage device provided by the remote file server nodes.
- user gl can freely transparently and simultaneously access the files of groups Gl and G4 in an arbitrary fashion.
- One remote file server node may contain all of the files ofa given group Gl and
- the storage of the files ofa group are divided amongst multiple remote file
- server nodes which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be in close geographic proximity to one another or which may be
- the client nodes are geographically remote from one another. According to another embodiment, the client nodes
- each of multiple remote file server nodes can access one or more files via each of multiple remote file server nodes.
- the specific remote file server node believed to perform a file access most efficiently is chosen for
- a file access operation by a given client node For example, according to a load balancing
- multiple remote file server nodes are provided as a bank.
- the remote file server node which is least "busy" servicing other file accesses is allocated to the next incoming
- FIG 3 shows a typical architecture for implementing the invention.
- the blocks "Volume Management" 20 and "File System” 30 can be implemented by suitable software executing on the processor 11 of a client node.
- the "Local Disk Store 1 ' 40 is a software subsystem executed by the processor 1 1 of the client node which manages otorage of information on the local disk of the client node.
- the division of the client nodt; software in this fashion is merely illustrative.
- Each "volume" 42, 44 figuratively represent a different virtual storage device which is accessible to the client node. Two different virtual storage devices are shown for sake of illustration although the exact number will vary. In fact, the precise number accessible on a
- the I/O device 13-1) with the remote file server node to obtain missing file data and directory information and to ensure the integrity of the master copy of such information at the remote
- a volume index 45 assists in identifying file data and directory information
- the public server 50 is provided as a point of first contact for the client nodes, whereas the file servers 61, 62, ... actually perform the file access and integrity
- the public server 50 is initially contacted by the client nodes when a user desires to join a particular virtual storage device.
- the public server 50 can redirect each client node to the correct or most efficient file server 61,
- the public server 50 is shown as including a component labeled "volume management web pages"
- rendezvous server 54 and a component labeled rendezvous server" 56.
- Both the public server 50 and the file servers 61, 62, ... are implemented by suitable software executing on the processor 11 of each
- remote file server node Given that the specific division of functions of a remote file server node is arbitrary, below, the term remote file server node will be used for sake of generality, without reference to specific components to which each function has been allocated in a given
- the client software may be deployed at one, all or some of the computer terminals on
- a local area network such as the host computer terminals h4, h5 and h6 on subnetwork 12 of
- the client software can be deployed on moveable computer terminals (such as
- laptops and or computer terminals at multiple different geographic locations, e.g., host
- the client software/client node is capable of performing the following functions: (a) Locating remote file server nodes on the wide area network: As noted above, the client nodes access one or more virtual storage devices 42, 44 identified as
- a file server can provide file access for (actually store, retrieve or
- the client software transparently accesses locally stored information, such as URLs, for determining how to send commands, data or other information to the appropriate remote file server node providing the functionality ofa virtual storage device to be accessed;
- version checks may be performed at the file level or on individual portions of a
- the client node software recognizes and resolves conflicts in file data this client node modified while disconnected from the remote file server vis-a-vis file data modified at the remote file server node (by another client node) while this client node was disconnected from the remote file server node.
- the client software also maintains separate storage for file data and directory information, which
- the client user may only require a small data portion of the entire file.
- an interrupted download may be restarted at the
- At least one client node is provided with client manager software, which
- node is to provide the customer who uses the service to manage and administer each of the virtual storage devices of that customer.
- the customer designates one or more of the
- client nodes as client manager nodes with the ability to provide system wide client side
- the client manager node is provided with the ability to create
- client manager node is provided with full access privileges for all of the files and directories on each virtual storage device created by the client manager node and therefore may read,
- the client manager node is able to designate new user accounts and to provide sufficient information to enable a client user to join one or more of the virtual storage devices managed by the client manager node.
- the public server and file server software illustratively is deployed at the remote file server nodes, e.g., computer terminals h9 and h 10.
- the public server and file server software performs the following functions:
- client manager nodes to delete client user accounts
- sufficient address or contact information e.g., IP address and TCP port
- FIG 3 shows three client
- node software elements namely, the volume management, file system and disk subsystem. These software elements are designed to integrate with a conventional operating system/native file system 48 which may be sold with the client node.
- the client node software is integrated with the operating system/native file system 48 may be specific to each operating system/native file system 48 and is normally dictated by specification and application programming interfaces of the operating system native file
- MicrosoftTM specifies an API for integrating software affecting
- client node software for each operating system/native file system with which the client node software is to work given the description below of what is to be achieved and other available information pertaining to the API's of the operating system/native file system.
- FIG 4 shows an illustrative image which is depicted on the display monitor ofa client
- the displayed image is the familiar image ofa window 1000, including "buttons"
- menu bar 1010 with selectable drop-down
- buttons 1012 "standard button bar” 1020 with selectable “navigation buttons” 1022, “address bar” 1025, “folders” sub-window 1030 and sub-window 1040. As shown, the
- address bar 1025 includes a graphical icon representing a network connected storage device labeled "F".
- the "folders" sub-window 1030 displays a hierarchical list of identifiers 1032,
- Sub- window 1040 displays another hierarchical list of graphical icons representing files 1042 and folders (directories) 1044 contained on the connected storage device represented by the graphical icon 1034.
- sub-window 1040 is intended to show individual files and a hierarchical organization for such
- the storage devices shown graphically in the window 1000 can represent entire actual locally present physical storage
- the identifiers "F” and “Lets Work on '@v-drive'” refer to a virtual
- the client software provides the appropriate information according to the operating system
- the operating system lists identifiers in the graphical display portion of the user interface (i.e., the
- the operating system enables the user to access these identifiers for the virtual storage device in the same identical fashion as the identifiers for any other storage device. The user can thus "click”, “double click,”
- the client node software also provides certain functionality for identifying and obtaining files and file data as the object of an action selected by one of the
- the client node software provides such information to the operating system
- the file contains an executable application), or to execute an available application on the file as an object (if the file contains data).
- the client node software identifies the appropriate file information for the operating system and provides such file data to the
- the client node software provides sufficient integration of the functionality
- the client node software performs
- the application causes an access to another file (e.g., attempts to execute an application contained in another file or attempts to read, write, modify, etc. the data contained in another data file). In so doing, the application generates the appropriate request lo the operating system to perform the appropriate file access operations.
- the client node software intervenes and assists the operating system in identifying the appiopiiate file and in providing the data of the file to the operating system to complete the access to the file (i.e., read, write, modify, delete, etc.)
- the client node software does this transparently
- the virtual storage device and its contents (i.e., all of the files, directories/folders, etc. stored in the virtual storage device), appears, to the client node user and the application executing at
- the client node to be locally present. That is, the client node user and applications executing
- client node software merely serves to locate and obtain valid copies of remotely stored or
- node software may determine if a copy of the directory /folder information or file data is cached locally (e.g., in a cache memory, main memory, or disk actually physically present at the client node).
- the client node software may verify that the locally cached copy of the directory/folder information or file data is still valid.
- the client node software may download a valid copy of the directory/folder information oi file data. Periodically, the client node software may upload the directory /folder information or file data to permanently store
- each client node has the ability to simultaneously write to a file or part of a file.
- each client node may actually perform its respective write indirectly, e.g., through a single intermediary node which actually performs each access on behalf of each client node.
- a directory file is a file containing data for locating and accessing all of the files
- the directory file is not actually directly accessed by each client node. Instead, the accesses to the directory
- the remote file server node functions as an intermediary node which performs each required access (most notably a modification or write operation) on behalf of each client node.
- the client node creates a new file or subdirectory in a directory, in fact, the client node does not actually directly access the directory file. Instead, the directory file access is performed by the remote file server node as an intermediary.
- the client node software assists in achieving such file accesses in a coherent fashion.
- the client node software can transmit to the remote file server commands for "locking" files or portions of files to prevent access to such files or file portions according to incompatible modes. The net effect is to prevent another client node which desires to access the file from doing so.
- the client node software can transmit query commands to
- the remote file server regarding the lock status of files and can receive and forward the
- access can be performed in view of the lock status on files, is achieved according to the operating system or other applications executing at the client node.
- the client node software
- node software is automatic and transparent to the client node user and applications executing
- FIG 5 shows a process for creating a virtual storage device and adding users.
- the client manager node Under control of the user of the client manager node in step SI 00, the client manager node issues a message containing a command to invite a new user, the email address of the new user, a user name for the new user and an identifier of the virtual storage device ("drive id") cf the virtual storage device on which the new user is to be invited.
- drive id an identifier of the virtual storage device
- the remote file server node determines if the virtual storage device indicated by "drive id" exists but the user name is already contained on a list of users.
- the remote file server node maintains a list of all user names who ever joined the virtual storage device, including active
- user names of users of the group permitted to access the virtual storage device and deactivated user names. If the user name is not new, or the virtual storage device does not
- the remote file server node rejects the request in step SI 04, by transmitting back to
- the client manager node via the Internet, a rejection message.
- the client the client manager node via the Internet, a rejection message.
- manager node displays a failure message to the user.
- this prevents multiple uses of the same user names for a given virtual storage device. If the user name is not already contained on the list associated with the specified
- the remote file server node creates a record for the new user in step
- step SI 06 The remote file server node communicates the successful completion of this step to the client manager node.
- step SI 08 the client manager node creates a one time
- the client manager node communicates to the new client user an invitation to join
- the client manager node can email the invitation to the new client
- the new client user may have to communicate with an intermediate Internet address to receive the OTP upon validation of the new client user.
- the client manager node encrypts a data key (the purpose of which is described in greater detail below) with this OTP, to produce OTP(data key).
- the client manager node transmits OTP(data key) to the remote file server node where it is stored in the record associated with the new client user, in step
- FIGs 6A and 6B each show a flowchart illustrating alternative processes by which a
- new client user joins a pre-subscribed user group permitted to access a virtual storage device.
- step SI 20 the client user
- the email message includes the URL of the remote file server node at which the client node user can join the pre-subscribed user group for the virtual storage device.
- the message includes
- the remote file server node to be contacted may be registered with a tmsted third party.
- Such authentication services are provided by companies such as VerisignTM, a company located in
- step SI 22 the remote file server node accesses the list of records to determine if it has an entry corresponding to this new client user. If not, in step SI 24, the remote file server node deems the message invalid and ceases processing. If desired, the remote file server node can be adapted to transmit a message to the client node indicating that the join request was invalid.
- this message may be in the form of, or include, a download
- This download can include one or more URL addresses of one or more remote file server nodes with which the client node should connect in the future to
- the client node executes the client node
- step SI 26 the client node creates a drive container to store information
- the client node also generates a public key/private key pair Puc, Pre.
- the client node then transmits the public key Puc to the remote
- this pair of keys is randomly generated according to any combination
- the client node permanently stores the private key Pre for subsequent use as described below.
- step SI 28 the remote file server node stores the public key of the client node
- step SI 30 the remote file server node encrypts the already encrypted message OTP(data key) using the public key Puc to
- the remote file server node then transmits this twice encrypted message Puc(OTP(data key)) to the client node.
- the remote file server node also transfers it's own public key Pus to the client node.
- the client node stores the remote file serve node's public key Pus for further use as described below.
- the client node receives the twice encrypted message Puc(OTP(data key)). Using the client node's private key Pre and the one time use key OTP, the client node decrypts this twice encrypted message to obtain the data key.
- step SI 34 the client node encrypts the clear text data key using its public key Puc to produce the encrypted data key Puc(data key).
- the client node then transmits this encrypted data key Puc(data key) to the remote file server node.
- step SI 36 the remote file server node receives the encrypted data key Puc(data key) and stores this information, along with the public key Puc of the new client user. This completes the join process.
- step SI 52 a trusted token
- VerisignTM validates the "certificate” or authenticity of the remote file
- step S 154 the remote file server validates the user id, drive id, and the hash of the OTP. If there is a match, i.e., the remote server validates the above, then
- step S 164 which will be described below.
- the remote file server validates only the user id and drive id. As stated above, the new client user obtains the OTP separate from the invitation email. If there is a match,
- step SI 60 the remote file server prompts the client user to supply the OTP which is validated in step S162. If there is no match in either step SI 56 or step S162, then the invite is invalidate in step 158. Otherwise, the process proceeds to step SI 64.
- step SI 64 the client node creates a drive container and generates a public key/private key pair Puc, Pre.
- the client node then transmits the public key Puc to the remote file server node in step SI 66.
- the client node permanently stores the private key Pre for subsequent use as described below.
- step S 168 a different, authenticated client user of the same pre-subscribed user group downloads the new client user's public key Puc and encrypts the data key Puc (data key).
- step SI 70 the
- authenticated client user updates the new client user record at the server with the encrypted data key Puc (data key).
- the new client user may now decrypt the remote file server drive data conesponding to the data key, in step SI 72.
- the data key is a two-way encryption/decryption key which is
- file server node have a clear-text version of the data key. Rather, the remote file server node
- the remote file server node only has encrypted versions of the data key, namely, either OTP(data key) or Puc(data key).
- the remote file server node has one encrypted version of the data key for each client
- the public key Puc can be used to encrypt a message.
- the public key Puc can be used to encrypt a message.
- remote file server node maintains the public key Puc and the data key encrypted by the respective public key Puc(data key), this information is not sufficient for the remote file
- server node to decrypt the data key.
- the client node creates an identity profile which is a locally stored data
- the identity profile includes the private key Pre which is necessary for a given user to authenticate a connection (as described below), and to retrieve (its copies
- the copy of the identity profile is encrypted on the client
- the (encrypted) identity profile may be copied onto a removable
- the client node user can then access the virtual storage device from each client node provided with a
- a copy of the identity profile e.g., on a removable medium, enables the user to restore the identity profile on any given client
- FIG 7 shows a flowchart describing a process for authenticating a connection between a client node and a remote file sever node. This process is performed each time the client node and remote file server node establish a connection, assuming that the client node has already joined the pre-subscribed user group of the virtual storage device that it v/ishes to access by the respective connection.
- step S200 the client node issues a connection request message via the Internet to the remote file server node.
- the client node issues the message to a pre-established URL address assigned to the appropriate remote file server node
- the virtual storage device to be accessed by the client node.
- step S202 the remote file server node
- the remote file server node receives the message and first determines if the user name and virtual storage device identifier are a valid combination by consulting a list of valid, pre-subscribed user names stored at, or otherwise accessible by, the remote file server node for the respective virtual storage device
- the remote file server node denies the connection in step S204. In denying the connection, the remote file server node may issue an appropriate rejection message to the
- step S206 the remote file server node encrypts the random string S with its private key Prs to produce the encrypted random string Prs(S).
- step S208 the remote file server node transmits this encrypted random string Prs(S) and a second random string K to the client node.
- step S210 the client node decrypts the encrypted random string Prs(S) with the public key Pus of the remote file server node in order to obtain the clear text message of the original string S.
- step S212 the client node determines if this decryption of the received encrypted message using the servers public key, Pus(Prs(S)), yields S. If not, then the client node determines that it has failed to authenticate the identity of the remote file server and
- the client node presumes that only the remote file server node has the capability (most
- step S216 the client node encrypts the second random string K with
- the client node then transmits the encrypted second random data string Prc(K) to the remote
- step S2128 the remote file server node attempts to decrypt this received
- step S220 the remote file server
- step S222 the remote file server determines that it has failed to authenticate the identity of the client node and denies or breaks the connection.
- the remote file server node determines that it has successfully authenticated the identity of the client node.
- the remote file server node determines that only the client node has the capability (most notably, the appropriate private key Pre) for encrypting the random string K in a fashion such it is decrypted with the public key Puc, to yield the second random string K. In such a case, the remote file server node grants the connection in step S224.
- the client node authenticates the identity of the remote file server node and the remote file server node authenticates the identity of the client node.
- connection is deemed authenticated only if the client node authenticates the identity of the
- remote file server node and the remote file server node authenticates the identity of the client
- the client node After the connection is authenticated, the client node can access file data at the remote
- file server node in a fashion which maintains the integrity of the file data (as described below).
- file data and possibly other sensitive information, such as directory information, etc.
- the Internet actual consists of several private networks maintained and operated by
- node also does not presume that the remote file server node is secured and takes measures to ensure that no unauthorized access to the file data can occur at the site of the remote file server node(s).
- FIG 8 illustrates a process carried out for secured uploading of file data from the client node to the remote file server node.
- the client node has file data to upload to the remote file server node.
- the client node creates a file header including the information indicating the file size, segment size and number of segments. It may be possible to actually provide less information. For example, if the segment size is constant over the file transfer, but not known ahead of time, then the file size and segment size need only be specified (the number of segments being the quotient of the file size/segment size). Alternatively, only the number of segments and the segment size need be specified. In
- the offset can, for example, be specified by the number of segments or empty
- the file header illustratively includes an object
- OID identifier
- the OID can be used to identify which data key must be used
- step S302 the client node transfers the next to-be-uploaded segment of file data to
- the buffer is a portion of main memory storage space of sufficient capacity for holding the segment data temporarily.
- step S306 the client node encrypts the compressed data in the buffer using the data key.
- the particular encryption technique used allows for decryption with the same data key. Any one of a number of well-known encryption techniques can be used, such as RSATM's 128-bit key RC5TM encryption technique.
- step S308 the client node appends the header created in step S300 to the encrypted data and transmits the data via the (I/O device of the client node and the) Internet to the remote file server node.
- the transmission control protocol is used, such as Huffman encoding.
- the remote file server node receives the transmitted encrypted and compressed file data including the header. Using the offset information in the header, the remote file server locates the correct storage space, within the respective (master) copy of the file at the remote file server node, at which writing is to begin.
- the client node determines if the transfer of the portion of the file has
- step S308 the client node may omit or suitably modify the file header in whole or in part for subsequently transmitted encrypted and compressed file
- step S312 the upload process stops.
- FIG 9 illustrates a download process for securely transferring file data from the remote file server node to the client node.
- the process in FIG 9 presumes that an authenticated connection has been established and the client node transmits a request to the remote file server node to download part of the file.
- the request can be a new request, i.e., a request not previously initiated, or a request to resume a partially completed process.
- the former would occur if the communication
- step S320 the remote file server node initially
- step S322 the remote file server node sets an internal counter "Next Segment" to indicate the first
- to-be-downloaded segment e.g., equal to zero.
- the remote file server node is to resume a partially completed request, then, in step S324, the remote file server node sets the internal counter "Next Segment" to indicate the next
- to-be-downloaded segment following the last successfully downloaded segment e.g., equal to the bytes already successfully downloaded divided by the segment size.
- step S326 the remote file server node transmits to the client node the file header stored for the file from which the client node has requested file data.
- the client node receives the file header and obtains the OID of the data
- step S328 the client node uses the OID to retrieve the appropriate data key using the OID, including, if necessary, requesting that the remote file
- the client node transmits a request for the appropriate data key to the remote file server node.
- the remote file server node uses the OID to identify the appropriate encrypted data key and transmits this encrypted data key to
- the encrypted data key is retrieved from a list of encrypted data keys stored in the client user record associated with the client user currently operating the
- step S330 the client node obtains the appropriate encrypted data key and decrypts the data key using the private key specific to the client node.
- step S332 the client node extracts the buffer size and header slot/offset
- the client node transmits a request to the remote file server node to download a portion of file
- the remote file server
- node responds to this request by retrieving the requested portion of file data from the
- step S3366 the client node decrypts the data in the buffer using the data key
- step S330 the client node decompresses the decrypted data
- the client node illustratively pieces together in proper sequence the downloaded, decompressed and decrypted data segments to reproduce a replica copy of the requested file data.
- the client node determines whether or not the all of the requested file data has been successfully downloaded. If not, then in step S342, the client node increments it's counter of the Next segment to be downloaded and causes steps S332-S340 to be repeated.
- a client node capable of allocating a new data
- the client node generates
- This data key may be used to encrypt file data transferred to the remote file
- the client node then encrypts the new data key using is public key Puc to produce an encrypted new data key Puc(new data key).
- the client node then transmits (e.g.,
- the remote file server responds by storing the encrypted new data
- each client user in the pre-subscribed user group maintains a complete list
- the client node sequentially requests (e.g., by transmitting request commands via the Internet to the remote file server node) the public key Puc', Puc",..., etc. of each client user of the group for which the client node desires to provide the new data key.
- the remote file server node responds by retrieving and transmitting to the client node via the
- the client node then transmits to the remote file server node via the Internet each of
- the remote file server node never has a clear-text, i.e., non-encrypted form
- the remote file server node and client nodes maintain the integrity of the group of files on the virtual storage device by ensuring that all accesses to the (master) copies of the files maintained on the virtual storage device occur on the most up to date version of these (master) file copies. This can be tricky considering that:
- a client node may continue to access the local copy of the file data even though the client node may be unable to communicate with the
- client nodes at which such multi-user applications execute, were on the same local area network.
- remote file server node is separated from one or more of the client nodes by a wide area network, and although communication is not always possible
- the same expected behavior is achieved as can be anticipated on a local area network which supports multi-user and shared file access.
- a file version control is added to each file and each directory stored on the virtual storage device (i.e., both with the master copy at the remote file server node and the local copy at each client node).
- the file version control is used to ensure that, whenever possible, the client node only performs an access on the most up-to-date version of
- the file version control is also used to identify conflicting modifications to files and to reconcile them.
- it is highly time consuming and inefficient for the system according to the invention to transfer updated file data and directory information for every opened file from the remote file server nodes to each respective client whenever a
- privilege access right checks can also be performed at the same times.
- the remote file server node can determine that the file is currently in use by the given client
- the remote file server node can then determine if the given client node is still in communication with the remote file server node or if it is out of communication, i.e., closed
- the remote file server node maintains the ownership or control of the file data by the given client node including enforcing any file sharing mode locking. In this latter case, the remote file server node would only permit access to the data in accordance with the file sharing mode explicitly or implicitly specified by the native application programming interfaces of that particular file. If, however, the given client node is out of communication with the remote file server node, the remote file server
- this latter set of circumstances coupled with the given client node's ability to continue to modify its copy of the file while out of communication with the remote file server node, requires each client node to perform a reconciliation operation upon restoration of communication with the remote file server node.
- the client node uploads its modifications to the remote file server node.
- the uploading of modified file data is deferred until the
- client node closes the file. So long as a client node remains connected to the remote file server node, no version checking is needed for uploading and storing file data modifications
- the remote file server node will have
- the client node and remote file server node first perform a reconciliation process, including checking the version of the client node's locally
- FIG 10 illustrates a process executed by the client nodes and the remote file server nodes. Assume that the client node and remote file server node have already authenticated the connection. In step S400, the client node determines if communications have been restored. This can occur by reason of establishment of a new connection or by reason of restoration of communication with the remote file server node after detection ofa loss of communication with the remote file server node, even with an existing connection. If so, the
- step S402. This is described in greater detail below.
- step S404 the client node determines whether or not there is a need to access a file or directory of the file group stored on the virtual storage device.
- the client node returns to step S400. Assume now that a file or directory access must be performed at the client node.
- step S406 the client node determines if the requested operation is one which requires a
- the operations of closing a file and uploading the modifications to the file data made by the client node illustratively do not require a version check. If no version check is required,
- step S414 attempts to perform the requested access operation. Many of the attempted requested access operations are simply performed according to the normal operation of the operating system and/or application executing at the client node through which the access request was generated. However, in the case ofa close operation performed on a file modified by the client node, the upload process described above is also carried out for purposes of uploading the modifications to the file data.
- step S408 the client node transmits via the Internet to the remote file server node a request to check the version of the local copy of the file data or directory information currently maintained at the client node (e.g., in the main
- the request includes the version number of the respective local copy of the file data or directory information, if a local copy of such information is
- the client node can instead issue a request for the file
- steps S409-S410 is continuously performed until a
- step S410 the time-out timer expires in step S409 or the condition of step S410 is satisfied.
- the client node determines whether or not the client node has received any response from the
- the client node If the client node fails to receive a response form the remote file server node within the time limit of the time-out timer, the client node presumes that it is out of communication with the remote file server node. If so, then in step S412, the client node
- step S414 the client
- node attempts to perform the access operation on the file data or directory information, e.g.,
- the client uses the operating system or application which requested the access.
- the client uses the operating system or application which requested the access.
- the client
- node attempts to perform the requested access on its local copy of the file data or directory
- the client node if the client node has any. Note that if the client node does not have the requisite file data or directory information, the attempted request fails in accordance with the normal operation of the operating system, or application. In addition, if the operation is a close file operation or any operation which modifies directory information, the client node illustratively
- step S410 the client node determines, in step S416, whether or not the access is permitted.
- the client node lacks sufficient access right privileges to perform the access and/or the requested access conflicts with a file sharing mode of the file explicitly or implicitly
- the client node illustratively provides an appropriate abort/failure message to the user indicating why the access was denied, e.g., displays the message on the
- step S414 the client node performs the requested
- Steps S420-S430 are performed by the remote file server node in response to
- step S420 the remote file server node checks to determine if the client node has sufficient privilege access rights to perform the requested operation. For
- the client node if the client node only has read access privilege rights on all files in a directory and the client node desires to open a file for writing to it, the client node lacks sufficient privilege
- access rights to perform the requested access are performed using operating system software supplied with the remote file server node. If the client node user does not have the requisite access privilege rights, the remote file server node
- step S422 the remote file server node next checks to determine if the requested access adheres to implicit and explicit native file sharing modes specified by the native file application programming interface governing the file data or directory to be accessed. As noted, above, such a determination is made using the operating
- step a Assume that the requested access does adhere to such file sharing modes.
- the remote file server node checks the version number (if any) in the message supplied by the client node against the version number of the (master) copy of the file or directory
- client node has the most up-to-date version of the file data and/or directory information.
- the file server node simply transmits via the Internet to the client node a message
- the remote file server node performs step S428.
- step S4208 the remote file server node downloads to the client node the requested file data or directory information, as described in connection with FIG 8.
- this downloaded file data and/or directory information is detected by the client node in steps S410 and S416.
- a client node can obtain the latest version of file data or directory information and store it as a local copy in order to perform accesses. This provides two benefits. First, the local copy acts as a "cached copy" in that it is much easier to access the local copy than to perform the accesses via the Internet. Second, in the event that the client node is incapable of communicating with the remote file server node, the client node
- a client node can specify a desire to "hoard" one or
- a client node user can specify a desire to hoard
- the remote file server node monitors each of the files or directories indicated as hoarded by each client node.
- the remote file server node Periodically, the remote file server node performs a pass over all of the files and directories
- the client node then updates its locally cached copy of the hoarded files and directories. As a result, the client node can ensure that between accesses to
- the remote file server node is continuously updating such as
- the client node is likely to always have the latest or most updated version of the hoarded files and directories.
- the client node when the client node desires to access such hoarded files or directories, the client node likely can avoid any delays in accessing such hoarded files or directories incurred while the latest or most updated version of the files or directory information is downloaded.
- the client node Moreover, as described below, should the client node
- the client node user will have to manually reconcile a conflict.
- the client node reduces the risk that an outdated version of the file or directory will be accessed by the client node while out of communication with the
- the remote file server node closes the communication channel with the given client node, prior to closing a file or directory last accessed by the given client node,
- the remote file server node can relinquish control of that file or directory by the given client
- client node is enabled to access its local "cache" copy of the file or directory while out of
- two client nodes may perform incompatible modifications to the file data or directory information.
- an elaborate reconciliation mechanism is provided
- modifications made to the (master) copy of file data or directory information are given preference to modifications made by a client node while out of communication with the remote file server node. Nevertheless, there are certain circumstances where modifications made by the client node while out of communication with the remote file server node will be stored at the remote file server node.
- the client node restores communication with the remote file server node, the client node performs a reconciliation operation. During this operation, the client node first identifies each local copy of file data and directory information maintained locally in a storage device (e.g., disk memory 15) physically present at the client node. The client node then checks the version of each such locally maintained copy of file data and
- the remote file server node checks the version of the respective file data or directory information to see if the same version number is recorded in the (master) copy of
- the client node often is required to perform some reconciliation action.
- the client node often is required to perform some reconciliation action.
- FIG 11 contains a chart summarizing the reconciliation actions taken by the remote file server node and the client node in regard to reconciling changes that affect file data or files.
- each cell of the chart is labeled with a row number Rl, R2, R3, R4 and R5 and a column number Cl, C2, C3, C4 and C5.
- the rows R1-R5 contain cells indicating the actions taken when the client node: makes no changes to the file data (Rl); modifies the file data (R2); renames or moves the file (R3); deletes the file (R4); or deletes the directory containing the file (R5).
- the columns contain cells indicating actions taken when: no changes were made to the copy of the file data at the remote file server node (Cl);
- the file is only presumed co ⁇ ect if it does not conflict with the remote file server copy. If
- remote file server node (column Cl).
- the client node also makes no changes to the file (Rl, Cl). In such a case, no action is taken by either the remote file server
- the remote file server node saves this modified file data.
- the client node renames the file or moves it to another directory (R3, Cl)
- the remote file server node performs the same renaming or movement action on the (master) copy of the file maintained at the remote file server node.
- the client node deletes the file (R4, Cl) or the entire directory containing the file (R5, Cl)
- the remote file server node deletes the
- the copy of the file data at the remote file server node was changed, i.e., modified or written to (C2), e.g., by another client node. If the client node did not change its local copy of the file while out of communication with the remote file server
- the client node changed its local copy of the file data (R2, C2), the local copy of the file data
- the client node's local copy of the file data is moved to a local
- the conflict bin is a directory (of the disk memory 15) at the client node in which the client node places information or file data indicative of unresolvable conflicts.
- C3 renamed or moved (C3), e.g., by another client node. If the client node did not change its local copy of the file data (Rl, C3), then the client node performs the corresponding renaming or movement actions on its local copy of the file containing the unchanged file data. On the other hand, if the client node changed the file data, i.e., modified the file data or write to the file data (R2, C3), then the client's local copy of the file data is moved to the conflict bin. In addition, the modifications to the file data (or entire file) are uploaded to the remote file server node. The remote file server node stores the modified file data (or entire modified file) under the new name or moved location of the file. If the client node changed the name of the file data (Rl, C3), then the client node performs the corresponding renaming or movement actions on its local copy of the file containing the unchanged file data. On the other hand, if the client node changed the file data, i.e.
- the client node places a warning message in the conflict bin indicating that the client node's renaming or movement was not performed for the file. If the
- the client node places a warning in the conflict bin indicating that the conflict bin
- both are acts which delete the (master) copy of the file at the remote file server node. (The impact on reconciling the directories is different as will be described below.)
- the client node did not change, i.e., modify or write to, its local copy of the file data
- the client node simply deletes or invalidates its local copy of the file data.
- the client node If the client node had changed, i.e., modified or written to, its local copy of the file data (R2, C4 or R2, C5), the client node moves its local copy of the file data (or entire file) to the conflict bin. Likewise, if the client node had renamed or moved the file (R3, C4 or R3, C5), then the client node moves its local copy of the file data (or entire file) to the conflict bin. In addition, in any of scenarios R2, C4; R2, C5; R3, C4; or R3, C5, the client node uploads the
- FIG 12 contains a chart summarizing the reconciliation actions taken by the remote
- each cell of the chart is labeled with a row number Rl', R2', R3', R4' and
- R5' and a column number Cl', C2', C3', C4' and C5'.
- the rows Rl'-R5' contain cells
- a directory attribute e.g., the privileges of one or more users or
- R2' groups of users
- R3' adds a file or child/subdirectory to a directory
- R3' adds a file or child/subdirectory to a directory
- a directory R4'
- deletes a directory R5'
- the columns contain cells indicating actions taken when: no changes were made to the directory at the remote file server node (Cl); the copy of the directory attributes at the remote file server node changed (C2); a file or child/subdirectory was added to the copy of the directory at the remote file server node (C3);
- the client node was out of communication with the remote file server node, the (master) copy of the directory was not changed/modified at the remote file server node (Cl').
- the client node also has not changed/modified the directory (RT, Cl') in which case no action is needed. If the client node: changed/modified one or more attributes of the directory (R2', Cl'); or added one or
- the remote file server node makes the corresponding attribute modifications or adds the conesponding new file and/or
- the remote file server node deletes its (master) copy of the directory.
- remote file server node was changed/modified (C2'), e.g., by another client node.
- C2' remote file server node
- the client node did not change/modify its local copy of the directory information (Rl 1 , C2') in which case modifications to the (master) copy of the directory
- the client node places a warning in its conflict bin advising that the directory at the remote file server node was modified while the remote file server node was out of communication with the client node in a fashion which was incompatible with a change/ modification made by the client node under the same period of time.
- the client node adds one or more files or child/subdirectories to the directory (R3', C2'). Such additions may be either compatible or incompatible with the attribute changes/modification made to the (master) copy of the directory information.
- An example of incompatibility is where the attributes of the
- the attribute modifications are downloaded to the client node and stored locally.
- the client node made no changes/modifications to the directory (Rl', C3'), then the added file and child/subdirectory entries are downloaded from the remote file server node to the client
- the client node changed/modified one or more attributes of the directory (R2', C3'), the added file and child/subdirectory entries are nevertheless downloaded from the remote file server node to the client node where they are stored locally. If the client node also added files or child/subdirectories (R3', C3'), a determination is first made to see if any are incompatible with the added files or child subdirectories at the remote file server node.
- An example of an incompatible entry is where both the client node and the remote file server node both attempted to add a file or child/subdirectory having the same name.
- the file and child/subdirectory entries made by the client node are uploaded to the remote file server node where they are stored and the file and child/subdirectory entries made by the remote file server node are downloaded to the client node where they are stored locally.
- the client node moves each of the client node's file or child/subdirectory entries, which are incompatible with the file or child/subdirectory entries made at the remote
- server node to the client node. If the client node deleted the directory (R5', C3'), the new files and directories are downloaded from the remote file server to the client node and the client node places them in the conflict bin. The remote file server node then deletes the (master)
- node is renamed or moved (C4'), e.g., by another client node. If the client node made no
- the client node nevertheless conespondingly renames or moves its local copy of the directory in conformity with the remote file server node.
- the client node also uploads the attribute changes to the remote file server node which stores them.
- the client node adds one or more new files or child/subdirectories (R3', C4') then the client node nevertheless conespondingly renames or moves its local copy of the directory in conformity with the remote file server node.
- the client node also uploads the new file and child/subdirectory entries to the remote file server node which stores them. If the client node renamed or moved the directory (R4', C4'), a determination is first made to see
- the client node if the client node performed an identical renaming and/or moving operation. If so, no action is taken. Otherwise, the client node places a warning in the conflict bin indicating that the move or rename operation at the client node could not be effected at the remote file server
- the client node downloads from the remote file sever node a copy of the directory and stores it locally.
- the (master) copy of the directory at the remote file server node is
- C5' deleted (C5'), e.g., by another client node. If the client node made no changes to the directory (Rl', C5') or only changed one or more attributes of the directory (R2', C5') then the client
- node simply deletes the directory. If the client node added one or more new files or
- the client node also deletes the locally stored copy of the directory. If the client node moved or renamed the directory (R4', C5') then the client node stores a warning in the conflict bin indicating that the directory had been previously deleted at the remote file server node. In addition, the directory is uploaded from the client node to the remote file server node. Lastly, if the client node also deletes the directory (R5', C5') then no action is performed.
- the remote file server nodes prior to enabling client nodes to access directories or file data (most notably, transmitting to client nodes copies of directory entries and file data for reading or writing, or storing modified directory entries and file data received from client nodes), perform two access checks on file data and directory entries. Specifically, the remote file server nodes check to make sure that the client node requesting the access operation has sufficient access privilege rights to perform the requested file data or
- the remote file server node also checks to make sure that the
- servers are available for providing the accesses to a given file or directory on behalf of different nodes. According to this embodiment, the duties associated with access control, that
- access control nodes other than the remote file server nodes which
- FIG 13 shows an illustrative environment in which this embodiment of the invention
- h20-h32 can be used, namely, a wide area network 200, such as the Internet.
- a wide area network 200 such as the Internet.
- h20-h32 can be used, namely, a wide area network 200, such as the Internet.
- r20-r23 denote routers or switches. More specifically, computer terminals h20-h25 denote client nodes on a local area network, which, with router r20, form subnetwork 120. Computer terminal h26 denotes a mobile client node forming
- Computer terminals h27 is an access control node, which, with router r21 , form subnetwork 122.
- Computer terminals h28-h30 are remote file server nodes, which , with switch r22, form subnetwork 123.
- Computer terminals h31-h33 are remote file server nodes, which, with switch r23, form subnetwork 124.
- subnetworks 122-124 contain remote file server nodes operated by the same virtual file service provider (although the subnetworks, themselves, can be owned by an independent access provider or ISP).
- all of the client nodes h20-h26 are operated by client users who are part of the
- this virtual storage device is accessible through any of the remote file server nodes h28-h33. Furthermore, assume that access control to at least one particular file is delegated to access
- control node h27 For purposes of this discussion, the steps associated with version control
- FIG 14 illustrates a process carried out according to this embodiment of the invention.
- FIG 14 is similar to the process of FIG 10. As such, only the differences between these two
- the client node h26 desires to access a particular file or directory
- step S406 the delegation of the access control is not known initially at the client node h26.
- step S502 the client node h26 first determines whether or not the client node knows of an access control node delegated
- step S508 the client node determines if the response was received from a node, other than the remote file server node h28, which identifies itself as the access control node (namely, the access control node h27).
- the client node h26 authenticates a connection with this other node before communicating with it. If so, the client node stores (e.g. in memory 12 or disk 15) an indication of the access control node h27 for the file or directory to be accessed in step S510. The client node h26 then performs the remaining steps S416, S412, S414, S418, etc.
- step S504 the client node h26 transmits its request directly to the access
- the client node h26 opens an authenticated connection with the access control node h27.
- steps S505-S506 cause the client node h26 to wait until a time out timer expires or the
- step S506 the client node h26 determines whether or not a response was received. If not, it is possible that the access control node h27 is disabled
- the client node h26 performs the remaining steps S416, S412, S414,
- the remote file server node h28 initially determines whether or not access control has been delegated to another node for the file or directory for which access is requested. If not, the remote file server node h28 performs the steps S420, S422, S424, S426, S428 and S430 as necessary to check the privilege access rights and file sharing mode of the requested access as well as the version of the copy of the file or directory in the possession of the client node h26. In this case, however, the remote file server node h28 determines that access control has been delegated to another node, namely node h27. Thus, in step S514, the remote file server node h28 forwards via the Internet the request of the client node h26 to the access control node h27
- step S426, S428 and S430 check on the file or directory to be accessed in step S426, S428 and S430 as described above.
- the remote file server node h28 might need the
- the access control node h27 determines if the requesting client node h26 has sufficient privilege access rights to perform the request and whether or not the requested access adheres to implicit and explicit file sharing modes specified by the native file application programming interface associated with the file. If either of these checks fail, the access control node h27 transmits via the Internet a message to both the remote file server node h28 and the client node h26 informing them that the requested access could not be performed and the particular check which failed in step S528 (message "B").
- the access control node h27 transmits via the Internet a message to both the client node h26 and the remote file server node h28 approving the access in step S530 (message "A").
- version control is important for purposes of maintaining integrity of the files by ensuring that each access to a
- file at the remote file server nodes is performed on the latest version of the file data.
- the version control node can be the same node as the access control node or a
- version control is performed at a version control node which does not also perform access control.
- node h26 is a client node
- node h28 is the respective remote file server node and node h31 is the version control node.
- FIG 15 shows a process which is a modification of the process shown in FIG 10. As such, only the differences between the process of FIG 10 and the process of FIG 15 are described in detail.
- the client node h26 desires to access a file or a directory under conditions requiring a version check. As such, the node performs steps S400, S402, S404 and S406. Assume also initially, that the delegation of the version control is not known initially at the client node h26. In step S602, the client node h26 first determines whether or not the client node knows ofa version control node delegated to the file or directory to be accessed. If not,
- the client node h26 transmits to remote file server node h28 via the Internet a request to access the particular file in step S408 and waits to receive a response in steps S409-S410.
- step S608 the client node determines if the response was received from a node, other than the remote file server node h28, which
- the version control node h31 identifies itself as the version control node (namely, the version control node h31).
- the client node h26 authenticates a connection with this other node prior to communicating with it. If so, the client node h26 stores (e.g. in memory 12 or disk 15) an indication of the version control node h31 for the file or directory to be accessed in step S610. The client node h26 then performs the remaining steps S416, S412, S414, S418, etc.
- the client node h26 desires to access the same file or directory and requires a version check. On the next access to the file or directory, the client node h26 will
- step S604 the client node h26 transmits its request directly to the version control node h31 via the Internet.
- the client node h26 transmits its request directly to the version control node h31 via the Internet.
- steps S605-S606 cause the client node h26 to wait until a time out timer expires or the
- step S606 the client node h26 determines whether or not a response was received. If not, it is possible that the version control node h27 is disabled or that version control has been re-assigned to a different node. In such a case, the client node h26 sends its access request to the remote file server node h28 in step S408 as above. If a response is received, the client node h26 performs the remaining steps S416, S412, S414, S418, etc.
- the remote file server node i.e., via an upload process. If this happens, it is desirable for the client node to inform the version control node h31 that the version of the file or directory has
- step S414 the client node h26 determines if a version update
- step S640 is required for an accessed file of directory in step S640. If not (e.g., the access was only to a
- step S400 the client node h26 skips to step S400.
- step S642 the client nod h26 transmits a version update message to
- step S612 the remote file
- server node h28 initially determines whether or not version control has been delegated to another node for the file or directory for which access is requested. If not, the remote file server node h28 performs the steps S420, S422 and S424 as necessary to check the privilege access rights and file sharing mode of the file or directory in the possession of the client node h26. In this case, however, the remote file server node h28 dete ⁇ nines that version control has been delegated to another node, namely node h27. Thus, in step S614, the remote file server node h28 forwards via the Internet the request of the client node h26 to the version control node h31 to which version control for the particular file has been delegated.
- the remote file server node h28 performs the privilege access rights and file sharing mode checks in steps S420, S422 and S424 as described above.
- step S422 After executing step S422, if the file or directory to be accessed is deemed to have passed the privilege access rights check and the file sharing mode check, the remote file
- step S638 the remote file server node h28
- server node h28 performs step S426 as described above to determine if the client node h26 has the most up-to-date version of the file or directory to be accessed. If so, the remote file server node informs the client node h26 that the client has the most up-to-date version of the
- the version check was performed by the version control node h31.
- the remote file server node performs steps S430 or S428, respectively.
- steps S430 or S428, respectively Now consider the steps performed at the version control node h31.
- the request from the remote file server node h28 or client node h26 is received at the version control node h31.
- the version control node determines whether or not the request is simply a request to update the version number of a file or directory recently modified at the remote file server node h28. If so, the version control node h31 updates the version number associated with this file or directory in step S624.
- the version control node h31 performs step S626.
- the version control node h31 determines if the requesting client node h26 has the most up-to-date version of the file or directory to be accessed. As noted above, this is achieved by determining if the version number supplied by
- the client node h26 matches the version number stored at the version control node as
- the version control node h31 transmits via the Internet a
- the client node has the most up-to-date version of the file or directory to be accessed. If the versions do not match (client node h26 has an outdated copy), the version control node h31 transmits via the Internet a message "D" indicating that the client node h26 has an outdated or
- steps S512 and S514 can be inserted
- step S612 is performed only if the "No" branch of step S512 is taken.
- a combined access control-version control node can implement all of steps
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU20413/01A AU2041301A (en) | 1999-11-01 | 2000-11-01 | Internet-based shared file service with native pc client access and semantics and distributed access control |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16300899P | 1999-11-01 | 1999-11-01 | |
US60/163,008 | 1999-11-01 |
Publications (3)
Publication Number | Publication Date |
---|---|
WO2001033829A2 true WO2001033829A2 (fr) | 2001-05-10 |
WO2001033829A3 WO2001033829A3 (fr) | 2002-03-28 |
WO2001033829A9 WO2001033829A9 (fr) | 2002-07-04 |
Family
ID=22588064
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/030077 WO2001033361A1 (fr) | 1999-11-01 | 2000-11-01 | Service de fichiers communs sur internet a acces aux pc clients originels et semantique |
PCT/US2000/030201 WO2001033829A2 (fr) | 1999-11-01 | 2000-11-01 | Service de fichiers partages a base d'internet avec semantique et acces client du pc natif et controle d'acces distribue |
PCT/US2000/030078 WO2001033383A1 (fr) | 1999-11-01 | 2000-11-01 | Service de fichiers partages base sur internet a semantique et acces client pc natifs et controle de version reparti |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/030077 WO2001033361A1 (fr) | 1999-11-01 | 2000-11-01 | Service de fichiers communs sur internet a acces aux pc clients originels et semantique |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/030078 WO2001033383A1 (fr) | 1999-11-01 | 2000-11-01 | Service de fichiers partages base sur internet a semantique et acces client pc natifs et controle de version reparti |
Country Status (3)
Country | Link |
---|---|
AU (3) | AU1450901A (fr) |
TW (3) | TW487843B (fr) |
WO (3) | WO2001033361A1 (fr) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1402374A1 (fr) * | 2001-05-31 | 2004-03-31 | Oracle International Corporation | Cles d'acces a la memoire |
EP1421520A1 (fr) * | 2001-08-03 | 2004-05-26 | Isilon Systems, Inc. | Systemes et procedes concus pour fournir des metadonnees pour suivre des informations sur un systeme de fichiers repartis de dispositifs de stockage |
US7466823B2 (en) | 2000-03-03 | 2008-12-16 | Steve Vestergaard | Digital media distribution method and system |
US7529712B2 (en) | 2002-07-16 | 2009-05-05 | Yangaroo Inc. | Content distribution system and method |
EP2629216A3 (fr) * | 2012-02-16 | 2014-01-22 | Cortado AG | Procédé et agencement de gestion de données, ainsi que programme informatique correspondant et support de stockage lisible sur ordinateur correspondant |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7013379B1 (en) | 2001-12-10 | 2006-03-14 | Incipient, Inc. | I/O primitives |
US7173929B1 (en) | 2001-12-10 | 2007-02-06 | Incipient, Inc. | Fast path for performing data operations |
US6959373B2 (en) | 2001-12-10 | 2005-10-25 | Incipient, Inc. | Dynamic and variable length extents |
US6986015B2 (en) | 2001-12-10 | 2006-01-10 | Incipient, Inc. | Fast path caching |
AU2002366270A1 (en) * | 2001-12-10 | 2003-09-09 | Incipient, Inc. | Fast path for performing data operations |
DE10257819B4 (de) * | 2002-12-10 | 2005-10-13 | Web.De Ag | Netzwerkbasierter Datenzugriff mit getrenntem Datenübergang und Datenübertragung |
US7953794B2 (en) | 2005-01-14 | 2011-05-31 | Microsoft Corporation | Method and system for transitioning between synchronous and asynchronous communication modes |
US7593943B2 (en) | 2005-01-14 | 2009-09-22 | Microsoft Corporation | Method and system for synchronizing multiple user revisions to a shared object |
US8966080B2 (en) | 2007-04-13 | 2015-02-24 | Emc Corporation | Systems and methods of managing resource utilization on a threaded computer system |
US8417666B2 (en) * | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
TWI447584B (zh) * | 2010-11-01 | 2014-08-01 | Inst Information Industry | 多人共享之網路儲存服務系統與方法 |
TW201315191A (zh) * | 2011-09-27 | 2013-04-01 | Jian Guo Hui | 基於完整列矩陣之再加密方法 |
TWI571754B (zh) * | 2015-02-02 | 2017-02-21 | 群暉科技股份有限公司 | 用來進行檔案同步控制之方法與裝置 |
CN106487761B (zh) * | 2015-08-28 | 2020-03-10 | 华为终端有限公司 | 一种消息传输方法和网络设备 |
CN106446142A (zh) * | 2016-09-21 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种多区域间文件系统的设计方法 |
CN106933686A (zh) * | 2017-03-10 | 2017-07-07 | 广东欧珀移动通信有限公司 | 一种调整广播消息队列的方法、装置及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838916A (en) * | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server |
US5918019A (en) * | 1996-07-29 | 1999-06-29 | Cisco Technology, Inc. | Virtual dial-up protocol for network communication |
US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1337132C (fr) * | 1988-07-15 | 1995-09-26 | Robert Filepp | Systeme de reception pour reseau informatique interatif et sa methode de fonctionnement |
US5864683A (en) * | 1994-10-12 | 1999-01-26 | Secure Computing Corporartion | System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights |
US5966715A (en) * | 1995-12-29 | 1999-10-12 | Csg Systems, Inc. | Application and database security and integrity system and method |
US5862346A (en) * | 1996-06-28 | 1999-01-19 | Metadigm | Distributed group activity data network system and corresponding method |
US5889942A (en) * | 1996-12-18 | 1999-03-30 | Orenshteyn; Alexander S. | Secured system for accessing application services from a remote station |
-
2000
- 2000-11-01 AU AU14509/01A patent/AU1450901A/en not_active Abandoned
- 2000-11-01 WO PCT/US2000/030077 patent/WO2001033361A1/fr active Application Filing
- 2000-11-01 AU AU20413/01A patent/AU2041301A/en not_active Abandoned
- 2000-11-01 WO PCT/US2000/030201 patent/WO2001033829A2/fr active Application Filing
- 2000-11-01 WO PCT/US2000/030078 patent/WO2001033383A1/fr active Application Filing
- 2000-11-01 AU AU14510/01A patent/AU1451001A/en not_active Abandoned
- 2000-11-23 TW TW089123020A patent/TW487843B/zh not_active IP Right Cessation
- 2000-11-23 TW TW089123019A patent/TW498217B/zh not_active IP Right Cessation
- 2000-11-23 TW TW089123018A patent/TW561735B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5838916A (en) * | 1996-03-14 | 1998-11-17 | Domenikos; Steven D. | Systems and methods for executing application programs from a memory device linked to a server |
US5918019A (en) * | 1996-07-29 | 1999-06-29 | Cisco Technology, Inc. | Virtual dial-up protocol for network communication |
US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7466823B2 (en) | 2000-03-03 | 2008-12-16 | Steve Vestergaard | Digital media distribution method and system |
EP1402374A1 (fr) * | 2001-05-31 | 2004-03-31 | Oracle International Corporation | Cles d'acces a la memoire |
EP1402374A4 (fr) * | 2001-05-31 | 2008-01-23 | Oracle Int Corp | Cles d'acces a la memoire |
EP1421520A1 (fr) * | 2001-08-03 | 2004-05-26 | Isilon Systems, Inc. | Systemes et procedes concus pour fournir des metadonnees pour suivre des informations sur un systeme de fichiers repartis de dispositifs de stockage |
EP1421520A4 (fr) * | 2001-08-03 | 2008-11-12 | Isilon Systems Inc | Systemes et procedes concus pour fournir des metadonnees pour suivre des informations sur un systeme de fichiers repartis de dispositifs de stockage |
EP2330518A3 (fr) * | 2001-08-03 | 2012-10-31 | EMC Corporation | Systèmes et procédés fournissant des métadonnées pour le suivi d'informations sur un système de fichiers distribués de dispositifs de stockage |
US8706755B2 (en) | 2001-08-03 | 2014-04-22 | Emc Corporation | Distributed file system for intelligently managing the storing and retrieval of data |
US7529712B2 (en) | 2002-07-16 | 2009-05-05 | Yangaroo Inc. | Content distribution system and method |
EP2629216A3 (fr) * | 2012-02-16 | 2014-01-22 | Cortado AG | Procédé et agencement de gestion de données, ainsi que programme informatique correspondant et support de stockage lisible sur ordinateur correspondant |
AU2013200859B2 (en) * | 2012-02-16 | 2016-05-12 | Cortado Ag | Method and system for managing data and a corresponding computer program and a corresponding computer-readable storage medium |
US9378217B2 (en) | 2012-02-16 | 2016-06-28 | Cortado Ag | Method and system for managing data and a corresponding computer program and a corresponding computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
WO2001033829A3 (fr) | 2002-03-28 |
WO2001033829A9 (fr) | 2002-07-04 |
AU1451001A (en) | 2001-05-14 |
AU1450901A (en) | 2001-05-14 |
WO2001033361A1 (fr) | 2001-05-10 |
WO2001033383A9 (fr) | 2002-05-16 |
TW498217B (en) | 2002-08-11 |
TW561735B (en) | 2003-11-11 |
TW487843B (en) | 2002-05-21 |
AU2041301A (en) | 2001-05-14 |
WO2001033383A1 (fr) | 2001-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7136903B1 (en) | Internet-based shared file service with native PC client access and semantics and distributed access control | |
US20060129627A1 (en) | Internet-based shared file service with native PC client access and semantics and distributed version control | |
WO2001033829A2 (fr) | Service de fichiers partages a base d'internet avec semantique et acces client du pc natif et controle d'acces distribue | |
US20220086043A1 (en) | Community Internet Drive | |
US8572757B1 (en) | Seamless secure private collaboration across trust boundaries | |
US7376711B2 (en) | Smart card enabled mobile personal computing environment system | |
US9015858B2 (en) | Graphical user interface for seamless secure private collaboration | |
US6662198B2 (en) | Method and system for asynchronous transmission, backup, distribution of data and file sharing | |
US7222231B2 (en) | Data security for distributed file systems | |
US6981152B2 (en) | Smart card security information configuration and recovery system | |
JP4335559B2 (ja) | ピア・ツー・ピア・ファイル共有の方法及びその装置 | |
CN103931156B (zh) | 具有用户不可知加密文件的服务器侧去重的云文件系统 | |
US20190087432A1 (en) | Secure searchable and shareable remote storage system and method | |
US20160011990A1 (en) | System and Method for Conflict-Free Cloud Storage Encryption | |
CN111406260B (zh) | 具有安全对象复制的对象存储系统 | |
US7421480B2 (en) | Personal computing environment using mozilla | |
KR101623742B1 (ko) | 파일 연관 메시지 공유 방법 및 메시지 공유 시스템 | |
CN105450750A (zh) | 智能终端安全交互方法 | |
JP2002140239A (ja) | 情報管理システム及び情報管理方法及びシステム制御装置 | |
JP6216673B2 (ja) | データ管理方法及びデータ管理システム | |
Sanchez-Gomez et al. | Encrypted cloud: A software solution for the secure use of free-access cloud storage services | |
TW588531B (en) | Smart card enabled mobile personal computing environment system | |
Choudhari et al. | Security and Privacy of AWS S3 | |
JP2021026564A (ja) | ファイル配送システム、ファイル配送プログラム及びファイル受信プログラム | |
Hakkala | Consistency management in distributed storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
AK | Designated states |
Kind code of ref document: C2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: C2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
COP | Corrected version of pamphlet |
Free format text: PAGES 1/14 AND 10/14-14/14, DRAWINGS, REPLACED BY NEW PAGES 1/17 AND 10/17-17/17; PAGES 2/14-9/14, DRAWINGS, RENUMBERED AS PAGES 2/17-9/17; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase |