Method and system for connecting to, browsing, and accessing computer network resources

Abstract: A method and system for connecting to, browsing, and accessing computer network resources are provided. In a network in which the preferred embodiment of the present invention operates, a client video display includes a container called "Network Neighborhood." The Network Neighborhood provides a constrained view of the network in a NOS-independent manner. The Network Neighborhood provides a constrained view of the network by displaying only those network resources that are determined to be interesting to the user. Further, the Network Neighborhood provides this view in a NOS-independent manner by displaying all of the network resources in a consistent manner, regardless of the type of client software that was used to enumerate or discover the network resources. In the preferred embodiment of the present invention, each type of client software installed on a client determines a list of network resources that are interesting to the user. The combination of these lists of network resources is initially included in the Network Neighborhood. The user (or the user's administrator) can then determine that additional network resources are interesting to the user and can add these resources to the Network Neighborhood. Once the network resources that have been determined to be interesting to the user have been included in the Network Neighborhood, the user can browse and access these resources through the Network Neighborhood.

Description: This invention relates generally to computer networks and, more particularly, to a method and system for connecting to, browsing, and accessing computer network resources. Computer networks enable users of computer systems to share the computer systems' resources. These resources include files, printers, and other devices. In a network, computers that share their resources are known as servers and computers that use the shared resources are known as clients. Network software enables clients and servers to communicate with one another. Network software generally includes two. types of software: (1) server software that runs on the server to enable the server to accept and process requests to use a resource on the server (this server software is commonly referred to as a network operating system or "NOS") and (2) client software that runs on the client to enable the client to properly request and use the server resource. Networks are becoming increasingly larger. More resources are being provided on networks and more people are using these network resources. In addition, networks are becoming increasingly more complex. A variety of companies now produce NOSs and client software. Some of the more commonly available NOSs include "WINDOWS NT" and "WINDOWS FOR WORKGROUPS" by Microsoft Corporation and "NETWARE VERSION 3.11" and "NETWARE VERSION 4.01" by Novell Inc. Some of the more commonly available corresponding types of client software include "CLIENT FOR MICROSOFT NETWORKS" by Microsoft Corporation and "NETWARE CLIENT FOR DOS/WINDOWS" by Novell Inc. Each type of client software may provide a different method for enumerating or discovering resources on the network, such as servers running a particular NOS or a particular set of NOSs. Moreover, a typical network may include servers running more than one NOS and a typical client may include more than one type of client software in order to access all of the servers on the network. As a result of the increasing size and complexity of networks, connecting to, browsing, and accessing network resources is becoming more difficult. In order to find and use a particular network resource, a user may have to browse through many different network resources. Further, the user may need to have an understanding of the particular type of client software that was used to enumerate or discover the network resource. For example, the steps required to access a file on a common prior art network are illustrated in Figure 1. In step 110, the user's computer system displays a list of the types of client software installed on the client. In step 120, the user selects a particular type of client software. In step 130, the computer system displays a list of resources enumerated or discovered by the selected type of client software. In step 140, the user selects a particular resource, such as a computer. In step 150, the computer system displays a list of directories or folders available on the selected computer. In step 160, the user selects a particular directory or folder. In step 170, the computer system displays a list of files available in the selected directory or folder. In step 180, the user selects a particular file. In step 190, the computer system finally retrieves the selected file for the user. As can be seen from this example, merely locating and accessing a file on a network is not always an easy process. While the size and complexity of networks is increasing, users of networks are demanding greater ease of use from computer systems. Users want to access files and use printers, they do not want to be concerned with whether the files are stored on a "WINDOWS NT" server or a "NETWARE VERSION 3.11" server or whether the print server is a "WINDOWS FOR WORKGROUPS" server or a "NETWARE VERSION 4.01" server. Thus, a mechanism for enabling users to more easily connect to, browse, and access network resources is desired. OS/2 version 2.0, volume 3: presentation manager and workplace shell, IBM International Technical Support Center, Boca Raton, Florida, USA, April 1992, document no. GG24-3732-00 discloses the Workplace Shell, an improved user shell that is based upon the 1991 IBM Systems Application Architecture (SAA) Common User Access (CUA) Workplace Environment. The LAN independent shell is an integrated part of the Workplace Shell. Opening a network folder shows an icon for each network type, such as LAN Server or Novell Netware. Method for browsing network resources, IBM Technical Disclosure Bulletin, New York, USA, April 1994, vol. 37, no. 4b, page 319 discloses a method for browsing network resources, such as directories and printers, shared from Local Area Network (LAN) servers. The method addresses the limitation in prior-art LAN client software which can browse network resources shared via an alias or a network name, but not both. The browse function first attempts to browse for aliases. If aliases are found, the browse dialogue displays a list of aliases available on the domain. If no aliases are found, the browse of network names automatically takes place. Thus, it is the object of the invention to provide a mechanism for enabling users to more easily connect to, browse, and access network resources. This object is solved by the methods as claimed in independent claims 1 and 10, and the system as claimed in independent claim 20. Preferred embodiments of the invention are subject-matters of dependent claims. One aspect of the present invention provides a method and system for connecting to, browsing, and accessing computer network resources. In a network in which the preferred embodiment of the present invention operates, a client video display includes a container called "Network Neighborhood." The Network Neighborhood provides a constrained view of the network in a NOS-independent manner. The Network Neighborhood provides a constrained view of the network by displaying only those network resources that are determined to be interesting to the user. Further, the Network Neighborhood provides this view in a NOS-independent manner by displaying all of the network resources in a consistent manner, regardless of the type of client software that was used to enumerate or discover the network resources. In the preferred embodiment of the present invention, each type of client software installed on a client initially determines a list of network resources that are interesting to the user. The combination of these lists of network resources is included in the Network Neighborhood. The user (or the user's administrator) can then determine that additional network resources are interesting to the user and can add these resources to the Network Neighborhood. Once the network resources that have been determined to be interesting to the user have been included in the Network Neighborhood, the user can browse and access these resources through the Network Neighborhood. Figure 1 is a high-level flowchart illustrating the steps required to access a file on a common prior art network; Figure 2 is a schematic view of a network in which the preferred embodiment of the present invention operates; Figure 3 is a video display showing an icon labelled Network Neighborhood; Figure 4 is a high-level flowchart illustrating the process of determining which network resources to initially include in the Network Neighborhood; Figure 5 is a video display showing a Network Neighborhood window that is displayed when a user selects the Network Neighborhood icon in Figure 3; Figure 6 is a video display showing the Network Neighborhood window of Figure 5 after the user has added an additional computer to the Network Neighborhood; Figure 7 is a video display showing the Network Neighborhood window of Figure 5 after the user has added a printer to the Network Neighborhood; Figure 8 is a video display showing the Network Neighborhood window of Figure 5 after the user has added a folder to the Network Neighborhood; Figure 9 is a video display showing the Network Neighborhood window of Figure 5 after the user has added a file to the Network Neighborhood; Figure 10 is a high-level flowchart illustrating the steps required to access a file with the Network Neighborhood; and Figure 11 is a video display showing the Network Neighborhood window of Figure 5 after the user has selected a folder in the Network Neighborhood. The preferred embodiment of the present invention provides a method and system for connecting to, browsing, and accessing computer network resources. A network 10 in which the preferred embodiment of the present invention operates is illustrated in Figure 2. The network 10 includes a client 12 and a server 14. The client 12 includes a central processing unit ("CPU") 16, a primary storage 18, a secondary storage 20, and input/output ("I/O") devices 22. Typical I/O devices include a video display 24, a keyboard 26, and a mouse 28. Similarly, the server 14 includes a CPU 30, a primary storage 32, a secondary storage 34, and I/O devices 36. Client software 38 is stored in the primary storage 18 of the client 12 for execution by the CPU 16 and a NOS 40 is stored in the primary storage 32 of the server 14 for execution by the CPU 30. One of ordinary skill in the art will appreciate that the network 10 may include any number of clients and servers. The present invention is being illustrated with only one client and one server for the sake of simplicity. Each additional client and server would include components similar to those described above for the client 12 and the server 14. The client's video display 24 is shown in detail in Figure 3. The video display 24 includes an icon 26 labelled "Network Neighborhood." The Network Neighborhood is a container that provides a constrained view of the network in a NOS-independent manner. The Network Neighborhood provides a constrained view of the network by displaying only those network resources that are determined to be interesting to the user. Further, the Network Neighborhood provides this view in a NOS-independent manner by displaying all of the network resources in a consistent manner, regardless of the type of client software that was used to enumerate or discover the network resources. In the preferred embodiment of the present invention, each type of client software installed on the client initially determines a list of network resources that are interesting to the user. The combination of these lists of network resources is included in the Network Neighborhood. The process of determining which network resources to initially include in the Network Neighborhood is illustrated in Figure 4. In step 410, the client requests enumeration or discovery from a first type of client software, e.g., "CLIENT FOR MICROSOFT NETWORKS." In step 420, the first type of client software returns a list of network resources, e.g., "CLIENT FOR MICROSOFT NETWORKS" would return a list of computer's in the user's workgroup. In step 430, the client requests enumeration or discovery from a second type of client software, e.g., "NETWARE CLIENT FOR DOS/WINDOWS." In step 440, the second type of client software returns a list of network resources, e.g., "NETWARE CLIENT FOR DOS/WINDOWS" would return a list of computers to which the user is connected and authenticated. The above steps would be repeated for each type of client software installed on the client. The combination of the lists of network resources returned from each type of client software is included in the Network Neighborhood. In an alternative embodiment, each type of client software initially determines which network resources are interesting to the user based upon the network resources most recently used by the user. In another alternative embodiment, each type of client software initially determines which network resources are interesting to the user based upon the network resources most frequently used by the user. After each type of client software installed on the client has initially determined which network resources are interesting to the user, the user (or the user's administrator) can determine that additional network resources are interesting to the user and can add these resources to the Network Neighborhood. For example, if a user commonly uses an additional computer that is not enumerated or discovered by any type of client software installed on the client, the user can add the computer to the Network Neighborhood. One technique for adding a network resource to the Network Neighborhood is dragging and dropping an icon representing the resource onto the Network Neighborhood. Dragging and dropping an icon is accomplished by moving a mouse pointer on top of the icon on the video display, pressing down on a mouse button, moving the mouse pointer to a new location on the video display while holding down the mouse button, and then releasing the mouse button. Another technique for adding a network resource to the Network Neighborhood is creating a custom container that includes all of the network resources that are to be added to the Network Neighborhood. Then, when each type of client software determines which network resources are interesting to the user (as described above), the network resources included in the custom container are added to the Network Neighborhood. Figure 5 shows a window 40 that is displayed in the video display 24 when the user selects the Network Neighborhood. The user can select the Network Neighborhood by double-clicking on the icon 26 in Figure 3 that represents the Network Neighborhood. Double-clicking on an icon is accomplished by pressing and releasing the mouse button twice without moving the mouse while the mouse pointer is on top of the icon on the video display. Window 40 includes the network resources, i.e., computers 42, that each type of client software determined were interesting to the user. As discussed above in detail, the computers 42 could include servers from a variety of NOSs. For example, Aliceg might be a "WINDOWS NT" server, whereas Annmc might be a "NETWARE 3.11" server. Figures 6-9 show video display 24 and, in particular, window 40 after the user (or the user's administrator) has customized the Network Neighborhood by adding network resources that the user (or the user's administrator) determined were interesting to the user. Specifically, Figure 6 shows window 40 after an additional computer 44 has been added to the Network Neighborhood, Figure 7 shows window 40 after a printer 46 has been added to the Network Neighborhood, Figure 8 shows window 40 after a folder 48 has been added to the Network Neighborhood, and Figure 9 shows window 40 after a file 50 has been added to the Network Neighborhood. With the Network Neighborhood, connecting to, browsing, and accessing network resources is easier. The Network Neighborhood displays a visual representation (i.e., an icon) in the Network Neighborhood window for each of the network resources that have been determined to be interesting to the user. All of the icons representing a particular type of network resource have a consistent visual representation, regardless of the type of client software that was used to enumerate or discover the network resource. For example, all computers are represented by an icon that resembles a computer, all printers are represented by an icon that resembles a printer, all folders are represented by an icon that resembles a folder, and all files are represented by an icon that resembles a document. Additionally, all of the icons representing the network resources are grouped together in the Network Neighborhood window using means other than the type of client software that was used to enumerate or discover the network resources. For example, all computers may be grouped together, all printers may be grouped together, all folders may be grouped together, and all files may be grouped together. The user can browse the network resources by simply looking through the displayed icons. When the user desires to access a particular network resource, the user can simply double-click on the icon representing the resource. If the selected network resource is a computer, the Network Neighborhood displays the network resources available on that computer (e.g., printers, folders, files) and the user can further select one of these resources; if the selected network resource is a folder, the Network Neighborhood displays the network resources available in that folder (e.g., subfolders, files) and the user can further select one of these resources; if the selected network resource is a file, the Network Neighborhood retrieves the file. For example, the steps required to access a file with the Network Neighborhood when the folder in which the file is located is in the Network Neighborhood window are illustrated in Figure 10. In step 1010, the computer system displays a list of network resources available in the Network Neighborhood (as shown in window 40 in Figure 9). In step 1020, the user selects a particular folder (e.g., folder 48 in Figure 9). In step 1030, the computer system displays a list of network resources available in the selected folder (as shown in window 52 in Figure 11). In step 1040, the user selects a particular file (e.g., file 54 or file 56 in Figure 11). In step 1050, the computer system retrieves the selected file for the user. In contrasting these steps with those required for a common prior art network (as illustrated in Figure 1), one can see that the Network Neighborhood enables users to more easily connect to, browse, and access network resources. Lastly, while the Network Neighborhood provides a constrained view of the network in a NOS-independent manner, there may be times when a user will need to browse the entire network. Specifically, the user will need to browse the entire network when the user wants to access a network resource that was not determined to be interesting to the user (and thus, was not initially displayed in the Network Neighborhood) . In that situation, while it is not sufficient to provide a constrained view of the network in a NOS-independent manner (because the user needs to browse the entire network), the Network Neighborhood can provide an entire view of the network in a NOS-independent manner. As discussed above in detail, the Network Neighborhood provides this view in a NOS-independent manner by displaying all of the network resources in a consistent manner, regardless of the type of client software that was used to enumerate or discover the network resources. The Network Neighborhood window 40 includes an icon 58 labelled "Entire Network" (as shown in Figure 9). The user can select the Entire Network by double-clicking on the icon 58. When the user selects the Entire Network, the Network Neighborhood displays all of the network resources enumerated or discovered by all types of client software installed on the client, grouped together by type or by some other means (e.g., alphabetical ordering), using a consistent visual representation. One of ordinary skill in the art will now appreciate that the present invention provides a method and system for connecting to, browsing, and accessing computer network resources. Although the present invention has been shown and described with reference to a preferred embodiment, equivalent alterations and modifications will occur to those skilled in the art upon reading and understanding this specification. The present invention includes all such equivalent alterations and modifications and is limited only by the scope of the following claims.

Claims: A method for connecting to, browsing, and accessing computer network resources of a distributed system (10) having a client computer (12), a video display (24), a first network having resources (14), and a second network having resources (14), wherein the client computer (12) has a first network client program (38) for interfacing with the first network and a second network client program (38) for interfacing with the second network, the first network client program (38) including means for enumerating the resources (14) in the first network, the second network client program (38) including means for enumerating the resources (14) in the second network, the method comprising the computer-implemented steps of: with the first network client program (38), enumerating (410) a subset of less than all of the resources on the first network as being resources of interest to the user; with the second network client program (38), enumerating (430) a subset of less than all of the resources on the second network as being resources of interest to the user; and displaying a single window (40) to the user on the video display (24) to show a list of network-provided resources, said single window (40) providing a visual representation comprising a unified display of the resources enumerated by the first network client program (38) and the second network client program (38). The method of claim 1 wherein the step of enumerating (410) the subset of less than all of the resources on the first network comprises: enumerating a hierarchical logical organization of the resources. The method of claim 1 or 2 wherein: the resources have names; and the step of displaying the single window (40) to the user on the video display (24) comprises: displaying an alphabetically sorted list of the names of the resources in the subset on the video display (24). The method of one of claims 1 to 3, further comprising the step of: displaying (1030) all of the resources in the distributed system (10) on the video display (24). The method of one of claims 1 to 4, further comprising the step of: enabling the user to access a selected resource in response to the user selecting a resource through the visual representation provided in the single window (40). The method of one of claims 1 to 5 wherein the step of enumerating (410) the subset of less than all of the resources on the first network comprises: identifying ones of the enumerated resources in the first network that were most recently used by the user to be in the subset of the enumerated resources to display (1030) to the user. The method of one of claims 1 to 6 wherein the step of enumerating (410) the subset of less than all of the resources in the first network comprises: identifying selected ones of the enumerated resources that were most frequently used by the user to be in the subset of the enumerated resources to display (1030) to the user. The method of one of claims 1 to 7, further comprising the step of: receiving input data representing a resource added by a user to the list of network-provided resources, wherein a visual representation of the resource added by the user is also displayed in the window (40). The method of one of claims 1 to 8 wherein the first network client program (38) uses a different approach to enumerating resources than the second network client program (38) uses. A method for connecting to, browsing, and accessing computer network resources of a distributed system (10) having network resources (14) that include a video display (24), a client machine (12) running client software (38) of a given type, a first network having network resources (14) and running a first network operating system (40) and a second network also having network resources (14) and running a second network operating system (40) that differs from the first network operating system (40), the method comprising the computer-implemented steps of: determining with the client software (38) which of the network resources (14) are to be included in a constrained view of the distributed system (10) that is to be displayed to a user, said constrained view including less than all of the network resources (14) and including network resources (14) from both the first network and the second network; and with the client software (38), displaying (1030) the constrained view on the video display (24), said constrained view providing a uniform view of the determined network resources (14) such that it is not apparent which network operating systems (40) are run on the networks in the constrained view. The method of claim 10 wherein: the client machine (12) runs multiple types of client software (38); and the step of determining which of the network resources (14) are to be included in the constrained view comprises: having each type of client software (38) determine which of the network resources are to be included in the constrained view. The method of claim 11 wherein: each type of client software (38) includes an approach to enumerating network resources (14) for at least a portion of the distributed system (10); and each type of client software (38) determines which network resources (14) are to be included in the constrained view based upon the method provided by the client software (38) for enumerating network resources. The method of claim 11 or 12 wherein the step of determining which of the network resources (14) are to be included in the constrained view comprises: determining which of the network resources (14) have been most recently used by the user; and including the network resources (14) that have been determined to be most recently used by the user in the constrained view. The method of one of claims 11 to 13 wherein the step of determining which of the network resources (14) are to be included in the constrained view comprises: determining which of the network resources (14) have been most frequently used by the user; and including the network resources (14) that have been determined to be most frequently used by the user in the constrained view. The method of one of claims 10 to 14 wherein the step of determining which of the network resources (14) are to be included in the constrained view comprises: having the user determine which of the network resources (14) are to be included in the constrained view. The method of one of claims 10 to 15 wherein: the network resources (14) are of different types; and displaying (1030) the constrained view comprises: displaying all networks resources (14) of a type in the constrained view so that they appear grouped together. The method of one of claims 10 to 16, further comprising the step of: enabling the user to access the displayed network resources (14) in the constrained view. The method of one of claims 10 to 17 wherein: the network resources included in the constrained view include servers; and displaying (1030) the constrained view comprises: displaying a like visual representation for each of the servers that is included in the constrained view. The method of one of claims 10 to 18 wherein the client machine (12) runs an operating system and the client software (38) is part of the operating system. A system for connecting to, browsing, and accessing computer network resources of a distributed system (10), the distributed system (10) having a first network having resources (14) and running a first network operating system (40), the distributed system (10) having a second network having resources (14) and running a second network operating system (40) that differs from the first operating system (40), wherein the client computer (12) has a first network client program (38) for interfacing with the first network and a second network client program (38) for interfacing with the second network, the system comprising: means for enumerating (410) a first subset of less than all of the resources (14) in the first network; means for enumerating (430) a second subset of less than all of the resources (14) in the second network; and a user interface generator for providing a visual representation of the first subset and the second subset on the video display (24) in a single window (40). The system of claim 20, further comprising: means (26, 28) for selecting and accessing one of the resources via the visual representation provided on the video display (24). The system of claims 20 or 21 wherein the means for enumerating (410) a subset of less than all of the resources (14) in the first network enumerates those resources that have been most recently used by the user. The system of one of claims 20 to 22 wherein the means for enumerating (410) a subset of less than all of the resources (14) in the first network enumerates those resources that have been most frequently used by the user. A computer-readable medium having computer-executable instructions adapted to enable the distributed system (10) to perform the method of one of claims 1 to 19.

Inventors: PRICE ROBERT M, SMALE LEONARD THOMAS, VEGHTE WILLIAM LEWIS, PRICE, ROBERT M., SMALE, LEONARD THOMAS, VEGHTE, WILLIAM LEWIS
Applicants: MICROSOFT CORP, MICROSOFT CORPORATION
Application year: 1995
Main classification: G06F9
IPC codes: G06F3, G06F9, G06F13