WO2001022291A2 - Providing address book information when a link for an address in e-mail is selected - Google Patents

Providing address book information when a link for an address in e-mail is selected Download PDF

Info

Publication number
WO2001022291A2
WO2001022291A2 PCT/US2000/025884 US0025884W WO0122291A2 WO 2001022291 A2 WO2001022291 A2 WO 2001022291A2 US 0025884 W US0025884 W US 0025884W WO 0122291 A2 WO0122291 A2 WO 0122291A2
Authority
WO
WIPO (PCT)
Prior art keywords
entity
mail
address
entries
information
Prior art date
Application number
PCT/US2000/025884
Other languages
French (fr)
Other versions
WO2001022291A3 (en
Inventor
Herbert D. Jellinek
Stephen M. Rudy
Original Assignee
Fusionone, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/652,761 external-priority patent/US6360252B1/en
Application filed by Fusionone, Inc. filed Critical Fusionone, Inc.
Priority to AU77069/00A priority Critical patent/AU7706900A/en
Publication of WO2001022291A2 publication Critical patent/WO2001022291A2/en
Publication of WO2001022291A3 publication Critical patent/WO2001022291A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases

Definitions

  • the invention relates to techniques for responding to selection of a link for an address in e-mail being displayed.
  • client software has been developed that includes some integration between the e-mail display functions and the address book functions.
  • certain e-mail client programs have been designed to automatically insert selectable links for addresses when displaying e-mail items that contain addresses.
  • an interaction begins in which the user can add the address associated with the link to the address book on the client.
  • the address may be added as a new entry or, where an entry already exists for the same person, in place of the existing entry.
  • e-mail/address book integration problems problems relating to the integration of e-mail and address book functionality are referred to generally herein as "e-mail/address book integration problems".
  • a user reading e-mail from a mobile telephone may need to know various additional information about an entity whose address appears in a message, such as first name or surname, a work or home telephone number, another e-mail address, or other address book information relating to the entity.
  • Such devices would not have the capacity to store full-featured address books, nor to run client software that provides the same sophisticated integration features as those found on desktop computers.
  • it may be even more critical for the users of such devices to easily obtain the address book information, since they may often find themselves in circumstances (such as standing in a line at a checkout stand) where they have no alternative means for conveniently accessing the information. Based on the foregoing, it is clearly desirable to provide techniques that address and resolve e-mail/address book integration problems that arise with many types of client devices.
  • the server machine receives an e-mail item in which appears a set of one or more included e-mail addresses.
  • a selectable link for a particular e-mail address from the set of included e-mail addresses is automatically inserted into a display version of the e- mail item.
  • the particular e-mail address for which the selectable link is inserted is an e- mail address of an entity.
  • the display version of the e-mail item is transferred to a client machine.
  • a signal is received from the client machine indicating user selection of the selectable link.
  • the server machine performs the steps of identifying, from address book information accessible to the server machine, a set of one or more matching entries, each matching entry in the set being for an entity that is likely to be the entity whose e-mail address has the selectable link; and transferring an information display to the client machine, the information display providing access to address book information from each entry in the set of one or more matching entries.
  • Fig. 1 is a flow diagram illustrating operations of a server machine in displaying address book information in response to selection of a link associated with an e-mail address.
  • Fig. 2 is a flowchart of a general method by which a server machine displays address book information in response to selection of a link associated with an e-mail address.
  • Fig. 3 is a schematic diagram showing general components of a system in which a server machine can display address book information in response to selection of a link associated with an e-mail address.
  • Fig. 4 is a schematic diagram showing components of a system in which an intermediary server (IMS) provides services to a user of a client machine.
  • IMS intermediary server
  • Fig. 5 is a flowchart showing operations of a client machine in establishing connection to the IMS in the system of Fig. 4.
  • Fig. 6 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to read mail.
  • Fig. 7 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to send mail.
  • Fig. 8 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to chat.
  • Fig. 9 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to view calendar.
  • Fig. 10 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to look up name.
  • Fig. 11 is a flowchart showing operations of the IMS of Fig. 4 in displaying address book information in response to selection of a link associated with an e-mail address.
  • Fig. 12 is a flowchart showing how the act in box 530 in Fig. 11 can be implemented.
  • Fig. 13 is a block diagram of a computer system that maybe used to implement the invention.
  • e-mail/address book integration problems are alleviated by providing, within an e-mail item, a link for an address that can be selected to obtain, from a server separate from said client, a display that provides access to all the available address book information from one or more address book entries that are, or probably are, associated with the address.
  • a display version of an e-mail item is transferred to a client machine, with the display version including a set of one or more e-mail addresses, where each e-mail address in the set exists in the original e-mail item.
  • the display version can also include an automatically inserted selectable link for one or more of the e- mail addresses in the set.
  • a search is made at the server to identify entities that might be the entity associated with the address that corresponds to the selected link (hereinafter the "matching entities").
  • An information display is transferred to the client machine.
  • the information display provides access to all the available address book information in the entries for the matching entities (the "matching entries") that exist in an address book accessible by the server.
  • the display version of the e-mail item can include a visual cue, such as brackets enclosing the e-mail address, to indicate the automatically inserted selectable link, and the client machine's display device can provide a second visual cue, such as the ">" symbol, to indicate a current item.
  • the client machine can include sensor circuitry for sensing a user action indicating selection of the current item.
  • the signal indicating user selection of the link can include a signal indicating that a user action selecting the current item has occurred while the first visual cue was the current item.
  • the information display includes all available address book information for each of the matching entries.
  • the address book information in the information display can include the individual's first name and surname, at least one telephone number, and at least one e- mail address.
  • the address book information can include a selectable item for requesting a telephone call to the entity's telephone number.
  • the address book information can include a selectable item for requesting that an e-mail message be sent to the entity's e-mail address.
  • the address book information can include a selectable item for requesting scheduling of an appointment on the entity's calendar.
  • the signal from the client machine can include address information about the e-mail address.
  • Various techniques may be employed to search an address book for matching entries based on the e-mail address. For example, a likely match criterion can be applied to the address information from the signal and the address book information in the entries to obtain the set of one or more matching entries, and then use the set of one or more matching entries to produce the information display.
  • the likely match criterion can be applied in parts. For example, in one embodiment, a first part of the likely match criterion is applied to determine whether any of the entries in the address book includes an e-mail address that is an exact match of the e-mail address with the selectable link. If not, a second part of the likely match criterion is applied to determine whether any of the entries in the address book includes an e-mail address with a degree of similarity to the e-mail address with the selectable link that is at least as great as a threshold similarity.
  • a third part of the matching criterion is applied to determine whether any of the entries in the address book includes both a first name and a surname that match the first name and surname in the e-mail address with the selectable link. If not, a fourth part of the match criterion is applied to determine whether any of the entries in the address book includes a surname that matches the surname in the e-mail address with the selectable link.
  • the method can compare entries that satisfy the likely match criterion to find any pairs of duplicate entries.
  • duplicate entries are removed from the set of matching entries, so that the display information sent to the user does not include address information more than once for the same matching entity.
  • the techniques can also be implemented in a server machine with a processor and connecting circuitry for connecting the processor to a user's client machine.
  • the processor transfers a display version of an e-mail item to the user's client machine, as described above.
  • the processor on the server transfers an information display to the client machine, again as described above.
  • the techniques can also be implemented in an article of manufacture with stored instruction data defining instructions that a server machine's processor can execute. In executing the instructions, the processor can operate as described above.
  • the techniques can be implemented in a method of operating a source machine to transfer data to a server machine that includes a processor.
  • the source machine can establish a network connection to the server machine and can transfer instruction data as described above to the server machine.
  • the techniques are advantageous because they make it possible to efficiently obtain full address book information on a client device about an entity whose address appears in an e-mail item, without having to store the full address book on the client device.
  • the techniques allow immediate linking to operations such as sending messages, calling by telephone, or scheduling on a calendar.
  • the techniques can be extended to accept less than exact matches, which is important because e-mail addresses are often rewritten in various ways outside a client machine's control, and an entity's name can appear differently in different address book entries. Since one entity may have several e-mail addresses and each e-mail address could be written or rewritten in various ways, the techniques, as extended, can enable a user to obtain all address book information that might be relevant to an entity whose e-mail address is selected.
  • data includes data existing in any physical form, and includes data that are transitory or are being stored or transmitted.
  • data could exist as electromagnetic or other transmitted signals or as signals stored in electronic, magnetic, or other form.
  • Circuitry or a “circuit” is any physical arrangement of matter that can respond to a first signal at one location or time by providing a second signal at another location or time. Circuitry "stores” a first signal when it receives the first signal at one time and, in response, provides substantially the same signal at another time. Circuitry "transfers" a first signal when it receives the first signal at a first location and, in response, provides substantially the same signal at a second location.
  • Any two components are "connected” when there is a combination of circuitry that can transfer signals from one of the components to the other.
  • two components are “connected” by any combination of connections between them that permits transfer of signals from one of the components to the other.
  • a "network' is a combination of circuitry through which a connection for transfer of data can be established between two components.
  • a “data storage medium” or “storage medium” is a physical medium that can store data. Examples of data storage media include magnetic media such as diskettes, floppy disks, and tape; optical media such as laser disks and CD-ROMs; and semiconductor media such as semiconductor ROMs and RAMs. As used herein, “storage medium” covers one or more distinct units of a medium that together store a body of data. For example, a set of floppy disks storing a single body of data would together be a storage medium.
  • a “storage medium access device” is a device that includes circuitry that can access data on a data storage medium. Examples include drives for reading magnetic and optical data storage media.
  • Memory circuitry or “memory” is any circuitry that can store data, and may include local and remote memory and input/output devices. Examples include semiconductor ROMs, RAMs, and storage medium access devices with data storage media that they can access.
  • a “processor” is a component of circuitry that responds to input signals by performing processing operations on data and by providing output signals.
  • a processor may include one or more central processing units or other processing components.
  • a processor performs an operation or a function "automatically" when it performs the operation or function independent of concurrent human control.
  • An "instruction” is an item of data that a processor can use to determine its own operation.
  • a processor "executes" a set of instructions when it uses the instructions to determine its operations.
  • To "obtain” or “produce” an item of data is to perform any combination of operations that begins without the item of data and that results in the item of data.
  • An item of data "indicates" a thing, an event, or a characteristic when the item has a value that depends on the existence or occurrence of the thing, event, or characteristic or on a measure of the thing, event, or characteristic.
  • An operation or event "transfers" an item of data from a first component to a second if the result of the operation or event is that an item of data in the second component is the same as an item of data that was in the first component prior to the operation or event.
  • the first component "provides” the data
  • the second component "receives” or “obtains” the data.
  • User input circuitry is circuitry for providing signals based on actions of a user.
  • User input circuitry can receive signals from one or more "user input devices” that provide signals based on actions of a user, such as a keyboard or a mouse.
  • the set of signals provided by user input circuitry can therefore include data indicating mouse operation and data indicating keyboard operation.
  • An “image output device” is a device that can provide output defining an image.
  • a “display” is an image output device that provides information in a visible form. To "present an image” on a display is to operate the display so that a human can perceive the image.
  • An item of data "defines” an image when the item of data includes sufficient information to produce the image.
  • a “page” is an image that can be perceived as a single page of a form or a sheet.
  • a “web page” is a page that satisfies the constraints applicable to the World Wide Web (WWW) user interface.
  • An operation "creates” a page, such as a web page, when the operation produces an item of data defining the page.
  • An operation "transmits” a page when the operation transmits an item of data defining the page.
  • An operation "presents” a page when the operation presents one or more images that include information from an item of data defining the page.
  • a “selectable item” is a display feature that is perceived as a bounded display area that can be selected. Hyperlinks and menu items are examples of selectable items.
  • a selectable item "indicates” a thing, an event, or a characteristic when the selectable item includes text or other visible information indicating the thing, event, or characteristic.
  • a selectable item "identifies" a thing, an event, or a characteristic that is one of a set when the selectable item includes text or other visible information indicating the thing, event, or characteristic and not indicating any of the other elements in the set.
  • select when used in relation to a selectable item, means an action by a user that uniquely indicates the selectable item.
  • machine refers herein to a machine that includes at least one processor and its input/output circuitry.
  • server machine (or “server)
  • client machine or “client”
  • request describe a relationship between machines that can be connected through a network:
  • a “server machine” is a machine that performs services in response to “requests” it receives from one or more "client machines”.
  • a “request” is an item of data transferred from a client to a server that has a value indicating a service or operation to be performed by the server.
  • a connection between a server machine and a client machine is a "low bandwidth connection" in a given context if the connection has insufficient capacity to transfer items of data at a desired rate with perfect fidelity.
  • the capacity of the connection may be limited, for example, by software or hardware constraints, with storage capacity being one example of a hardware constraint that can reduce capacity.
  • a low bandwidth connection is any connection with a transfer speed below 56 kilobits per second. In contexts in which items of data are transferred for presentation to a user, a low bandwidth connection could be a connection that is not always able to transfer items of data at a sufficient speed to obtain the intended perceptual effect.
  • An "e-mail service” is a service provided by a server machine by which the server machine can transfer a human-readable message, referred to as an "e-mail message", electronically from a client machine, referred to as the "sending machine”, to one or more client machines, referred to as “recipient machines”.
  • An e-mail message is typically composed through a user interface provided by the sending machine and is typically read through a user interface provided by a recipient machine.
  • An "e-mail item” is an item of data that defines an e-mail message.
  • An e-mail item can be transferred from a sending machine to a server machine and from a server machine to a recipient machine.
  • An "e-mail address” is an address that can be used to specify the intended destination of an e-mail item. Some e-mail addresses include extraneous material such as the actual name of the recipient.
  • a "link” is a selectable item that can be used to request a service from a server machine.
  • a link may include a URL that can be used by the server to access a web site.
  • a link is to perform an operation on an item of data so that the link is visible when the item of data is presented on a display.
  • a "version" of a first item such as an e-mail item is a second item of data that is obtained using the first item and that includes information from the first item.
  • the second item may be identical to the first item, or it may be modified by omitting parts of the first item, by changing parts of the first item, by converting the first item from one form or format to another, or by other processes that result in a modified version.
  • a version of an e-mail item might include, for an e-mail address in the e-mail item, an automatically inserted selectable link.
  • An "address book” is a service that provides a database of information about entities, referred to as "address book information”. Examples include LDAP directories and various conventional address book databases. An "address book entry" is a distinct portion of address book information relating to one entity.
  • An entity defined in one way is likely to be” an entity defined in another way if the two entities satisfy an appropriate criterion for likely identity. For example, an entity that has an address book entry is likely to be an entity whose e-mail address has a selectable link in a version of an e-mail message if the e-mail address is the same or similar to an e-mail address in the entry or if the entry and the e-mail address have the same or similar names for the entity.
  • Figs. 1-3 show general features of an embodiment of the invention.
  • server machine 10 performs operations that present information through client machine 12, which includes display device 14.
  • server machine 10 transfers display version 20 to client machine 12.
  • Display version 20 is a version of an e-mail item.
  • the selectable link is represented illustratively by link 22 on display device 14.
  • server machine 10 receives signal 24 from client machine 12, indicating user selection of link 22.
  • server machine 10 responds to signal 24 by transferring information display 26 to client machine 12.
  • Information display 26 provides access to all available address book information in each of the matching entries in an address book 16 accessible by server machine 10.
  • Each of the matching entries is for an entity that is likely to be the entity whose e-mail address appears in the e-mail item.
  • the act in box 100 begins by transferring a display version of an e-mail item to a client machine.
  • the display version includes a set of at least one e-mail address that appears in the e-mail item.
  • the display version also includes an automatically inserted selectable link for one of the e-mail addresses in the set, the e-mail address being for an entity.
  • the act in box 102 receives a signal from the client machine indicating user selection of the selectable link.
  • the act in box 104 responds to the signal by transferring an information display to the client machine.
  • the information display provides access to all available address book information in each matching entry in an address book accessible by the server machine.
  • Each matching entry is for an entity that is likely to be the entity whose e-mail address has the selectable link.
  • Server machine 150 in Fig. 3 includes processor 152 connected for receiving signals from a user's client machine 180 through client input circuitry 154 and for providing signals to client machine 180 through client output circuitry 156.
  • Processor 152 can also be connected for accessing e-mail data 158, which define an e-mail item in which one or more e-mail addresses appear.
  • Processor 152 is also connected for receiving instruction data 160 indicating instructions through instruction input circuitry 162, which can illustratively provide instructions received from connections to memory 164, storage medium access device 166, or network 168.
  • Processor 152 is also connected for accessing address book data 170.
  • processor 152 can also be connected to memory 172, illustratively storing display version data 174 and information display data 176.
  • Client machine 180 includes display device 182 for presenting displays, such as versions of e-mail items, and signal circuitry 184 for providing signals.
  • processor 152 In executing the instructions indicated by instruction data 160, processor 152 transfers a display version of the e-mail item defined by data 158 through client output circuitry 156 to client machine 180; the display version could, for example, be displayed by display device 182.
  • the display version includes a set of at least one e-mail address that appears in the e-mail item.
  • the display version also includes an automatically inserted selectable link for one of the e-mail addresses in the set, the e-mail address being for an entity.
  • Processor 152 receives a signal through client input circuitry 154 from client machine 180, such as from signal circuitry 184.
  • the signal indicates user selection of the selectable link.
  • Processor 152 responds to the signal by transferring an information display through client output circuitry 156 to client machine 180.
  • the information display provides access to all available address book information in each of a set of entries in address book 170. Each entry in the set is for an entity that is likely to be the entity whose e-mail address has the selectable link.
  • Processor 152 could obtain display version data 174 and information display data 176, respectively defining the display version and the information display that are transferred to client machine 180.
  • FIG. 3 illustrates three possible sources from which instruction input circuitry 162 could receive data indicating instructions—memory 164, storage medium access device 166, and network 168.
  • Memory 164 could be any conventional memory within server machine 150, including random access memory (RAM) or read-only memory (ROM), or could be a peripheral or remote memory device of any kind.
  • RAM random access memory
  • ROM read-only memory
  • memory 164 and memory 174 could be implemented in a single memory device.
  • Storage medium access device 166 could be a drive or other appropriate device or circuitry for accessing storage medium 190, which could, for example, be a magnetic medium such as a set of one or more tapes, diskettes, or floppy disks; an optical medium such as a set of one or more CD-ROMs; or any other appropriate medium for storing data.
  • Storage medium 190 could be a part of server machine 150, a part of another server or other peripheral or remote memory device, or a software product. In each of these cases, storage medium 190 is an article of manufacture that can be used in server machine 150.
  • Data units can be positioned on storage medium 190 so that storage medium access device 166 can access the data units and provide them in a sequence to processor 152 through instruction input circuitry 162. When provided in the sequence, the data units form instruction data 160, indicating instructions as illustrated.
  • Network 168 can provide instruction data 160 received from machine 192.
  • Processor 194 in machine 192 can establish a connection with processor 152 over network 168 through network connection circuitry 196 and instruction input circuitry 162. Either processor could initiate the connection, and the connection could be established by any appropriate protocol. Then processor 194 can access instruction data stored in memory 198 and transfer the instruction data over network 168 to processor 152 so that processor 152 can receive instruction data 160 from network 168. Instruction data 160 can then be stored in memory 174 or elsewhere by processor 152, and can be executed.
  • the general features described above could be implemented in numerous ways on various server machines to transfer e-mail attachments for rendering. It is expected that the proposed implementation described below can be implemented on several computer CPU architectures and operating systems, including Microsoft Windows NT 4.0/Intel x86, Sun Solaris 7/Intel x86, Sun Solaris 7/Sun UltraSPARC running atop an Apache 1.3 Web server using the Apache JServ module to run a custom set of servlets compiled from Java programming language source code.
  • the proposed implementation described below uses the WAP (Wireless Application Protocol) protocols, including WML (Wireless Markup Language) 1.0 and WML 1.1, to present information to and receive information from mobile client devices.
  • WAP Wireless Application Protocol
  • a server computer exchanges information with client machines that are cellular telephones or PDAs, providing access to information through a network.
  • the server provides a number of services to users of the client machines, including but not limited to access to calendars; access to electronic mail folders, messages, and attachments such as documents; access to chat rooms; instant messaging; and access to address books.
  • the server can reformat all information for display in a manner appropriate to the information, the client machine, and the user.
  • the server can provide secure wireless access directly to corporate and personal information, providing transparent, ubiquitous, and live management of calendars, e-mail, chat rooms, instant messaging, address books, and other server-based tools.
  • a user can have one e-mail address, one calendar, and one address book no matter where the user is.
  • a user with access to a client machine can work directly on his or her own network without synchronizing information among various intermediary networks.
  • the user's network identity can be portable and unbounded.
  • Fig. 4 shows an architecture for wireless access to an individual's primary server that eliminates the need for separate identities.
  • a wireless device becomes a live terminal directly linked to a network in a secure fashion. Therefore, it is irrelevant whether the individual user is accessing e-mail, a calendar, or other services from a desktop personal computer directly connected to the network, from a laptop or other portable computer linked to the network by a landline, or from a wireless device such as a cellular phone, PDA, or interactive pager.
  • communication network 200 provides communication links between three components — user's network 202, carrier's network 204, and provider's network 206. These components can be implemented with conventional techniques, except as noted below, and communication network 200 could be the public Internet, a private intranet, or another suitable communication network.
  • User's network 202 can be a conventional intranet or a conventional network of an Internet service provider through which a user has access to communication network 200.
  • Network 202 includes network connection 210 and user's server system 212, which could include one or more server machines providing local and remote users with conventional network services such as an IMAP4 server for mail storage, a POP3 server for SMTP mail transmission, an LDAP server for directory or address book maintenance, a chat server, and so forth.
  • Memory 214 illustratively stores services software 216 which a server machine could execute to provide services.
  • Carrier's network 204 can be a conventional network of a communication provider such as a telephone provider, cellular provider, paging company, etc., through which the user has communication services using client machine 220.
  • Client machine 220 could, for example, be a wireless telephone, a PDA, a laptop or other portable computer, a pager, or any other machine capable of functioning as a client communicating with carrier's server system 222 in carrier's network 204 through transmitter/receiver 224.
  • client machine 220 has been successfully implemented with a conventional wireless telephone such as a Motorola P7389 or a Nokia 7110 executing a conventional Wireless Markup Language (WML) browser such as Phone.com's UP Browser 3.1 or UP Browser 4.0, and experiments have shown that client machine 220 could be implemented with a PDA such as a Palm Pilot V, but client machine 220 could be any other suitable machine with any other suitable user interface.
  • WML Wireless Markup Language
  • client machine 220 could be implemented with a PDA such as a Palm Pilot V, but client machine 220 could be any other suitable machine with any other suitable user interface.
  • the link between client machine 220 and transmitter/receiver 224 could thus be implemented with WAP or any other suitable protocol and could be provided over a wireless, wired, or hybrid connection.
  • carrier's network also includes network connection 226, to provide connection between client machine 220 and communication network 200.
  • Provider's network 206 similarly includes network connection 230. Communications between network connections 210, 224, and 230 can be implemented in a conventional manner, and can be protected using a Virtual Private Network (VPN) or another suitable protocol for providing secure links through communication network 200.
  • VPN Virtual Private Network
  • Each of the Internet connections can be implemented with a firewall and other appropriate security protections.
  • Provider's network 206 also includes provider's server system 232, which can be implemented with one or more conventional machines such as a Sun Microsystems Enterprise 450.
  • Machines in provider's server system 232 can provide conventional network services such as an Internet Mail Access Protocol 4 (IMAP4) server or other appropriate server for mail storage and retrieval, a POP3 server employing Simple Mail Transfer Protocol (SMTP) or other appropriate server for mail transmission, a Lightweight Directory Access Protocol (LDAP) server or other appropriate server for directory or address book maintenance, a chat server, and so forth.
  • IMAP4 Internet Mail Access Protocol 4
  • POP3 server employing Simple Mail Transfer Protocol (SMTP) or other appropriate server for mail transmission
  • LDAP Lightweight Directory Access Protocol
  • provider's server system 232 provides an intermediary server (IMS) implemented with an Apache 1.3 Web server using the Apache JServ module running a custom set of servlets.
  • Memory 234 illustratively stores intermediary services software 236 which a server machine could execute to provide intermediary services and miscellane
  • the IMS acts as an intermediary during communication between client machine 220 and user's server system 212.
  • Fig. 5 illustrates operations of client machine 220 in establishing connection with the IMS, making it possible for the user to request intermediary services.
  • client machine 220 in response to user input, establishes connection to carrier's network 204. This can be accomplished in a conventional way, such as by transmitting a dial-in number that the user manually enters or selects, such as from a menu showing numbers stored in memory of client machine 220.
  • client machine 220 When connected to carrier's network 204, in response to further user input, client machine 220 uses a provider-supplied Universal Resource Locator (URL) to establish a data connection to the IMS, as shown in box 252.
  • URL Universal Resource Locator
  • the user can manually enter the URL or can select it, such as from a menu of stored URLs.
  • a server in carrier's server system 222 responds to the URL by establishing the data connection between client machine 220 and the IMS, performing conventional operations, and submits the URL to the IMS.
  • the IMS sends a WML login or authentication page to client machine 220, enabling the user to log into the IMS.
  • Client machine 220 receives and presents the login page, in box 254.
  • client machine 220 can present a first part of the login page requesting that the user enter a user name, as shown by display image 260.
  • the user can press a button adjacent the "OK" label to store the user name temporarily and to obtain display of a second part of the login page.
  • client machine 220 can present the second part of the login page requesting that the user enter a password, as shown by display image 262.
  • the user can press a button adjacent the "Login” label to request that the client machine 220 transmit the user name, here "testuser", and the password to the IMS.
  • client machine 220 In response to the user pressing the button labeled "Login”, client machine 220 transmits the user name and password to the IMS using the standard WML and Hypertext Transfer Protocol (HTTP) mechanism "POST", as shown in box 270.
  • HTTP Hypertext Transfer Protocol
  • the IMS uses them to access a database of authorized users. If the user name and password are both valid and match, data is stored indicating that the user is "logged in”. Then, the IMS sends a WML top- level menu page to client machine 220, listing the main set of operations the user can perform through the IMS.
  • Login could be implemented in various ways other than with the specific features shown in boxes display images 260 and 262 and in box 270. For example, a first part of the login page requests that the user enter a personal identification number (PIN) and a second part requests that the user enter a user identifier (ID). In this implementation, the PIN and ID are used in login rather than a user name and password.
  • PIN personal identification number
  • ID user identifier
  • Client machine 220 receives and presents the top-level menu page, in box 272. For example, as shown by display image 274, client machine 220 can present a first part of the top-level menu page showing the beginning of the list of operations, as shown by display image 280. If the device's display is not large enough to display all of the menu items, when the user requests scrolling, such as by pressing a scroll button, client machine 220 can present a second part of the top-level menu page with a subsequent part of the list of operations, as shown by display image 282.
  • client machine 220 presents the top-level menu page as a list of numbered lines, each line including a short description of a service such as "Read mail”, “Send mail”, “Chat”, “View calendar”, and “Look up name”.
  • a top-level menu page could include various other such lists and items could be presented differently; for example, in a variation on the illustrated implementation, the lines of the top-level menu page include the following descriptions: "Read mail”, “Send mail”, “Chat”, “View calendar”, “Look up name”, and “Log out”, which can be selected to log out directly, and the items are presented without numbers before them.
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection. The user can then change the current selection by requesting scrolling to move the ">" symbol up or down until it is positioned to the left of a desired operation. When a desired operation is selected, the user can press a button adjacent the "Go! label to request that the client machine 220 transmit a request for the desired operation to the IMS.
  • scroll refers to two related operations that can be implemented together or separately.
  • One operation scrolls by moving a display image with respect to a virtual workspace such as a page; an example is upward or downward scrolling as illustrated by display images 280 and 282.
  • Another operation scrolls by moving a cursor that indicates current selection from one selectable item to another; an example is movement of the ">" symbol from one item in a menu to another, as shown in display images 280 and 282.
  • Scrolling can generally be implemented using up-down keys or pads or using next-previous buttons or buttons adjacent next-previous labels.
  • client machine 220 can move the cursor to the next selectable item in the indicated direction unless the cursor is not currently in the display image, in which case client machine 220 can advance the display image position by one line in the indicated direction.
  • the top-level menu page is the starting point for all IMS capabilities.
  • the manner in which the IMS responds to requests for operations from the top-level menu is described below.
  • the top-level menu always includes the "Read mail” operation.
  • Fig. 6 illustrates acts performed by the IMS in response to a request for the "Read mail” operation. In general, each act performed by the IMS involves the execution of one or more servlets.
  • the IMS receives the request for the "Read mail" operation from client machine 220.
  • the IMS opens a secure connection to user's network 202 using Transport Layer Security (TLS) such as a Secure Socket Layer (SSL) 3.0-based tunnel.
  • Transport Layer Security such as a Secure Socket Layer (SSL) 3.0-based tunnel.
  • SSL Secure Socket Layer
  • Many conventional IMAP4 and other servers are able to maintain such a tunnel, or appropriate software could be loaded and run on user's server system 212 to maintain such a tunnel.
  • the IMS has a secure connection across communication network 200 to user's server subsystem 212.
  • the IMS opens a connection to the user's mail reading server, an IMAP4 server in one embodiment, in box 304.
  • the IMS also obtains from the user's mail reading server a list of the user's mailboxes, and uses the list to create a WML mailbox list page.
  • the IMS then transmits the mailbox list page to client machine 220.
  • Display image 306 is an example of how a mailbox list page appears when presented.
  • client machine 220 presents the mailbox list page as a list of numbered items, each item including a mailbox name such as "Inbox", which is where new messages arrive; "Mail/mac-software.mail”; and "Mail/recipes.mail".
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection; in the illustrated example, the last mailbox name is truncated due to screen size, but when the user selects it by moving the cursor to it, the mailbox name can scroll horizontally to provide a full display of "Mail/recipes.mail".
  • Client machine 220 also presents a number after the Inbox, indicating the number of new messages that have not yet been viewed, referred to as "unseen” new messages.
  • the Inbox has zero unseen new messages.
  • the user can press a button adjacent the "Select" label to request that the client machine 220 transmit a request to view the messages in the selected mailbox to the IMS.
  • the IMS responds to user selection of a mailbox by again connecting to the user's mail reading server to obtain the messages in the mailbox from the user's mail server.
  • the IMS uses the messages to create a WML message list page, which it transmits to client machine 220.
  • a message list page could have any appropriate format.
  • Display image 312 is an example of a message list page that is presented by client machine 220 as a list of numbered items, each item including a message's subject line, truncated if necessary, and the date of the message, or, if today's date, the message's time of creation.
  • a message list page could be presented as a list in which the subject line is replaced, for example, by the message's "From" line.
  • the user could choose the format of message list pages in advance through an appropriate user interface within user's network 202.
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection.
  • the user can press a button adjacent the "Select" label to request that the client machine 220 transmit a request to view the selected message to the IMS.
  • the IMS responds to user selection of a message by using the selected message to create a WML formatted message page, which it transmits to client machine 220.
  • a formatted message page could similarly have any appropriate format, although it is typically useful to create a concisely reformatted version that is optimized for the display constraints of client machine 220, such as a small screen.
  • client machine 220 can present a first part of a formatted message page showing the beginning of a reformatted version of the message.
  • client machine 220 can present a second part of the formatted message page with a subsequent part of the list of operations, as shown by display image 318.
  • Display images 316 and 318 illustrate a reformatted version that includes a list of items, each beginning with a subject such as "Date:”, “From:”, “Subj:”, and so forth.
  • the message's header lines can either be reformatted or suppressed altogether to better fit the screen and to minimize transmission time.
  • the top-level menu always includes the "Send mail” operation.
  • Fig. 7 illustrates acts performed by the IMS in response to a request for the "Send mail” operation. As above, each act performed by the IMS involves the execution of one or more servlets.
  • the IMS receives the request for the "Send mail” operation from client machine 220.
  • the IMS creates a mail composition page and transmits it to client machine 220.
  • FIG. 342 An example of a mail composition page in response to a "Send mail" request is shown by display images 342, 344, 346, and 348.
  • a first part of the page, shown in image 342, provides a list of numbered items, each item including a brief description of a message field that can be edited.
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection.
  • the user can press a button adjacent the "Edit” label to request that client machine 220 present another part of the mail composition page so that the user can edit the selected message field.
  • the user completes editing the user can press a button adjacent the "Send” label to request that client machine 220 send the edited message fields and a request to send the message to the IMS.
  • Image 344 elicits the address to which a message is to be sent; in the example, the user has entered "Herb Jellinek ⁇ Jellinek>” or this address has been included in the page by default, allowing the user to change it.
  • client machine returns to the first part of the page, as shown in image 342, and the user can then scroll the cursor to select another message field.
  • a third part of the page, shown in image 346, is presented when the user presses the "Edit” button when the "Subj" message field is selected.
  • Image 346 elicits the subject of the message; in the example, the user has entered “Your Message”.
  • client machine returns to the previously shown part of the page, similar to the part shown in image 342, and the user can then scroll the cursor to select another message field.
  • a fourth part of the page, shown in image 348, is presented when the user presses the "Edit” button when the "Text” message field is selected.
  • Image 348 elicits the body of the message.
  • the user has entered “Regarding the message from Herb Jellinek”.
  • client machine returns to the previously shown part of the page, similar to the part shown in image 342, and the user can then scroll the cursor to select another message field.
  • the user can press a button adjacent the "Send" label to request that a message be sent in accordance with the entered information.
  • the IMS receives the entered information and the request to send from box 340.
  • the IMS constructs a message in accordance with the entered information and in the correct format to be sent.
  • the IMS opens a secure connection to user's server subsystem 212, as described above.
  • the IMS opens a connection to the user's mail sending server, an SMTP server in one embodiment, in box 352.
  • the IMS then transmits the message to the user's mail sending server for transmission to the recipient(s).
  • IMS could use an SMTP server in provider's server system 232 to transmit the message, this could be problematic because addresses local to user's network 202 would not be accessible.
  • IMS Based on the result of the transmission, IMS then creates a results page and transmits it to client machine 220, in box 354.
  • Display image 356 illustrates an example of a results page indicating that a message has been successfully sent. Other results pages could detail problems that occurred in delivering a message.
  • the top-level menu could include the "Chat" operation. This operation is useful when one has immediate communication needs that e-mail or a voice telephone call cannot fulfill. For example, if one needs to consult a group of people or any single member of a group, interactive text chat may be a better solution.
  • chat server and chat client programs can be implemented with conventional techniques, such as those used to implement commercially available chat software.
  • One embodiment uses conventionally implemented chat server and chat client programs that could be replaced by Yahoo! Messenger or AOL Instant Messenger with minimal change to the rest of the system.
  • Fig. 8 illustrates acts performed by the IMS in response to a request for the "Chat" operation. As above, each act performed by the IMS involves the execution of one or more servlets. Fig. 8 also suggests acts performed by client machine 220, running a counterpart WAP client that supports the "Chat" service.
  • the IMS receives the request for the "Chat” operation from client machine 220.
  • the IMS opens a secure connection to user's server subsystem 212, as described above.
  • the IMS opens a connection to the user's chat server, in box 372. Identifying information for a user's chat server can be stored in advance as part of the user's IMS profile.
  • the IMS determines in box 374 whether a chat session is in progress and, if not, transmits a chat closed page to client machine 220 in box 376.
  • Display image 378 illustrates an example of a chat closed page.
  • the IMS collects the most recent exchanges from the chat server, in box 380. Using the collected exchanges, the IMS creates a chat page, including links allowing a user to add some "chatter" to the conversation or view the latest chat. The link to view the latest chat is necessary because the "Chat" operation is not automatically updating, due to limitations in the current WAP standard — there is no way in WAP 1.1 to notify interested parties when the page they are viewing has been updated. The IMS transmits the chat page with included links to client machine 220.
  • FIG. 382 An example of a chat page in response to a "Chat” request is shown by display images 382 and 384.
  • image 384 By scrolling, the user can reach a closing part of the page, shown in image 384, which shows the end of the final item of "chatter", followed by a list of links.
  • the list includes a "Chat” link enabling the user to add “chatter” to the conversation and a "Refresh” link enabling the user to view an updated chat page.
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection within the list, with the first link in the list being the default current selection.
  • the user can press a button adjacent the "Go!” label to request that the client machine 220 transmit a request to the IMS to follow the desired link.
  • the IMS receives a request to follow a selected link, and in box 392, the IMS branches based on the link selected. If the "Refresh" link was selected, the IMS returns to box 372, reestablishing connection to the chat server. But if the "Chat” link was selected, the IMS creates a chatter page and transmits it to client machine 220, in box 394.
  • Display image 396 illustrates an example of a chatter page, in which the user has entered a shorthand version of the text "Please set up a meeting for lunch". If the user then presses a button adjacent the "Chat" label, client machine 220 transmits to the IMS a request to submit the expanded version of the entered text to the conversation.
  • the IMS expands the text and constructs a chat item using the text, in box 398.
  • the IMS then contacts the user's chat server as in box 372 and submits the chat item.
  • the IMS can then return to the test in box 374 and, if the chat item was successfully submitted, the chat page created in the next iteration of box 380 should include the submitted chat item, as illustrated by display image 400.
  • the chat page shown in image 400 shows the user's "chat handle", a nickname which is "test” in the example, followed by the expanded version of the shorthand text from image 396.
  • the top-level menu always includes the "View calendar” operation. It is increasingly common for users to keep their personal schedules on a network server to make it easy for others to schedule appointments with them.
  • conventional networked calendars implement the following simple functions: (i) Schedule a new appointment, given a date, start time, end time, and meeting description; (ii) delete an appointment, given a unique identifier such as an appointment number for the appointment; and (iii) list all appointments on a given day, and return a unique identifier such as an appointment number for each appointment.
  • the IMS provides a calendar service that includes these three functions.
  • Fig. 9 illustrates acts performed by the IMS in response to a request for the "View calendar" operation. As above, each act performed by the IMS involves the execution of one or more servlets.
  • the IMS receives the request for the "View calendar" operation from client machine 220.
  • the IMS transmits a default date page to client machine 220, requesting that the user indicate the desired calendar date and already completed with a default date that the user can enter by a single button push.
  • Display image 422 illustrates an example of a default date page in which the default date is "today".
  • the user can edit the default date page to include another date.
  • the desired date is on the default date page, the user can press a button adjacent the "Show" label to request that client machine 220 transmit a request to the IMS to show a list of appointments for the desired date.
  • the IMS In response to a request to show a list of appointments for a date, the IMS creates an appointments page for the date and transmits the appointments page to client machine 220.
  • Display images 432 and 434 show an example of an appointments page.
  • a first version of the page, shown in image 432 indicates that no appointments have been scheduled for today and includes a link labeled "Add appt" which can be followed to add an appointment.
  • the user In a second version of the page, shown in image 434, the user has scrolled to position a ">" symbol as a cursor to indicate selection of the link labeled "Add appt". The user can press a button adjacent the "Go! label to request that the client machine 220 transmit a request to the IMS to follow the selected link.
  • the IMS responds to the request to follow the selected link by transmitting a scheduling page to client machine 220.
  • Display image 442 illustrates an example of a first subpage of a scheduling page.
  • the first subpage is presented by client machine 220 as a list of numbered items, each item including a short description of an item of information relating to an appointment.
  • client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection.
  • the user can press a button adjacent the "Edit" label to request an opportunity to edit the item.
  • Display images 444, 446, 448, and 450 illustrate a sequence of subpages of the scheduling page.
  • Display image 444 shows a subpage in which the user has edited the "Date” item, entering the value "9/08/1999". The user may then press a button adjacent the "OK" label to return to the first subpage and select another item.
  • Display image 446 shows a subpage in which the user has edited the "Start time” item, entering the value "3:00 PM". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
  • Display image 448 shows a subpage in which the user has edited the "End time” item, entering the value "3:00 PM". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
  • Display image 450 shows a subpage in which the user has edited the "Text” item, entering a shorthand version of the text "Meeting/dinner with Andre". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
  • client machine 220 transmits a request to the IMS to schedule an appointment according to the information entered in the scheduling page.
  • the IMS updates the calendar in accordance with the information entered in the scheduling page, in box 460.
  • the IMS can expand the shorthand version of the text.
  • the IMS also creates a confirmation page that can include an updated list of appointments for the selected date, and transmits the confirmation page to client machine 220.
  • Display image 462 illustrates a confirmation page which does not include an updated list of appointments.
  • the user can press a button adjacent the "Main" label to return to the top-level menu.
  • the top-level menu always includes the "Look up name” operation.
  • Users typically have one or more databases of information about other users, which may be referred to as address books, contact lists, or personal directories.
  • address book includes all of these types of databases.
  • the IMS makes it easy to keep a single address book by including the ability to interact with LDAP servers, which are designed to serve address book information to any client that speaks the LDAP protocol. Programs that speak the LDAP protocol include Netscape Messenger and Microsoft Outlook Express.
  • Fig. 10 illustrates acts performed by the IMS in response to a request for the "Look up name" operation. As above, each act performed by the IMS involves the execution of one or more servlets.
  • the IMS receives the request for the "Look up name" operation from client machine 220.
  • the IMS accesses previously stored information in memory 234 about the user to obtain an identifier (ID) of the user's preferred LDAP server and other parameters; the user could have loaded the previously stored information into memory 234 through a user interface provided by the IMS through user's server system 212.
  • the IMS transmits a name page to client machine 220, allowing the user to enter a complete or partial desired name for searching the user's address book database.
  • Display images 482 and 484 illustrate an example of a name page in which the user has entered a partial first name (or given name) string and a partial last name (or surname) string.
  • a first part of the name page, shown in display image 482 is headed "First Name (partial OK)", and the user has entered a first name string that includes only the character "s” in the example.
  • the user can press a button adjacent the "OK" label in the first part of the name page to complete entry of the first name string and obtain a second part of the name page, shown in display image 484.
  • the second part is headed "Last Name (partial OK)", and the user has entered a last name string that includes only the character "r” in the example.
  • the user can press a button adjacent the "OK” label in the second part of the name, page to complete entry of the last name string and to request that client machine 220 transmit a request to the IMS to search the user's address book database with the entered strings.
  • the IMS In response to a request to search the user's address book database with first and last name strings, the IMS opens a connection to the user's LDAP server and searches for entries with names that satisfy a matching criterion when compared with the entered strings, in box 490.
  • the IMS creates a results page based on the results of the search and transmits the results page to client machine 220.
  • address book entries can include a person's name, a company name, a postal address, one or more e- mail addresses, a home telephone number, an office telephone number, a fax number, a pager number, a calendar location, a preferred chat session, and a server identifier.
  • the IMS can use some of these items of information to create the results page, as described below, and can ignore other items.
  • the following two-part matching criterion is used by the IMS: Under a string input subcriterion, if the user enters strings that include no characters for both names, a result is returned indicating that no entries in the database match, because this is likely to be an input error. Otherwise a substring match subcriterion applies, so that an entry matches only if both its first name includes a substring that matches the entered first name string, disregarding case, and also its last name includes a substring that matches the entered last name string, again disregarding case. In the illustrated example, this matching criterion would be satisfied by all entries with "s" in the first name and "r" in the last name. If the user enters a string that includes no characters, i.e. an empty string, for one (but not both) of the names, then every entry would include a matching substring for that name, i.e. the empty substring.
  • Display images 492, 494, 496, and 498 show an example of a results page.
  • a first part of the results page indicates that the database includes two entries that match the entered strings, "s" and "r".
  • the first part of the results page also shows the beginning of a list of the matching entries, in which each entry begins with a number and identifying information the IMS has extracted from the entry.
  • the first entry's identifying information includes the person's name, "Steve Rudy", and the company name, "Sinia". Following the identifying information is a series of items from which the user can select to request actions.
  • Second and third parts of the results page can be reached by scrolling downward from the first part to position a ">" symbol as a cursor to indicate selection of one of two links labeled "Home” and "Mail".
  • the link labeled "Home” includes the home telephone number from the entry, and the link labeled "Mail” includes one of the e-mail addresses from the entry. If the cursor indicates selection of the link labeled "Home”, a "Call” label is also presented and the user can press a button adjacent the "Call” label to request that the client machine 220 request the standard WAP "make call” function.
  • image 344 would include an e-mail address by default, in this case the selected e-mail address from the results page.
  • a fourth part of the results page can be reached by scrolling downward from the second or third part and by then positioning the cursor to indicate selection of a link labeled "Calendar". With this selection, a "Sched” label is also presented and the user can press a button adjacent the "Sched” label to request the "View calendar” operation described above in relation to Fig. 9, but accessing the calendar at the location from the entry rather than the user's own calendar.
  • the IMS thus branches based on the type of request the user makes, in box 500.
  • Some types of requests are illustrated in Fig. 10, though others could also be available.
  • Display image 504 illustrates a make call page that client machine 220 could store at an appropriate location such as wtai://wp/mc and could present in response to the user's request; as shown, image 504 includes a list of dialing options from which the user can select by positioning a cursor. Then, the user can press a button adjacent an "OK" label to request that client machine 220 place a call using the selected dialing option through carrier's network 204.
  • client machine 220 While client machine 220 has control of the make call operation, it could terminate connection to the IMS, and the IMS could wait for reconnection by client machine 220, while saving the user's current state in the IMS user interface. For example, a phone browser running on client machine 220 could reconnect to the IMS automatically upon hang up or could again present the results page as in image 492, allowing the user to press a button adjacent the "Main" label to initiate reconnection.
  • the IMS provides the requested operation, in box 506 or box 508, respectively.
  • client machine 220 can again display the results page, either immediately or after another log in operation, so that the user can make another request, as suggested by the dashed lines from boxes 502, 506, and 508 back to box 500.
  • client machine 220 can again display the results page, either immediately or after another log in operation, so that the user can make another request, as suggested by the dashed lines from boxes 502, 506, and 508 back to box 500.
  • the user could begin by requesting a "make call" function to the home telephone number in display image 494; after placing the telephone call, the user could return to display image 496 and request a "Send mail" operation to the e-mail address in the entry, or, alternatively, the user could return to display image 498 and request a "View calendar” operation accessing the calendar at the location in the entry.
  • Fig. 11 illustrates how the "Read mail” operation shown in Fig. 6 and the "Look up mail” operation shown in Fig. 10 can be extended to display address book information in response to selection of an e-mail address in a message.
  • Fig. 12 illustrates how the act in box 530 in Fig. 11 can be implemented to automatically insert a link associated with an e-mail address.
  • the IMS responds to user selection of a message by using the selected message to create a WML formatted message page.
  • the message page includes at least one automatically inserted selectable link for an e-mail address that occurs in the message.
  • the IMS transmits the message page to client machine 220, thus implementing the act in box 100 in Fig. 2.
  • a formatted message page could have any appropriate format.
  • client machine 220 presents a first part of a formatted message page showing the beginning of a reformatted version of the message, and with an automatically inserted selectable link represented by the expression "[Herb Jellinek ⁇ Jellinek>]".
  • the selectable link includes square brackets enclosing an e- mail address of an entity.
  • links are displayed on a wireless phone running one of the browsers ofPhone.com, but selectable links could instead be indicated by curly brackets or by other types of brackets or by various other visual cues, depending on the device type of client machine 220 and on the browser software it is running.
  • the user can request scrolling, such as by pressing a scroll button to cause client machine 220 to scroll down the message page until the link begins on the uppermost line of the display, as shown by display image 534 in which a second part of the formatted message page is presented.
  • client machine 220 presents a ">" symbol as a cursor to indicate that the link is the current selection, as in display image 534.
  • the user can then press a button adjacent the "Go! label to cause client machine 220 to request address book information about the entity whose e-mail address is in the link.
  • the IMS receives the request for address book information, together with the e-mail address, from client machine 220, thus implementing the act in box 102 in Fig. 2.
  • the IMS responds to the request received in box 540, obtaining the ID of the user's LDAP server, as in box 480 in Fig. 10, and using it to open a connection to the user's LDAP server, as in box 490 in Fig. 10.
  • the IMS searches the LDAP server for entries that satisfy a likely match criterion when compared with the e-mail address from box 540.
  • An example of a successfully implemented likely match criterion is described below in relation to Fig. 12.
  • the IMS creates an access page that provides access to all information in the entries that satisfy the likely match criterion.
  • the IMS transmits the access page to client machine 220, thus implementing the act in box 104 in Fig. 2.
  • Display images 544 shows an example of a first part of an access page that resembles the results page shown in display images 492, 494, 496, and 498 in Fig. 10.
  • the first part indicates that the LDAP server's database includes one entry that matches the e-mail address "Herb Jellinek ⁇ Jellinek>", and is followed by a list of the matching entry, beginning with a number and identifying information and followed by a series of selectable items for requesting actions.
  • the IMS responds to the resulting request in the same manner described above in relation to boxes 500, 502, 504, 506, and 508 in Fig. 10.
  • a user could therefore contact the person in any of several ways, including voice, fax, e-mail, and chat, or could see the persons calendar, if it exists.
  • Fig. 12 shows in greater detail an implementation of the act in box 530.
  • the IMS begins by receiving a request from client machine 220 requesting presentation of a message selected by the user.
  • the IMS creates an initialized WML page and parses the selected message into strings of characters using conventional e-mail parsing techniques. For example, the message can first be parsed into its headers and then different parsing criteria can be applied to different headers of the message. The criterion applied to address headers such as "to", "from”, "cc", and "sender" headers can obtain character strings that are e-mail addresses. The criteria applied to other headers can obtain other types of character strings, such as text strings. Then, in box 580, the IMS begins an iterative operation that handles, in each iteration, a string of characters parsed from the selected message.
  • Each iteration begins, in box 582, by determining whether the next parsed string is an e-mail address. If so, the IMS appends a hyperlink to the string in box 584, thus automatically inserting a selectable link.
  • a hyperlink can include a URL and additional data.
  • the URL can have the form "http:// . . . /ServletName", where the ellipsis defines a path to the IMS and where "ServletName" is the name of a Java servlet that is executed when the hyperlink is selected.
  • Additional data included in the hyperlink can include several items extracted by parsing the e-mail address, such as an item for an entity's first name ("Herb” in box 532), an item for an entity's last name (“Jellinek” in box 532), an item for an entity's primitive or atomic e-mail address or mailbox (“Jellinek” in box 532), and so forth.
  • An entity's first and last names maybe included together in the hyperlink as a single item in accordance with the rfc 822 standard, such an item being referred to as a common or canonical name ("Herb Jellinek” in box 532).
  • the string, including the link appended in box 584 if any, is added to the WML page in box 586. When the WML page has been updated to include the string, the next iteration can begin in box 580.
  • the IMS transmits the completed WML page to client machine 220, in box 590.
  • client machine 220 In presenting the WML page, a browser running on client machine 220 conventionally would display a string that has an appended link, with a visual cue such as brackets to show the presence of the link, but would not display the URL and the additional data for the link. The browser would, however, save the URL and the additional data, and possibly other data relating to the link, to be provided to the IMS when the link is selected.
  • a mailbox subcriterion is applied under which the subcriterion applied depends on whether the hyperlink's primitive e-mail address includes an "@" symbol. If so, an exact match subcriterion is met only if the hyperlink's primitive e-mail address exactly matches the entry's primitive e-mail address. If not, an expansion subcriterion is met only if the hyperlink's primitive e-mail address, expanded by appending the user's domain, matches the entry's primitive e-mail address. For the expansion subcriterion, the user's domain could be obtained by doing a search for the user's entry to obtain the user's primitive e- mail address, then extracting the user's domain. It may also be feasible to extend the mailbox criterion to include a wild card search.
  • a common name subcriterion is also applied under which the subcriterion applied depends on whether the hyperlink's common name includes a comma or a space. If it includes a comma (e.g. "Lastname, Firstname”) or if it includes a space but no comma (e.g. "Firstname Lastname”), a first name and a last name are extracted from the common name using a procedure appropriate to the punctuation; in these cases, a two name match subcriterion is met only if the entry has a first name that matches the hyperlink's first name or has a last name that matches the hyperlink's last name.
  • a first name match subcriterion is met only if the entry has a first name that matches the hyperlink's complete common name; if no entries meet the first name match subcriterion, a last name match subcriterion is also applied, and is met only if the entry has a last name that matches the hyperlink's complete common name.
  • those entries can be uniquified by comparing to find any pairs of duplicate entries and by then including only one of each pair of duplicates in the set of matching entries that results from the search.
  • the common name subcriterion is applied first and then the mailbox subcriterion, but the order in which these two subcriteria are applied could be reversed or they could be applied in parallel.
  • the act in box 530 in Fig. 11 implements the general act in box 100 in Fig. 2; the act in box 540 implements the general act in box 102; and the act in box 542 implements the general act in box 104.
  • the techniques described herein allow a user to access all available address book information in matching entries by selecting an e-mail address in a message. Further, the client need not store the address information itself, and does not even have to be capable of executing a sophisticated email client.
  • client machines that are wireless telephones such as Motorola P7389 or a Nokia 7110 telephones, each executing Phone.com's UP Browser 3.1 or UP Browser 4.0.
  • client machines could be a Palm Pilot V or other PDA, by successfully downloading AUSystem's WAP browser to a Palm Pilot V, connecting to a server, logging in, and sending e-mail.
  • Implementations could, however, use any other appropriate client machine executing any other Wireless Markup Language (WML) browser or other software by which information can be presented to a user.
  • client machines could include remote or mobile devices such as cellular telephones, pagers, landline display screen telephones, set-top boxes, general pu ⁇ ose computers, and so forth.
  • a private intranet such as leased lines could provide a communication network between provider's network and carrier's network on the one hand and between provider's network and user's network on the other.
  • a virtual private network VPN could be used as mentioned above, with secure encryption and decryption to create a sort of subnetwork on the Internet.
  • the implementations described above permit a user to access information stored by the user in a server on the user's network, but a user could access information stored by others and could also access information stored on other networks, whether in a co ⁇ orate or personal server.
  • the implementations described above provide a user interface with a specific set of top-level operations implemented in specific ways and with various other operations available in response to selections made by pushing buttons adjacent labels, but various other user interfaces could be provided, with or without top-level operations, with various other sets of top-level operations and other available operations, with the same or similar operations but implemented differently, with different labels adjacent push buttons, or with selection techniques other than pushing buttons.
  • the implementations described above receive a specific type of signals from a client machine indicating user selection of a selectable link in a specific way, but various other types of signals could be received and a user could select a selectable link in a variety of ways.
  • the implementations described above respond by transferring a specific type of information display to the client machine, where the information display is obtained in a specific way and provides access to all available address book information in a specific way, but various other types of information displays could be obtained in various other ways and information displays could provide access to all available address book information in various other ways. Further, the implementations described above apply a specific likely match criterion to find matching address book entries, but various other likely match criteria could be applied.
  • FIG. 13 is a block diagram that illustrates a computer system 1300 upon which an embodiment of the invention may be implemented.
  • Computer system 1300 includes a bus 1302 or other communication mechanism for communicating information, and a processor 1304 coupled with bus 1302 for processing information.
  • Computer system 1300 also includes a main memory 1306, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1302 for storing information and instructions to be executed by processor 1304.
  • Main memory 1306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1304.
  • Computer system 1300 further includes a read only memory (ROM) 1308 or other static storage device coupled to bus 1302 for storing static information and instructions for processor 1304.
  • ROM read only memory
  • a storage device 137 such as a magnetic disk or optical disk, is provided and coupled to bus 1302 for storing information and instructions.
  • Computer system 1300 may be coupled via bus 1302 to a display 139, such as a cathode ray tube (CRT), for displaying information to a computer user.
  • a display 139 such as a cathode ray tube (CRT)
  • An input device 1311 is coupled to bus 1302 for communicating information and command selections to processor 1304.
  • cursor control 1313 is Another type of user input device
  • cursor control 1313 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1304 and for controlling cursor movement on display 139.
  • This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
  • the invention is related to the use of computer system 1300 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 1300 in response to processor 1304 executing one or more sequences of one or more instructions contained in main memory 1306. Such instructions may be read into main memory 1306 from another computer- readable medium, such as storage device 137. Execution of the sequences of instructions contained in main memory 1306 causes processor 1304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 137.
  • Volatile media includes dynamic memory, such as main memory 1306.
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications .
  • Computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 1304 for execution.
  • the instructions may initially be carried on a magnetic disk of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 1300 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal.
  • An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1302.
  • Bus 1302 carries the data to main memory 1306, from which processor 1304 retrieves and executes the instructions.
  • the instructions received by main memory 1306 may optionally be stored on storage device 137 either before or after execution by processor 1304.
  • Computer system 1300 also includes a communication interface 1315 coupled to bus 1302.
  • Communication interface 1315 provides a two-way data communication coupling to a network link 1317 that is connected to a local network 1319.
  • communication interface 1315 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • communication interface 1315 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • communication interface 1315 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • Network link 1317 typically provides data communication through one or more networks to other data devices.
  • network link 1317 may provide a connection through local network 1319 to a host computer 1321 or to data equipment operated by an Internet Service Provider (ISP) 1323.
  • ISP 1323 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet” 1325.
  • Internet 1325 uses electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on network link 1317 and through communication interface 1315, which carry the digital data to and from computer system 1300, are exemplary forms of carrier waves transporting the information.
  • Computer system 1300 can send messages and receive data, including program code, through the network(s), network link 1317 and communication interface 1315.
  • a server 1327 might transmit a requested code for an application program through Internet 1325, ISP 1323, local network 1319 and communication interface 1315.
  • the received code may be executed by processor 1304 as it is received, and/or stored in storage device 137, or other non- volatile storage for later execution. In this manner, computer system 1300 may obtain application code in the form of a carrier wave.

Abstract

A server machine transfers a version of an e-mail item, such as a message, to a client machine, and the version includes an automatically inserted selectable link for an e-mail address in the item. When the server receives a signal from the client indicating user selection of the selectable link, the server transfers an information display to the client machine, providing access to all available address book information in each of a set of address book entries accessible by the server. Each entry in the set is for an entity that is likely to be the entity whose e-mail address has the selectable link. The entries can be obtained by applying a likely match criterion using address information from the signal indicating user selection. The address book information can include, for example, an individual's first name and last name, at least one telephone number, and at least one e-mail address. If the entity has a telephone number, the information display can include a selectable item for requesting a telephone call. If the entitty has an e-mail address, the information display can include a selectable item for requesting to send an e-mail message to the address. If the entity has a calendar, the information display can include a selectable item for requesting scheduling of an appointment.

Description

PROVIDING ADDRESS BOOK INFORMATION WHEN A LINK FOR AN ADDRESS IN E-MAIL IS SELECTED
RELATED APPLICATIONS
This patent application is related to and claims priority from U.S. Provisional Patent Application No. 60/155,024, filed on September 20, 1999, entitled METHOD AND APPARATUS FOR PROVIDING MOBILE ACCESS TO COMPUTER NETWORKS; and U.S. Patent Application entitled TRANSFERRING E-MAIL ATTACHMENTS TO DEVICES FOR RENDERING, U.S. Serial No. 09/652,761, filed on August 31, 2000, the contents of which are hereby incorporated by reference in their entirety.
This patent application is related to U.S. Patent Application entitled AUTOMATICALLY EXPANDING ABBREVIATED CHARACTER SUBSTRINGS, Attorney Docket No. 55408-502, filed on the same day herewith; and U.S. Patent Application entitled PERFORMING SERVER ACTIONS USING TEMPLATE WITH FIELD THAT CAN BE COMPLETED WITHOUT OBTAINING INFORMATION FROM A USER, Attorney Docket No. 55408-0503, filed on the same day herewith, the contents of which are hereby incorporated by reference in their entirety.
FIELD OF THE INVENTION
The invention relates to techniques for responding to selection of a link for an address in e-mail being displayed.
BACKGROUND OF THE INVENTION
Frequently, relatively powerful client devices, such as desktop computers, are used to both read e-mail and to store address book information. Consequently, for those types of clients, client software has been developed that includes some integration between the e-mail display functions and the address book functions. In particular, certain e-mail client programs have been designed to automatically insert selectable links for addresses when displaying e-mail items that contain addresses.
While reviewing e-mail items using such client software, users often want to update their address books to include addresses they find in the items. When a user selects a link for an address in an email item, an interaction begins in which the user can add the address associated with the link to the address book on the client. The address may be added as a new entry or, where an entry already exists for the same person, in place of the existing entry. With certain email client software, it is also possible to select the link to retrieve from the local address book the address book entry for the address associated with the link.
Problems can arise, however, when working with certain types of client devices. For example, certain client devices, such as mobile phones, may not be able to locally store or manage the type of address book information that other clients are able to store. Further, such client devices are generally not capable of running sophisticated client-side software capable of providing such integration between e-mail and address books. These and similar problems relating to the integration of e-mail and address book functionality are referred to generally herein as "e-mail/address book integration problems".
For example, a user reading e-mail from a mobile telephone may need to know various additional information about an entity whose address appears in a message, such as first name or surname, a work or home telephone number, another e-mail address, or other address book information relating to the entity. Typically, such devices would not have the capacity to store full-featured address books, nor to run client software that provides the same sophisticated integration features as those found on desktop computers. Further, it may be even more critical for the users of such devices to easily obtain the address book information, since they may often find themselves in circumstances (such as standing in a line at a checkout stand) where they have no alternative means for conveniently accessing the information. Based on the foregoing, it is clearly desirable to provide techniques that address and resolve e-mail/address book integration problems that arise with many types of client devices.
SUMMARY OF THE INVENTION
Techniques are provided for operating a server machine to present information through client machines that include display devices. According to one aspect of the invention, the server machine receives an e-mail item in which appears a set of one or more included e-mail addresses. A selectable link for a particular e-mail address from the set of included e-mail addresses is automatically inserted into a display version of the e- mail item. The particular e-mail address for which the selectable link is inserted is an e- mail address of an entity.
The display version of the e-mail item is transferred to a client machine. A signal is received from the client machine indicating user selection of the selectable link. In response to the signal, the server machine performs the steps of identifying, from address book information accessible to the server machine, a set of one or more matching entries, each matching entry in the set being for an entity that is likely to be the entity whose e-mail address has the selectable link; and transferring an information display to the client machine, the information display providing access to address book information from each entry in the set of one or more matching entries.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which: Fig. 1 is a flow diagram illustrating operations of a server machine in displaying address book information in response to selection of a link associated with an e-mail address.
Fig. 2 is a flowchart of a general method by which a server machine displays address book information in response to selection of a link associated with an e-mail address.
Fig. 3 is a schematic diagram showing general components of a system in which a server machine can display address book information in response to selection of a link associated with an e-mail address.
Fig. 4 is a schematic diagram showing components of a system in which an intermediary server (IMS) provides services to a user of a client machine.
Fig. 5 is a flowchart showing operations of a client machine in establishing connection to the IMS in the system of Fig. 4.
Fig. 6 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to read mail.
Fig. 7 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to send mail.
Fig. 8 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to chat.
Fig. 9 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to view calendar.
Fig. 10 is a flowchart showing operations of the IMS of Fig. 4 in response to a request to look up name.
Fig. 11 is a flowchart showing operations of the IMS of Fig. 4 in displaying address book information in response to selection of a link associated with an e-mail address.
Fig. 12 is a flowchart showing how the act in box 530 in Fig. 11 can be implemented. Fig. 13 is a block diagram of a computer system that maybe used to implement the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
A method and apparatus are described for alleviating e-mail/address book integration problems. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
FUNCTIONAL OVERVIEW
According to one embodiment, e-mail/address book integration problems are alleviated by providing, within an e-mail item, a link for an address that can be selected to obtain, from a server separate from said client, a display that provides access to all the available address book information from one or more address book entries that are, or probably are, associated with the address. This elegant solution makes it possible to obtain complete information on a relatively unsophisticated client with an extremely simple interaction.
The techniques described herein can be implemented in a method of operating a server machine. In one embodiment, a display version of an e-mail item is transferred to a client machine, with the display version including a set of one or more e-mail addresses, where each e-mail address in the set exists in the original e-mail item. The display version can also include an automatically inserted selectable link for one or more of the e- mail addresses in the set. Upon receiving from the client machine a signal indicating user selection of such a link, a search is made at the server to identify entities that might be the entity associated with the address that corresponds to the selected link (hereinafter the "matching entities"). An information display is transferred to the client machine. The information display provides access to all the available address book information in the entries for the matching entities (the "matching entries") that exist in an address book accessible by the server.
The display version of the e-mail item can include a visual cue, such as brackets enclosing the e-mail address, to indicate the automatically inserted selectable link, and the client machine's display device can provide a second visual cue, such as the ">" symbol, to indicate a current item. The client machine can include sensor circuitry for sensing a user action indicating selection of the current item. The signal indicating user selection of the link can include a signal indicating that a user action selecting the current item has occurred while the first visual cue was the current item.
In one embodiment, the information display includes all available address book information for each of the matching entries. For example, from an entry for an individual, the address book information in the information display can include the individual's first name and surname, at least one telephone number, and at least one e- mail address. From an entry for a matching entity that has a telephone number for voice or facsimile, the address book information can include a selectable item for requesting a telephone call to the entity's telephone number. From an entry for a matching entity that has an e-mail address, the address book information can include a selectable item for requesting that an e-mail message be sent to the entity's e-mail address. From an entry for a matching entity that has a calendar stored on the server machine, the address book information can include a selectable item for requesting scheduling of an appointment on the entity's calendar.
When the selected link is associated with an e-mail address, the signal from the client machine can include address information about the e-mail address. Various techniques may be employed to search an address book for matching entries based on the e-mail address. For example, a likely match criterion can be applied to the address information from the signal and the address book information in the entries to obtain the set of one or more matching entries, and then use the set of one or more matching entries to produce the information display.
The likely match criterion can be applied in parts. For example, in one embodiment, a first part of the likely match criterion is applied to determine whether any of the entries in the address book includes an e-mail address that is an exact match of the e-mail address with the selectable link. If not, a second part of the likely match criterion is applied to determine whether any of the entries in the address book includes an e-mail address with a degree of similarity to the e-mail address with the selectable link that is at least as great as a threshold similarity. If not, and if the e-mail address in the e-mail item includes a first name and a surname and at least some of the entries in the address book include first names and surnames, a third part of the matching criterion is applied to determine whether any of the entries in the address book includes both a first name and a surname that match the first name and surname in the e-mail address with the selectable link. If not, a fourth part of the match criterion is applied to determine whether any of the entries in the address book includes a surname that matches the surname in the e-mail address with the selectable link.
After applying this or another likely match criterion, the method can compare entries that satisfy the likely match criterion to find any pairs of duplicate entries. According to one embodiment, duplicate entries are removed from the set of matching entries, so that the display information sent to the user does not include address information more than once for the same matching entity.
The techniques can also be implemented in a server machine with a processor and connecting circuitry for connecting the processor to a user's client machine. According to one embodiment, the processor transfers a display version of an e-mail item to the user's client machine, as described above. In response to a signal indicating user selection of the selectable link, the processor on the server transfers an information display to the client machine, again as described above. The techniques can also be implemented in an article of manufacture with stored instruction data defining instructions that a server machine's processor can execute. In executing the instructions, the processor can operate as described above.
Similarly, the techniques can be implemented in a method of operating a source machine to transfer data to a server machine that includes a processor. The source machine can establish a network connection to the server machine and can transfer instruction data as described above to the server machine.
In comparison with conventional address book update techniques, the techniques are advantageous because they make it possible to efficiently obtain full address book information on a client device about an entity whose address appears in an e-mail item, without having to store the full address book on the client device. In addition, the techniques allow immediate linking to operations such as sending messages, calling by telephone, or scheduling on a calendar. Further, the techniques can be extended to accept less than exact matches, which is important because e-mail addresses are often rewritten in various ways outside a client machine's control, and an entity's name can appear differently in different address book entries. Since one entity may have several e-mail addresses and each e-mail address could be written or rewritten in various ways, the techniques, as extended, can enable a user to obtain all address book information that might be relevant to an entity whose e-mail address is selected.
TERMS AND TERMINOLOGY The following terms are used herein to describe various embodiments of the invention:
The term "data" includes data existing in any physical form, and includes data that are transitory or are being stored or transmitted. For example, data could exist as electromagnetic or other transmitted signals or as signals stored in electronic, magnetic, or other form.
"Circuitry" or a "circuit" is any physical arrangement of matter that can respond to a first signal at one location or time by providing a second signal at another location or time. Circuitry "stores" a first signal when it receives the first signal at one time and, in response, provides substantially the same signal at another time. Circuitry "transfers" a first signal when it receives the first signal at a first location and, in response, provides substantially the same signal at a second location.
Any two components are "connected" when there is a combination of circuitry that can transfer signals from one of the components to the other. For example, two components are "connected" by any combination of connections between them that permits transfer of signals from one of the components to the other.
A "network' is a combination of circuitry through which a connection for transfer of data can be established between two components.
A "data storage medium" or "storage medium" is a physical medium that can store data. Examples of data storage media include magnetic media such as diskettes, floppy disks, and tape; optical media such as laser disks and CD-ROMs; and semiconductor media such as semiconductor ROMs and RAMs. As used herein, "storage medium" covers one or more distinct units of a medium that together store a body of data. For example, a set of floppy disks storing a single body of data would together be a storage medium.
A "storage medium access device" is a device that includes circuitry that can access data on a data storage medium. Examples include drives for reading magnetic and optical data storage media.
"Memory circuitry" or "memory" is any circuitry that can store data, and may include local and remote memory and input/output devices. Examples include semiconductor ROMs, RAMs, and storage medium access devices with data storage media that they can access.
A "processor" is a component of circuitry that responds to input signals by performing processing operations on data and by providing output signals. A processor may include one or more central processing units or other processing components. A processor performs an operation or a function "automatically" when it performs the operation or function independent of concurrent human control.
An "instruction" is an item of data that a processor can use to determine its own operation. A processor "executes" a set of instructions when it uses the instructions to determine its operations.
To "obtain" or "produce" an item of data is to perform any combination of operations that begins without the item of data and that results in the item of data.
An item of data "indicates" a thing, an event, or a characteristic when the item has a value that depends on the existence or occurrence of the thing, event, or characteristic or on a measure of the thing, event, or characteristic.
An operation or event "transfers" an item of data from a first component to a second if the result of the operation or event is that an item of data in the second component is the same as an item of data that was in the first component prior to the operation or event. The first component "provides" the data, and the second component "receives" or "obtains" the data.
"User input circuitry" is circuitry for providing signals based on actions of a user. User input circuitry can receive signals from one or more "user input devices" that provide signals based on actions of a user, such as a keyboard or a mouse. The set of signals provided by user input circuitry can therefore include data indicating mouse operation and data indicating keyboard operation.
An "image output device" is a device that can provide output defining an image. A "display" is an image output device that provides information in a visible form. To "present an image" on a display is to operate the display so that a human can perceive the image.
An item of data "defines" an image when the item of data includes sufficient information to produce the image. A "page" is an image that can be perceived as a single page of a form or a sheet. A "web page" is a page that satisfies the constraints applicable to the World Wide Web (WWW) user interface.
An operation "creates" a page, such as a web page, when the operation produces an item of data defining the page. An operation "transmits" a page when the operation transmits an item of data defining the page. An operation "presents" a page when the operation presents one or more images that include information from an item of data defining the page.
A "selectable item" is a display feature that is perceived as a bounded display area that can be selected. Hyperlinks and menu items are examples of selectable items. A selectable item "indicates" a thing, an event, or a characteristic when the selectable item includes text or other visible information indicating the thing, event, or characteristic. A selectable item "identifies" a thing, an event, or a characteristic that is one of a set when the selectable item includes text or other visible information indicating the thing, event, or characteristic and not indicating any of the other elements in the set.
The term "select", when used in relation to a selectable item, means an action by a user that uniquely indicates the selectable item.
The term "machine" refers herein to a machine that includes at least one processor and its input/output circuitry.
The terms "server machine" (or "server"), "client machine" (or "client"), and "request" describe a relationship between machines that can be connected through a network: A "server machine" is a machine that performs services in response to "requests" it receives from one or more "client machines". In this context, a "request" is an item of data transferred from a client to a server that has a value indicating a service or operation to be performed by the server.
A connection between a server machine and a client machine is a "low bandwidth connection" in a given context if the connection has insufficient capacity to transfer items of data at a desired rate with perfect fidelity. The capacity of the connection may be limited, for example, by software or hardware constraints, with storage capacity being one example of a hardware constraint that can reduce capacity. In some contexts, a low bandwidth connection is any connection with a transfer speed below 56 kilobits per second. In contexts in which items of data are transferred for presentation to a user, a low bandwidth connection could be a connection that is not always able to transfer items of data at a sufficient speed to obtain the intended perceptual effect.
An "e-mail service" is a service provided by a server machine by which the server machine can transfer a human-readable message, referred to as an "e-mail message", electronically from a client machine, referred to as the "sending machine", to one or more client machines, referred to as "recipient machines". An e-mail message is typically composed through a user interface provided by the sending machine and is typically read through a user interface provided by a recipient machine.
An "e-mail item" is an item of data that defines an e-mail message. An e-mail item can be transferred from a sending machine to a server machine and from a server machine to a recipient machine.
An "e-mail address" is an address that can be used to specify the intended destination of an e-mail item. Some e-mail addresses include extraneous material such as the actual name of the recipient.
A "link" is a selectable item that can be used to request a service from a server machine. On the World Wide Web, for example, a link may include a URL that can be used by the server to access a web site.
To "insert" a link is to perform an operation on an item of data so that the link is visible when the item of data is presented on a display.
A "version" of a first item such as an e-mail item is a second item of data that is obtained using the first item and that includes information from the first item. In general, the second item may be identical to the first item, or it may be modified by omitting parts of the first item, by changing parts of the first item, by converting the first item from one form or format to another, or by other processes that result in a modified version. For example, a version of an e-mail item might include, for an e-mail address in the e-mail item, an automatically inserted selectable link.
An "address book" is a service that provides a database of information about entities, referred to as "address book information". Examples include LDAP directories and various conventional address book databases. An "address book entry" is a distinct portion of address book information relating to one entity.
An entity defined in one way "is likely to be" an entity defined in another way if the two entities satisfy an appropriate criterion for likely identity. For example, an entity that has an address book entry is likely to be an entity whose e-mail address has a selectable link in a version of an e-mail message if the e-mail address is the same or similar to an e-mail address in the entry or if the entry and the e-mail address have the same or similar names for the entity.
SYSTEM OVERVIEW
Figs. 1-3 show general features of an embodiment of the invention. In Fig. 1, server machine 10 performs operations that present information through client machine 12, which includes display device 14. In an operation designated by a circled 1, server machine 10 transfers display version 20 to client machine 12. Display version 20 is a version of an e-mail item. An e-mail address for an entity, such as an individual, appears in the e-mail item, and display version 20 includes the e-mail address and also includes an automatically inserted selectable link for the e-mail address. The selectable link is represented illustratively by link 22 on display device 14.
In an operation designated by a circled 2, server machine 10 receives signal 24 from client machine 12, indicating user selection of link 22.
In an operation designated by a circled 3, server machine 10 responds to signal 24 by transferring information display 26 to client machine 12. Information display 26 provides access to all available address book information in each of the matching entries in an address book 16 accessible by server machine 10. Each of the matching entries is for an entity that is likely to be the entity whose e-mail address appears in the e-mail item. In Fig. 2, the act in box 100 begins by transferring a display version of an e-mail item to a client machine. The display version includes a set of at least one e-mail address that appears in the e-mail item. The display version also includes an automatically inserted selectable link for one of the e-mail addresses in the set, the e-mail address being for an entity.
The act in box 102 receives a signal from the client machine indicating user selection of the selectable link.
The act in box 104 responds to the signal by transferring an information display to the client machine. The information display provides access to all available address book information in each matching entry in an address book accessible by the server machine. Each matching entry is for an entity that is likely to be the entity whose e-mail address has the selectable link.
Server machine 150 in Fig. 3 includes processor 152 connected for receiving signals from a user's client machine 180 through client input circuitry 154 and for providing signals to client machine 180 through client output circuitry 156. Processor 152 can also be connected for accessing e-mail data 158, which define an e-mail item in which one or more e-mail addresses appear.
Processor 152 is also connected for receiving instruction data 160 indicating instructions through instruction input circuitry 162, which can illustratively provide instructions received from connections to memory 164, storage medium access device 166, or network 168.
Processor 152 is also connected for accessing address book data 170.
Finally, processor 152 can also be connected to memory 172, illustratively storing display version data 174 and information display data 176.
Client machine 180 includes display device 182 for presenting displays, such as versions of e-mail items, and signal circuitry 184 for providing signals.
In executing the instructions indicated by instruction data 160, processor 152 transfers a display version of the e-mail item defined by data 158 through client output circuitry 156 to client machine 180; the display version could, for example, be displayed by display device 182. The display version includes a set of at least one e-mail address that appears in the e-mail item. The display version also includes an automatically inserted selectable link for one of the e-mail addresses in the set, the e-mail address being for an entity.
Processor 152 receives a signal through client input circuitry 154 from client machine 180, such as from signal circuitry 184. The signal indicates user selection of the selectable link. Processor 152 responds to the signal by transferring an information display through client output circuitry 156 to client machine 180. The information display provides access to all available address book information in each of a set of entries in address book 170. Each entry in the set is for an entity that is likely to be the entity whose e-mail address has the selectable link.
Processor 152 could obtain display version data 174 and information display data 176, respectively defining the display version and the information display that are transferred to client machine 180.
As noted above, Fig. 3 illustrates three possible sources from which instruction input circuitry 162 could receive data indicating instructions—memory 164, storage medium access device 166, and network 168.
Memory 164 could be any conventional memory within server machine 150, including random access memory (RAM) or read-only memory (ROM), or could be a peripheral or remote memory device of any kind. For example, memory 164 and memory 174 could be implemented in a single memory device.
Storage medium access device 166 could be a drive or other appropriate device or circuitry for accessing storage medium 190, which could, for example, be a magnetic medium such as a set of one or more tapes, diskettes, or floppy disks; an optical medium such as a set of one or more CD-ROMs; or any other appropriate medium for storing data. Storage medium 190 could be a part of server machine 150, a part of another server or other peripheral or remote memory device, or a software product. In each of these cases, storage medium 190 is an article of manufacture that can be used in server machine 150. Data units can be positioned on storage medium 190 so that storage medium access device 166 can access the data units and provide them in a sequence to processor 152 through instruction input circuitry 162. When provided in the sequence, the data units form instruction data 160, indicating instructions as illustrated.
Network 168 can provide instruction data 160 received from machine 192. Processor 194 in machine 192 can establish a connection with processor 152 over network 168 through network connection circuitry 196 and instruction input circuitry 162. Either processor could initiate the connection, and the connection could be established by any appropriate protocol. Then processor 194 can access instruction data stored in memory 198 and transfer the instruction data over network 168 to processor 152 so that processor 152 can receive instruction data 160 from network 168. Instruction data 160 can then be stored in memory 174 or elsewhere by processor 152, and can be executed.
The general features described above could be implemented in numerous ways on various server machines to transfer e-mail attachments for rendering. It is expected that the proposed implementation described below can be implemented on several computer CPU architectures and operating systems, including Microsoft Windows NT 4.0/Intel x86, Sun Solaris 7/Intel x86, Sun Solaris 7/Sun UltraSPARC running atop an Apache 1.3 Web server using the Apache JServ module to run a custom set of servlets compiled from Java programming language source code. The proposed implementation described below uses the WAP (Wireless Application Protocol) protocols, including WML (Wireless Markup Language) 1.0 and WML 1.1, to present information to and receive information from mobile client devices.
SYSTEM ARCHITECTURE According to one embodiment, a server computer exchanges information with client machines that are cellular telephones or PDAs, providing access to information through a network. The server provides a number of services to users of the client machines, including but not limited to access to calendars; access to electronic mail folders, messages, and attachments such as documents; access to chat rooms; instant messaging; and access to address books. The server can reformat all information for display in a manner appropriate to the information, the client machine, and the user.
The server can provide secure wireless access directly to corporate and personal information, providing transparent, ubiquitous, and live management of calendars, e-mail, chat rooms, instant messaging, address books, and other server-based tools. As a result, a user can have one e-mail address, one calendar, and one address book no matter where the user is. A user with access to a client machine can work directly on his or her own network without synchronizing information among various intermediary networks. The user's network identity can be portable and unbounded.
Fig. 4 shows an architecture for wireless access to an individual's primary server that eliminates the need for separate identities. In the illustrated architecture, a wireless device becomes a live terminal directly linked to a network in a secure fashion. Therefore, it is irrelevant whether the individual user is accessing e-mail, a calendar, or other services from a desktop personal computer directly connected to the network, from a laptop or other portable computer linked to the network by a landline, or from a wireless device such as a cellular phone, PDA, or interactive pager.
In Fig. 4, communication network 200 provides communication links between three components — user's network 202, carrier's network 204, and provider's network 206. These components can be implemented with conventional techniques, except as noted below, and communication network 200 could be the public Internet, a private intranet, or another suitable communication network.
User's network 202 can be a conventional intranet or a conventional network of an Internet service provider through which a user has access to communication network 200. Network 202 includes network connection 210 and user's server system 212, which could include one or more server machines providing local and remote users with conventional network services such as an IMAP4 server for mail storage, a POP3 server for SMTP mail transmission, an LDAP server for directory or address book maintenance, a chat server, and so forth. Memory 214 illustratively stores services software 216 which a server machine could execute to provide services.
Carrier's network 204 can be a conventional network of a communication provider such as a telephone provider, cellular provider, paging company, etc., through which the user has communication services using client machine 220. Client machine 220 could, for example, be a wireless telephone, a PDA, a laptop or other portable computer, a pager, or any other machine capable of functioning as a client communicating with carrier's server system 222 in carrier's network 204 through transmitter/receiver 224. In the current implementation, client machine 220 has been successfully implemented with a conventional wireless telephone such as a Motorola P7389 or a Nokia 7110 executing a conventional Wireless Markup Language (WML) browser such as Phone.com's UP Browser 3.1 or UP Browser 4.0, and experiments have shown that client machine 220 could be implemented with a PDA such as a Palm Pilot V, but client machine 220 could be any other suitable machine with any other suitable user interface. The link between client machine 220 and transmitter/receiver 224 could thus be implemented with WAP or any other suitable protocol and could be provided over a wireless, wired, or hybrid connection.
In the architecture in Fig. 4, carrier's network also includes network connection 226, to provide connection between client machine 220 and communication network 200. Provider's network 206 similarly includes network connection 230. Communications between network connections 210, 224, and 230 can be implemented in a conventional manner, and can be protected using a Virtual Private Network (VPN) or another suitable protocol for providing secure links through communication network 200. Each of the Internet connections can be implemented with a firewall and other appropriate security protections.
Provider's network 206 also includes provider's server system 232, which can be implemented with one or more conventional machines such as a Sun Microsystems Enterprise 450. Machines in provider's server system 232 can provide conventional network services such as an Internet Mail Access Protocol 4 (IMAP4) server or other appropriate server for mail storage and retrieval, a POP3 server employing Simple Mail Transfer Protocol (SMTP) or other appropriate server for mail transmission, a Lightweight Directory Access Protocol (LDAP) server or other appropriate server for directory or address book maintenance, a chat server, and so forth. In addition, in the current implementation, provider's server system 232 provides an intermediary server (IMS) implemented with an Apache 1.3 Web server using the Apache JServ module running a custom set of servlets. Memory 234 illustratively stores intermediary services software 236 which a server machine could execute to provide intermediary services and miscellaneous software 238 which a server machine could execute to provide other services or to perform other functions.
As suggested by the bi-directional arrows inside communication network 200, the IMS acts as an intermediary during communication between client machine 220 and user's server system 212.
OPERATION DETAILS
Fig. 5 illustrates operations of client machine 220 in establishing connection with the IMS, making it possible for the user to request intermediary services.
In box 250, in response to user input, client machine 220 establishes connection to carrier's network 204. This can be accomplished in a conventional way, such as by transmitting a dial-in number that the user manually enters or selects, such as from a menu showing numbers stored in memory of client machine 220.
When connected to carrier's network 204, in response to further user input, client machine 220 uses a provider-supplied Universal Resource Locator (URL) to establish a data connection to the IMS, as shown in box 252. Here again, the user can manually enter the URL or can select it, such as from a menu of stored URLs. A server in carrier's server system 222 responds to the URL by establishing the data connection between client machine 220 and the IMS, performing conventional operations, and submits the URL to the IMS. In response to the URL, the IMS sends a WML login or authentication page to client machine 220, enabling the user to log into the IMS. Client machine 220 receives and presents the login page, in box 254. For example, client machine 220 can present a first part of the login page requesting that the user enter a user name, as shown by display image 260. When the user has entered a user name, such as by pressing the numeric buttons on the keypad of a wireless telephone, the user can press a button adjacent the "OK" label to store the user name temporarily and to obtain display of a second part of the login page. In response, client machine 220 can present the second part of the login page requesting that the user enter a password, as shown by display image 262. When the user has entered a password, illustratively disguised by asterisks, the user can press a button adjacent the "Login" label to request that the client machine 220 transmit the user name, here "testuser", and the password to the IMS.
In response to the user pressing the button labeled "Login", client machine 220 transmits the user name and password to the IMS using the standard WML and Hypertext Transfer Protocol (HTTP) mechanism "POST", as shown in box 270.
In response to the user name and password, the IMS uses them to access a database of authorized users. If the user name and password are both valid and match, data is stored indicating that the user is "logged in". Then, the IMS sends a WML top- level menu page to client machine 220, listing the main set of operations the user can perform through the IMS.
Login could be implemented in various ways other than with the specific features shown in boxes display images 260 and 262 and in box 270. For example, a first part of the login page requests that the user enter a personal identification number (PIN) and a second part requests that the user enter a user identifier (ID). In this implementation, the PIN and ID are used in login rather than a user name and password.
Client machine 220 receives and presents the top-level menu page, in box 272. For example, as shown by display image 274, client machine 220 can present a first part of the top-level menu page showing the beginning of the list of operations, as shown by display image 280. If the device's display is not large enough to display all of the menu items, when the user requests scrolling, such as by pressing a scroll button, client machine 220 can present a second part of the top-level menu page with a subsequent part of the list of operations, as shown by display image 282.
As illustrated, client machine 220 presents the top-level menu page as a list of numbered lines, each line including a short description of a service such as "Read mail", "Send mail", "Chat", "View calendar", and "Look up name". A top-level menu page could include various other such lists and items could be presented differently; for example, in a variation on the illustrated implementation, the lines of the top-level menu page include the following descriptions: "Read mail", "Send mail", "Chat", "View calendar", "Look up name", and "Log out", which can be selected to log out directly, and the items are presented without numbers before them.
In the illustrated implementation, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection. The user can then change the current selection by requesting scrolling to move the ">" symbol up or down until it is positioned to the left of a desired operation. When a desired operation is selected, the user can press a button adjacent the "Go!" label to request that the client machine 220 transmit a request for the desired operation to the IMS.
The term "scroll", as used herein, thus refers to two related operations that can be implemented together or separately. One operation scrolls by moving a display image with respect to a virtual workspace such as a page; an example is upward or downward scrolling as illustrated by display images 280 and 282. Another operation scrolls by moving a cursor that indicates current selection from one selectable item to another; an example is movement of the ">" symbol from one item in a menu to another, as shown in display images 280 and 282. Scrolling can generally be implemented using up-down keys or pads or using next-previous buttons or buttons adjacent next-previous labels. In response to an up or down signal, client machine 220 can move the cursor to the next selectable item in the indicated direction unless the cursor is not currently in the display image, in which case client machine 220 can advance the display image position by one line in the indicated direction.
According to one embodiment, the top-level menu page is the starting point for all IMS capabilities. The manner in which the IMS responds to requests for operations from the top-level menu, according to one embodiment, is described below.
TOP-LEVEL INTERMEDIARY SERVER OPERATIONS
The five operations on the menu illustrated by display images 280 and 282 have been implemented as follows in a current implementation.
The Read Mail Operation
In one embodiment, the top-level menu always includes the "Read mail" operation. Fig. 6 illustrates acts performed by the IMS in response to a request for the "Read mail" operation. In general, each act performed by the IMS involves the execution of one or more servlets.
In box 300, the IMS receives the request for the "Read mail" operation from client machine 220. In response to the request received in box 300, the IMS opens a secure connection to user's network 202 using Transport Layer Security (TLS) such as a Secure Socket Layer (SSL) 3.0-based tunnel. Many conventional IMAP4 and other servers are able to maintain such a tunnel, or appropriate software could be loaded and run on user's server system 212 to maintain such a tunnel. Once the tunnel is established, the IMS has a secure connection across communication network 200 to user's server subsystem 212.
In order to perform the "Read mail" operation, the IMS opens a connection to the user's mail reading server, an IMAP4 server in one embodiment, in box 304. The IMS also obtains from the user's mail reading server a list of the user's mailboxes, and uses the list to create a WML mailbox list page. The IMS then transmits the mailbox list page to client machine 220.
Display image 306 is an example of how a mailbox list page appears when presented. As illustrated, client machine 220 presents the mailbox list page as a list of numbered items, each item including a mailbox name such as "Inbox", which is where new messages arrive; "Mail/mac-software.mail"; and "Mail/recipes.mail". As in box 280 in Fig. 5, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection; in the illustrated example, the last mailbox name is truncated due to screen size, but when the user selects it by moving the cursor to it, the mailbox name can scroll horizontally to provide a full display of "Mail/recipes.mail". Client machine 220 also presents a number after the Inbox, indicating the number of new messages that have not yet been viewed, referred to as "unseen" new messages. In image 306, the Inbox has zero unseen new messages. When a desired mailbox is the current selection, the user can press a button adjacent the "Select" label to request that the client machine 220 transmit a request to view the messages in the selected mailbox to the IMS.
In box 310, the IMS responds to user selection of a mailbox by again connecting to the user's mail reading server to obtain the messages in the mailbox from the user's mail server. The IMS uses the messages to create a WML message list page, which it transmits to client machine 220.
A message list page could have any appropriate format. Display image 312 is an example of a message list page that is presented by client machine 220 as a list of numbered items, each item including a message's subject line, truncated if necessary, and the date of the message, or, if today's date, the message's time of creation. Alternatively, a message list page could be presented as a list in which the subject line is replaced, for example, by the message's "From" line. The user could choose the format of message list pages in advance through an appropriate user interface within user's network 202. As above, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection. When a desired message is the current selection, the user can press a button adjacent the "Select" label to request that the client machine 220 transmit a request to view the selected message to the IMS. In box 314, the IMS responds to user selection of a message by using the selected message to create a WML formatted message page, which it transmits to client machine 220. A formatted message page could similarly have any appropriate format, although it is typically useful to create a concisely reformatted version that is optimized for the display constraints of client machine 220, such as a small screen. For example, as shown by display image 316, client machine 220 can present a first part of a formatted message page showing the beginning of a reformatted version of the message. If the device's display is not large enough to display all of the reformatted version, when the user requests scrolling, such as by pressing a scroll button, client machine 220 can present a second part of the formatted message page with a subsequent part of the list of operations, as shown by display image 318. Display images 316 and 318 illustrate a reformatted version that includes a list of items, each beginning with a subject such as "Date:", "From:", "Subj:", and so forth. The message's header lines can either be reformatted or suppressed altogether to better fit the screen and to minimize transmission time.
The Send Mail Operation
In one embodiment, the top-level menu always includes the "Send mail" operation. Fig. 7 illustrates acts performed by the IMS in response to a request for the "Send mail" operation. As above, each act performed by the IMS involves the execution of one or more servlets. In box 340, the IMS receives the request for the "Send mail" operation from client machine 220. In response, the IMS creates a mail composition page and transmits it to client machine 220.
An example of a mail composition page in response to a "Send mail" request is shown by display images 342, 344, 346, and 348. A first part of the page, shown in image 342, provides a list of numbered items, each item including a brief description of a message field that can be edited. As above, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection. When a desired message field is the current selection, the user can press a button adjacent the "Edit" label to request that client machine 220 present another part of the mail composition page so that the user can edit the selected message field. When the user completes editing, the user can press a button adjacent the "Send" label to request that client machine 220 send the edited message fields and a request to send the message to the IMS.
A second part of the page, shown in image 344, is presented when the user presses the "Edit" button when the "To" message field is selected. Image 344 elicits the address to which a message is to be sent; in the example, the user has entered "Herb Jellinek <Jellinek>" or this address has been included in the page by default, allowing the user to change it. When the user indicates the address is complete by pressing a button adjacent the "OK" label, client machine returns to the first part of the page, as shown in image 342, and the user can then scroll the cursor to select another message field.
A third part of the page, shown in image 346, is presented when the user presses the "Edit" button when the "Subj" message field is selected. Image 346 elicits the subject of the message; in the example, the user has entered "Your Message". When the user indicates the subject is complete by pressing a button adjacent the "OK" label, client machine returns to the previously shown part of the page, similar to the part shown in image 342, and the user can then scroll the cursor to select another message field.
A fourth part of the page, shown in image 348, is presented when the user presses the "Edit" button when the "Text" message field is selected. Image 348 elicits the body of the message. In the example, the user has entered "Regarding the message from Herb Jellinek". When the user indicates the text is complete by pressing a button adjacent the "OK" label, client machine returns to the previously shown part of the page, similar to the part shown in image 342, and the user can then scroll the cursor to select another message field.
When the user has completed all the fields as desired, the user can press a button adjacent the "Send" label to request that a message be sent in accordance with the entered information. In box 350, the IMS receives the entered information and the request to send from box 340. In response, the IMS constructs a message in accordance with the entered information and in the correct format to be sent.
The IMS opens a secure connection to user's server subsystem 212, as described above. In order to perform the "Send mail" operation, the IMS opens a connection to the user's mail sending server, an SMTP server in one embodiment, in box 352. The IMS then transmits the message to the user's mail sending server for transmission to the recipient(s).
Although the IMS could use an SMTP server in provider's server system 232 to transmit the message, this could be problematic because addresses local to user's network 202 would not be accessible.
Based on the result of the transmission, IMS then creates a results page and transmits it to client machine 220, in box 354. Display image 356 illustrates an example of a results page indicating that a message has been successfully sent. Other results pages could detail problems that occurred in delivering a message.
The Chat Operation
In one embodiment, the top-level menu could include the "Chat" operation. This operation is useful when one has immediate communication needs that e-mail or a voice telephone call cannot fulfill. For example, if one needs to consult a group of people or any single member of a group, interactive text chat may be a better solution.
To enable the IMS to provide the "Chat" service to a group of people, a counteφart chat server program must be running on User's Server System 212 or another network that is accessible to all of the people in the group. Similarly, to enable users of other computers to participate, their computers must be running a counterpart chat client program, which can, for example, provide a graphical user interface. The chat server and chat client programs can be implemented with conventional techniques, such as those used to implement commercially available chat software. One embodiment uses conventionally implemented chat server and chat client programs that could be replaced by Yahoo! Messenger or AOL Instant Messenger with minimal change to the rest of the system.
Fig. 8 illustrates acts performed by the IMS in response to a request for the "Chat" operation. As above, each act performed by the IMS involves the execution of one or more servlets. Fig. 8 also suggests acts performed by client machine 220, running a counterpart WAP client that supports the "Chat" service.
In box 370, the IMS receives the request for the "Chat" operation from client machine 220. In response, the IMS opens a secure connection to user's server subsystem 212, as described above. In order to perform the "Chat" operation, the IMS opens a connection to the user's chat server, in box 372. Identifying information for a user's chat server can be stored in advance as part of the user's IMS profile. The IMS determines in box 374 whether a chat session is in progress and, if not, transmits a chat closed page to client machine 220 in box 376. Display image 378 illustrates an example of a chat closed page.
If a chat session is in progress, the IMS collects the most recent exchanges from the chat server, in box 380. Using the collected exchanges, the IMS creates a chat page, including links allowing a user to add some "chatter" to the conversation or view the latest chat. The link to view the latest chat is necessary because the "Chat" operation is not automatically updating, due to limitations in the current WAP standard — there is no way in WAP 1.1 to notify interested parties when the page they are viewing has been updated. The IMS transmits the chat page with included links to client machine 220.
An example of a chat page in response to a "Chat" request is shown by display images 382 and 384. A first part of the page, shown in image 382, shows an item of "chatter" that was collected in box 380. By scrolling, the user can reach a closing part of the page, shown in image 384, which shows the end of the final item of "chatter", followed by a list of links. The list includes a "Chat" link enabling the user to add "chatter" to the conversation and a "Refresh" link enabling the user to view an updated chat page. As above, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection within the list, with the first link in the list being the default current selection. When a desired link is the current selection, the user can press a button adjacent the "Go!" label to request that the client machine 220 transmit a request to the IMS to follow the desired link.
In box 390, the IMS receives a request to follow a selected link, and in box 392, the IMS branches based on the link selected. If the "Refresh" link was selected, the IMS returns to box 372, reestablishing connection to the chat server. But if the "Chat" link was selected, the IMS creates a chatter page and transmits it to client machine 220, in box 394. Display image 396 illustrates an example of a chatter page, in which the user has entered a shorthand version of the text "Please set up a meeting for lunch". If the user then presses a button adjacent the "Chat" label, client machine 220 transmits to the IMS a request to submit the expanded version of the entered text to the conversation.
In response to the request and the shorthand version of the text, the IMS expands the text and constructs a chat item using the text, in box 398. The IMS then contacts the user's chat server as in box 372 and submits the chat item. The IMS can then return to the test in box 374 and, if the chat item was successfully submitted, the chat page created in the next iteration of box 380 should include the submitted chat item, as illustrated by display image 400. The chat page shown in image 400 shows the user's "chat handle", a nickname which is "test" in the example, followed by the expanded version of the shorthand text from image 396.
The View Calendar Operation
In one embodiment, the top-level menu always includes the "View calendar" operation. It is increasingly common for users to keep their personal schedules on a network server to make it easy for others to schedule appointments with them. Although there is not yet an Internet standard for networked calendars, conventional networked calendars implement the following simple functions: (i) Schedule a new appointment, given a date, start time, end time, and meeting description; (ii) delete an appointment, given a unique identifier such as an appointment number for the appointment; and (iii) list all appointments on a given day, and return a unique identifier such as an appointment number for each appointment. In one embodiment, the IMS provides a calendar service that includes these three functions.
Fig. 9 illustrates acts performed by the IMS in response to a request for the "View calendar" operation. As above, each act performed by the IMS involves the execution of one or more servlets.
In box 420, the IMS receives the request for the "View calendar" operation from client machine 220. In response, the IMS transmits a default date page to client machine 220, requesting that the user indicate the desired calendar date and already completed with a default date that the user can enter by a single button push. Display image 422 illustrates an example of a default date page in which the default date is "today". The user can edit the default date page to include another date. When the desired date is on the default date page, the user can press a button adjacent the "Show" label to request that client machine 220 transmit a request to the IMS to show a list of appointments for the desired date.
In response to a request to show a list of appointments for a date, the IMS creates an appointments page for the date and transmits the appointments page to client machine 220. Display images 432 and 434 show an example of an appointments page. A first version of the page, shown in image 432, indicates that no appointments have been scheduled for today and includes a link labeled "Add appt" which can be followed to add an appointment. In a second version of the page, shown in image 434, the user has scrolled to position a ">" symbol as a cursor to indicate selection of the link labeled "Add appt". The user can press a button adjacent the "Go!" label to request that the client machine 220 transmit a request to the IMS to follow the selected link.
In box 440, the IMS responds to the request to follow the selected link by transmitting a scheduling page to client machine 220. Display image 442 illustrates an example of a first subpage of a scheduling page. The first subpage is presented by client machine 220 as a list of numbered items, each item including a short description of an item of information relating to an appointment. As above, client machine 220 also presents a ">" symbol as a cursor to indicate the current selection, with the first item in the list being the default current selection. When a desired item is the current selection, the user can press a button adjacent the "Edit" label to request an opportunity to edit the item.
Display images 444, 446, 448, and 450 illustrate a sequence of subpages of the scheduling page. Display image 444 shows a subpage in which the user has edited the "Date" item, entering the value "9/08/1999". The user may then press a button adjacent the "OK" label to return to the first subpage and select another item.
Display image 446 shows a subpage in which the user has edited the "Start time" item, entering the value "3:00 PM". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
Display image 448 shows a subpage in which the user has edited the "End time" item, entering the value "3:00 PM". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
Display image 450 shows a subpage in which the user has edited the "Text" item, entering a shorthand version of the text "Meeting/dinner with Andre". As above, the user may again press a button adjacent the "OK" label to return to the first subpage and select another item.
When the user wishes to schedule an appointment, the user may press a button adjacent the "Sched" label in the first subpage. In response, client machine 220 transmits a request to the IMS to schedule an appointment according to the information entered in the scheduling page.
In response to the request, the IMS updates the calendar in accordance with the information entered in the scheduling page, in box 460. In updating the calendar, the IMS can expand the shorthand version of the text. The IMS also creates a confirmation page that can include an updated list of appointments for the selected date, and transmits the confirmation page to client machine 220. Display image 462 illustrates a confirmation page which does not include an updated list of appointments. As in the other examples above, the user can press a button adjacent the "Main" label to return to the top-level menu.
The Look Up Name Operation
In one embodiment, the top-level menu always includes the "Look up name" operation. Users typically have one or more databases of information about other users, which may be referred to as address books, contact lists, or personal directories. As used herein, the term "address book" includes all of these types of databases.
A user will find it advantageous to keep a single copy of the user's address book on the user's network server, rather than incurring the extra work necessary to keep several versions that must be synchronized to make it easy for others to schedule appointments with them. The IMS makes it easy to keep a single address book by including the ability to interact with LDAP servers, which are designed to serve address book information to any client that speaks the LDAP protocol. Programs that speak the LDAP protocol include Netscape Messenger and Microsoft Outlook Express.
Fig. 10 illustrates acts performed by the IMS in response to a request for the "Look up name" operation. As above, each act performed by the IMS involves the execution of one or more servlets.
In box 480, the IMS receives the request for the "Look up name" operation from client machine 220. In response, the IMS accesses previously stored information in memory 234 about the user to obtain an identifier (ID) of the user's preferred LDAP server and other parameters; the user could have loaded the previously stored information into memory 234 through a user interface provided by the IMS through user's server system 212. In addition, the IMS transmits a name page to client machine 220, allowing the user to enter a complete or partial desired name for searching the user's address book database.
Display images 482 and 484 illustrate an example of a name page in which the user has entered a partial first name (or given name) string and a partial last name (or surname) string. A first part of the name page, shown in display image 482, is headed "First Name (partial OK)", and the user has entered a first name string that includes only the character "s" in the example. The user can press a button adjacent the "OK" label in the first part of the name page to complete entry of the first name string and obtain a second part of the name page, shown in display image 484. The second part is headed "Last Name (partial OK)", and the user has entered a last name string that includes only the character "r" in the example. The user can press a button adjacent the "OK" label in the second part of the name, page to complete entry of the last name string and to request that client machine 220 transmit a request to the IMS to search the user's address book database with the entered strings.
In response to a request to search the user's address book database with first and last name strings, the IMS opens a connection to the user's LDAP server and searches for entries with names that satisfy a matching criterion when compared with the entered strings, in box 490. The IMS creates a results page based on the results of the search and transmits the results page to client machine 220. In one embodiment, address book entries can include a person's name, a company name, a postal address, one or more e- mail addresses, a home telephone number, an office telephone number, a fax number, a pager number, a calendar location, a preferred chat session, and a server identifier. The IMS can use some of these items of information to create the results page, as described below, and can ignore other items.
According to one embodiment, the following two-part matching criterion is used by the IMS: Under a string input subcriterion, if the user enters strings that include no characters for both names, a result is returned indicating that no entries in the database match, because this is likely to be an input error. Otherwise a substring match subcriterion applies, so that an entry matches only if both its first name includes a substring that matches the entered first name string, disregarding case, and also its last name includes a substring that matches the entered last name string, again disregarding case. In the illustrated example, this matching criterion would be satisfied by all entries with "s" in the first name and "r" in the last name. If the user enters a string that includes no characters, i.e. an empty string, for one (but not both) of the names, then every entry would include a matching substring for that name, i.e. the empty substring.
Display images 492, 494, 496, and 498 show an example of a results page.
A first part of the results page, shown in image 492, indicates that the database includes two entries that match the entered strings, "s" and "r". The first part of the results page also shows the beginning of a list of the matching entries, in which each entry begins with a number and identifying information the IMS has extracted from the entry. In the illustrated example, the first entry's identifying information includes the person's name, "Steve Rudy", and the company name, "Sinia". Following the identifying information is a series of items from which the user can select to request actions.
Second and third parts of the results page, shown respectively in display images 494 and 496, can be reached by scrolling downward from the first part to position a ">" symbol as a cursor to indicate selection of one of two links labeled "Home" and "Mail". The link labeled "Home" includes the home telephone number from the entry, and the link labeled "Mail" includes one of the e-mail addresses from the entry. If the cursor indicates selection of the link labeled "Home", a "Call" label is also presented and the user can press a button adjacent the "Call" label to request that the client machine 220 request the standard WAP "make call" function. If the cursor indicates selection of the link labeled "Mail", a second "Mail" label is presented and the user can press a button adjacent the second "Mail" label to request a "Send mail" operation as described above in relation to Fig. 7 for the e-mail address in the link. As mentioned in relation to Fig. 7, image 344 would include an e-mail address by default, in this case the selected e-mail address from the results page.
A fourth part of the results page, shown in display image 498, can be reached by scrolling downward from the second or third part and by then positioning the cursor to indicate selection of a link labeled "Calendar". With this selection, a "Sched" label is also presented and the user can press a button adjacent the "Sched" label to request the "View calendar" operation described above in relation to Fig. 9, but accessing the calendar at the location from the entry rather than the user's own calendar.
While the results page is being presented, the IMS thus branches based on the type of request the user makes, in box 500. Some types of requests are illustrated in Fig. 10, though others could also be available.
If the user requests a "make call" function, client machine 220 handles the request without the IMS, in box 502. Display image 504 illustrates a make call page that client machine 220 could store at an appropriate location such as wtai://wp/mc and could present in response to the user's request; as shown, image 504 includes a list of dialing options from which the user can select by positioning a cursor. Then, the user can press a button adjacent an "OK" label to request that client machine 220 place a call using the selected dialing option through carrier's network 204. While client machine 220 has control of the make call operation, it could terminate connection to the IMS, and the IMS could wait for reconnection by client machine 220, while saving the user's current state in the IMS user interface. For example, a phone browser running on client machine 220 could reconnect to the IMS automatically upon hang up or could again present the results page as in image 492, allowing the user to press a button adjacent the "Main" label to initiate reconnection.
If the user requests a "Send mail" operation or a "View calendar" operation, the IMS provides the requested operation, in box 506 or box 508, respectively.
When the response to each request is completed, client machine 220 can again display the results page, either immediately or after another log in operation, so that the user can make another request, as suggested by the dashed lines from boxes 502, 506, and 508 back to box 500. For example, the user could begin by requesting a "make call" function to the home telephone number in display image 494; after placing the telephone call, the user could return to display image 496 and request a "Send mail" operation to the e-mail address in the entry, or, alternatively, the user could return to display image 498 and request a "View calendar" operation accessing the calendar at the location in the entry.
DISPLAYING ADDRESS BOOK INFORMATION IN RESPONSE TO SELECTION
The general features described above could be implemented in many ways within the context of the top-level IMS operations described above. In an initial implementation, the general features are implemented as an extension of the "Read mail" and "Look up name" operations described above.
Fig. 11 illustrates how the "Read mail" operation shown in Fig. 6 and the "Look up mail" operation shown in Fig. 10 can be extended to display address book information in response to selection of an e-mail address in a message. Fig. 12 illustrates how the act in box 530 in Fig. 11 can be implemented to automatically insert a link associated with an e-mail address.
In box 530 in Fig. 11, which is a modification of box 314 in Fig. 6, the IMS responds to user selection of a message by using the selected message to create a WML formatted message page. The message page includes at least one automatically inserted selectable link for an e-mail address that occurs in the message. The IMS transmits the message page to client machine 220, thus implementing the act in box 100 in Fig. 2.
As described above in relation to boxes 316 and 318 in Fig. 6, a formatted message page could have any appropriate format. In the example shown by display image 532, client machine 220 presents a first part of a formatted message page showing the beginning of a reformatted version of the message, and with an automatically inserted selectable link represented by the expression "[Herb Jellinek <Jellinek>]". In other words, in this implementation, the selectable link includes square brackets enclosing an e- mail address of an entity. This is how links are displayed on a wireless phone running one of the browsers ofPhone.com, but selectable links could instead be indicated by curly brackets or by other types of brackets or by various other visual cues, depending on the device type of client machine 220 and on the browser software it is running. To select the link, the user can request scrolling, such as by pressing a scroll button to cause client machine 220 to scroll down the message page until the link begins on the uppermost line of the display, as shown by display image 534 in which a second part of the formatted message page is presented. As a result of scrolling, client machine 220 presents a ">" symbol as a cursor to indicate that the link is the current selection, as in display image 534. The user can then press a button adjacent the "Go!" label to cause client machine 220 to request address book information about the entity whose e-mail address is in the link.
In box 540, the IMS receives the request for address book information, together with the e-mail address, from client machine 220, thus implementing the act in box 102 in Fig. 2.
In box 542, the IMS responds to the request received in box 540, obtaining the ID of the user's LDAP server, as in box 480 in Fig. 10, and using it to open a connection to the user's LDAP server, as in box 490 in Fig. 10. The IMS searches the LDAP server for entries that satisfy a likely match criterion when compared with the e-mail address from box 540. An example of a successfully implemented likely match criterion is described below in relation to Fig. 12. Based on the search results, the IMS creates an access page that provides access to all information in the entries that satisfy the likely match criterion. The IMS then transmits the access page to client machine 220, thus implementing the act in box 104 in Fig. 2.
Display images 544 shows an example of a first part of an access page that resembles the results page shown in display images 492, 494, 496, and 498 in Fig. 10. As in display image 492, the first part indicates that the LDAP server's database includes one entry that matches the e-mail address "Herb Jellinek <Jellinek>", and is followed by a list of the matching entry, beginning with a number and identifying information and followed by a series of selectable items for requesting actions. When the user selects one of the selectable items in the access page, causing client machine 220 to provide a request, the IMS responds to the resulting request in the same manner described above in relation to boxes 500, 502, 504, 506, and 508 in Fig. 10. From a selectable link with a person's e- mail address in an e-mail message, a user could therefore contact the person in any of several ways, including voice, fax, e-mail, and chat, or could see the persons calendar, if it exists.
Fig. 12 shows in greater detail an implementation of the act in box 530. In box 570, the IMS begins by receiving a request from client machine 220 requesting presentation of a message selected by the user. In box 572, the IMS creates an initialized WML page and parses the selected message into strings of characters using conventional e-mail parsing techniques. For example, the message can first be parsed into its headers and then different parsing criteria can be applied to different headers of the message. The criterion applied to address headers such as "to", "from", "cc", and "sender" headers can obtain character strings that are e-mail addresses. The criteria applied to other headers can obtain other types of character strings, such as text strings. Then, in box 580, the IMS begins an iterative operation that handles, in each iteration, a string of characters parsed from the selected message.
Each iteration begins, in box 582, by determining whether the next parsed string is an e-mail address. If so, the IMS appends a hyperlink to the string in box 584, thus automatically inserting a selectable link. In WML, a hyperlink can include a URL and additional data. The URL can have the form "http:// . . . /ServletName", where the ellipsis defines a path to the IMS and where "ServletName" is the name of a Java servlet that is executed when the hyperlink is selected. Additional data included in the hyperlink can include several items extracted by parsing the e-mail address, such as an item for an entity's first name ("Herb" in box 532), an item for an entity's last name ("Jellinek" in box 532), an item for an entity's primitive or atomic e-mail address or mailbox ("Jellinek" in box 532), and so forth. An entity's first and last names maybe included together in the hyperlink as a single item in accordance with the rfc 822 standard, such an item being referred to as a common or canonical name ("Herb Jellinek" in box 532). The string, including the link appended in box 584 if any, is added to the WML page in box 586. When the WML page has been updated to include the string, the next iteration can begin in box 580.
When all the strings have been handled, the IMS transmits the completed WML page to client machine 220, in box 590. In presenting the WML page, a browser running on client machine 220 conventionally would display a string that has an appended link, with a visual cue such as brackets to show the presence of the link, but would not display the URL and the additional data for the link. The browser would, however, save the URL and the additional data, and possibly other data relating to the link, to be provided to the IMS when the link is selected.
Based on additional data as set forth above in relation to box 584, a two-part likely match criterion has been successfully implemented in the IMS to perform the act in box 542 in Fig. 11 :
A mailbox subcriterion is applied under which the subcriterion applied depends on whether the hyperlink's primitive e-mail address includes an "@" symbol. If so, an exact match subcriterion is met only if the hyperlink's primitive e-mail address exactly matches the entry's primitive e-mail address. If not, an expansion subcriterion is met only if the hyperlink's primitive e-mail address, expanded by appending the user's domain, matches the entry's primitive e-mail address. For the expansion subcriterion, the user's domain could be obtained by doing a search for the user's entry to obtain the user's primitive e- mail address, then extracting the user's domain. It may also be feasible to extend the mailbox criterion to include a wild card search.
A common name subcriterion is also applied under which the subcriterion applied depends on whether the hyperlink's common name includes a comma or a space. If it includes a comma (e.g. "Lastname, Firstname") or if it includes a space but no comma (e.g. "Firstname Lastname"), a first name and a last name are extracted from the common name using a procedure appropriate to the punctuation; in these cases, a two name match subcriterion is met only if the entry has a first name that matches the hyperlink's first name or has a last name that matches the hyperlink's last name. If the hyperlink's common name includes neither a comma nor a space, a first name match subcriterion is met only if the entry has a first name that matches the hyperlink's complete common name; if no entries meet the first name match subcriterion, a last name match subcriterion is also applied, and is met only if the entry has a last name that matches the hyperlink's complete common name.
In any case, if two or more entries satisfy the likely match criterion (or any of the subcriteria), those entries can be uniquified by comparing to find any pairs of duplicate entries and by then including only one of each pair of duplicates in the set of matching entries that results from the search.
In the initial implementation, the common name subcriterion is applied first and then the mailbox subcriterion, but the order in which these two subcriteria are applied could be reversed or they could be applied in parallel.
As mentioned above, the act in box 530 in Fig. 11 implements the general act in box 100 in Fig. 2; the act in box 540 implements the general act in box 102; and the act in box 542 implements the general act in box 104.
The techniques described herein allow a user to access all available address book information in matching entries by selecting an e-mail address in a message. Further, the client need not store the address information itself, and does not even have to be capable of executing a sophisticated email client.
An implementation similar to the above description has been successfully executed on server machines with several operating system/CPU architecture combinations, including Microsoft Windows NT 4.0/Intel x86, Sun Solaris 7/Intel x86, Sun Solaris 7/Sun UltraSPARC, and by running atop an Apache 1.3 Web server, but implementations could be executed on any other appropriate server machines, and the services described could be provided by one or more computers.
An implementation similar to the above description has been successfully executed by running a custom set of servlets compiled from Java programming language source code, but implementations could run code of any other appropriate type and compiled from any other appropriate source, such as from other programming languages and environments, including non-object-oriented environments.
An implementation similar to the above description has been successfully executed with client machines that are wireless telephones such as Motorola P7389 or a Nokia 7110 telephones, each executing Phone.com's UP Browser 3.1 or UP Browser 4.0. Experiments have also shown that a client machine could be a Palm Pilot V or other PDA, by successfully downloading AUSystem's WAP browser to a Palm Pilot V, connecting to a server, logging in, and sending e-mail. Implementations could, however, use any other appropriate client machine executing any other Wireless Markup Language (WML) browser or other software by which information can be presented to a user. For example, client machines could include remote or mobile devices such as cellular telephones, pagers, landline display screen telephones, set-top boxes, general puφose computers, and so forth.
An implementation similar to the above description has been successfully executed using the Internet to provide a communication network and using the WAP protocols, including WML 1.0 and WML 1.1, to present information to and receive information from client machines, but various other communication networks and protocols could be used. For example, instead of the Internet, a private intranet such as leased lines could provide a communication network between provider's network and carrier's network on the one hand and between provider's network and user's network on the other. Or a virtual private network (VPN) could be used as mentioned above, with secure encryption and decryption to create a sort of subnetwork on the Internet.
The implementations described above permit a user to access information stored by the user in a server on the user's network, but a user could access information stored by others and could also access information stored on other networks, whether in a coφorate or personal server. The implementations described above provide a user interface with a specific set of top-level operations implemented in specific ways and with various other operations available in response to selections made by pushing buttons adjacent labels, but various other user interfaces could be provided, with or without top-level operations, with various other sets of top-level operations and other available operations, with the same or similar operations but implemented differently, with different labels adjacent push buttons, or with selection techniques other than pushing buttons.
The implementations described above provide a specific type of version of an e- mail to a client machine with a specific type of automatically inserted selectable link for an e-mail address, but any appropriate type of version of an e-mail could be provided with any appropriate form of automatically inserted selectable link.
The implementations described above receive a specific type of signals from a client machine indicating user selection of a selectable link in a specific way, but various other types of signals could be received and a user could select a selectable link in a variety of ways.
The implementations described above respond by transferring a specific type of information display to the client machine, where the information display is obtained in a specific way and provides access to all available address book information in a specific way, but various other types of information displays could be obtained in various other ways and information displays could provide access to all available address book information in various other ways. Further, the implementations described above apply a specific likely match criterion to find matching address book entries, but various other likely match criteria could be applied.
In the implementations described above, acts are performed in an order that could in many cases be modified. Also, in the implementation described above, certain software components are mentioned, but the invention could be implemented with other combinations of hardware and software and with software organized in any appropriate way. Embodiments of the invention have been applied in a context in which e-mail messages including linked e-mail addresses are presented on wireless telephones, but the invention could be applied in various other contexts. Embodiments of the invention have been described in relation to software implementations, but the invention might be implemented with specialized hardware.
Although the invention has been described in relation to various implementations, together with modifications, variations, and extensions thereof, other implementations, modifications, variations, and extensions are within the scope of the invention. The invention is therefore not limited by the description contained herein or by the drawings, but only by the claims.
HARDWARE OVERVIEW
Figure 13 is a block diagram that illustrates a computer system 1300 upon which an embodiment of the invention may be implemented. Computer system 1300 includes a bus 1302 or other communication mechanism for communicating information, and a processor 1304 coupled with bus 1302 for processing information. Computer system 1300 also includes a main memory 1306, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 1302 for storing information and instructions to be executed by processor 1304. Main memory 1306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1304. Computer system 1300 further includes a read only memory (ROM) 1308 or other static storage device coupled to bus 1302 for storing static information and instructions for processor 1304. A storage device 137, such as a magnetic disk or optical disk, is provided and coupled to bus 1302 for storing information and instructions.
Computer system 1300 may be coupled via bus 1302 to a display 139, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 1311, including alphanumeric and other keys, is coupled to bus 1302 for communicating information and command selections to processor 1304. Another type of user input device is cursor control 1313, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 1304 and for controlling cursor movement on display 139. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
The invention is related to the use of computer system 1300 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 1300 in response to processor 1304 executing one or more sequences of one or more instructions contained in main memory 1306. Such instructions may be read into main memory 1306 from another computer- readable medium, such as storage device 137. Execution of the sequences of instructions contained in main memory 1306 causes processor 1304 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 1304 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 137. Volatile media includes dynamic memory, such as main memory 1306. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications .
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punchcards, papertape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 1304 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1300 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 1302. Bus 1302 carries the data to main memory 1306, from which processor 1304 retrieves and executes the instructions. The instructions received by main memory 1306 may optionally be stored on storage device 137 either before or after execution by processor 1304.
Computer system 1300 also includes a communication interface 1315 coupled to bus 1302. Communication interface 1315 provides a two-way data communication coupling to a network link 1317 that is connected to a local network 1319. For example, communication interface 1315 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1315 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1315 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1317 typically provides data communication through one or more networks to other data devices. For example, network link 1317 may provide a connection through local network 1319 to a host computer 1321 or to data equipment operated by an Internet Service Provider (ISP) 1323. ISP 1323 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the "Internet" 1325. Local network 1319 and Internet 1325 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1317 and through communication interface 1315, which carry the digital data to and from computer system 1300, are exemplary forms of carrier waves transporting the information.
Computer system 1300 can send messages and receive data, including program code, through the network(s), network link 1317 and communication interface 1315. In the Internet example, a server 1327 might transmit a requested code for an application program through Internet 1325, ISP 1323, local network 1319 and communication interface 1315.
The received code may be executed by processor 1304 as it is received, and/or stored in storage device 137, or other non- volatile storage for later execution. In this manner, computer system 1300 may obtain application code in the form of a carrier wave.
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

Claims

CLAIMSWhat is claimed is:
1. A method of operating a server machine to present information through client machines that include display devices: receiving, at the server machine, an e-mail item in which appears a set of one or more included e-mail addresses; automatically inserting, into a display version of the e-mail item, a selectable link for a particular e-mail address from the set of included e-mail addresses, wherein the particular e-mail address for which the selectable link is inserted is an e- mail address of an entity; transferring the display version of the e-mail item to a client machine; receiving a signal from the client machine indicating user selection of the selectable link; and in response to the signal, performing the steps of identifying, from address book information accessible to the server machine, a set of one or more matching entries, each matching entry in the set being for an entity that is likely to be the entity whose e-mail address has the selectable link; and transferring an information display to the client machine, the information display providing access to address book information from each entry in said set of one or more matching entries.
2. The method of Claim 1 wherein the step of transferring an information display to the client machine includes transferring an information display that provides access to all available address book information in each entry in said set of one or more matching entries.
3. The method of claim 1 in which the information display includes all available address book information for each entry in the set of one or more matching entries.
4. The method of claim 3 in which an entry in the set of one or more matching entries is for an individual and the address book information in the information display includes the individual's first name and surname, at least one telephone number, and at least one e-mail address.
5. The method of claim 3 in which an entry in the set of one or more matching entries is for an entity that has a telephone number and the address book information in the information display includes a selectable item for requesting a telephone call to the entity's telephone number.
6. The method of claim 5 in which the entity's telephone number is for voice communications .
7. The method of claim 5 in which the entity's telephone number is for facsimile transmissions.
8. The method of claim 1 in which an entry in the set of one or more matching entries is for an entity that has an e-mail address and the address book information in the information display includes a selectable item for requesting that an e-mail message be sent to the entity's e-mail address.
9. The method of claim 1 in which an entry in the set of one or more matching entries is for an entity that has a calendar stored on the server machine and the address book information in the information display includes a selectable item for requesting scheduling of an appointment on the entity's calendar.
10. The method of claim 1 in which the signal from the client machine includes address information about the e-mail address of the entity and in which the step of identifying a set of one or more matching entries comprises: applying a likely match criterion to the address information from the signal and the address book information in the entries to obtain the set of one or more matching entries; and using the set of one or more matching entries to produce the information display.
11. The method of claim 10 in which the e-mail address of the entity includes a primitive e-mail address and at least some of the entries in the address book include primitive e-mail addresses and in which the step of applying a likely match criterion comprises: if the entity's primitive e-mail address includes an "@" symbol, applying a first subcriterion to determine whether any of the entries in the address book includes a primitive e-mail address that is an exact match of the entity's primitive e-mail address; and if not, obtaining an expanded version of the entity's primitive e-mail address that includes the domain of a user of the client machine and applying a second subcriterion to determine whether any of the entries in the address book includes a primitive e-mail address that matches the expanded version of the entity's primitive e-mail address.
12. The method of claim 10 in which the e-mail address of the entity includes a common name and at least some of the entries in the address book include common names, each with at least one of a first name and a last name and in which the step of applying a likely match criterion comprises: if a first name and a last name can be extracted from the entity's common name based on punctuation, applying a third subcriterion to determine whether any of the entries in the address book includes a first name that matches the entity's first name or a last name that matches the entity's last name; and if not, applying a fourth subcriterion to determine whether any of the entries in the address book includes a first name that matches the entity's common name and, if not, applying a fifth subcriterion to determine whether any of the entries in the address book includes a last name that matches the entity's common name.
13. The method of claim 10 in which the step of applying a likely match criterion further comprises: comparing entries that satisfy the likely match criterion to find any pairs of duplicate entries; and including only one of any pair of duplicate entries in the set of one or more matching entries.
14. A server machine for presenting information through client machines that include display devices, the server machine comprising: a processor; and connecting circuitry for connecting the processor to a user's client machine that includes a display device; the processor operating to: receive an e-mail item in which appears a set of one or more included e-mail addresses; automatically insert, into a display version of the e-mail item, a selectable link for a particular e-mail address from the set of included e-mail addresses, wherein the particular e-mail address for which the selectable link is inserted is an e- mail address of an entity; transfer the display version of the e-mail item to a client machine; receive a signal from the client machine indicating user selection of the selectable link; and in response to the signal, perform the steps of identifying, from address book information accessible to the server machine, a set of one or more matching entries, each matching entry in the set being for an entity that is likely to be the entity whose e-mail address has the selectable link; and transferring an information display to the client machine, the information display providing access to address book information from each entry in said set of one or more matching entries.
15. A computer-readable medium carrying instructions for operating a server machine to present information through client machines that include display devices, the instructions including instructions for performing the steps of: receiving, at the server machine, an e-mail item in which appears a set of one or more included e-mail addresses; automatically inserting, into a display version of the e-mail item, a selectable link for a particular e-mail address from the set of included e-mail addresses, wherein the particular e-mail address for which the selectable link is inserted is an e- mail address of an entity; transferring the display version of the e-mail item to a client machine; receiving a signal from the client machine indicating user selection of the selectable link; and in response to the signal, performing the steps of identifying, from address book information accessible to the server machine, a set of one or more matching entries, each matching entry in the set being for an entity that is likely to be the entity whose e-mail address has the selectable link; and transferring an information display to the client machine, the information display providing access to address book information from each entry in said set of one or more matching entries.
16. The computer-readable medium of Claim 15 wherein the step of transferring an information display to the client machine includes transferring an information display that provides access to all available address book information in each entry in said set of one or more matching entries.
17. The computer-readable medium of claim 15 in which the information display includes all available address book information for each entry in the set of one or more matching entries.
18. The computer-readable medium of claim 17 in which an entry in the set of one or more matching entries is for an individual and the address book information in the information display includes the individual's first name and surname, at least one telephone number, and at least one e-mail address.
19. The computer-readable medium of claim 17 in which an entry in the set of one or more matching entries is for an entity that has a telephone number and the address book information in the information display includes a selectable item for requesting a telephone call to the entity's telephone number.
20. The computer-readable medium of claim 19 in which the entity's telephone number is for voice communications.
21. The computer-readable medium of claim 19 in which the entity's telephone number is for facsimile transmissions.
22. The computer-readable medium of claim 15 in which an entry in the set of one or more matching entries is for an entity that has an e-mail address and the address book information in the information display includes a selectable item for requesting that an e-mail message be sent to the entity's e-mail address.
23. The computer-readable medium of claim 15 in which an entry in the set of one or more matching entries is for an entity that has a calendar stored on the server machine and the address book information in the information display includes a selectable item for requesting scheduling of an appointment on the entity's calendar.
24. The computer-readable medium of claim 15 in which the signal from the client machine includes address information about the e-mail address of the entity and in which the step of identifying a set of one or more matching entries comprises: applying a likely match criterion to the address information from the signal and the address book information in the entries to obtain the set of one or more matching entries; and using the set of one or more matching entries to produce the information display.
25. The computer-readable medium of claim 24 in which the e-mail address of the entity includes a primitive e-mail address and at least some of the entries in the address book include primitive e-mail addresses and in which the step of applying a likely match criterion comprises: if the entity's primitive e-mail address includes an "@" symbol, applying a first subcriterion to determine whether any of the entries in the address book includes a primitive e-mail address that is an exact match of the entity's primitive e-mail address; and if not, obtaining an expanded version of the entity's primitive e-mail address that includes the domain of a user of the client machine and applying a second subcriterion to determine whether any of the entries in the address book includes a primitive e-mail address that matches the expanded version of the entity's primitive e-mail address.
26. The computer-readable medium of claim 24 in which the e-mail address of the entity includes a common name and at least some of the entries in the address book include common names, each with at least one of a first name and a last name and in which the step of applying a likely match criterion comprises: if a first name and a last name can be extracted from the entity's common name based on punctuation, applying a third subcriterion to determine whether any of the entries in the address book includes a first name that matches the entity's first name or a last name that matches the entity's last name; and if not, applying a fourth subcriterion to determine whether any of the entries in the address book includes a first name that matches the entity's common name and, if not, applying a fifth subcriterion to determine whether any of the entries in the address book includes a last name that matches the entity's common name.
27. The computer-readable medium of claim 24 in which the step of applying a likely match criterion further comprises: comparing entries that satisfy the likely match criterion to find any pairs of duplicate entries; and including only one of any pair of duplicate entries in the set of one or more matching entries.
PCT/US2000/025884 1999-09-20 2000-09-20 Providing address book information when a link for an address in e-mail is selected WO2001022291A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU77069/00A AU7706900A (en) 1999-09-20 2000-09-20 Providing address book information when a link for an address in e-mail is selected

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US15502499P 1999-09-20 1999-09-20
US60/155,024 1999-09-20
US09/652,761 US6360252B1 (en) 1999-09-20 2000-08-31 Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient
US09/652,761 2000-08-31
US66543800A 2000-09-19 2000-09-19
US09/665,438 2000-09-19

Publications (2)

Publication Number Publication Date
WO2001022291A2 true WO2001022291A2 (en) 2001-03-29
WO2001022291A3 WO2001022291A3 (en) 2003-09-25

Family

ID=27387665

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/025884 WO2001022291A2 (en) 1999-09-20 2000-09-20 Providing address book information when a link for an address in e-mail is selected

Country Status (2)

Country Link
AU (1) AU7706900A (en)
WO (1) WO2001022291A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2449183A (en) * 2007-05-11 2008-11-12 Hula Holdings Llc Using a replaceable token to insert content into electronic communications, the token pointing to the location of the content.
US7603435B2 (en) 2006-11-15 2009-10-13 Palm, Inc. Over-the-air device kill pill and lock
US8135798B2 (en) 2006-11-15 2012-03-13 Hewlett-Packard Development Company, L.P. Over-the-air device services and management
US9037685B2 (en) 2006-11-15 2015-05-19 Qualcomm Incorporated Intelligent migration between devices having different hardware or software configuration

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483352A (en) * 1992-08-27 1996-01-09 Fujitsu Limited Computer able to link electronic mail functions with telephone functions
WO1998056159A1 (en) * 1997-06-03 1998-12-10 Infogear Technology Corporation Method and apparatus for iconifying and automatically dialing telephone numbers which appear on a web page
US5859973A (en) * 1996-08-21 1999-01-12 International Business Machines Corporation Methods, system and computer program products for delayed message generation and encoding in an intermittently connected data communication system
EP0930593A1 (en) * 1994-09-27 1999-07-21 Sony Corporation Paging
US5944787A (en) * 1997-04-21 1999-08-31 Sift, Inc. Method for automatically finding postal addresses from e-mail addresses

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5483352A (en) * 1992-08-27 1996-01-09 Fujitsu Limited Computer able to link electronic mail functions with telephone functions
EP0930593A1 (en) * 1994-09-27 1999-07-21 Sony Corporation Paging
US5859973A (en) * 1996-08-21 1999-01-12 International Business Machines Corporation Methods, system and computer program products for delayed message generation and encoding in an intermittently connected data communication system
US5944787A (en) * 1997-04-21 1999-08-31 Sift, Inc. Method for automatically finding postal addresses from e-mail addresses
WO1998056159A1 (en) * 1997-06-03 1998-12-10 Infogear Technology Corporation Method and apparatus for iconifying and automatically dialing telephone numbers which appear on a web page

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7603435B2 (en) 2006-11-15 2009-10-13 Palm, Inc. Over-the-air device kill pill and lock
US8135798B2 (en) 2006-11-15 2012-03-13 Hewlett-Packard Development Company, L.P. Over-the-air device services and management
US8903945B2 (en) 2006-11-15 2014-12-02 Qualcomm Incorporated Over the air services for mobile devices
US9037685B2 (en) 2006-11-15 2015-05-19 Qualcomm Incorporated Intelligent migration between devices having different hardware or software configuration
GB2449183A (en) * 2007-05-11 2008-11-12 Hula Holdings Llc Using a replaceable token to insert content into electronic communications, the token pointing to the location of the content.

Also Published As

Publication number Publication date
AU7706900A (en) 2001-04-24
WO2001022291A3 (en) 2003-09-25

Similar Documents

Publication Publication Date Title
US6934767B1 (en) Automatically expanding abbreviated character substrings
US7293074B1 (en) Performing server actions using template with field that can be completed without obtaining information from a user
US7269405B2 (en) System and method for proxy-enabling a wireless device to an existing IP-based service
CN100568235C (en) Be used to carry out instant messaging client computer and the method that project is shared
US6741855B1 (en) Method and apparatus for remotely managing data via a mobile device
EP1676387B1 (en) Schema hierarchy for electronic messages
US6610105B1 (en) Method and system for providing resource access in a mobile environment
US6487189B1 (en) Mobile e-mail document transaction service
US6993559B2 (en) System, method, apparatus and computer program product for operating a web site by electronic mail
US20020049858A1 (en) Software architecture for wireless data and method of operation thereof
US20020083093A1 (en) Methods and systems to link and modify data
EP1562347B1 (en) Methods and apparatus for utilizing user software to communicate with network-resident services
US20050198124A1 (en) System and method for embedded instant messaging collaboration
JP2002049515A (en) Single click data synchronization of public and private data
US10289294B2 (en) Content selection widget for visitors of web pages
AU2003264604A1 (en) Dynamic Collaboration Assistant
US20020091775A1 (en) System and method for universal email
US20040193694A1 (en) Application gateway systems
US7493374B2 (en) System periodically retrieving and processing information from multiple network accounts and presenting to user through a common account
US20060235945A1 (en) Software architecture for wireless data and method of operation thereof
US7640550B1 (en) Context sensitive contact broker
WO2001022291A2 (en) Providing address book information when a link for an address in e-mail is selected
US20040255043A1 (en) Data transmission architecture for secure remote access to enterprise networks
WO2001022290A2 (en) Automatically expanding abbreviated character substrings
US20030206200A1 (en) Bar communication

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP