Abstract:
A system and method of providing user-relative addressing in a computer network environment includes associating a plurality of user-relative destinations with a corresponding plurality of actions. User identification information and a first user-relative destination are received. A first action in the plurality of actions associated with the first user-relative destination is identified. A first absolute destination is determined based on the first action and the user identification information.

Description:
THE FIELD OF THE INVENTION  
         [0001]    The present invention generally relates to computer networks, and more particularly to a network device and method for providing user-relative addressing.  
         BACKGROUND OF THE INVENTION  
         [0002]    In addition to using a personal computer (PC) for transferring data to a network, another option for transferring information to a network is a “digital sender”. A digital sender is a network device that converts paper-based documents into electronic data. A digital sender includes a scanner for scanning in paper documents. The digital sender can send the electronic data by several methods, including via Internet e-mail and via facsimile (Fax) either through a network fax server or an Internet fax service provider.  
           [0003]    One known manufacturer of different models of digital senders is Hewlett-Packard Company. Information regarding Hewlett-Packard digital senders is publicly available via Hewlett-Packard&#39;s website at www.hp.com. Information regarding Hewlett-Packard&#39;s digital senders is also provided in “HP 9100C Digital Sender User Guide,” 1 st  ed., 1998, Pub. No. C1311-90910, and “HP 9100C Digital Sender Administrator Guide,” 1 st  ed., 1998, Pub. No. C1311-90915, which are incorporated herein by reference.  
           [0004]    A digital sender allows data to be transferred to the Internet with fewer steps than that required by a PC. The digital sender includes a keypad that allows a user to enter an e-mail address. A user can scan in a document, enter one or more e-mail addresses for the desired destinations, press a send button, and the digital sender automatically e-mails the information to the various destinations. The digital sender automatically logs onto an exchange server, and transmits an e-mail message with the scanned document attached, without any further user input required. Thus, a digital sender provides a more efficient means for transferring paper-based source information to the Internet.  
           [0005]    In existing systems, to send an e-mail communication, a user specifies one or more absolute destinations for the communication. The absolute destinations are typically e-mail addresses or fax phone numbers. Some systems allow a user to enter a destination in the form of a name or other identifier of a person or group, and the systems automatically retrieve the e-mail address or addresses corresponding to the entered name or identifier. In these existing systems, destinations are absolute. In other words, there is a 1-to-1 correspondence between destinations and e-mail addresses. Each destination is mapped to a single e-mail address or set of e-mail addresses, regardless of the particular sender transmitting the communication. The mappings do not change based upon the person transmitting the communication.  
           [0006]    It would be desirable for a network to provide a capability for users to specify user-relative destinations that vary depending upon the person sending information over the network.  
         SUMMARY OF THE INVENTION  
         [0007]    The present invention provides a system and method of providing user-relative addressing in a computer network environment. A plurality of user-relative destinations are associated with a corresponding plurality of actions. User identification information and a first user-relative destination are received. A first action in the plurality of actions associated with the first user-relative destination is identified. A first absolute destination is determined based on the first action and the user identification information.  
           [0008]    One aspect of the invention provides a network device configured to be coupled to a computer network having a directory server. The network device includes a receiver for receiving a communication including destination information and sender identification information. A memory stores search information identifying searches associated with sender-relative destinations. A controller is coupled to the receiver and the memory. The controller identifies whether the destination information specifies a sender-relative destination. The controller performs at least one search of the directory server based on the stored search information and the sender identification information if the destination information specifies a sender-relative destination. The controller identifies at least one absolute destination based on the performed search.  
           [0009]    Another aspect of the invention provides a computer-readable medium having computer-executable instructions for performing a method of providing user-relative addressing in a computer network. A plurality of user-relative destinations are associated with a corresponding plurality of actions. A first user-relative destination and user identification information are received. A first action in the plurality of actions associated with the first user-relative destination is identified. A first absolute destination is determined based on the first action and the user identification information.  
           [0010]    Another aspect of the invention provides a method of providing user-relative addressing in a computer network. A communication including destination information and sender identification information is received. The destination information includes a first sender-relative destination. It is determined whether the destination information specifies a sender-relative destination. A sender record is accessed based on the received sender identification information. Action information identifying a plurality of actions associated with a plurality of sender-relative destinations is provided. A first action in the action information is identified based on the received destination information. The first action is associated with the first sender-relative destination. A first attribute in the sender record is identified based on the first action and the received destination information. A first absolute destination is determined based on the first attribute. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]    [0011]FIG. 1 illustrates a block diagram of a network, including a network device for providing user-relative destinations according to the present invention.  
         [0012]    [0012]FIG. 2 illustrates an electrical block diagram of an address resolution device according to the present invention.  
         [0013]    [0013]FIG. 3A illustrates examples of directory server entries.  
         [0014]    [0014]FIG. 3B illustrates mappings of user-relative destinations to action entries according to the present invention.  
         [0015]    [0015]FIG. 4 illustrates a flow diagram of operations performed by the address resolution device according to the present invention.  
         [0016]    [0016]FIG. 5 illustrates a flow diagram of the address resolution step in the flow diagram of FIG. 4. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0017]    In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.  
         [0018]    [0018]FIG. 1 illustrates a diagram of a network including a network device for providing user relative destinations according to the present invention. Network  100  includes multi-function peripheral (MFP) device  101 , communication link  102 , address resolution device  104 , directory server  108 , e-mail server  110 , Internet  112 , Internet fax service provider  114 , fax server  122 , and phone line  124 . In one embodiment, multi-function peripheral device  101  is a digital sender device. In an alternative embodiment, multi-function peripheral device  101  is a personal computer (PC) or workstation. Multi-function peripheral device  101  may be any device capable of transmitting e-mail and/or fax communications. Address resolution device  104  is preferably a server computer or workstation. Address resolution device  104  provides absolute destination information based on relative destination information received from multi-function peripheral device  101 . In one embodiment, directory server  108  is a light-weight directory access protocol (LDAP) server. In one embodiment, e-mail server  110  supports simple mail transport protocol (SMTP).  
         [0019]    Multi-function peripheral device  101  allows users to send e-mail communications, with or without attachments, as well as fax communications. Multi-function peripheral device  101  preferably includes a keyboard or other input means for entering destination information, output format information, sender information, and subject information. The destination information specifies either an absolute destination, such as an e-mail address or fax phone number, or a user-relative destination. The destination information entered by a user may specify multiple destinations for each data item to be transmitted. The output format information identifies the format for items to be sent, including e-mail format, fax format and internet fax format. The sender information provides identifying information about the sender, such as a name or e-mail address. The subject information identifies a subject of data items to be transmitted.  
         [0020]    E-mail addresses can be entered in multi-function peripheral device  101 , or selected and retrieved from an internal address book stored in multi-function peripheral device  101 . In addition, multi-function peripheral device  101  also supports LDAP queries, which provides the ability of real-time address queries. The LDAP capabilities are provided by directory server  108 . User-relative e-mail destinations may also be entered in multi-function peripheral device  101 .  
         [0021]    Multi-function peripheral device  101  includes the capability to send faxes. Fax server  122  includes phone line  124  to fax communications received from multi-function peripheral device  101 . Fax server  122  handles outbound dialing to fax communications received from multi-function peripheral device  101  over phone line  124 . Fax numbers may be entered through a keyboard on multi-function peripheral device  101 , or they can be retrieved from an internal fax address book stored in device  101 . User-relative fax destinations may also be entered in multi-function peripheral device  101 .  
         [0022]    Multi-function peripheral device  101  is also capable of sending faxes via the Internet. To provide Internet fax capabilities, the user must subscribe to an Internet fax service provider service. E-mail server  110  provides Internet fax capabilities using Internet fax service provider  114 . In order to transmit a document via Internet fax, multi-function peripheral device  101  transmits a communication via communication link  102  to e-mail server  110 , which handles the Internet fax transmission. Absolute internet fax destinations and user-relative fax destinations may be entered in multi-function peripheral device  101 .  
         [0023]    [0023]FIG. 2 illustrates an electrical block diagram of an address resolution device according to the present invention. Address resolution device  104  operates to provide absolute destination information based on received relative destination information. Address resolution device  104  includes network interface  150 , processor  152 , and memory  154 . Memory  154  stores mapping table  300  and address resolving process  400 . Network interface  150  is coupled to communication link  102  of network  100 , and to processor  152 . Address resolution device  104  receives communications from multi-function peripheral device  101 , including sender information and destination information, through network interface  150 . Network interface  150  passes the received communications on to processor  152 . Processor  152  processes the received communications, and resolves addresses based on information stored in mapping table  300  (shown in detail in FIG. 3B) and address resolving process  400  (shown in detail in FIG. 4).  
         [0024]    If a user-relative destination is specified by a sender, address resolution device  104  communicates with directory server  108  to resolve the user-relative destination, and identify one or more corresponding absolute destinations. Directory server  108  contains descriptive, attribute-based information. The service model of directory server  108  is based on entries. An entry is a collection of attributes that has a name, which is referred to as a distinguished name (DN). A DN uniquely identifies an entry. Each of the entry&#39;s attributes has a type and one or more values. Types are typically mnemonic strings, like “name” for a person&#39;s name, or “Email” for a person&#39;s email address. The values depend on what type of attribute it is. For example, an Email attribute might contain the value “joe@computer.com”. In one embodiment, the directory entries in directory server  108  are arranged in a hierarchical tree-like structure.  
         [0025]    Directory server  108  provides operations for interrogating and updating the directory. Operations are provided for adding and deleting an entry from the directory, changing an existing entry, and changing the name of an entry. Directory server  108  is also used to search for information in the directory. A search operation allows some portion of the directory to be searched for entries that match some criteria specified by address resolution device  104 . Information can be requested from each entry that matches the criteria.  
         [0026]    [0026]FIG. 3A illustrates examples of directory server entries in directory server  108 . Entries  200  in directory server  108  include entries  202 A and  202 B. Entries  202 A and  202 B include attributes  204 A- 204 I (collectively referred to as attributes  204 ). In the embodiment shown, entry  202 A is an “Employee” entry, and entry  202 B is a “Department” entry. Employee entry  202 A includes distinguished name (DN) attribute  204 A, name attribute  204 B, email attribute  204 C, manager attribute  204 D, department attribute  204 E, and job_type attribute  204 F. Department entry  202 B includes DN attribute  204 G, title attribute  204 H, and travel_coordinator attribute  204 I. Entry  202 A is uniquely identified by its DN attribute  204 A. Entry  202 B is uniquely identified by its DN attribute  204 G. Each attribute  204  includes a value. For example, the value for email attribute  204 C might be “smith@computer.com”, the value for job_type attribute  204 F might be one of “Engineer”, “Architect,” or “Manager,” and so on.  
         [0027]    Entries  200  represent an employee record for a single employee, and are also referred to as employee record  200 . Similar entries are provided for other employees. Other types of information may also be specified in entries  200 . Note that the department entry  202 B may only be stored once in directory server  108 , but may be referenced by multiple employee entries  202 A via department attribute  204 E.  
         [0028]    [0028]FIG. 3B illustrates mappings of user-relative destinations to action entries according to the present invention. Mapping table  300  is stored in memory  154  of address resolution device  104  (shown in FIG. 2). Mapping table  300  includes relative destination entries  302 A- 302 D (collectively referred to as relative destination entries  302 ) and corresponding action entries  304 A- 304 D (collectively referred to as action entries  304 ). Action entries  304  define actions to be taken by address resolution device  104  when a user enters a corresponding relative destination entry  302 . In addition to specifying e-mail addresses for employees in directory server  108  and mapping table  300 , fax telephone numbers may also be specified. Mapping table  300  is discussed in additional detail below with reference to FIGS. 4 and 5.  
         [0029]    [0029]FIG. 4 illustrates a flow diagram of operations performed by address resolution device  104  according to the present invention. Address resolving process  400  is stored in memory  154  of address resolution device  104  (shown in FIG. 2). The first step in process  400  is address resolution device  104  receiving a communication with user information and destination information from multi-function peripheral device  101 . (Block  402 ). Processor  152  determines whether the destination information specifies a user-relative destination or an absolute destination. (Block  404 ). If the destination information specifies a user-relative destination, processor  152  resolves the user-relative destination (Block  406 ), as described below with reference to FIG. 5. After the user-relative destination is resolved, processor  152  converts the user-relative destination to one or more absolute destinations, and outputs the communication to network  100 . (Block  408 ). If the destination information specifies an absolute destination (Block  404 ), processor  152  skips Block  406  of process  400 , and outputs the communication to network  100  (Block  408 ).  
         [0030]    [0030]FIG. 5 illustrates a flow diagram  500  of the address resolution step (Block  406 ) of FIG. 4. Processor  152  uses the sender information in a received communication to obtain the sender&#39;s employee record  200  from directory server  108 . (Block  502 ). Processor  152  accesses mapping table  300 , identifies the relative destination entry  302  specified in the received destination information, and identifies the action entry  304  corresponding to the identified relative destination entry  302 . (Block  504 ). Processor  152  determines whether the identified action entry  304  specifies a compound search. (Block  506 ). If the identified action entry  304  does not specify a compound search, processor  152  obtains the attribute value specified in the identified action entry  304  from the retrieved sender&#39;s employee record  200 . (Block  508 ). Processor  152  then converts the retrieved attribute value to an absolute destination. (Block  514 ). In one embodiment, the absolute destination is obtained by searching directory server  108  based on the retrieved attribute value. If the identified action entry  304  specifies a compound search (Block  506 ), processor  152  performs the searches specified in the compound search (Block  510 ), and retrieves specified attribute values for each search (Block  512 ). Based on the retrieved attribute values, processor  152  obtains one or more absolute destinations. (Block  514 ). In one embodiment, the absolute destinations are obtained by searching directory server  108  based on the retrieved attribute values. As a last step, processor  152  converts the user-relative destination in a received communication to one or more absolute destinations. (Block  516 ).  
         [0031]    Actions  304 A- 304 B in mapping table  300  each specify a non-compound search. Action  304 A is executed when a user specifies a “manager” relative destination. For action  304 A, processor  152  performs the search “user.manager.email.” The “user” field of the search indicates that the search should be performed in the retrieved sender&#39;s employee record  200 . The “manager” field in the search indicates that the value of the manager attribute  204 D in the sender&#39;s employee record  200  is to be obtained. The value in manager attribute  204 D specifies the DN of the sender&#39;s manager. The “email” field in the search indicates that processor  152  is to obtain the value in email attribute  204 C of the manager&#39;s employee record  200 , which is identified by the manager&#39;s DN. Processor  152  accesses the manager&#39;s employee record  200  from directory server  108 , and obtains the manager&#39;s e-mail address from the email attribute  204 C of the manager&#39;s employee record  200 .  
         [0032]    Action  304 B in mapping table  300  is executed when a user specifies a “travel coordinator” relative destination. For action  304 B, processor  152  performs the search “user.department.travel_coordinator.email.” The “user” field of the search indicates that the search should be performed in the retrieved sender&#39;s employee record  200 . The “department” field in the search indicates that the department entry  202 B in the sender&#39;s employee record  200  is to be searched. The “travel_coordinator” field in the search indicates that the value of the travel_coordinator attribute  204 I is to be obtained. The value in travel_coordinator attribute  204 I specifies the DN of the sender&#39;s travel coordinator. The “email” field in the search indicates that processor  152  is to obtain the value in email attribute  204 C of the travel coordinator&#39;s employee record  200 , which is identified by the travel coordinator&#39;s DN. Processor  152  accesses the travel coordinator&#39;s employee record  200  from directory server  108 , and obtains the travel coordinator&#39;s e-mail address from the email attribute  204 C of the travel coordinator&#39;s employee record  200 .  
         [0033]    Actions  304 C- 304 D of mapping table  300  each specify a compound search. Action  304 C is executed when a user specifies a “team” relative destination. For action  304 C, processor  152  performs the search “employee.email” where “employee.manager=user.manager.” Based on the “employee.manager=user.manager” search term, processor  152  accesses directory server  108  and identifies all employee records  200  that have a value in manager attribute  204 D that is equal to the value in manager attribute  204 D of the retrieved sender&#39;s employee record  200 . Processor  152  identifies the DN of each such employee record  200 . Based on the “employee.email” search term, processor  152  uses the identified DN&#39;s to access the corresponding employee records  200 , and obtains the e-mail address from the email attribute  204 C from each accessed employee record  200 .  
         [0034]    Action  304 D of mapping table  300  is executed when a user specifies a “peers” relative destination. For action  304 D, processor  152  performs the search “employee.email” where “employee.manager=user.manager” and “employee.job_type=user.job_type.” Based on the “employee.manager=user.manager” search term, processor  152  accesses directory server  108  and identifies all employee records  200  that have a value in manager attribute  204 D that is equal to the value in manager attribute  204 D of the retrieved sender&#39;s employee record  200 . Processor  152  identifies the DN of each such employee record  200 . Based on the “employee.job_type=user.job_type” search term, processor  152  uses the identified DN&#39;s to access the corresponding employee records  200 , and identifies records  200  that have a value in job_type attribute  204 F that is equal to the value in job_type attribute  204 F of the sender&#39;s employee record  200 . Based on the “employee.email” search term, processor  152  obtains the e-mail address from the email attribute  204 C of each employee record  200  with the same value in job_type attribute  204  as the value in job_type attribute  204  of the sender&#39;s employee record  200 .  
         [0035]    It will be understood by a person of ordinary skill in the art that functions performed by address resolution device  104  may be implement in hardware, software, firmware, or any combination thereof. The implementation may be via a microprocessor, programmable logic device, or state machine. Components of the present invention may reside in software on one or more computer-readable mediums. The term computer-readable medium as used herein is defined to include any kind of memory, volatile or non-volatile, such as floppy disks, hard disks, CD-ROMs, flash memory, read-only memory (ROM), and random access memory. In addition, it will be understood that the functionality of address resolution device  104  may be implemented in whole, or in part, inside multi-function peripheral device  101 , rather than having a stand-alone device  104 . In one embodiment, rather than receiving an entire communication including content information from multi-function peripheral device  101 , address resolution device  104  only receives destination information and sender information from multi-function peripheral device  101 , and provides multi-function peripheral device  101  with corresponding absolute destinations. It will also be understood by one of ordinary skill in the art that the techniques disclosed herein are not limited to e-mail and fax communications, but may be applied to any other network communications as well.  
         [0036]    The user-relative addressing technique of the present invention provides a layer of indirection to the sending process. The layer of indirection provides all of the benefits normally associated with such a layer, including automatic updating of relative addressing information as the centralized data in the directory server changes. The invention provides a consistent interface to all users that want to send communications to the same user-relative destinations. In addition, the invention provides users the ability to send communications to desired destinations, even if the user does not know the appropriate e-mail addresses or fax phone numbers.  
         [0037]    Although specific embodiments have been illustrated and described herein for purposes of description of the preferred embodiment, it will be appreciated by those of ordinary skill in the art that a wide variety of alternate and/or equivalent implementations may be substituted for the specific embodiments shown and described without departing from the scope of the present invention. Those with skill in the chemical, mechanical, electro-mechanical, electrical, and computer arts will readily appreciate that the present invention may be implemented in a very wide variety of embodiments. This application is intended to cover any adaptations or variations of the preferred embodiments discussed herein. Therefore, it is manifestly intended that this invention be limited only by the claims and the equivalents thereof.