Methods for accessing remotely located devices
A method for enabling access to resources connected to client nodes of a network is provided. The method includes establishing communication between a local client and a remote client. The local client establishes communication with the remote client by providing a remote client identification code and a password to the remote client. The communication is established when the remote client confirms that the remote client identification code and the password match. After communication is established, a determination is made if adapters are connected to the remote client and connection is established with a selected adapter connected to the remote client. Once a connection is established with the selected adapter, the local client is connected to the selected adapter. The selected adapter is configured to appear on a graphical user interface (GUI) of the local client as if the selected adapter of the remote client were physically connected to the local client.
Latest SONIC SOLUTIONS Patents:
- Generation, organization and/or playing back of content based on incorporated parameter identifiers
- User interface method and system for application programs implemented with component architectures
- Adaptive intervals in navigating content and/or media
- Method, apparatus and system for use in multimedia signal encoding
- Conversion of 2-Dimensional Image Data into 3-Dimensional Image Data
This application is a Divisional of U.S. patent application Ser. No. 09/656,533, filed on Sep. 7, 2000, from which priority under 35 U.S.C. § 120 is claimed. The disclosure of this application is incorporated herein by reference in its entirety.
DESCRIPTION OF THE RELATED ARTToday's computers are moving towards becoming more interactive with other computers in a networking environment. This includes the ability for computers to communicate with other computers on a given network. As computers, or clients, communicate with one another, they are able to access devices connected to other clients. These devices include small computer system interface (SCSI) hard drives, IDE hard drives, SCSI or IDE optical disc drives (e.g., CDs, CD-Rs, CD-R/W, and DVDs), and other peripheral devices.
In order to access peripheral devices and data stored on the peripheral device, it is necessary to use a transfer protocol to connect between two nodes. Various transfer protocols, such as transmission control protocol and internet protocol (TCP/IP), file transfer protocol (FTP) and hyper text transfer protocol (HTTP) are implemented to access peripheral devices and transfer data over a network between nodes. The file transfer and hyper text transfer protocols contain various sets of defined rules which govern the exchange of data between nodes connected to a network. The file transfer and govern the exchange of data between nodes connected to a network. The file transfer and hypertext transfer protocols also use the transmission control and internet protocol to transfer data between nodes connected to a network.
When data is transferred using TCP/IP, the data is divided into individual packets which contain “chunks” of information which allow for an efficient size for routing within the TCP layer. The packets of information are then routed through a network to their final destination, where the information is reassembled by a TCP at the receiving end. Often times, when a user desires to send information using TCP/IP, the user must first compress the information into a zip or gzip format to ease the ability to transfer the information to another client. In addition, if a user sends data via email or a similar function, the user must place the information into a file format, such as *.txt or *.pdf format and send the file as an attachment to the email or a similar function.
Typically, the data being sent from one client (remote client) to another client (local client) is stored on a device which is connected to the remote client. Therefore, in order for the local client to access data stored on the device connected to the remote client, a user at the remote client must send the information to the local client using the above described protocols. A user at the local client is precluded from directly accessing data stored on a device connected to the remote client as if the device connected to the remote client were also connected to the local client. Thus, the above mentioned protocols must be used to access data, which is less efficient because a user at a remote client must physically send data stored on a device connected to the remote client to the waiting local client.
In view of the foregoing, there is a need to transfer information with a more efficient and manageable method which allows a first user on a client connected to a network to access peripheral devices attached to another client also connected to the network.
SUMMARYBroadly speaking, the present invention fills the aforementioned needs by providing methods and apparatus for allowing a logical connection between users on a network. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable media. Several embodiments of the present invention are described below.
In one embodiment, a method for enabling access to resources connected to client nodes of a network is disclosed. The method comprises establishing communication between a local client and a remote client. The local client establishes communication with the remote client by providing a remote client identification code and a password to the remote client. The communication is established when the remote client confirms that the remote client identification code and the password match. After communication is established, a determination is made if adapters are connected to the remote client and connection is established with a selected adapter connected to the remote client. Once a connection is established with the selected adapter, the local client is connected to the selected adapter. The selected adapter is configured to appear on a graphical user interface (GUI) of the local client as if the selected adapter of the remote client were physically connected to the local client.
In another embodiment, a method for accessing peripheral devices connected to a remotely located client on a network is disclosed. The method comprises configuring a local client and a remote client to allow for remote small computer system interface (SCSI) connectivity using a distributed component object model (DCOM) enabled link. The local client provides a remote client identification and a connection password to the remote client during the configuration operation in order to gain access to the remote client. Next, a determination is made if SCSI host adapters are connected to the remote client. If a determination is made that SCSI host adapters are connected to the remote client, a SCSI host adapter is selected. Once the SCSI host adapter is selected, the local client communicates with the selected SCSI host adapter. The local client accesses and uses the selected SCSI host adapter as if the selected SCSI host adapter belonged to the local client.
In still a further embodiment, a method for accessing resources connected to remotely located client nodes on a network is disclosed. The resources connected to the remotely located clients are displayed on a graphical user interface (GUI) of a local client. The method comprises a user first clicking on a remote client icon on the GUI of the local client to configure the local client and a remote client for remote small computer system interface (SCSI) connectivity. The user at the local client inputs a remote client identification and a password which allows access to the remote client using a distributed component object model (DCOM) enabled link. The method then determines if SCSI host adapters are connected to the remote client. After it is determined which SCSI host adapters are connected to the remote client, the user clicks on a SCSI host adapter icon on the GUI of the local client to access a SCSI host adapter which is remote from the local client. When the local client gains access to the SCSI host adapter, the local client communicates with the SCSI host adapter. The SCSI host adapter icon appears on the GUI of the local client as if the SCSI host adapter represented by the SCSI host adapter icon belonged to the local client.
The advantages of the present invention are numerous. Most notably, the embodiments of the present invention allow a client the ability to access a remote device as if the remote device was local to the client. Thus, this ability allows software from different clients to use the remote device as a source or destination transparently. For example, if two separate local clients contain software which writes data to CD-R's, the software on each local client may write data to a single CD-R located on a client which is remote from the separate local clients. The software on each local client will write data to the single CD-R of the remote client as if the single CD-R was on a device that is connected to each of the two local clients.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
BRIEF DESCRIPTION OF THE DRAWINGSThe present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, and like reference numerals designate like structural elements.
An invention for a method for accessing devices of remote clients on a network by a local client is disclosed. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be understood, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention.
As an overview, the present invention uses a distributed component object model (DCOM), which is an extension of component object module (COM), to effectuate transfers between a local client and a remote client. DCOM is a set of Microsoft™ concepts and interfaces where a local client connected to a network may request services from a remote client also connected to the network. DCOM is a logical implementation that replaces the local interprocess communication provided by an operating system of a client with a network protocol. The network protocol allows direct connection between a local client and a remote client without the need for an intermediary system component. The present invention uses small computer system interface (SCSI) commands in conjunction with DCOM. The SCSI commands are encapsulated in packets which are suitable for DCOM and the packets are sent through the DCOM environment. For further information on DCOM processes, reference may be made to an article by Microsoft™ entitled “DCOM Technical Overview”, (November 1996) by Microsoft™ Corporation of Redmond, Wash. This article is hereby incorporated by reference.
The present invention uses clients connected to a network. The network may be any type of network that allows for the interconnection of computers, such as local area networks (LANs), wide area networks (WANs), private networks, intranets, as well as the Internet (also known as the world wide web). The clients may be personal computers or any other networkable device that includes at least memory and a processor. As used herein, the clients are said to have loaded thereon client/server software which allows any one of the clients to operate as servers (e.g., to service a requesting client connected to the network). By way of example, a client may function as a server relative to a requesting client, such that the client/server software of the client is designed to provide a service to the requesting client. In a like manner, this requesting client can also function as a server when any client requests a service from the requesting client. For definitional purposes, a service may include providing a requesting client access to a peripheral device.
Now making reference to the Figures and more particularly to
As used herein, the remote server 104 functions as a server which serves the local client 102 in one embodiment of the present invention. However, it should be noted that in other embodiments, the local client 102 may function as a server which services the remote server 104 where the remote server 104 is the client to the local client 102. Therefore, the local client 102 and the remote server 104 may both function as a server and a client. The local client 102 connects to the DCOM enabled link 112 with a connector 101. The local client 102 interfaces with the connector 101 using a network interface card (NIC), a modem, a DSL line, cable or the like. The connector 101 may be a cable, telephone line, or the like which allows connections between an end node, such as the local client 102, and a network. The connector 101 connects to the DCOM enabled link 112 with an interface 110a. The interface 110a may be any interface which facilitates connection between the client 102 and the DCOM enabled link 112, such as an IStream interface or the like. The DCOM enabled link 112 is the DCOM technology as previously described. The DCOM enabled link 112 also connects to the remote server 104.
The remote server 104 connects to the DCOM enabled link 112 with the connector 101 in the same manner as that described with respect to the local client 102. The remote server 104 includes host adapters 125 and 126 and the devices 106 and 108 connected to the host adapter 125. In accordance with one embodiment of the present invention, the device 106 may be a scanner device and the device 108 may a storage device, such as a hard drive or a RAID device. As will be further discussed with reference to
In an alternative embodiment of the present invention, the local client 102 may function as a server as discussed earlier and the remote server 104 may be the client as mentioned earlier. In this context, the remote server 104 may access devices (not shown) connected to the local client 102 as if the devices connected to the local client 102 belong to the remote server 104. In order for the local client 102 to communicate with the remote server 104, the remote server 104 and the local client 102 must first establish a remote SCSI connection, as will be discussed with reference to
Before a user may access a host adapter selected in the host adapter scroll bar 124, the user must provide a password at the access password input 128. In one embodiment, the password used for the access password input 128 is the same as the password used for the connection password input 118 of the remote SCSI connection GUI 114. Once a user at the local client 102 enters the password and clicks the enter button 130, the local client 102 is able to access peripheral devices attached to the remote server 104 as if the peripheral devices attached to the remote server 104 were attached to the local client 102, as shown with reference to
In operation 304, a DCOM communication with an identified remote computer is established. In this operation, the client inputs the remote client identification established in the operation 302 along with the connection password. The client functioning as the server then checks to ensure that the proper remote client identification and connection password were input by the client. Turning back to the example and
In operation 306, a determination is made if SCSI host adapters are connected with the identified remote computer. The determination is made using inquiry commands such as SCSI commands that determine if there are host adapters connected to the remote computer which is functioning as a server. If there are no host adapters connected to the remote computer, then the method 300 is complete. If there are host adapters connected to the remote computer, a host adapter is selected and then accessed by the local computer in operation 308. Turning back to the example and
In operation 310, a determination is made as to whether or not devices are connected to the selected adapter. If devices are not connected to the selected adapter, the method is complete. If devices are connected to the selected host adapter, operation 312 is performed where a device is selected for access. Referring to the example and
As can be seen, the embodiments of the present invention allow a user on a local client to view devices which are remotely located as icons on a GUI of the local client as if the devices belonged to the local client. The user may access the devices by simply double clicking on the icons and inputting a password and avoid having a user at the remote client sending data stored on the device. The data stored on the remotely located devices is easily accessible since accessing the data avoids the problems of the past where information stored on remote devices was first packaged into separate units and then sent via email or similar method. Thus, in accordance with embodiments of the present invention, an item scanned using a scanner from a remote client could be read directly by the local client using the device without packing and sending the data.
The embodiments of the present invention also allow for multiple clients located on a DCOM network to function as servers and clients. A local client may be functioning as a client to a remote client by accessing information on devices connected to the remote client while at the same time the local client may be functioning as a server to a second remote client since the second remote client may access devices connected to the local client. Thus, using the present invention, many clients located on a network may access the devices of other clients. Nonetheless, security is maintained in that each client must provide a password prior to accessing devices connected to the client which is functioning as a server.
In addition, in accordance with one embodiment of the present invention, the accessed devices do not realize that a client other than the one to which the devices are attached is accessing the device. Instead, the devices think the remote client to which they are connected is accessing them. Therefore, access of the client will not be encumbered by the device since the device does not differentiate between the remote client to which the device is connected and the local client which is accessing the device.
The invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing.
Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations.
The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical data storage devices. The computer readable medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
Claims
1. A method for enabling access to resources connected to client nodes of a network, the method comprising:
- establishing communication between a local client and a remote client, the local client being configured to provide a remote client identification code and a password to the remote client, the establishing being completed by confirmation from the remote client that the remote client identification code and the password match;
- determining if adapters are connected to the remote client;
- establishing connection to a selected adapter; and
- connecting the local client to the selected adapter, the selected adapter being configured to appear on a first graphical user interface (GUI) of the local client as if the selected adapter of the remote client were physically connected to the local client.
2. A method for enabling access to resources connected to client nodes of a network as recited in claim 1, wherein the local client provides a computer identification to the remote client prior to establishing communication between the local client and the remote client, the computer information containing the remote client identification code, the connection password and an access password.
3. A method for enabling access to resources connected to client nodes of a network as recited in claim 2, wherein the operation of establishing connection to a selected adapter further comprises:
- choosing the selected adapter using a second graphical user interface (GUI); and
- providing the access password using the second GUI.
4. A method for enabling access to resources connected to client nodes of a network as recited in claim 1, wherein the remote client functions as a server to provide services to the local client.
5. A method for enabling access to resources connected to client nodes of a network as recited in claim 4, wherein the local client functions as a server to provide services to the remote client.
6. A method for enabling access to resources connected to client nodes of a network as recited in claim 1, wherein the local client provides the remote client identification and the password using a third graphical user interface (GUI).
7. A method for enabling access to resources connected to client nodes of a network as recited in claim 1, wherein a user at the local client clicks on an icon representing the selected adapter on the first GUI in order to access the selected adapter.
8. A method for enabling access to resources connected to client nodes of a network as recited in claim 7, wherein the selected adapter connected to the remote client does not differentiate between the local client and the remote client when the local client is accessing the selected adapter.
9. A method for enabling access to resources connected to client nodes of a network as recited in claim 1, wherein the operation of determining if adapters are connected to the remote client further comprises:
- sending inquiry commands to the remote client.
10. A method for enabling access to resources connected to client nodes of a network as recited in claim 9, wherein the inquiry commands are SCSI commands.
11. A method for enabling access to resources connected to client nodes of a network as recited in claim 10, wherein the SCSI commands are encapsulated in packets suitable for transmission over a DCOM enabled link.
Type: Application
Filed: Dec 1, 2005
Publication Date: Apr 20, 2006
Applicant: SONIC SOLUTIONS (NOVATO, CA)
Inventor: Guido Maffezoni (San Jose, CA)
Application Number: 11/292,427
International Classification: G06F 3/06 (20060101);