Abstract:
The present disclosure includes, among other things, systems, methods and program products for delivering data over a computer network.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of and claims priority to U.S. application Ser. No. 11/837,398, filed on Aug. 10, 2007, which is a continuation of U.S. application Ser. No. 10/350,699 (now U.S. Pat. No. 7,257,621), filed on Jan. 23, 2003, which is a continuation of U.S. application Ser. No. 09/318,377 (now U.S. Pat. No. 6,529,947), filed on May 26, 1999. The entire teachings of the above applications are incorporated herein by reference. 
    
    
     BACKGROUND 
     The present invention relates generally to the management of transiently connected network clients. 
     Each device connected to a computer network is typically assigned a unique machine-readable internet protocol (IP) network address. In addition, if the device is a computer, each individual application or client running on the computer that receives data over the network is assigned a specific “port”. To direct data through the network to the client, a device needs to determine the IP network address and port of the receiving application. Since the machine-readable IP network addresses are complex and difficult to remember, distribution schemes typically employ an associating function, such as a table, to associate a name, i.e., a human language name understood by an administrator or user, with the machine-readable IP network address. The association function is conventionally maintained on a network server. 
     One problem with data delivery to a network client is that conventional distribution schemes do not automatically handle transient clients, e.g., applications that are only intermittently active on a computer or devices that are connected only intermittently to the network. If the particular client is inactive or is not connected to the network, there will be an error when the device attempts to send data to the client. In addition, if the IP network address for the client changes, a human administrator must manually alter the association table. Although this system is practical if the IP network address for each device is fixed, many network systems do not assign fixed IP network addresses. The administration of such networks can become prohibitively expensive. 
     A specific example of this problem occurs in the distribution of data from a scanner to a workstation over a computer network. A computer network installed at a commercial business office typically includes a large number of workstations, e.g., one workstation for each employee, but a more limited number of scanners, e.g., one scanner per floor. If a user wishes to direct output from the scanner to a specified application at a specified workstation, the scanner or the computer to which the scanner is connected must be programmed by a human administrator with the IP address of the workstations and the port number of the application. 
     In view of the foregoing, it would be advantageous to provide a system which enables electronic output to be directed to transient clients on a network with minimal administrator maintenance. 
     SUMMARY 
     In one aspect, the invention is directed to a method of delivering data over a computer network. In the method, a name service runs on a first computer connected to a computer network, a request is received at the first computer from a subscriber on a second computer connected to the computer network for registration on the name service, and data is received at the first computer from a data resource. The request includes a name and an associated internet protocol network address and port number. The name from the request is displayed in a list of names on a display coupled to the first computer and located near the data resource, user input is received from an input device coupled to the first computer to select the name from the list, and the data is directed from the resource to the internet protocol network address and port number associated with the selected name so that the data is received by the subscriber on the second computer. 
     Implementations of the invention may include the following. A subscription program may run on the second computer to identify the name service to which a registration request should be sent and the name to be sent in the request. A request for an internet protocol address may be sent from the second computer to a network server, and the second computer may receive the internet protocol address from the network server. A request for registration containing the internet protocol address received from the network server may be directed from the second computer to the name service identified in the subscription program. The step of directing the request may be performed automatically when the second computer is started or the user logs on. A subscription program may run on the second computer to receive the data from the scanner from the first computer. The subscription program may identify an application on the second computer to which the data should be sent. The data may be received from the first computer at the second computer, and the data may be directed to the application on the second computer identified by the subscription program. The data resource may be a scanner. The data resource, display, input device and the first computer may be located at a kiosk station, and the second computer may be located at a user station. A user may generate data with the data resource at the kiosk station, selects the name representing the second computer used by the user, and move to the user station. A request to direct data to the second computer may be initiated at the data resource. The name service may be a CORBA Name Service. 
     In another aspect, the invention is directed to a method of delivering data over a computer network in which a subscription agent is run on a first computer connected to a computer network, and a request is sent from subscription agent on the first computer to a name service on a second computer connected to the computer network for registration on the name service. The request includes a name and an associated internet protocol network address and port number. Data is received in the first computer through the IP address and port number from a data resource connected to second computer, an application designated by the subscription agent is opened, and the data is directed to the application. 
     Implementations of the invention may include the following. The application may be opened on the first computer. 
     In another aspect, the invention is directed to a method of delivering data over a computer network in which a CORBA name service is run on a first computer connected to a computer network at a kiosk station, and a subscription agent is run on a second computer connected to the computer network at a user&#39;s station. A request is sent from the subscription agent on the second computer to a name service on the first computer for registration on the name service. The request includes a name and an associated internet protocol network address and port number. The request is received at the name service on the first computer. Data is received from a data resource connected to the first computer, the name from the request is displayed in a list of names on a display at the first computer, and user input is received at the first computer selecting the name from the list. The data is directed from the resource to the internet protocol network address and port number associated with the selected name so that the data is received by the subscriber on the second computer, an application is opened in the second computer designated by the subscription agent, and the data is directed to the application in the second computer. 
     In another aspect, the invention is directed to a computer system. The computer system has a computer network, a kiosk station that includes a data resource, a display, and an input device, a first computer connected to the network and coupled to the data resource, display and input device, the first computer running a name service, and a user station that includes a second computer connected to the network. The second computer runs a subscription agent that sends a name and an associated internet protocol address and port number to the name service. The first computer is configured to receive data from the data resource, display a list of names on the display, receive user input selecting the name from the list, and direct the data to the internet protocol address and port number associated with the name so that the data is received by the subscription agent on the second computer. 
     Advantages of the invention may include one or more of the following. Electronic output can be directed from a network device, e.g., a scanner, to a transient network client, e.g., a workstation. Specifically, a list of subscribers to the network device can be maintained automatically without administrator supervision. A user can select one of the subscribers from the list and send the electronic output from the device to the selected subscriber. 
     Other features and advantages of the invention will become apparent from the following description, including the drawings and the claims. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic diagram of a computer network that implements the present invention. 
         FIG. 2  is a schematic illustration of a graphical user interface at a kiosk station. 
         FIG. 3  is a schematic illustration of a graphical user interface at a workstation. 
         FIG. 4  is a flow chart of the method of the present invention. 
         FIG. 5  is a flow chart of the method of deregistering a client from the name service at the kiosk station. 
     
    
    
     DETAILED DESCRIPTION 
     When data is “pushed” from a data resource to a computer over a network, the initiative or request to transfer data originates from the data source rather than the receiving computer. One technique for pushing data is electronic mail. Unfortunately, there are several problems with relying solely on email to push data. First, electronic mail servers frequently have restrictions on the size of electronic mail. Second, the recipients&#39; folders can become “jammed”, i.e., filled with an inconvenient number of messages. The present invention is intended to provide an additional convenient mechanism for pushing data from a shared data resource to other computers over a network. 
     As shown in  FIG. 1 , a computer system  10  includes computer workstations  20  connected by a network  12 , such as a local area network (LAN) or a wide area network (WAN). There may be tens or hundreds of workstations  20  in the computer system  10 . Each workstation  20  includes a general purpose programmable computer  22 , a mass storage device  24  such as a hard drive, an input device  26  such as a keyboard or mouse, and a display  28 . The network  12  typically includes a server system  14  to manage the network. 
     The workstations  20  are “transient” clients of the network  12 , i.e., they are connected intermittently to the network  12 . When a particular workstation  20  is activated, a startup program stored on the mass storage device  24  contacts the network server  14  and requests an internet protocol (IP) network address. 
     Most of the workstations are located at user stations, e.g., users&#39; offices or cubicals, but at least one of the workstations is designated as a kiosk station  30 , e.g., a stand-alone station that is not assigned to a particular user but can be accessed by many users. For example, the kiosk station  30  may be located in the copy room, hallway, or other shared area of the building. The kiosk station  30  includes a scanner  40  for scanning documents and generating image data, a display  38 , and an input device  36  such as a keyboard or mouse, for accepting user input. The scanner  40 , display  38  and input device  36  can be coupled to a general purpose programmable computer  32  with a mass storage device  34 , such as a hard drive. The computer  32  can be located at the kiosk station  30 , or the scanner  40 , display  38  and input device  36  could be coupled to the computer  32  over the network  12 . The computer  32  need not be a full-fledged workstation, but must have sufficient computing power to run the equivalent of a CORBA Name Service. Other sorts of data resources, i.e., a hardware devices to generate data, such as digital cameras or floppy disk drives, may be located at the kiosk  30  and coupled to the computer  32 . 
     The computer  32  at the kiosk  30  runs a name service program  50 , and the computer  22  of each workstation  20  runs a subscription program  60  that communicates with the name service program  50 . The name service automatically maintains an association function that associates human-readable names with the IP network addresses and port numbers of the subscription programs  60  on the workstations. Specifically, the name service  50  is configured to listen for requests for registration or deregistration from the workstations. When the name service receives a request, it adds the name, IP network address and port number of the workstation to the association function. The name service can be a distributed object-oriented architecture name service that is a widely accepted standard. Specifically, the name service can be a Common Object Request Broker Architecture (CORBA) Name Service, such as the “omniName” Naming Service available with omniORB. A CORBA name service includes an object for each subscription program that encapsulates IP address of the workstation, the port number of the subscription program, and “interface information”, such as the available methods for delivering data to the subscription program represented by the object. The name service  50  can be installed at the kiosk  30  by a human system administrator. 
     The computer  32  at the kiosk  30  also runs a data delivery program  70 . As shown in  FIG. 2 , the data delivery program displays a graphical user interface with a delivery option panel  72 . The delivery option panel  72  includes a drop-down list box  74  that lists the human-readable names of the workstations that are currently subscribed to the kiosk, i.e., the names from the association function maintained by the name service. The user can select one of the names from the drop-down list, and the data delivery program will direct the data file from the scanner to the IP address and port number of the workstation that is associated with the human-readable name. The data delivery program can also be installed by a human administrator. 
     The subscription agent program  60  running on computer  22  sends messages that request registration or deregistration on the name service  50 . In addition, the subscription agent program  60  listens for data from the kiosk  30  that is directed to the workstation  20 . To install the subscription program  60  on the workstation  20 , a user can connect to a computer that supports a data transfer protocol such as HTTP or FTP, download an installation program, and execute the installation program to install the subscription program. The subscription program can be placed in a start-up folder so that it executes each time the computer  22  is turned on. As shown in  FIG. 3 , the subscription program  60  displays a graphical user interface  62 , such as a preferences panel, either during installation or when an appropriate icon displayed by the operating system is clicked. The preferences panel  62  includes a first text box  64  that permits the user to assign a name, i.e., a human language term, to the workstation, and a second text box  66  that permits the user to select a kiosk (if more than one kiosk is connected to the network), or multiple kiosks, to which the subscription program  60  will direct registration requests. In addition, the preferences panel permits the user to specify the response of the subscription program to the receipt of data from the kiosk. For example, the subscription program can be configured to open and send the data to a specified application. 
     As shown in  FIG. 4 , the method performed by the computer system  10  begins when the workstation is turned on and the subscription program determines the IP address of the workstation (step  102 ). The subscription program then sends a registration request to the name service at the kiosk (step  104 ). The registration request includes the human-readable name set in the preferences panel, the IP address of the workstation determined in step  102 , and the port number of the subscription program. The name service receives the registration request, and registers the subscription program as a subscriber to the kiosk by modifying the association function (step  106 ). Once the workstation is registered with the name service, the human-readable name is added to the list of available subscribers in the drop-down list box in the data delivery option dialog at the kiosk (step  110 ). In addition, the name service sends a message confirming registration back to the workstation (step  108 ). When the subscription program receives the registration confirmation message, it begins listening for data from the kiosk (step  112 ). Thus, individual users can install and configure the subscription program and register with the name service without network or kiosk administrative privileges. 
     In the event that a subscription program requests a name that is already assigned to another subscriber, the name service will send a message declining the registration. The subscription program may then poll the other subscribers to verify whether another workstation using the name is connected to the network. If no subscriber responds to the poll, the subscription program sends another request to the name service, and the workstation is registered. This may occur if a workstation is subject to an abrupt shutdown, i.e., a shutdown that occurs without the opportunity for the workstation to deregister. When the workstation is restarted, it may send a request to register a name that is already on the subscriber list. 
     If a user has documents that need to be scanned, the user proceeds to the kiosk and places the documents in the scanner. The scanner scans the documents and generates an image file (step  114 ) and the data delivery program displays the delivery option panel (step  116 ). The data delivery program receives user input on one of the input devices to select one of the names from the list (step  118 ), and the data delivery program sends the image file to the IP address and port number associated with the name (step  120 ) so that the file is received by the subscription program at the appropriate workstation. Once the subscription program has received the data, the program activates the application specified in the preferences panel (step  124 ) and opens the data using that application (step  126 ). 
     As shown in  FIG. 5 , when the workstation is turned off, the subscription program sends a deregistration request to the name service at the kiosk as part of the shut-down procedures (step  130 ). When the name service receives the deregistration request, it automatically deregisters the subscription program (step  132 ), and the human-readable name is removed from the list of available subscribers in the drop-down list in the data delivery program (step  134 ). In addition, the name service can periodically poll the subscribers, and subscribers that do not respond can be removed from the subscriber list. This ensures that computers that were subject to an abrupt shutdown and are no longer connected to the network, are automatically removed from the subscriber list. 
     Consequently, with the exception of the assignment of a fixed IP address for the computer that supports the name service, the installation of the name service and data delivery program at the kiosk computer, and the management of a list of transient workstation clients that can receive data from a scanner, is handled automatically without administrator maintenance. The list box in the delivery option panel displays only the clients on workstations that are currently connected to the network, thus avoiding error messages. 
     The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims. For example, the CORBA name service could be embedded in the scanner itself.