IMPORTING AND EXPORTING FILE SYSTEM ENTITIES FROM A BROWSER
Related Application
The following identified U.S. provisional patent application is relied upon and is incorporated by reference in this application: Provisional U.S. Patent Application No. 60/072,714, entitled, "Integration of a Stand- Alone Computer into a Network-Based Computing Environment," filed on January 27, 1998.
Field of the Invention
The present invention relates generally to data processing systems and, more particularly, to importing and exporting file system entities from a browser.
Background of the Invention
In recent years, the use of computers has proliferated. Many organizations now have networks containing a large number of interconnected computers. In such organizations, oftentimes, users need to share data. For example, a group of geographically disperse individuals may work on the same project, and as such, they may share a document so that each individual may make contributions to it.
There are numerous systems that users can use to share data. Included among these systems are file transfer and E-mail. Although they facilitate data sharing, these systems usually require the user to start a new application program to perform the data sharing, thus requiring the user to leave the program he or she was originally using. It is therefore desirable to better integrate data sharing functionality with programs that users often utilize, and it is also desirable to provide new, easy-to-use techniques for sharing data.
Summary of the Invention
Methods and systems consistent with the present invention provide a new, easy-to-use data sharing technique that is integrated with a browser. Recognizing that users often spend a significant amount of time using a browser, this data sharing technique integrates data sharing functionality with a browser, thus facilitating the user's use of the data sharing functionality.
In accordance with methods and systems consistent with the present invention, a browser displays an export icon and an import icon. Upon selecting the export icon, the user can make one or more of their files or directories available for use by others. Upon selecting the import icon, the user is able to easily access a remote file or directory by issuing file system commands to it.
1
In accordance with methods consistent with the present invention, a method is provided in a data processing system having file system entities and a browser. This method receives an indication of one of the file system entities into the browser and renders the one file system entity available for access by a remote computer.
In accordance with methods consistent with the present invention, a method is provided in a data processing system with a browser and directory services indicating remote file system entities available for access. This method receives an indication of one of the remote file system entities into the browser and establishes a virtual drive responsive to receiving the indication such that commands issued to the virtual drive are directed to the one remote file system entity.
In accordance with systems consistent with the present invention, a data processing system is provided containing directory services and a computer. The directory services is configured to store indications of file system entities available for access. The computer further includes a secondary storage device, a memory, and a processor. The secondary storage device contains local file system entities. The memory contains a browser configured to display an export icon, configured to display the local file system entities responsive to user selection of the export icon, configured to receive user selection of at least one of the local file system entities, and configured to store an indication of the at least one of the local file system entities into the directory services. The processor runs the browser.
In accordance with systems consistent with the present invention, a computer-readable memory device encoded with a data structure having entries is provided. Each entry comprises an indication of a file system entity available for importation to a computer from a remote location by selecting an import icon on a browser of the computer such that after importation a virtual drive is established enabling a user of the computer to issue commands to the virtual drive resulting in manipulation of the file system entity.
Brief Description of the Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an implementation of the invention and, together with the description, serve to explain the advantages and principles of the invention. In the drawings,
Fig. 1 depicts the screen of a browser in accordance with methods and systems consistent with the present invention;
Fig. 2 depicts a data processing system suitable for use with methods and systems consistent with the present invention;
Fig. 3 depicts a more detailed diagram of one of the computers depicted in Fig. 2;
Fig. 4 depicts a more detailed diagram of the directory node depicted in Fig. 2;
Fig. 5 depicts a more detailed diagram of the directory services depicted in Fig. 4;
Fig. 6 depicts a flow chart of the steps performed by the export process depicted in Fig. 3;
Fig. 7 depicts a log-on screen displayed by the browser depicted in Fig. 3;
Fig. 8 depicts a screen displaying the local file system entities on the computer of Fig. 3;
Fig. 9 depicts a flow chart of the steps performed by the import process depicted in Fig. 3;
Fig. 10 depicts a screen displayed by the browser depicted in Fig. 3 indicating the available file system entities available for importation; and
Fig. 11 depicts a file manager window displayed by the import process depicted in Fig. 3.
Detailed Description
Methods and systems consistent with the present invention facilitate data sharing by providing for the import and export of file system entities from a browser. Such importing and exporting reflects an easy-to-use mechanism for sharing data. A "browser" refers to a program that allows a user to view Web pages on the World Wide Web. The term "browser" also includes other programs, like virtual desk tops, where viewing Web pages forms only a part of the program's overall functionality. A "file system entity" refers to an entity managed by the file system like a file or directory.
When using a browser in accordance with methods and systems consistent with the present invention, the browser screen 100 displays two icons as shown in Figure 1 : an export icon 102 and an import icon 104. Upon selecting export icon 102, the user makes one or more of the file system entities on his or her local computer available for access by users of other computers. Upon selecting import icon 104, the user can import one or more remote file system entities and have them appear as virtual drives on their local computer.
A "virtual drive" refers to the local computer providing access to one or more file system entities so that they appear to be local to the user, although they are actually remote. For example, the virtual drive has a designation (e.g., "H:") much like that of a local drive (e.g., "C:"). When issuing file system commands to the virtual drive to access remote file system entities, the commands are sent to the system where the remote file system entities are physically located, and the commands are then performed on the actual file system entities. The results of the commands are sent back to the local computer and displayed to the user. Thus, to the user, the drive appears to be local because they can access it in a manner similar to the way they access their local drives. Overview
To perform this export and import functionality, methods and systems consistent with the present invention provide at least one directory services located somewhere on the network and both an export process and an import process on each computer that will take part in an import or export. The directory services is a central registry storing indications of (1) the file system entities that have been made available for importation by others ("exported"), (2) the individuals authorized to import the file system entities, and (3) the access rights (e.g., read, write, and execute) of each individual.
The export process has two responsibilities: First, it adds entries to the directory services so that a user can indicate which of their local file system entities are made available to others. Second, it receives commands from remote import processes and performs these commands on the local file system entities to implement a virtual drive.
The import process facilitates the virtual drive on a local machine. To do so, it receives user commands to manipulate remote file system entities and passes these commands to the export process where the remote file system entities physically reside. The export process, in turn, receives these commands, issues these commands on the local files using the local operating system, and returns the results to the import process. The import process receives the results and displays them to the user so that the file-manipulation requests appear to be executed locally, though they are actually sent to a remote location for processing. Implementation Details
Fig. 2 depicts a data processing system 200 suitable for use with methods and systems consistent with the present invention. Data processing system 200 contains two computers
202, 204 and a directory node 206 connected to the Internet 208. Computers 202 and 204 display a browser that facilitates the importing and exporting of file system entities and directory node 206 contains the directory services.
Figure 3 depicts a more detailed diagram of computer 202. Although computer 202 is depicted, one skilled in the art will recognize that computer 204 is similarly configured. Computer 202 includes a memory 306, a secondary storage device 308, a central processing unit (CPU) 310, an input device 312, and a video display 314. Memory 306 includes an import process 316, an export process 318, a browser 320, and a Java runtime environment 322. Import process 316, activated by user selection of the import icon, facilitates a virtual drive for a remote file system entity selected for import by the user. Export process 318, activated by user selection of the export icon, renders local file system entities available for importation by other computers. Browser 320 is a program capable of displaying web pages to the user. An example of a browser suitable for use in computer 202 is the HotJava browser available from Sun Microsystems of Palo Alto, California. Java runtime environment 322 includes a Java™ virtual machine 324 which acts like an abstract computing machine, receiving instructions in the form of bytecodes and interpreting the bytecodes by dynamically converting them into a format suitable for execution on the processor and by executing them. The Java virtual machine is described in greater detail in Lindholm and Yellin, The Java Virtual Machine Specification. Addison- Wesley (1997), which is incorporated herein by reference.
Figure 4 depicts a more detailed diagram of directory node 206, which contains a memory 428, a secondary storage device 430, a CPU 432, and at least one I/O device 434. Secondary storage device 430 includes directory services 436, containing indications of file system entities that have been exported and that are available for importation.
One skilled in the art will appreciate that computers 202 and 204 and directory node 206 may contain additional or different components. Additionally, although aspects of the present invention are described as being stored in memory, one skilled in the art will appreciate that these aspects can also be stored on or read from other types of computer- readable media, such as secondary storage devices, like hard disks, floppy disks, or CD- ROM, a carrier wave from the Internet, or other forms of RAM or ROM. Sun, Sun
Microsystems, the Sun logo, Java, and Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Fig. 5 depicts an example of directory services 436. Directory services 436 contains a number of entries 502-506 indicating a file system entity that is available for importation. Each entry 502-506 contains an indication of a particular file system entity, a list of users or groups of users who are authorized to import this file system entity, and the access rights for each user or group of users. For example, entry 502 contains information for the directory "SYS.DIR" on the "ZEUS" system. This file system entity may be imported by either "userl" or "user2," where userl has read and write access and user2 has only read access. Although only three entries 502-506 are depicted in directory services 436, one skilled in the art will appreciate that directory services 436 may contain many additional entries.
Fig. 6 depicts a flow chart of the steps performed by export process 318. The export process performs its processing after the user has selected the export icon on the browser screen. The first step performed by the export process is to display a log-on screen (step 602). This log-on screen, depicted in Fig. 7, contains a field 704 where the user enters their user name and a field 706 where the user enters their password. One skilled in the art will appreciate that this step may be skipped in the event that the user has already logged into the browser for some other purpose, like when importing a file system entity as is discussed below. After displaying the log-on screen, the export process displays a screen 802, depicted in Fig. 8, indicating the file system entities that are available on the local computer for exportation (step 604). Screen 802 depicts an indication of file system entities 804 of the local computer, a list of fields 806 where users or groups of users may be entered who will be authorized to import the selected file system entity, and a number of fields 808 where the access rights for each user or group of users can be designated.
After displaying the file system entities on the local computer, the export process receives an indication of the selections of the user, including various file system entities, the associated users who can import those file system entities, and the access privileges for those users (step 606). Next, the export process stores this information into the directory services (step 607).
After storing the entries into the directory services, the export process goes into a background mode to facilitate a virtual drive where it waits to receive a remote command to
access one of its exported file system entities. If the export process receives such a remote command (step 608), the export process converts this command into a format suitable to the local operating system (step 610). In this step, the export process has received a command to manipulate a file system entity using the well-known Hypertext Transfer Protocol (HTTP) and converts it into a format suitable to the local operating system, such as the Windows 95 operating system available from Microsoft Corporation of Redmond, Washington. HTTP is described in greater detail in Stevens, TCP/IP Illustrated. Volume 3. Addison- Wesley (1996), which is incorporated herein by reference. One skilled in the art will appreciate that other well-known protocols may be used, such as Sun Microsystem's well-known Remote Method Invocation Protocol or well-known Network File System Protocol.
After converting the command, the export process executes the command (step 612) and returns the results of the command to the caller (step 614). In these steps, the export process may execute a command to traverse a directory structure, create a directory, remove a directory, retrieve the contents of a directory, open a file, close a file, create a file, delete a file, read from a file, or write to a file. Having executed one of these commands, the export process returns to the caller the results of the command (e.g., data from a file). Steps 608-614 continue operating until the computer is shut down. Alternatively, one skilled in the art will appreciate that the export process may be started at computer start-up time and shut down only when the computer shuts down, in which case the export process performs the background processing of steps 608-614 during this time period.
Fig. 9 depicts a flow chart of the steps performed by the import process. The first step performed by the import process is to display the log-on screen depicted in Fig. 7 (step 902). One skilled in the art will appreciate that this step may be skipped in the event that the user has already logged into the system. After displaying the log-on screen, the import process displays the directory services screen 1002 depicted in Fig. 10 (step 904). Directory services screen 1002 displays all of the file system entities that the user is authorized to import. In this example, the user of the computer is userl and thus has read and write access to the "SYS.DIR" directory on the "ZEUS" system. Additionally, directory services screen 1002 contains an indication of the owner of that file system entity (e.g., user3). The owner is the user who exported the file system entity.
After displaying the directory services screen, the import process receives an indication of user selection of one or more of the file system entities displayed (step 906). After receiving the indication, the import process establishes communication with the export processes located on the systems where the selected file system entities physically reside (step 907). The appropriate systems (e.g., "WZEUS") are determined from the entry in directory services. After establishing communications, the import process displays a command line to the user (step 908). Using this command line, the user may issue file system commands to manipulate either the local file system or the remote file system. At this time, the import process also displays an indication to the user indicating the name (e.g., "H:") of the virtual drives established.
In an alternative embodiment of the present invention, instead of displaying a command line, the import process displays a file manager window like the one depicted in Figure 11. The file manager window 1100 displays a field 1102 indicating the current drive and directory (much like a command line) and displays the files and sub-directories 1104- 1110 located in the directory and drive specified in field 1102. Each of the files and subdirectories are represented by icons 1104-1110 such that when an icon is selected (e.g., double clicking) either the file is displayed via the appropriate application program or, if it is a sub-directory, the sub-directory is opened and the file manager window then displays the files and sub-directories within that sub-directory. For example, field 1102 contains "H:\" indicating that all of the files and sub-directories in the root directory of the "H" drive are represented by icons in the file manager window. These icons 1104-1110 are displayed in different colors depending on whether the drive specified in field 1102 is local or remote. It should be appreciated that field 1102 can receive commands (e.g., " •• ") to traverse the directory structure on a drive.
Next, the import process determines if it received a command (step 910). If so, the import process determines if the command is directed to the local file system (step 912). If the command is directed to the local file system, as determined by the name of the drive, the import process performs the command on the local file system entity using the local operating system (step 914) and displays the results to the user (step 916).
If, however, the command is not directed to the local computer, but is instead directed to a virtual drive, the import process sends the command to the appropriate remote export
8
process using HTTP (step 918). In this step, the command is sent to the export process for execution on the file system entity using the local operating system. After sending the command to the remote export process, the import process receives results of the command (step 920) and displays the results to the user (step 922).
Although the present invention has been described with reference to a preferred embodiment thereof, those skilled in the art will know various changes in form and detail which may be made without departing from the spirit and scope of the claimed invention as defined in the appended claims and their full scope of equivalence.