throbber
(12) United States Patent
`Bates et al.
`
`US006247043B1
`US 6,247,043 B1
`Jun. 12, 2001
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54) APPARATUS, PROGRAM PRODUCTS AND
`METHODS UTILIZING INTELLIGENT
`CONTACT MANAGEMENT
`
`Primary Examiner—Paul V. Kulik
`(74) Attorney, Agent, or Firm—Wood, Herron & Evans,
`L.L.P.
`
`(75) Inventors: Cary Lee Bates; Paul Reuben Day,
`both of Rochester, MN (US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( * ) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/096,243
`(22) Filed:
`Jun. 11, 1998
`
`(51) Int. Cl.7 .................................................... .. G06F 19/00
`(52) US. Cl. ................ ..
`709/200; 709/206
`(58) Field of Search ................................... .. 709/203, 206,
`709/200; 707/3—5, 10
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,870,744 * 2/1999 Sprague ................................. .. 707/9
`5,913,032 * 6/1999 Schwartz et al. .
`709/213
`
`5,999,932 * 12/1999 Paul . . . . . . . . . . . . . . . . . .
`
`. . . . .. 707/10
`
`6,026,396 * 2/2000 Hall ........................................ .. 707/4
`
`OTHER PUBLICATIONS
`
`Robert Kass et al., “Intelligent Assistance for the Commu
`nication of Information in Large Organizations,” Proceed
`ings of the Eighth Conference on Arti?cial Intelligence for
`Application CAIA, pp. 171—178, 1992*
`Thomas Malone et al., “The Information Lens: An Intelli
`gent System for Information Sharing and Coordination,”
`(M.H. Olsen
`Technological Support for Work Group
`Collaboration, pp. 65—88, 1989*
`
`(57)
`
`ABSTRACT
`
`Apparatus, program products, and methods implement vari
`ous intelligent contact management operations to improve
`the productivity of users of electronic messaging systems
`and the like. To perform an intelligent name lookup, for
`example, a subset of the users in a contact database that meet
`a predetermined search criteria is identi?ed, and a favored
`user is selected therefrom based upon a predetermined
`af?nity criteria. Also, the automated addition of neW entries
`to a contact database is supported by accumulating the
`number of contacts betWeen a ?rst user and a second user,
`With a neW entry associated With the second user added to
`the contact database associated With the ?rst user in response
`to the number of contacts betWeen the ?rst and second users
`exceeding a predetermined threshold. The automated
`addressing of electronic messages is also supported by
`determining, in response to a ?rst user addressing an elec
`tronic message to a second user, Whether the second user is
`a member of an electronic messaging group that de?nes a
`plurality of member users, and if so, to address the electronic
`message to at least one additional member user in the
`electronic messaging group. The automated creation of
`electronic messaging groups is also supported by addressing
`an electronic message to a plurality of recipient users in
`response to user input, and automatically creating a neW
`electronic messaging group including the plurality of recipi
`ent users. Furthermore, the automated updating of electronic
`messaging groups is supported by addressing an electronic
`message to an electronic messaging group including a
`plurality of member users in response to user input, selec
`tively updating an address list for the electronic message in
`response to user input, and selectively updating the elec
`tronic messaging group based upon the updates to the
`address list.
`
`* cited by examiner
`
`8 Claims, 9 Drawing Sheets
`
`152
`
`180
`
`Auto-“add
`Entry
`
`ls count field
`for name >
`threshold?
`
`in local
`CDB?
`
`Copy entry for name
`to local CDB
`
`GOOGLE INC. 1004
`
`1
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 1 0f 9
`
`US 6,247,043 B1
`
`30
`
`User
`Input
`--~__
`Display
`V/
`34
`
`38
`
`31
`
`4
`
`32
`
`42
`
`processor _
`
`Memory
`_
`I
`I/
`Contact
`Communlcatlon
`Database (CDB)
`App|ication(s)
`40 +
`Operating System
`
`36
`
`_,
`/
`+
`Mass Storage
`
`Network(s)
`
`2
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 2 0f 9
`
`US 6,247,043 B1
`
`Master
`
`52
`
`Server
`
`Messaging
`Manager
`
`Server
`
`Messaging
`Manager
`
`80
`\
`\
`
`i
`
`User
`Name
`
`82
`
`/
`‘Group \
`
`86
`Priority
`
`_
`
`Flg. 4
`
`Address
`
`Next ‘ M
`
`Location lD‘s/
`Function lD's
`*
`
`K
`84
`
`90
`v Members \
`/'
`‘ 2 /
`j V
`Member
`88
`
`——m___
`Groups
`\
`
`e Grou
`82 / p
`
`*
`
`Next _
`
`*
`
`Group Flag “J81
`
`*
`*
`
`*
`
`, Next ~
`
`90
`
`,
`Member
`
`*
`
`:
`
`j
`
`91
`
`Next
`
`3
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 3 0f 9
`
`US 6,247,043 B1
`
`78
`\ Name
`92/’_“Doe, Jane
`Ffublic, John Q.
`
`C‘
`Count Location/Functionai ID's
`3
`Rochester, Engineer
`i 5
`San Jose, Lawyer
`\
`
`.1
`
`96
`
`74
`
`Flg. 5
`
`MAIL APPLICATION
`Main
`
`100
`\ Get event
`
`4/110
`
`Perform Partial
`Name Lookup
`/112
`Send/Receive
`
`Message
`
`Senq/
`Recelve
`Message?
`
`-
`
`FIQ- 6
`
`Compose
`Message?
`
`114
`’ Compose “/
`Message
`
`108
`Handle other /
`mail events
`
`155
`\ISMII
`156\
`Smith, Fred
`_
`_
`Fig. 8
`SmIIIey, Bill
`/ Smith, Stephanie
`Smith,Aaron
`
`y
`
`1
`
`T
`
`158
`
`\
`SM'W
`
`59
`1
`
`Flg' 9
`
`4
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 4 0f 9
`
`US 6,247,043 B1
`
`-
`
`Flg. 7
`
`110
`\T Perform Partial
`Name Lookup
`
`120
`\ Clear Search
`Criteria
`
`/
`
`WW’_W_‘_>_M_M_AM__A___~*W Wait for additional
`l
`input from user
`
`124_
`
`125
`
`Accept
`Displayed
`Name?
`no
`Update search
`criteria
`
`122
`
`142
`
`Contact
`
`126
`
`__._
`
`\ Build list of entries
`matching search criteria
`130
`from local CDB
`\
`_l%—_
`Build list of entries
`yes
`matching search criteria'<—
`from global CDB
`
`128
`
`—yeS/ist no
`<
`empty?
`/
`132
`
`~
`
`142
`
`is,
`
`no
`134
`Determine affinity /
`rank for each
`entry in list based
`on selected
`affinity criteria
`l 136
`Sort list according /
`to affinity rank for
`each entry in list
`
`Display most __
`favored entry
`
`no
`
`l
`
`138
`
`Multiple
`names
`enabled?
`yes
`
`*
`
`Display top N /140
`favored entries
`
`5
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 5 0f 9
`
`US 6,247,043 B1
`
`142
`
`contact type
`enabled?
`
`’
`
`ls entry in
`contact table
`\ for name?
`yes
`
`no Add entry to
`contact table
`for name
`
`Increment count field
`for name by scaled value
`based on contact type
`L
`Auto-add K152
`Entry
`
`150
`
`152
`
`DONE
`
`Fig. 12
`
`Auto-add
`Entry
`
`ls count field
`for name >
`threshold?
`
`180
`
`Is name
`in local
`CDB?
`no
`
`yes
`
`184
`
`Copy entry for name
`to local CDB
`
`—
`
`DONE
`
`Send/Receive
`Message
`
`\ Connect to
`messaging
`manager
`
`162
`
`For each
`message in
`out box?
`
`done
`
`16
`next
`4\ Send
`Message
`l
`Maintain
`Groups
`
`166
`
`clone
`
`For each
`addressee in
`message?
`
`142
`\“ Update
`Contact
`
`170\ Receive
`messages
`
`done
`
`142
`
`For each
`received
`message?
`
`next
`Update
`Contact
`
`168
`
`172
`
`Disconnect
`from messaging
`
`174
`
`manager @@
`
`6
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 6 0f 9
`
`US 6,247,043 B1
`
`114
`
`_%
`
`Compose
`Message
`
`110
`\ Perform Partial
`Name Lookup
`
`no
`
`_
`
`F lg. 13
`
`_JL
`190\ Auto-
`address
`enabled?
`
`yes
`192
`\ Auto
`Address
`
`I
`194
`\ Edit and
`compose
`message
`J
`196
`\ Put message
`in out box
`
`DONE
`
`Group Found!
`
`230
`
`I
`
`x
`
`User ‘Smith, John‘ is a member of the
`//”
`group ‘Java Team‘
`232
`
`Do you want to address the message
`to the other members of the group?
`
`/4>Accept
`
`User
`
`OK
`
`—
`
`-
`
`Flg. 15
`/ 234
`
`)40
`
`242
`
`236 / Publlc, John Q.
`
`-
`
`RejectA" _r//
`
`244
`
`238 W’
`
`246
`Save Group __J
`
`248
`Save As... ~J/
`
`7
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 7 0f 9
`
`US 6,247,043 B1
`
`192
`
`\[Auto-Address
`
`200
`
`/ls accepted
`name from local
`CO8?
`
`Fig. 14
`
`is accepted
`name a primary
`addressee?
`
`Done
`
`204
`
`yes
`Retrieve group(s) for
`accepted name
`
`206
`__J
`\z/GTroup list Yes
`xempty?
`
`n

`Auto-group
`<add enabled?
`yes
`
`L___
`
`210
`
`Sort group list
`by priority
`
`212
`\ Multiple
`names
`enabled?
`
`n°
`
`216
`
`218
`\
`Add users from highest
`priority group as CC's
`if group flags not set,
`otherwise add as primary
`
`214
`/
`Display sorted
`group list and
`allow user to
`select group(s)
`
`Add users from
`selected group(s)
`as CC's if group flags
`not set, otherwise
`add as primary
`
`220
`
`Display Group
`Found dialog box
`for each group
`and build list of
`accepted names
`
`Add selected users
`as CC's if group flags
`not set, otherwise
`add as primary
`
`222
`
`8
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 8 0f 9
`
`US 6,247,043 B1
`
`166
`
`maintain
`Groups
`
`h“
`
`250
`
`Build message group
`from list of addressees
`
`251 ~
`For each
`addressee in
`message?
`next
`no /l—s name
`in local
`CDB?
`Fmessage
`
`done
`
`252
`
`254
`
`Fig. 16
`
`group already
`in group list
`for addressee?
`
`258
`
`lnc\rement yes
`
`‘_ priority for _
`r u
`9 o p
`
`Add message
`group to
`group list
`
`256
`
`300
`
`MESSAGING MANAGER
`
`[/Monitor Location Contact]
`
`'
`
`Flg' 18
`
`302
`
`Message
`sent from this
`location?
`
`306
`304
`Yes Determine J Update affinities /
`- destination
`for destination
`looation(s)
`location(s)
`
`no
`308
`\ Message
`sent to this
`location?
`
`310
`yes Determine 1 Update affinity
`source
`for source
`location
`location
`
`312
`
`314
`
`"0
`
`Retrieve
`affinities?
`
`no
`
`316
`Return ordered _/
`yes _ list of affinities
`for monitored
`locations
`
`9
`
`

`
`U.S. Patent
`
`Jun. 12, 2001
`
`Sheet 9 0f 9
`
`US 6,247,043 B1
`
`260
`
`Process Group
`Found Dialog
`
`.
`Flg
`
`262
`
`Wait for event
`
`264
`
`268
`
`274
`
`266
`_ Update local /
`CDB entry
`
`n°
`save AS’) Yes _ Get name of
`'
`group
`
`no—
`
`272
`/270 Add entry to /
`local CO8 for
`group and set
`group flag
`
`RETURN
`selected names
`
`276
`
`RETURN
`lmtames
`
`284
`
`Handle other
`dlalog box events
`
`‘
`
`10
`
`

`
`US 6,247,043 B1
`
`1
`APPARATUS, PROGRAM PRODUCTS AND
`METHODS UTILIZING INTELLIGENT
`CONTACT MANAGEMENT
`
`FIELD OF THE INVENTION
`
`The invention is generally related to computers and
`computer software. More speci?cally, the invention is
`related to contact management in electronic messaging
`systems and the like.
`
`BACKGROUND OF THE INVENTION
`
`Electronic messaging has dramatically changed the man
`ner in Which people communicate With one another in the
`digital age. Electronic messaging systems, for example,
`permit users on different computers to communicate With
`one another by transmitting information such as text mes
`sages and the like betWeen the different computers. Elec
`tronic messaging is often used to permit employees in a
`company to communicate With other employees connected
`to the company’s internal netWork, regardless of Whether
`they are in the same or another company facility. Also, due
`to the explosive groWth of the Internet, electronic messaging
`has noW become a relatively common Way for anyone With
`a computer to communicate With other computer users all
`over the World.
`In most electronic messaging systems, users are assigned
`user identi?ers, or “user id’s” that uniquely identify each
`user. Furthermore, each user is typically assigned one or
`more “mailboxes,” (also referred to as “post of?ce boxes”)
`that have a unique address so that any user Wishing to send
`an electronic message (often referred to as an “e-mail”) to
`another user can do so by addressing the electronic message
`to the mailbox assigned to that user.
`Many electronic messaging systems furthermore keep
`electronic “address books,” Which typically include contact
`databases Within Which are stored records of the mailbox
`addresses for different users. Therefore, for example, a user
`Wishing to send an electronic message to a user named John
`Smith, Whose mailbox address is “smithj @xyZcom”, is then
`able to search through an address book to ?nd an entry for
`“Smith, John”, rather than having to remember a relatively
`cryptic mailbox address that is assigned to that user.
`Some address books also store additional information
`about users, such as telephone numbers, mailing addresses,
`job titles, and other information that is more or less unrelated
`to electronic messaging. Moreover, such address books have
`also been integrated With other personal information man
`agement (PIM) tools such as electronic calendars, to-do lists,
`project planners, and meeting scheduling tools. One type of
`electronic messaging system, knoWn as “groupware”, tightly
`integrates all of these functions together to enable users that
`Work together to collaborate more effectively With one
`another.
`An address book is often referred to as a “contact
`manager,” as a user is capable of using an address book to
`maintain a Wide variety of information about many different
`people (referred to in this context as “contacts”). As the use
`of electronic messaging has become more Widespread, many
`computer users send and receive more electronic messages
`to and from a larger number of other computer users.
`Contact management therefore becomes more important for
`these users so that they can accurately keep track of other
`users With Whom they correspond.
`Particularly in many groupWare systems, a global or
`master address book is maintained on a central computer for
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`2
`shared access by all users of such a system. A global address
`book typically includes information Rout all users of the
`system, and may include hundreds or thousands of records
`for larger organiZations.
`Any individual user often may also keep a local address
`book that contains only the users With Which that user
`regularly corresponds. HoWever, Whenever that user Wishes
`to correspond With another user that is not in his or her local
`address book, the user often must search through the global
`address book to ?nd the mailbox address for the other user
`(a process referred to as “name lookup”), Which can be
`relatively time consuming in a large global address book that
`is shared by many users.
`Some systems also permit a process knoWn as “partial”
`name lookup to permit a search to be performed concur
`rently With a user typing in the name of a user to locate in
`an address book. Often, the partial name lookup processes
`searches ?rst for matching entries in a use’s local address
`book, and if none are found, searches for matching entries in
`a global address book. For example, as a user types in the
`name “Smith, John”, a partial name lookup process Would
`retrieve all address book entries that start With a user name
`“s” after the user typed the letter “s”, then retrieve only the
`address book entries that start With the user name “sm” after
`the user typed the letter “m”, etc. Eventually, the user Would
`be left With a relatively manageable list of entries to select
`from as the intended recipient of an electronic message.
`Particularly With large global address books, partial name
`lookup can be someWhat time consuming, so it is often
`desirable to locate a desired recipient With a minimum
`number of input characters. HoWever, one problem associ
`ated With the search processes for conventional address
`books is that such processes typically order search results
`alphabetically. Therefore, for example, if a user is attempt
`ing to locate the entry for “Smith, John” in an address book
`that contains entries for users such as “Smith, Aaron”,
`“Smith, Betty”, “Smith, Fred”, “Smith, John”, “Smith,
`Joseph”, and “Smith, Stephanie”, a user typing in the letters
`“smith” Would be presented With an alphabetically-arranged
`list of these users.
`The searching user may have Worked With John Smith
`many times before, and may have never even met any of the
`other users. Or, for example, the searching user and John
`Smith may be located in the same office building, or may
`both be engineers, While the other users are located in other
`facilities or are managers, assembly line Workers, laWyers,
`etc. Nonetheless, the searching user still receives an alpha
`betical list, and he or she must scan doWn through the list of
`users before selecting the desired entry. Conventional elec
`tronic messaging systems lack any capability to suggest any
`particular entry from a list of search results on any basis
`other than alphabetically.
`Some electronic messaging systems also provide the
`ability to automatically add an entry to a user’s local address
`book in response to receiving an electronic message from
`another user. HoWever, many users receive literally hun
`dreds of electronic messages a day, With many coming from
`other users that a particular user has no intention of ever
`corresponding With again. Creating an entry for each and
`every user that sends a message can signi?cantly clutter up
`a user’s local address book and make it more dif?cult for the
`user to locate speci?c entries. Moreover, a user may be
`required to periodically sWeep through his or her local
`address book and remove all useless entries—a process that
`can be Wasteful and time consuming.
`Many electronic messaging systems further permit users
`to be grouped together into “groups” that can be separately
`
`11
`
`

`
`US 6,247,043 B1
`
`3
`named and utilized to send electronic messages to multiple
`users at once. However, management of groups can become
`someWhat burdensome, as a user is typically required to
`manually create the groups by locating and adding each
`desired user to the groups. Furthermore, unless the user can
`remember the particular name assigned to a group, the user
`must either perform a search for the group or manually
`address an electronic message to each member of the group
`individually. These additional steps often distract a user and
`consume additional time, thereby decreasing a user’s pro
`ductivity.
`It should therefore be appreciated that the contact man
`agement capabilities of many conventional electronic mes
`saging systems are signi?cantly limited and can often have
`a negative impact on user productivity. Therefore, a signi?
`cant need has arisen for a manner of improving electronic
`messaging systems to provide for more intelligent and useful
`contact management.
`
`SUMMARY OF THE INVENTION
`The invention addresses these and other problems asso
`ciated With the prior art by providing apparatus, program
`products, and methods that implement various intelligent
`contact management operations to improve the productivity
`of users of electronic messaging systems and the like.
`Consistent With one aspect of the invention, intelligent
`name lookup functionality may be supported to facilitate
`location of a user from a contact database such as an address
`book or the like. In particular, a particular user may be
`suggested among multiple possible candidates by recogniZ
`ing that some users may have a greater “affinity” to a
`particular user than to other users, and thus, may be more
`likely to be the intended subjects of a name lookup opera
`tion. For example, tWo users that have corresponded With
`one another in the past may be considered to have a greater
`af?nity than tWo users that have not. Similarly, tWo users that
`Work in the same facility or in the same building, or that both
`have the same type of job, likely have a greater affinity than
`tWo users that are located in other facilities or that perform
`vastly different jobs. By identifying one or more of these
`characteristics of possible candidates, often a relatively
`intelligent suggestion may be made as to Which of such
`candidates is the likely lookup target for a particular user.
`Intelligent name lookup consistent With the invention
`identi?es a subset of the users in a contact database that meet
`a predetermined search criteria. A favored user is selected
`therefrom based upon a predetermined af?nity criteria.
`Furthermore, a display representation associated With the
`favored user is displayed. As a result, a user may be
`presented With a suggested user among the multiple identi
`?ed users, thereby providing more helpful search results and
`potentially shortening the time required to locate a particular
`user stored in the contact database.
`Consistent With another aspect of the invention, intelli
`gent contact database management functionality may also be
`supported to facilitate the automated addition of neW entries
`to the contact database for a given user. In particular,
`consistent With the invention the number of contacts
`betWeen a ?rst user and a second user are accumulated, and
`a neW entry associated With the second user is added to the
`contact database associated With the ?rst user in response to
`the number of contacts betWeen the ?rst and second users
`exceeding a predetermined threshold. It is anticipated that
`requiring a threshold to be exceeded prior to automatically
`adding any entry in a contact database may result in a higher
`probability that such added entries are meaningful and
`helpful to a user.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`Consistent With another aspect of the invention, additional
`functionality may be supported to facilitate the use of
`electronic messaging groups. In particular, automated
`addressing of electronic messages may be provided,
`Whereby, in response to a ?rst user addressing an electronic
`message to a second user, a determination is made Whether
`the second user is a member of an electronic messaging
`group that de?nes a plurality of member users. If the second
`user is a member of the electronic messaging group, the
`electronic message is addressed to at least one additional
`member user in the electronic messaging group.
`Consistent With a further aspect of the invention, addi
`tional functionality may be supported to facilitate the man
`agement of electronic messaging groups. In particular, the
`automated creation of electronic messaging groups may be
`provided, Whereby an electronic message is addressed to a
`plurality of recipient users in response to user input, and a
`neW electronic messaging group is automatically created
`including the plurality of recipient users. Also, the auto
`mated updating of electronic messaging groups may be
`provided, Whereby an electronic message is addressed to an
`electronic messaging group including a plurality of member
`users in response to user input, an address list for the
`electronic message is selectively updated in response to user
`input, and the electronic messaging group is selectively
`updated based upon the updates to the address list.
`These and other advantages and features, Which charac
`teriZe the invention, are set forth in the claims annexed
`hereto and forming a further part hereof. HoWever, for a
`better understanding of the invention, and of the advantages
`and objectives attained through its use, reference should be
`made to the DraWings, and to the accompanying descriptive
`matter, in Which there is described exemplary embodiments
`of the invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a computer system consistent
`With the invention.
`FIG. 2 is a block diagram of an exemplary hardWare and
`softWare environment consistent With the invention.
`FIG. 3 is a block diagram illustrating the primary softWare
`components in an electronic messaging system consistent
`With the invention.
`FIG. 4 is a block diagram of a contact database entry from
`one of the contact databases in FIG. 3.
`FIG. 5 is a block diagram of a contact table from one of
`the contact databases in FIG. 3.
`FIG. 6 is a ?oWchart illustrating the program How of a
`main routine executed by a mail application in one of the
`client computers of FIG. 3.
`FIG. 7 is a ?oWchart illustrating the program How of the
`partial name lookup routine of FIG. 6.
`FIG. 8 is a block diagram illustrating an exemplary
`multiple entry display representation of a favored entry
`consistent With the invention.
`FIG. 9 is a block diagram illustrating an exemplary single
`entry display representation of a favored entry consistent
`With the invention.
`FIG. 10 is a ?oWchart illustrating the program How of the
`update contact routine of FIG. 7.
`FIG. 11 is a ?oWchart illustrating the program How of the
`send/receive message routine of FIG. 6.
`FIG. 12 is a ?oWchart illustrating the program How of the
`auto-add entry routine of FIG. 10.
`
`12
`
`

`
`US 6,247,043 B1
`
`5
`FIG. 13 is a ?owchart illustrating the program ?ow of the
`compose message routine of FIG. 6.
`FIG. 14 is a ?owchart illustrating the program ?ow of the
`auto-address routine of FIG. 13.
`FIG. 15 is a block diagram of a group found dialog box
`used by the autoaddress routine of FIG. 14.
`FIG. 16 is a ?owchart illustrating the program ?ow of the
`maintain groups routine of FIG. 11.
`FIG. 17 is a ?owchart illustrating the program ?ow of a
`process dialog box routine for the group found dialog box of
`FIG. 15.
`FIG. 18 is a ?owchart illustrating the program ?ow of a
`monitor location contacts routine executed by a messaging
`manager in one of the servers of FIG. 3.
`
`DETAILED DESCRIPTION
`
`Hardware and Software Environment
`
`Turning to the Drawings, wherein like numbers denote
`like parts throughout the several views, FIG. 1 illustrates a
`computer system 10 consistent with the invention. Computer
`system 10 is illustrated as a networked computer system
`including one or more client computers 12, 13, 14 and 20
`(e.g., desktop or PC-based computers, workstations, etc.)
`coupled to one or more servers 16, 17 (e.g., PC-based
`servers, minicomputers, midrange computers, mainframe
`computers, etc.) through a network 18. Network 18 may
`represent practically any type of networked interconnection,
`including but not limited to local-area, wide-area, wireless,
`and public networks (e.g., the Internet), and combinations
`thereof. Moreover, any number of computers and other
`electronic devices may be networked through network.
`Client computer 20, which may be similar to computers
`12, 14, may include a central processing unit (CPU) 21; a
`number of peripheral components such as a computer dis
`play 22; a storage device 23; a printer 24; and various input
`devices (e.g., a mouse 26 and keyboard 27), among others.
`Server computers 16 and 17 may be similarly con?gured,
`albeit typically with greater processing performance and
`storage capacity, as is well known in the art.
`FIG. 2 illustrates in another way an exemplary hardware
`and software environment for an apparatus 30 consistent
`with the invention. For the purposes of the invention,
`apparatus 30 may represent practically any type of
`computer, computer system or other programmable elec
`tronic device, including a client computer (e.g., similar to
`computers 12, 13, 14 and 20 of FIG. 1), a server computer
`(e.g., similar to servers 16 and 17 of FIG. 1), a portable
`computer, an embedded controller, etc. Apparatus 30 may be
`coupled in a network as shown in FIG. 1, or may be a
`stand-alone device in the alternative. Apparatus 30 will
`hereinafter also be referred to as a “computer”, although it
`should be appreciated the term “apparatus” may also include
`other suitable programmable electronic devices consistent
`with the invention.
`Computer 30 typically includes at least one processor 31
`coupled to a memory 32. Processor 31 may represent one or
`more processors (e.g., microprocessors), and memory 32
`may represent the random access memory (RAM) devices
`comprising the main storage of computer 30, as well as any
`supplemental levels of memory, e.g., cache memories, non
`volatile or backup memories (e.g., programmable or ?ash
`memories), read-only memories, etc. In addition, memory
`32 may be considered to include memory storage physically
`located elsewhere in computer 30, e.g., any cache memory
`
`6
`in a processor 31, as well as any storage capacity used as a
`virtual memory, e.g., as stored on a mass storage device 36
`or on another computer coupled to computer 30 via network
`38.
`Computer 30 also typically receives a number of inputs
`and outputs for communicating information externally. For
`interface with a user or operator, computer 30 typically
`includes one or more user input devices 33 (e.g., a keyboard,
`a mouse, a trackball, a joystick, a touchpad, and/or a
`microphone, among others) and a display 34 (e.g., a CRT
`monitor, an LCD display panel, and/or a speaker, among
`others). It should be appreciated, however, that with some
`implementations of computer 30, e.g., some server
`implementations, direct user input and output may not be
`supported by the computer.
`For additional storage, computer 30 may also include one
`or more mass storage devices 36, e.g., a ?oppy or other
`removable disk drive, a hard disk drive, a direct access
`storage device (DASD), an optical drive (e.g., a CD drive,
`a DVD drive, etc.), and/or a tape drive, among others.
`Furthermore, computer 30 may include an interface with one
`or more networks 38 (e.g., a LAN, a WAN, a wireless
`network, and/or the Internet, among others) to permit the
`communication of information with other computers
`coupled to the network. It should be appreciated that com
`puter 30 typically includes suitable analog and/or digital
`interfaces between processor 31 and each of components 32,
`33, 34, 36 and 38 as is well known in the art.
`Computer 30 operates under the control of an operating
`system 40, and executes various computer software
`applications, components, programs, objects, modules, etc.
`(e.g., communication application 42 and contact database
`44, among others). Moreover, various applications,
`components, programs, objects, modules, etc. may also
`execute on one or more processors in another computer
`coupled to computer 30 via a network 38, e.g., in a distrib
`uted or client-server computing environment, whereby the
`processing required to implement the functions of a com
`puter program may be allocated to multiple computers over
`a network.
`In general, the routines executed to implement the
`embodiments of the invention, whether implemented as part
`of an operating system or a speci?c application, component,
`program, object, module or sequence of instructions will be
`referred to herein as “computer programs”, or simply “pro
`grams”. The computer programs typically comprise one or
`more instructions that are resident at various times in various
`memory and storage devices in a computer, and that, when
`read and executed by one or more processors in a computer,
`cause that computer to perform the steps necessary to
`execute steps or elements embodying the various aspects of
`the invention. Moreover, while the invention has and here
`inafter will be described in the context of fully functioning
`computers and computer systems, those skilled in the art will
`appreciate that the various embodiments of the invention are
`capable of being distributed as a program product in a
`variety of forms, and that the invention applies equally
`regardless of the particular type of signal bearing media used
`to actually carry out the distribution. Examples of signal
`bearing media include but are not limited to recordable type
`media such as volatile and non-volatile memory devices,
`?oppy and other removable disks, hard disk drives, optical
`disks (e.g., CD-ROM’s, DVD’s, etc.), among others, and
`transmission type media such as digital and analog commu
`nication links.
`In addition, various programs described hereinafter may
`be identi?ed based upon the application for which they are
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`13
`
`

`
`US 6,247,043 B1
`
`7
`implemented in a speci?c embodiment of the invention.
`However, it should be appreciated that any particular pro
`gram nomenclature that follows is used merely for
`convenience, and thus the invention should not be limited to
`use solely in any speci?c application identi?ed and/or
`implied by such nomenclature.
`Those skilled in the art Will recognize that the exemplary
`environments illustrated in FIGS. 1 and 2 are not intended
`to limit the present invention. Indeed, those skilled in the art
`Will recognize that other alternative hardWare and/or soft
`Ware environments may be used Without departing from the
`scope of the invention.
`
`Electronic Messaging With Intelligent Contact
`Management
`As discussed above, the various embodiments of the
`invention implement several intelligent contact management
`features to improve the performance and usability of an
`electronic messaging system. One typical arrangement of an
`electronic messaging system implementation 50 is illus
`trated in greater detail in FIG. 3. Electronic messaging
`system 50 is distributed over one or more servers (e.g.,
`servers 51, 52) and one or more clients (e.g., 54, 56 and 58
`coupled to server 51, and clients 60 and 62 coupled to server
`52). Server 51 includes a messaging manager application 64
`coupled to a master contact database 66. The messaging
`manager application may be any form of server-based elec
`tronic messaging application, e.g., a mail or groupWare
`server, among others. Moreover, master contact database 66
`may be

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket