Abstract:
Disclosed is a network peripheral access method. A device on a network registers with a server that peripheral access requests of a specific type be directed to a specific peripheral. When the device creates a request of the specified type, rather than sending the request directly to the peripheral, the device sends the request to the server. The server receives the request, associates the request with the peripheral registered for that type of request, and sends the request to the registered peripheral. In an alternate embodiment, the device sends an abbreviated request to the server, the server responds with an access identifier (e.g., a network address) of the registered peripheral, and the device sends the request directly to the registered peripheral. The presence of the server decreases the amount of peripheral-specific configuration information kept on the requesting device.

Description:
FIELD OF THE INVENTION  
         [0001]    The invention relates to the use of peripherals of a network.  
           [0002]    In the present text, “peripheral” means any piece of hardware and/or software which can receive data from, and/or emit data to, a computer.  
           [0003]    And more precisely, the invention relates to a method for allowing a user having a terminal connected to a network, to select a given peripheral of the network (i.e. a given peripheral connected to the network), in order to direct to the peripheral an output request issued by the computer and to have the peripheral performing a graphical edition of data corresponding to the output request.  
           [0004]    The invention also concerns a system for implementing such a method.  
           [0005]    A peripheral as mentioned above must be able to perform a graphical edition of data it can be a printer, but also a facsimile, a computer screen, a light projector, etc.  
         BACKGROUND OF THE INVENTION  
         [0006]    A first trend in the field of computer use is that computers and peripherals are widely used in network architectures. Such network architectures are often provided by private or public organizations to their members, to allow shared access to a number of common resources.  
           [0007]    These networks comprise at least one server to which several terminals and/or peripherals can be connected.  
           [0008]    A second trend concerns portable laptop computers. Such laptop computers have become of common use. They allow increased mobility of the users of a network: for example, in the case of a network spread over several physical premises, a user can connect his laptop computer to the network while being physically located in any one of the premises covered by the network.  
           [0009]    And instead of a laptop computer, the user can connect to the network with any portable (or even non-portable) terminal comprising an operating system and connection means to the network.  
           [0010]    Such terminals can be any terminal (computer, but also electronic notebook or Personal Digital Assistant, etc. . . . ).  
           [0011]    In the present specification, the generic term of “terminal” will thus refer to any device as mentioned above. Preferably, the terminal is portable (even though the invention could be embodied with a fixed terminal).  
           [0012]    In this context of network architecture and increased mobility, it is often desirable for a user to be able to connect his terminal to any given one of several peripherals of a network, for the purpose of transmitting to the peripheral an electronic output of data, which the user wishes to graphically edit on the desired peripheral.  
           [0013]    Such graphical edition can result in the printing of a document if the peripheral has printing means (peripheral is e.g. a printer), or in any other form of graphical edition (edition of the output on the display of the peripheral, projection on a screen of the graphical image of the file, etc. . . . ).  
           [0014]    To enable the terminal of the user to transmit such output to the selected peripheral, and to enable the peripheral to perform the graphical edition, the terminal must be configured in accordance to the specific parameters of the peripheral.  
           [0015]    With known methods and devices, this requires the loading, in the portable computer, of an adapted driver containing said specific parameters of the peripheral.  
           [0016]    It is reminded that a driver is a piece of hardware and/or software which builds a link between a terminal and a peripheral, so as to allow files and/or data to be exchanged between the terminal and the peripheral.  
           [0017]    Thus, if a use e.g. attending a meeting wishes to graphically edit a document stored in his terminal on a given peripheral (e.g. a printer located in the room), the terminal has to be configured in accordance to the specific parameters of this particular peripheral.  
           [0018]    In the above example, the meeting room might well not correspond to the usual physical environment of the user.  
           [0019]    And typically, the terminal of the user is not always configured in accordance to the specific parameters of the desired peripheral.  
           [0020]    In such a case, to actually perform the graphical edition, the user has to load in his terminal the driver corresponding to the desired peripheral.  
           [0021]    To allow the user to output data from his terminal to any peripheral of the network, a first possible solution would then be to load all the corresponding peripheral drivers in the terminal memory.  
           [0022]    But this would rapidly become burdensome and complex to manage (the fleet of peripherals being not static, the drivers should therefore be regularly updated) especially in the case of a large network having a large number of possible peripheral) for a terminal connected to the network.  
           [0023]    Furthermore, this would lead to an unjustified load in the terminal memory.  
           [0024]    Another solution could then be to load a driver only when the corresponding peripheral is needed.  
           [0025]    Yet, it is sometimes difficult to find the right driver at the required moment, especially in “real time” (during a meeting for example.) Moreover, the loading of the driver is in any case a time consuming and burdensome operation.  
           [0026]    Thus, it appears that there is a need for a solution allowing a user to select any desired peripheral of a network, and output data to this peripheral from the user&#39;s terminal.  
         SUMMARY OF THE INVENTION  
         [0027]    It is an object of the invention to enable a user having data stored in a terminal to have data output requests to be directed to and executed by a selected peripheral of a network, this being achieved without bearing the above mentioned drawbacks.  
           [0028]    It is another object of the invention to fully use the features of some of the state-of-the-art peripherals, in particular of some of the state-of-the-art printers.  
           [0029]    Thus, and as will be explained in more details below, it is possible for a user to select any desired peripheral connected to a network, and to output data memorized in his terminal on this selected peripheral without bearing the above mentioned drawbacks associated to the known techniques.  
           [0030]    And as will be explained below, the implementation of the invention only requires a minimum installation of additional software on the user&#39;s terminal (even none for some embodiments of the invention). 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0031]    [0031]FIG. 1 is a schematic representation of a network for implementing the invention, network to which a number of peripherals and/or computers, and at least a user terminal and a server are connected;  
         [0032]    [0032]FIG. 2 is a diagram of the main steps performed by the method according to the invention—this diagram containing different alternatives which can be selected by a user to implement the invention; 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0033]    A schematic representation of a network  1 —for instance a network of a public or private organization—is shown in FIG. 1.  
         [0034]    The network  1  comprises a main branch  10  connecting a server S to different elements through side branches—referred by numbers from  11  to  14 . The server S has memory means associated to it. The server S operates the network  1 .  
         [0035]    These elements include a terminal T connected to the server S through the side branch  11  and the main branch  10 .  
         [0036]    The other elements include:  
         [0037]    two peripherals P 1 , P 2  which are connected to the server S through the respective side branches  12  and  14  and the main branch  10  of the network  1 ,  
         [0038]    as well as an additional terminal—which can be a computer C connected to the server S through the side branch  13  and the main branch  10 .  
         [0039]    The network  1  may comprise private and/or public parts (including parts of the internet.) All the elements of the network  1  can be spatially gathered within a same building, or scattered across different premises.  
         [0040]    The network can comprise a large number of branches, as well as a large number of connected peripherals (the simplified example of FIG. 1 showing only two peripherals for clarity).  
         [0041]    The specific “shape” of the network is of course not a specific feature of the invention. The very schematic drawing of FIG. 1 is not limitative in that regard.  
         [0042]    In FIG. 1, a user U is also represented. The terminal T belongs to the user U, and is personal to him (which means that the user knows a secret code to start a session with the terminal and use it).  
         [0043]    Moreover, an information identifying the user can be memorized in a first table of the memory means of the server S, in association with an information identifying the terminal. Thus, the memory means of the server have the information that the user U is associated with the terminal T.  
         [0044]    And the terminal T is known from the server S.  
         [0045]    According to the invention, the terminal T of the user U is permanently configured to direct its output requests for a graphical edition to the server S.  
         [0046]    The server S is thus known by the terminal T as its dedicated peripheral, and none of the respective drivers of peripherals P 1  or P 2  has to be loaded in the memory of the terminal.  
         [0047]    As will appear below, the user U will nevertheless be able to direct output requests from its terminal T to any desired peripheral of the network (i.e., in the present example to either P 1  or P 2 ), and this without reconfiguraton of his terminal or loading in the terminal of a specific driver for the desired peripheral.  
         [0048]    The server S may be integrated within a printer so as to be at the same time a server and a printer, or not. Some state of the art printers indeed are now configured to be at the same time a server S. Informations about such printers can be found e.g. at http://www.hp.ccm/products1/embedded/whatischai.html.  
         [0049]    The server S can also be integrated into any type of peripheral, in particular a peripheral able to perform a graphical edition It can be e.g. a projector, a copier, or a monitor or TV.  
         [0050]    Typically, the server S can be such a state of the art printer, and be the usual office printer of the user.  
         [0051]    Starting from a situation where the user U wishes to perform a graphical edition from his terminal to, say, the peripheral P 1 , it will now be described how the invention allows such graphical edition to be actually performed by P 1 .  
         [0052]    Of course, the following description would also apply whatever peripheral of the network (P 2 , or any other if available) the user wishes to select to perform his graphical edition.  
         [0053]    In the following example, the peripheral P 1  is a printer. It could be any other type of peripheral as mentioned above.  
         [0054]    As will appear in the present text, the invention can be implemented in two main different modes.  
         [0055]    More specifically, and in reference to FIG. 2, some details will be given on the steps of the method according to the invention, FIG. 2 showing the two main modes which can be chosen by the user to implement the invention.  
         [0056]    In  21 , the user chooses a selection mode for selecting a desired peripheral which is to execute the output requests that will be generated by the terminal T when the terminal T is connected to the network  1 .  
         [0057]    Indeed, there are two main selection modes that can be offered to the user, these two selection modes corresponding to the two main modes of the invention.  
         [0058]    Description of a First Embodiment  
         [0059]    The user can choose to select the peripheral P 1  “locally”, i.e. through a selection action which is physically directly executed on P 1 .  
         [0060]    In this first mode of selection, the terminal T does not have to be connected to the network at the time of selection of a peripheral.  
         [0061]    On the other hand, this first selection mode requires that P be associated with an identification device, as will be explained below.  
         [0062]    If in step  22  the user selects this first mode, the sequence  22  of steps  221  to  223  shall be executed.  
         [0063]    In  221 , the user provides the selected peripheral P 1  with identification information relative to the user and/or to the terminal, by a direct input on the identification device associated to P 1 .  
         [0064]    An identification relative to the user can be e.g. a string of characters which is personally associated to the user.  
         [0065]    An identification relative to the terminal can be e.g. a serial number, or any number associated to the terminal. It is specified that the “association” between P 1  and its identification device means that the identification device is dedicated to P 1 —or can be selectively dedicated to P 1 .  
         [0066]    The identification device P 1 ID can be of any type, such as for example:  
         [0067]    a keypad for allowing the user to enter one or more identification code(s),  
         [0068]    a sensor able to sense a biometry information specific to the user. Such a sensor can be able to characterize a physical feature of the user such as his fingerprints, voice, eye, etc. . . .  
         [0069]    a card reader for reading the identification information contained in a card personal to the user (card with a microchip which can be read with an electrical contact, or through contactless means such as e.g. a radiowave reader or an infrared reader of the identification device),  
         [0070]    an infrared receiver for receiving identification information which have been beamed by the user from a device personal to the user and having an infrared port (such as a portable telephone, a personal digital assistant . . . ), using e.g. the keypad of said personal device,  
         [0071]    etc. . . . any identification means can be used in the identification device.  
         [0072]    More generally, the identification device P 1 ID can comprise any means allowing unambiguous identification of the user and/or of the terminal.  
         [0073]    Indeed, the role of P 1 ID is to receive an identification information of the user and/or the terminal T, and to transmit it to the server S (step  222 ), together with an information identifying the selected peripheral P 1 . To do this, P 1 ID is connected to the network  1 , via the peripheral P 1  for instance.  
         [0074]    The information identifying the peripheral can be, e.g. the network address of the peripheral in network  1 . It can be expressed as a URL (Universal Resource Locator), or as a IP (Internet Protocol) address.  
         [0075]    As said above, the identification information entered into the identification device is specific to the user, and/or to the terminal.  
         [0076]    Indeed, the purpose of the identification step performed in  221  is to update a second table of the memory means of the server S, said second table associating each terminal which is known by the server to one of the peripherals of the network, for the purpose of redirecting output requests from a given terminal to the associated peripheral.  
         [0077]    This update operation corresponds to step  223 .  
         [0078]    If the information provided to the identification device only allows identification of the user, step  223  will comprise the following substeps:  
         [0079]    the server S receives the information identifying the user,  
         [0080]    the server S scans a reference table of its memory means to check that the received information corresponds to a declared user,  
         [0081]    the server S scans the first table of its memory means to determine which is the terminal associated to the identified user, and retrieves from this first table an information identifying the terminal T,  
         [0082]    the server S updates the second table of its memory means, associating in this second table the information identifying the terminal T with the peripheral P 1 .  
         [0083]    In the above case (the information provided to the identification device only allows identification of the user) an information identifying the user must be memorized in the above-mentioned first table of the memory means of the server S, in association with an information identifying the terminal.  
         [0084]    If the information provided to the identification device allows identification of the terminal (e.g. the user has entered on a keyboard of the identification device of P 1  a code associated to the terminal T or has fed into this device a smartcard with information identifying T), step  223  will only comprise the updating by the server S of the second table of its memory means.  
         [0085]    The first and second tables can form a single table in the memory means of the server S.  
         [0086]    And in the case where the information provided to the identification device directly allows identification of the terminal, the first table is not necessary.  
         [0087]    The identification device P 1 ID can be physically integrated into the peripheral P 1  (with a physical input interface accessible to the user for allowing him to enter the identification information). P 1  can be e.g. a printer with an integrated identification device.  
         [0088]    The identification device P 1 ID can also be physically separated from the peripheral P 1 .  
         [0089]    In this case, either:  
         [0090]    the identification device is exclusively dedicated to P 1  (and possibly bears a visual sign indicating this to the user),  
         [0091]    or the identification device can be associated with a number of different peripherals, but comprises means to allow the user to select one of these peripherals before entering the information identifying the user and/or his terminal. The identification device will then send to the server, along with said information identifying the user and/or his terminal, an information identifying the selected peripheral.  
         [0092]    After steps  221  to  223 , step  24  (described further in this text) shall be executed.  
         [0093]    Description of a Second Embodiment  
         [0094]    If now the user chooses in  21  the second mode for selecting a peripheral, the sequence  23  of steps  231  to  233  shall be executed.  
         [0095]    This second mode can be chosen in particular if the user wants to select a peripheral which is not associated to any identification device (e.g. classical standard printer).  
         [0096]    In step  231 , the user connects its terminal to the network  1  for establishing a connection between the terminal T and the server S.  
         [0097]    This connection can have been already established—it is possible that the terminal has been connected even before initial step  21 .  
         [0098]    The connection to the server through the network  1  can be replaced by a connection through any network common to the terminal and to the server S. It is thus possible that the network  1  is e.g. a private intranet, and the network used in step  231  is another network, e.g. the internet.  
         [0099]    In step  232 , once the terminal T has been connected to the server S through a network and a network session has been initiated between T and S, the user sends to the server S:  
         [0100]    information identifying the selected peripheral P 1 , indicating that P 1  is the peripheral to which output requests issued from the terminal T must be directed,  
         [0101]    as well as an information identifying the terminal itself. This information can have been already stored by the server at the initiation of the network session between the terminal and the server.  
         [0102]    To perform steps  231  and  232 , the user can browse a resource list from a display imported on his terminal screen from the server S to select the desired peripheral.  
         [0103]    Such a list can be logically organized and visually presented to the user, in different ways.  
         [0104]    A possible solution for this would be to have the display of the different peripherals which can be selected by the user be organized as a “geographical” representation of the actual spatial distribution of the peripherals across the network.  
         [0105]    In this case, the display of the list would represent the different buildings covered by the network  1 , and prompt the user for selecting one of these buildings.  
         [0106]    Then the display could show the user a representation of the chosen building with its different areas, floors, etc. . . . And here again, the user would be prompted to choose one of these.  
         [0107]    Finally, the display could show the different rooms available within the chosen area/floor, and indicate which peripherals can be selected within these rooms. The user would be prompted again for choosing a peripheral.  
         [0108]    For avoiding any ambiguity on the peripheral to be selected, the display could even show an image (e.g. a picture) of the selected peripheral, said picture representing the peripheral in its real physical environment (in the room).  
         [0109]    This would constitute a very ergonomic and natural interface means for guiding the user in order to help him select the right peripheral next to him, or anywhere in the network (the user might want to select e.g. his own printer located in his office, while he is away from his office).  
         [0110]    And the number of successive displays offering “zooms” at different levels of detail, on different parts of the network, can be adapted.  
         [0111]    Other types of representation of the peripherals of the network can of course be used.  
         [0112]    In step  233 , the server S updates the second table of its memory, as in step  223  described in reference to the first mode. Steps  223  and  233  are thus equivalent.  
         [0113]    Step  24  globally represents the redirecting of the output requests issued by the terminal T to the selected peripheral P 1 .  
         [0114]    For the execution of this step, the terminal of the user must be connected to the network  1 .  
         [0115]    Such connection to the network  1  can have been established from the beginning of the process, before the choice of a selection mode by the user. In some cases, we have seen that the terminal had to be connected to the server through a network—and possibly through the network  1 —in order that the server receives the information identifying the selected peripheral for the terminal T.  
         [0116]    In any case, if the terminal is not connected to the network  1  yet (in particular in the first embodiment described above), such connection must be established before step  24 .  
         [0117]    An “output request” as generated by the terminal basically comprises:  
         [0118]    an information identifying the emitter of the request (i.e. the terminal in the present case),  
         [0119]    information defining the data to be edited on a peripheral (i.e. data content and arrangement, in the form e.g. of a data file),  
         [0120]    as well as parameters concerning the graphical edition (printing or other) to be performed.  
         [0121]    At this stage, the server has memorized an information that associates the terminal T with the peripheral P 1 .  
         [0122]    And as said before, S is the declared peripheral in the terminal: all output requests generated by the terminal should then in the first place be directed to the server S.  
         [0123]    Step  25  can be executed in different ways, to redirect such requests to the selected peripheral P 1 .  
         [0124]    Redirecting of Output Requests  
         [0125]    Step  24  is executed either after steps  221  to  223  or after steps  231  to  233 .  
         [0126]    A first way to execute step  24  is to have the server S simply receiving the output requests coming from the terminal T and then rerouting them to the selected peripheral P 1 .  
         [0127]    To do this, the server S uses the second table of its memory means. When receiving an output request from the network  1 , the server S scans said second table to determine which peripheral is associated with the terminal having generated the output request (the server S receives in the output request an information identifying the terminal T).  
         [0128]    Once this peripheral is determined, the server knows the network address of this selected peripheral (said network address being preferably used in the second table to identify the peripheral, and being in any case memorized in association with the information identifying the peripheral if this identifying information is a different one).  
         [0129]    The network address can be e.g. a IP address, an U.R.L. or a e-mail address.  
         [0130]    Then, the server can reroute the output request received from the terminal T to the selected peripheral P 1 .  
         [0131]    The above implies that an application software for managing graphical output requests is implemented on the server S.  
         [0132]    It is specified that the “server” S is a server in the broad meaning.  
         [0133]    The server S can be any device having a network address in the network  1 . It can be for example a state of the art printer as mentioned above, and in this case it does not need any additional software for managing graphical output requests.  
         [0134]    It can also be another type of device such as a personal computer—in this case a specific piece of software for managing the output requests must be implemented on the server S.  
         [0135]    According to this first way of executing step  24 , the output request (including the content of the data to be edited) is received by the server S, and then rerouted by the server to the selected peripheral P 1 .  
         [0136]    Such rerouting of the output requests allows the user to have any peripheral of the network execute an output request, while:  
         [0137]    the only one and same item is declared in the terminal as being the recipient of the output requests (the “print queue” in the terminal contains only the server S), and  
         [0138]    no special configuration of the terminal is required - no installation of any plug-in or hardware connection: the terminal can be of any standard type (e.g. a standard laptop computer).  
         [0139]    According to a second way to execute step  24 , the user&#39;s terminal T does not allow the direct sending of a full output request to the server S when the user enters on his terminal a command to output data on the selected peripheral.  
         [0140]    Instead, when the user enters such a command the following occurs:  
         [0141]    a plug-in which has been installed on the terminal builds a message to be sent to the server through the network  1 , said message:  
         [0142]    containing an information identifying the terminal T, and  
         [0143]    requesting a network address for sending to such an address the actual and full output request (including the data to be edited). But the actual output request is not sent to the server S,  
         [0144]    the plug-in sends this message to the server through the network  1 ,  
         [0145]    when receiving this message from the terminal T, the server S scans the second table in its memory means, to determine which peripheral is associated to the terminal T. It is recalled that a preferred information for identifying the selected peripheral in the second table is the network address of the peripheral, and that if another type of identifying information is used to identify the selected peripheral, the server S nevertheless knows the network address of all peripherals, and is thus able to send back to the terminal T the network address of the peripheral associated to the terminal,  
         [0146]    the plug-in then receives from the server—always through the network  1 —the network address of the selected peripheral,  
         [0147]    the plug-in builds a full output request directed to the network address received from the server S—i.e. to the selected peripheral P 1  and sends it to this address.  
         [0148]    Thus, the request will be executed by the selected peripheral P 1 .  
         [0149]    This second way to execute step  24  corresponds to a “peer to peer” approach. It avoids unnecessary loading of the network  1  with the transfer of full output requests, including the data to be edited. It is thus advantageous especially for the redirecting of requests concerning large data files.  
         [0150]    According to a third way to execute step  24 , another type of plug-in is implemented in the user&#39;s terminal. This plug-in does not allow the direct sending of a complete output request to the server S when the user enters on his terminal a command to output data on the selected peripheral, as in the second way described above.  
         [0151]    Instead, the following occurs:  
         [0152]    the plug-in builds a message to be sent to the server through the network  1 , said message containing an information identifying the terminal T and all information necessary to build the full output request (including the data to be edited). This message is built by the plug-in as an e-mail,  
         [0153]    the plug-in sends this e-mail to the server S, through the network  1 ,  
         [0154]    the server, when receiving the e-mail, extracts from the e-mail the information identifying the terminal T  
         [0155]    the server S then scans the second table in its memory means, as in the second way of executing step  24  described above. The server S thus identifies the network address of the selected peripheral P 1 ,  
         [0156]    the server S then builds another e-mail, directed to P 1 , and containing all information for executing the output request, (including all necessary data)  
         [0157]    the selected peripheral has means to extract the request when receiving the email from the server, extracts it and executes it.  
         [0158]    This third way of executing step  24  is specially well adapted when the server S is distant from the terminal and/or from the selected peripheral, and when there is between them a network firewall preventing the server to receive full output requests.  
         [0159]    It can be implemented using classical protocols for transferring e-mails, such as SMTP (Simple Mail Transfer Protocol), with e.g. POP3 servers.  
         [0160]    In this third way, the output request is “hidden” from the firewall within the exchanged e-mails and is thus not stopped by the network firewall on its way to the server, all data necessary to build the full output request and to perform the graphical edition of the data being included in these e-mails.  
         [0161]    All the embodiments can also comprise a step of encryption of the data or the identifying information. The relevant pieces of software or plug-ins are thus implemented in the Server S and/or terminal T.  
         [0162]    In its different embodiments, the invention allows a user to select any peripheral of a network for performing a graphical edition of data.  
         [0163]    The invention provides a flexible and powerful solution for using various resources of a network.  
         [0164]    And as seen above, it can be implemented with no, or minimum, software adaptation of standard terminals (e.g. laptops) and printers (see the second mode described above).