CA2673420C - Systems and methods for conveying information to an instant messaging client - Google Patents
Systems and methods for conveying information to an instant messaging client Download PDFInfo
- Publication number
- CA2673420C CA2673420C CA2673420A CA2673420A CA2673420C CA 2673420 C CA2673420 C CA 2673420C CA 2673420 A CA2673420 A CA 2673420A CA 2673420 A CA2673420 A CA 2673420A CA 2673420 C CA2673420 C CA 2673420C
- Authority
- CA
- Canada
- Prior art keywords
- client
- user
- service
- data
- customized
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000004891 communication Methods 0.000 claims abstract description 257
- 238000009877 rendering Methods 0.000 claims abstract 2
- 230000003993 interaction Effects 0.000 claims description 77
- 230000004044 response Effects 0.000 claims description 35
- 238000013475 authorization Methods 0.000 claims description 31
- 238000012544 monitoring process Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 6
- 230000010006 flight Effects 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000033001 locomotion Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 claims description 2
- 230000002085 persistent effect Effects 0.000 abstract description 9
- 238000010586 diagram Methods 0.000 description 28
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 12
- 238000000605 extraction Methods 0.000 description 10
- 230000007423 decrease Effects 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000002708 enhancing effect Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 239000000344 soap Substances 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 235000014510 cooky Nutrition 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 1
- 240000002853 Nelumbo nucifera Species 0.000 description 1
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 208000013651 non-24-hour sleep-wake syndrome Diseases 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A system, method and computer-readable medium for conveying information to clients of an instant messaging service. The system comprising an applet (116, 118) associated with a first client (126, 128) of an instant messaging service, the applet enabling a data service (146, 148) from a data source (136, 138); a communication device (120, 122, 124) associated with a second client of the instant messaging service, the second client configured to generate a request for the data service (146, 148); wherein the applet is also configured to respond to the request by rendering client-controlled information regarding the first client available for persistent conveyance to the second client, the client-controlled information comprising data related to the data service.
Description
1 TITLE: SYSTEMS AND METHODS FOR CONVEYING INFORMATION
2 TO AN INSTANT MESSAGING CLIENT
3
4 FIELD OF THE INVENTION
7 The present invention relates generally to electronic communication and, in particular, 8 to systems and methods for conveying information to clients of an instant messaging 9 service.
14 Instant messaging has become an important communications tool for millions of people worldwide. Instant messaging (or "IM") is a form of real-time communication 16 between two or more users based originally on typed text but which has since been 17 expanded to include other media such as audio and video. The data is conveyed via 18 computers connected over a network such as the Internet. Instant messaging requires 19 the use of a client program that connects to an instant messaging service and differs from e-mail in that "conversations" are then able to happen in real time.
22 In some cases, the power of instant messaging can be harnessed to deliver services to 23 users. This is done by designing artificial intelligence applications (or "applets" or 24 "bots") and registering these applets as clients of the instant messaging service.
However, rather than functioning as conversational end users, the applets provide 26 services to users at large. One example of such a service is a database search (e.g., 27 Internet search) based on a user query. In this scenario, a user who wishes to engage a 28 search engine applet first learns the identity of the instant messaging client associated 29 with the search engine applet. The user then sends an instant message containing a query to the client associated with the search engine applet, thereby invoking a 31 database search. When the database search is complete, the search engine applet 32 (which is logged in to the instant messaging service as a client) sends an instant 33 message containing the search results back to the user.
1 Similar applets can be designed to provide other services that employ instant messages to 2 inform a user of various events. However, as can be appreciated, the user may find it 3 annoying to receive updates via instant message whenever an event takes place, especially 4 when such events are likely to occur often. Similarly, if the user receives an update via instant message but then forgets the information that it conveys, the user will have difficulty 6 recalling this information, since the prior instant message conveying this information is not 7 easily accessible and may even have been erased from memory.
9 Thus, persons skilled in the art will appreciate that there is a need for improving the "user experience" associated with the conveyance of information to users of an instant messaging 11 service.
16 A first broad aspect of the present invention seeks to provide a method, comprising:
17 instantiating a first client of a messaging service, the first client providing a data service;
18 maintaining in memory a contact list for a second client of the messaging service; receiving a 19 request for the data service from the second client; as part of providing the data service, the first client retrieving data from at least one data source; including, in the contact list for the 21 second client, client-controlled information regarding the first client;
and the client-22 controlled information regarding the first client being controlled by the first client to include 23 the retrieved data.
A second broad aspect of the present invention seeks to provide a system, comprising: an 26 applet associated with a first client of a messaging service, the applet providing a data 27 service, wherein as part of the data service, the applet retrieves data from at least one data 28 source; a communication device associated with a second client of the messaging service, the 29 second client configured to generate a request for the data service; the applet being configured to respond to said request by causing client-controlled information regarding the 1 first client to be included in a contact list for the second client, the client-controlled 2 information regarding the first client including the retrieved data.
4 A third broad aspect of the present invention seeks to provide a method for execution by a first client of a messaging service, comprising: receiving and storing a client-specific address 6 associated with at least one authorized client; receiving a client-specific address associated 7 with a second client of the messaging service; determining whether the client-specific 8 address associated with the second client matches the client-specific address of at least one of 9 the at least one authorized client; obtaining data from a data source;
causing client-controlled information regarding the first client to be included in a contact list for the second client 11 when a data service associated with the first client is requested by the second client and the 12 client-specific address associated with the second client matches the client-specific address 13 of at least one of the at least one authorized client; and causing the client-controlled 14 information regarding the first client to include said data obtained from the data source.
16 A fourth broad aspect of the present invention seeks to provide a method for execution by a 17 first client of a messaging service, comprising: receiving an indication of a desire of a second 18 client of the messaging service to obtain data from a data source;
determining whether the 19 second client is authorized to obtain said data; causing client-controlled information regarding the first client to be included in a contact list for the second client when a data 21 service associated with the first client is requested by the second client; and causing the 22 client-controlled information regarding the first client to include said data only if the second 23 client is authorized to obtain said data.
A fifth broad aspect of the present invention seeks to provide a method for execution by a 26 first client of a messaging service, comprising: obtaining data from a data source; causing 27 client-controlled information regarding the first client to be included in a contact list for a 28 second client of the messaging service when a data service associated with the first client is 29 requested by the second client; causing the client-controlled information regarding the first 1 client to include said data obtained from the data source; and creating a specific address 2 associated with the first client, the specific address being unique to the second client.
4 A sixth broad aspect of the present invention seeks to provide a method for execution by a first client of a messaging service, comprising: obtaining data from a data source; causing 6 client-controlled information regarding the first client to be included in a contact list for a 7 second client of the messaging service when a data service associated with the first client is 8 requested by the second client; causing the client-controlled information regarding the first 9 client to include said data obtained from the data source; obtaining changes in the data from the data source; causing the client-controlled information regarding the first client to include 11 said changes in the data.
13 A seventh broad aspect of the present invention seeks to provide a method for execution by a 14 computing apparatus associated with a first client of a messaging service, the method comprising displaying a contact list for the first client, the contact list for the first client 16 including client-controlled information regarding a second client linked to the first client, the 17 client-controlled information regarding the second client comprising data retrieved by the 18 second client as part of a data service provided by the second client and requested by the first 19 client.
21 An eighth broad aspect of the present invention seeks to provide a method, comprising:
22 instantiating a first client of a messaging service; requesting that a second client of the 23 messaging service be linked to the first client, the second client associated with at least one 24 data service; displaying a contact list for the first client, the contact list for the first client including client-controlled information regarding the second client, a client-controlled 26 information regarding the second client including retrieved data.
28 These and other aspects and features of the present invention will now become apparent to 29 those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings.
3 In the accompanying drawings:
Fig. 1 illustrates an instant messaging architecture comprising a communication server 6 providing an instant messaging service, applet-hosting devices on which reside 7 applets, data sources storing or providing information regarding data services, and 8 communication devices associated with users, in accordance with a non-limiting 9 embodiment of the invention;
11 Fig. 2 is a message flow diagram illustrating interaction between various components 12 of the instant messaging architecture of Fig. 1, in a first example scenario applicable 13 to data services that are generic;
Fig. 3 is a message flow diagram illustrating further interaction between various 16 components of the instant messaging architecture of Fig. 1, in the first example 17 scenario considered in Fig. 2;
19 Fig. 4A is a message flow diagram illustrating interaction between various components of the instant messaging architecture of Fig. 1 and a database, in a first 21 example situation where an authorization or enrollment step is to be effected;
23 Fig. 4B is a message flow diagram illustrating interaction between various 24 components of the instant messaging architecture of Fig. 1 and a database, in a second example situation where an authorization or enrollment step is to be effected;
27 Fig. 4C is a message flow diagram illustrating interaction between various 28 components of the instant messaging architecture of Fig. 1, in a third example 29 situation where an authorization or enrollment step is to be effected;
31 Fig. 4D is a message flow diagram illustrating interaction between various 32 components of the instant messaging architecture of Fig. 1 and a payment entity, in a 33 fourth example situation where an authorization or enrollment step is to be effected;
7 The present invention relates generally to electronic communication and, in particular, 8 to systems and methods for conveying information to clients of an instant messaging 9 service.
14 Instant messaging has become an important communications tool for millions of people worldwide. Instant messaging (or "IM") is a form of real-time communication 16 between two or more users based originally on typed text but which has since been 17 expanded to include other media such as audio and video. The data is conveyed via 18 computers connected over a network such as the Internet. Instant messaging requires 19 the use of a client program that connects to an instant messaging service and differs from e-mail in that "conversations" are then able to happen in real time.
22 In some cases, the power of instant messaging can be harnessed to deliver services to 23 users. This is done by designing artificial intelligence applications (or "applets" or 24 "bots") and registering these applets as clients of the instant messaging service.
However, rather than functioning as conversational end users, the applets provide 26 services to users at large. One example of such a service is a database search (e.g., 27 Internet search) based on a user query. In this scenario, a user who wishes to engage a 28 search engine applet first learns the identity of the instant messaging client associated 29 with the search engine applet. The user then sends an instant message containing a query to the client associated with the search engine applet, thereby invoking a 31 database search. When the database search is complete, the search engine applet 32 (which is logged in to the instant messaging service as a client) sends an instant 33 message containing the search results back to the user.
1 Similar applets can be designed to provide other services that employ instant messages to 2 inform a user of various events. However, as can be appreciated, the user may find it 3 annoying to receive updates via instant message whenever an event takes place, especially 4 when such events are likely to occur often. Similarly, if the user receives an update via instant message but then forgets the information that it conveys, the user will have difficulty 6 recalling this information, since the prior instant message conveying this information is not 7 easily accessible and may even have been erased from memory.
9 Thus, persons skilled in the art will appreciate that there is a need for improving the "user experience" associated with the conveyance of information to users of an instant messaging 11 service.
16 A first broad aspect of the present invention seeks to provide a method, comprising:
17 instantiating a first client of a messaging service, the first client providing a data service;
18 maintaining in memory a contact list for a second client of the messaging service; receiving a 19 request for the data service from the second client; as part of providing the data service, the first client retrieving data from at least one data source; including, in the contact list for the 21 second client, client-controlled information regarding the first client;
and the client-22 controlled information regarding the first client being controlled by the first client to include 23 the retrieved data.
A second broad aspect of the present invention seeks to provide a system, comprising: an 26 applet associated with a first client of a messaging service, the applet providing a data 27 service, wherein as part of the data service, the applet retrieves data from at least one data 28 source; a communication device associated with a second client of the messaging service, the 29 second client configured to generate a request for the data service; the applet being configured to respond to said request by causing client-controlled information regarding the 1 first client to be included in a contact list for the second client, the client-controlled 2 information regarding the first client including the retrieved data.
4 A third broad aspect of the present invention seeks to provide a method for execution by a first client of a messaging service, comprising: receiving and storing a client-specific address 6 associated with at least one authorized client; receiving a client-specific address associated 7 with a second client of the messaging service; determining whether the client-specific 8 address associated with the second client matches the client-specific address of at least one of 9 the at least one authorized client; obtaining data from a data source;
causing client-controlled information regarding the first client to be included in a contact list for the second client 11 when a data service associated with the first client is requested by the second client and the 12 client-specific address associated with the second client matches the client-specific address 13 of at least one of the at least one authorized client; and causing the client-controlled 14 information regarding the first client to include said data obtained from the data source.
16 A fourth broad aspect of the present invention seeks to provide a method for execution by a 17 first client of a messaging service, comprising: receiving an indication of a desire of a second 18 client of the messaging service to obtain data from a data source;
determining whether the 19 second client is authorized to obtain said data; causing client-controlled information regarding the first client to be included in a contact list for the second client when a data 21 service associated with the first client is requested by the second client; and causing the 22 client-controlled information regarding the first client to include said data only if the second 23 client is authorized to obtain said data.
A fifth broad aspect of the present invention seeks to provide a method for execution by a 26 first client of a messaging service, comprising: obtaining data from a data source; causing 27 client-controlled information regarding the first client to be included in a contact list for a 28 second client of the messaging service when a data service associated with the first client is 29 requested by the second client; causing the client-controlled information regarding the first 1 client to include said data obtained from the data source; and creating a specific address 2 associated with the first client, the specific address being unique to the second client.
4 A sixth broad aspect of the present invention seeks to provide a method for execution by a first client of a messaging service, comprising: obtaining data from a data source; causing 6 client-controlled information regarding the first client to be included in a contact list for a 7 second client of the messaging service when a data service associated with the first client is 8 requested by the second client; causing the client-controlled information regarding the first 9 client to include said data obtained from the data source; obtaining changes in the data from the data source; causing the client-controlled information regarding the first client to include 11 said changes in the data.
13 A seventh broad aspect of the present invention seeks to provide a method for execution by a 14 computing apparatus associated with a first client of a messaging service, the method comprising displaying a contact list for the first client, the contact list for the first client 16 including client-controlled information regarding a second client linked to the first client, the 17 client-controlled information regarding the second client comprising data retrieved by the 18 second client as part of a data service provided by the second client and requested by the first 19 client.
21 An eighth broad aspect of the present invention seeks to provide a method, comprising:
22 instantiating a first client of a messaging service; requesting that a second client of the 23 messaging service be linked to the first client, the second client associated with at least one 24 data service; displaying a contact list for the first client, the contact list for the first client including client-controlled information regarding the second client, a client-controlled 26 information regarding the second client including retrieved data.
28 These and other aspects and features of the present invention will now become apparent to 29 those of ordinary skill in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying drawings.
3 In the accompanying drawings:
Fig. 1 illustrates an instant messaging architecture comprising a communication server 6 providing an instant messaging service, applet-hosting devices on which reside 7 applets, data sources storing or providing information regarding data services, and 8 communication devices associated with users, in accordance with a non-limiting 9 embodiment of the invention;
11 Fig. 2 is a message flow diagram illustrating interaction between various components 12 of the instant messaging architecture of Fig. 1, in a first example scenario applicable 13 to data services that are generic;
Fig. 3 is a message flow diagram illustrating further interaction between various 16 components of the instant messaging architecture of Fig. 1, in the first example 17 scenario considered in Fig. 2;
19 Fig. 4A is a message flow diagram illustrating interaction between various components of the instant messaging architecture of Fig. 1 and a database, in a first 21 example situation where an authorization or enrollment step is to be effected;
23 Fig. 4B is a message flow diagram illustrating interaction between various 24 components of the instant messaging architecture of Fig. 1 and a database, in a second example situation where an authorization or enrollment step is to be effected;
27 Fig. 4C is a message flow diagram illustrating interaction between various 28 components of the instant messaging architecture of Fig. 1, in a third example 29 situation where an authorization or enrollment step is to be effected;
31 Fig. 4D is a message flow diagram illustrating interaction between various 32 components of the instant messaging architecture of Fig. 1 and a payment entity, in a 33 fourth example situation where an authorization or enrollment step is to be effected;
5 1 Fig. 4E is a message flow diagram illustrating interaction between various 2 components of the instant messaging architecture of Fig. 1, in a fifth example 3 situation where an authorization or enrollment step is to be effected;
Fig. 4F is a message flow diagram illustrating interaction between various
Fig. 4F is a message flow diagram illustrating interaction between various
6 components of the instant messaging architecture of Fig. 1, in a sixth example
7 situation where an authorization or enrollment step is to be effected;
8
9 Fig. 5A is a message flow diagram illustrating interaction between various components of the instant messaging architecture of Fig. 1, in a second example 11 scenario applicable to data services that are customized;
13 Fig. 5B is a message flow diagram related to a first variant of the second example 14 scenario considered in Fig. 5A;
16 Fig. 6A is a message flow diagram illustrating further interaction between various 17 components of the instant messaging architecture of Fig. 1, in the second example 18 scenario considered in Fig. 5A;
Fig. 68 is a message flow diagram illustrating further interaction between various 21 components of the instant messaging architecture of Fig. 1, in the first variant of the 22 second example scenario that is considered in Fig. 5B;
24 Fig. 7 is a message flow diagram illustrating interaction between various components of the instant messaging architecture of Fig. 1, in a third example scenario applicable 26 to data services that are private and in an example situation where one of the applets is 27 a voice mail applet;
29 Fig. 8 is a message flow diagram illustrating further interaction between various components of the instant messaging architecture of Fig. 1, in the third example 31 scenario and example situation considered in Fig. 7;
1 Fig. 9A illustrates an example of potential contents of memory areas of a memory of 2 the communication server of Fig. 1, in connection with the first example scenario 3 considered in Fig. 2;
Fig. 9B illustrates an example of potential updated contents of the memory areas of 6 Fig. 9A;
8 Fig. 9C illustrates a further example of potential contents of memory areas of the 9 memory of the communication server of Fig. 1, in connection with the first example scenario considered in Fig. 2;
12 Fig. 10A illustrates an example of potential contents of memory areas of the memory 13 of the communication server of Fig. 1, in connection with the second example 14 scenario considered in Fig. 5A;
16 Fig. 10B illustrates an example of potential updated contents of the memory areas of 17 Fig. 10A;
19 Fig. 10C illustrates a further example of potential contents of memory areas of the memory of the communication server of Fig. 1, in connection with the second 21 example scenario considered in Fig. 5A;
23 Fig. 11 illustrates an example of potential contents of a database storing addresses as 24 part of an aliasing function, in accordance with a non-limiting embodiment of the invention;
27 Fig. 12 illustrates an example of potential contents of memory areas of the memory of 28 the communication server of Fig. 1, in connection with the first variant of the second 29 example scenario that is considered in Fig. 5B;
31 Fig. 13A is a message flow diagram illustrating interaction between various 32 components of the instant messaging architecture of Fig. 1, in a second variant of the 33 second example scenario considered in Fig. 5A;
1 Fig. 13B is a message flow diagram illustrating further interaction between various 2 components of the instant messaging architecture of Fig. 1, in the second variant of 3 the second example scenario that is considered in Fig. 13A;
Fig. 14 illustrates an example of potential contents of memory areas of the memory of 6 the communication server of Fig. 1, in connection with the second variant of the 7 second example scenario that is considered in Fig. 13A;
9 Fig. 15 illustrates a non-limiting embodiment where one of the data sources of the instant messaging architecture of Fig. 1 is a voice mail system, in connection with the 11 third example scenario and example situation considered in Fig. 7;
13 Fig. 16A illustrates an example of potential contents of memory areas of the memory 14 of the communication server of Fig. 1, in connection with the third example scenario and example situation considered in Fig. 7;
17 Fig. 16B illustrates an example of potential updated contents of the memory areas of 18 Fig. 16A;
Fig. 16C illustrates a further example of potential contents of memory areas of the 21 memory of the communication server of Fig. 1, in connection with the third example 22 scenario and example situation considered in Fig. 7;
24 Fig. 17 illustrates an example of potential contents of a memory area of the memory of the communication server of Fig. 1, where the memory area is associated with a 26 given client of the instant messaging service provided by the communication server;
28 Fig. 18A is a message flow diagram related to a first variant of the third example 29 scenario and example situation considered in Fig. 7;
31 Fig. 18B is a message flow diagram illustrating further interaction between various 32 components of the instant messaging architecture of Fig. 1, in the first variant of the 33 third example scenario and example situation that is considered in Fig.
18A;
1 Fig. 19 illustrates an example of potential contents of memory areas of the memory of 2 the communication server of Fig. 1, in connection with the first variant of the third 3 example scenario and example situation considered in Fig. 7;
Fig. 20 illustrates an example of a window displayable on a screen of one of the 6 communication devices of Fig. 1;
8 Fig. 21 illustrates a non-limiting embodiment where one of the data sources of the 9 instant messaging architecture of Fig. 1 is an electronic mail system;
11 Fig. 22A illustrates an example of potential contents of a memory area of the memory 12 of the communication server of Fig. 1, in connection with the non-limiting 13 embodiment of Fig. 21;
Fig. 22B illustrates an example of potential updated contents of the memory area of 16 Fig. 22A;
18 Fig. 22C illustrates a further example of potential contents of a memory area of the 19 memory of the communication server of Fig. 1, in connection with the non-limiting embodiment of Fig. 21;
22 Fig. 23A is a message flow diagram illustrating interaction between various 23 components of the instant messaging architecture of Fig. 1, in connection with the 24 non-limiting embodiment considered in Fig. 21;
26 Fig. 23B is a message flow diagram illustrating further interaction between various 27 components of the instant messaging architecture of Fig. 1, in connection with the 28 non-limiting embodiment considered in Fig. 21;
Fig. 24 illustrates an example of potential contents of a memory area of the memory 31 of the communication server of Fig. 1, in connection with the non-limiting 32 embodiment of Fig. 21;
1 Fig. 25 is a message flow diagram illustrating interaction between various 2 components of the instant messaging architecture of Fig. 1, in connection with the 3 non-limiting embodiment considered in Fig. 21 and in a variant; and Fig. 26 is a message flow diagram illustrating further interaction between various 6 components of the instant messaging architecture of Fig. 1, in connection with the 7 non-limiting embodiment considered in Fig. 21 and the variant considered in Fig. 25.
9 It is to be expressly understood that the description and drawings are only for the purpose of illustration of certain embodiments of the invention and are an aid for 11 understanding. They are not intended to be a definition of the limits of the invention.
16 With reference to Fig. 1, there is shown an instant messaging architecture comprising 17 a communication server 102 that is generally depicted as having a processor 104, a 18 memory 106 and an interface 108. The processor 104 executes a messaging 19 application, which can be defined by a set of instructions in the form of computer-readable program code stored in the memory 106. In certain embodiments, the 21 memory 106 may be physically co-located with the processor 104, while in other 22 embodiments, the memory 106 may be remote from the processor 104 and connected 23 thereto by a communication link and/or a network (not shown).
The messaging application being executed by the processor 104 allows the 26 communication server 102 to provide an instant messaging service, which can be 27 viewed as a managed conduit for the exchange of instant messages among members 28 of an instant messaging community. The instant messaging service provided by the 29 messaging application may be an existing branded consumer instant messaging service (e.g., MSN Messenger, .NET Messenger Service, AOL Instant Messenger, 31 Excite/Pal, Gadu-Gadu, Google Talk, iChat, ICQ, Jabber, Qnext, QQ, Skype, Trillian, 32 Yahoo! Messenger, etc.) or an existing branded enterprise instant messaging service 33 (e.g., Mictrosoft Communicator, IBM Lotus Sametime, etc.) or a proprietary instant 34 messaging service or a combination thereof. The clients may include actual people 1 (hereinafter referred to as "users" and denoted 110, 112, 114) as well as artificial 2 intelligence agents (hereinafter referred to as "applets" or "bots" and denoted 116, 3 118) that are all registered as "clients" of the instant messaging service.
Each of the users e., people) 110, 112, 114 employs a respective one of a plurality 6 of communication devices 120, 122, 124 to exchange instant messages with other 7 clients (i.e., either users or applets) of the instant messaging service via the 8 communication server 102. The communication server 102 is reachable from the 9 communication devices 120, 122, 124 via a data network 130, a non-limiting example of which is the Internet. Examples of communication devices 120, 122, 124 that may 11 be employed by the users 110, 112, 114 include desktop computers, laptop computers, 12 wireless networked personal digital assistants and cellular telephones, to name a few.
14 The applets 116, 118 may reside on respective applet-hosting devices 126, 128 that comprise the requisite hardware, firmware, software and/or control functionality to 16 make each applet's interaction with the communication server 102 appear to the latter 17 as if it were dealing with a person. Non-limiting examples of the applet-hosting 18 devices 126, 128 include computer servers and server farms, for example.
The 19 communication server 102 is reachable from the applet-hosting devices 126, 128 via a data network, which may be ¨ but is not limited to ¨ the aforesaid data network 130.
21 In accordance with non-limiting embodiments of the present invention, the applets 22 116, 118 provide data services to the users 110, 112, 114, various examples of which 23 will be given later on in this specification.
In order to participate in the instant messaging service provided by the 26 communication server 102, the clients of the instant messaging service (i.e., the users 27 110, 112, 114 and the applets 116, 118) begin by becoming clients of the 28 communication server 102. More specifically, each of the clients of the instant 29 messaging service contacts the communication server 102 at a known address over the data network 130 and sets up an account for that client. This can be done for free or 31 in exchange for payment. With additional reference to Fig. 17, the account for a 32 given client of the instant messaging service (e.g., client X) is characterized by a 33 client-specific address and an area in the memory 106 of the communication server 34 102 (e.g., 106X) that is allocated to client X. The format of the client-specific address 1 is not material; in the present example, it is an email-like address format (specifically, Client-2 X@IMservice.com for client X) but other formats (such as, without limitation, an IP address, a 3 Uniform Resource Indicator, a Universal Internet Number, a Unified Identification Number, a 4 proprietary string, etc) are of course possible.
6 The client-specific address (in this example, Client-X@IMservice.com) is used to identify the given 7 client of the instant messaging service (in this example, client X) to other clients of the instant 8 messaging service (for instance, clients A, B and C having respective client-specific addresses 9 Client-A@IMservice.com, Client-B@IMservice.com and Client-C@IMservice.com), so that instant messages can be routed to the appropriate recipient. In this way, the given client of the instant 11 messaging service (in this example, client X) will receive instant messages sent to the client-specific 12 address (in this example, Client-X@IMservice.com). In addition, when the given client of the 13 instant messaging service (in this example, client X) sends an instant message to another client of 14 the instant messaging service (for instance, any of clients A, B and C), the client-specific address (in this example, Client-X@IMservice.com) forms part of the instant message so that such other client 16 can ascertain the origin of the instant message upon receipt.
18 Regarding the memory area 106X allocated to client X, it is used for maintaining a "contact list"
19 132X for client X, which links client X to other clients of the instant messaging service (e.g., clients A, B and C). More specifically, client X can identify other clients of the instant messaging service 21 that client X may be interested in corresponding with (hereinafter referred to as "buddies" and 22 sometimes also referred to as "contacts", both of which are expressions that have significance in 23 relation to client X). Client X then adds the client-specific addresses of such other clients onto the 24 given client's contact list 132X. Alternatively, the other clients that were identified as buddies of client X may add their respective client-specific addresses to the contact list 132X of client X. In 26 the non-limiting example depicted in Fig. 17, the clients A, B and C are contacts of client X and, 27 accordingly, their respective client-specific addresses (Client-A@IMservice.com, Client-28 B@IMservice.com and Client-C@1Mservice.com) appear in the contact list 132X for client X.
To allow efficient management of communications, the contact list 132X also comprises at least one 31 field that stores client-controlled information regarding each of the buddies of client X, i.e., each of 32 the clients whose client-specific addresses appear in the contact list 132X. For example, a first field 33 1710 regarding a given buddy of client X may comprise a screen name of the given buddy, while a 1 second field 1720 regarding a given buddy of client X may comprise a "presence state" of the 2 buddy. The presence state of the given buddy of client X specifies an attentiveness of the given 3 buddy of client X to receiving instant messages, while the screen name of the given buddy of client 4 X specifies a name that the given buddy of client X wishes to use as an identifier during a conversation. Other fields (not shown) may also be used. The client-controlled information 6 regarding a given buddy of client X provides information on the given buddy of client X and is 7 available to all clients of the instant messaging service for whom the given buddy of client X is also 8 their buddy ¨ assuming that such availability of information is permitted by the privacy policy in 9 place.
11 Conversely, to allow client X to appear as a buddy of other clients, the memory area 106X allocated 12 to client X includes an eigen-area 134X containing client-controlled information regarding client X, 13 which the communication server 102 can then make available to such other clients (e.g., clients A, B
14 and C) whose contact lists include client X. As mentioned earlier, privacy settings could limit which of those other clients of the instant messaging service actually have visibility into the client-16 controlled information in the eigen-area 134X.
18 Thus, the client-controlled information regarding client X, which is stored in the eigen-area 134X, 19 represents information that client X wishes to convey to certain other clients of the instant messaging service. The client-controlled information regarding client X can be modified by client X
21 at any time (provided that client X is logged in to the instant messaging service). For example, the 22 client-controlled information regarding client X may include a presence state and/or a screen name.
23 In addition to, or in lieu of, the presence state and/or the screen name, and in accordance with non-24 limiting embodiments of the present invention, the client-controlled information regarding client X
of the instant messaging service may include, for 1 example, information regarding a data service, examples of which will be given later 2 on.
4 In operation, as different clients of the instant messaging service log in and out of the instant messaging service, the communication server 102 ensures that each client's 6 contact list contains up-to-date client-controlled information regarding the buddies of 7 that client. For example, the communication server 102 can ensure that contact lists 8 are kept up-do-date by (i) consulting the eigen-area 134X in order to learn the client-9 controlled information regarding client X; (ii) identifying which clients of the instant messaging service have included client X on their contact lists; and (iii) updating the 11 client-controlled information regarding client X on those other clients' contact lists.
12 This process would be performed for each client.
14 In another non-limiting embodiment, the contact list for a given client (user or applet) can be kept up-to-date automatically if it is designed to include pointers to the eigen-16 areas of the various buddies of the given client, rather than to store copies of the 17 client-controlled information stored in those eigen-areas.
19 In yet another non-limiting embodiment, it should be appreciated that the contact list for a given client (user or applet) of the instant messaging service can be stored on the 21 communication device or applet-hosting device being used by the given client to 22 participate in the instant messaging service, rather than on the communication server 23 102. The communication server 102 can therefore disseminate updated client-24 controlled information to the contact lists stored by the various clients.
26 It should further be appreciated that in a peer-to-peer embodiment, the various clients 27 of the instant messaging service contact each other without assistance from the 28 communication server 102. Thus, the communication server 102 can be entirely 29 dispensed with, which would leave both the contact lists for the various clients and the eigen-areas for those clients to be stored in a distributed fashion, such as on the 31 devices used by those clients. Thus, if a given client knows the addresses of other 32 clients for whom the given client is a buddy, then in order to ensure that the 33 information on the contact lists of those other clients is up-to-date, the given client can 34 push the client-controlled information regarding the given client to those other clients 1 directly. Alternatively, if a given client knows the addresses of his or her buddies, 2 then to ensure that the information on the given client's contact list is up-to-date, the 3 given client can obtain the client-controlled information regarding its buddies by 4 polling them directly.
6 For simplicity, the remainder of this description returns to the situation where the 7 communication server 102 stores both the contact list 132X for client X
and the eigen-8 area 134X for client X in the memory area 106X on the communication server 102, 9 although it should be expressly understood that the present invention also applies to embodiments where at least one of the contact list 132X for client X and the eigen-11 area 134X for client X, and possibly both, may be stored on the device used by client 12 X to participate in the instant messaging service.
14 Having logged in to the instant messaging service, a given client of the instant messaging service (such as client X) may compose an instant message destined for a 16 recipient (such as client A, B or C). The recipient can be identified by explicitly 17 entering the client-specific address of the recipient (e.g., Client-A@IMservice.com, 18 Client-B@IMservice.com or Client-C@IMservice.com ¨ other formats of course 19 being possible) or by choosing a buddy from the given client's contact list (e.g., contact list 132X). The manner in which instant messages are sent and received is 21 generally known and, as such, it need not be described in greater detail.
23 As mentioned previously, the applets 116, 118 provide data services to the users 110, 24 112, 114. Generally speaking, the provision of a data service involves accessing data from one or more data sources and enabling conveyance of the accessed data to one or 26 more of the users 110, 112, 114. To this end, Fig. 1 depicts a plurality of data sources 27 136, 138 that store or provide data 146, 148 that may be of interest to various ones of 28 the users 110, 112, 114. The data 146, 148 is hereinafter referred to as "information 29 regarding a data service". In some embodiments, the data sources 136, 138 are accessible by the applets 116, 118 via dedicated communication links or via a data 31 network, which can be ¨ but is not limited to ¨ the aforesaid data network 130. In 32 other implementations, certain ones of the data sources 136, 138 may be integrated 33 with certain ones of the applets 116, 118 on the corresponding applet-hosting 34 device(s) 126, 128. Persons skilled in the art will appreciate that the number of data 1 sources 136, 138 and their location within the architecture of Fig. 1 is not particularly 2 limited. Moreover, there is not necessarily a fixed correspondence between the 3 applets 116, 118 and the data sources 136, 138, since a given one of the applets 116, 4 118 may need to access different ones of the data sources 136, 138 at different times;
conversely, a common one of the data sources 136, 138 may need to be accessed by 6 different ones of the applets 116, 118 at different times.
8 Embodiments of the present invention contemplate a wide variety of data services to 9 be provided by the applets 116, 118. These include data services that are generic (L e., providing data that is of potential interest to multiple users), customized (i.e., 11 providing data that is requested by individual users) and private (i.e., providing data 12 that is requested by individual users and is only accessible with the user's 13 permission). These non-limiting possibilities are now discussed in greater detail with 14 reference to specific ones of the drawings.
16 Scenario I (Figs. 2, 3, 4A-4F, 9A-9C) 18 Scenario I is applicable to data services that are generic (i.e., providing data that is of 19 potential interest to multiple users). Specific non-limiting examples of data services to which Scenario I applies include, without limitation:
22 - a share price reporting service (where the information regarding a data service 23 is the share price of a given company);
24 - a weather reporting service (where the information regarding a data service is a weather report for a given city);
26 - a sports reporting service (where the information regarding a data service is 27 the current score in a sporting event);
28 - a web monitoring service (where the information regarding a data service is an 29 indication of the most recent addition to a blog or website);
- a general traffic reporting service (where the information regarding a data 31 service is an indication of the traffic conditions on certain roads or bridges);
32 - a news reporting service on specific topics (where the information regarding a 33 data service is news regarding the specific topics);
1 - a movie listing service (where the information regarding a data service is a 2 schedule or price grid for movies being shown at a certain movie theater);
3 - a horoscope service (where the information regarding a data service is 4 commentary about each zodiac sign);
- a lottery results service (where the information regarding a data service is the 6 result of recent prize draws);
7 - a transportation schedule service (where the information regarding a data 8 service is current information regarding trains, flights, public transit, etc.) 9 - a product pricing service (where the information regarding a data service is information regarding the movement in the price of a certain product available 11 from one or more suppliers);
12 - an advertisement service (where the information regarding a data service is an 13 advertisement for a product or service);
14 - etc.
16 For the purposes of the discussion to follow, it is assumed that applet 116 provides a 17 share price reporting service that produces the share price of company ABC, and that applet 118 provides a weather reporting service that produces a weather report for Montreal, Canada. This is of course a non-limiting example. With reference now to Fig. 2, there is shown a message flow diagram that illustrates configuration of the applets 116, 118 under Scenario I, in accordance with a specific non-limiting example 22 of the present invention. Configuration of the applets 116, 118 begins by registering 23 the applet in question (either autonomously or with the aid of a person) as a client of 24 the instant messaging service. As shown at step 202, this is done by contacting the communication server 102 (in this case, www.IMservice.com) and creating a generic client-specific address associated with applet 116 and/or applet 118. What is meant 27 by the client-specific address being "generic" is that it is configured to operate independently of demand for the data service associated with the applet in question.
Initial configuration of the applet in question can be done by an operator of the applet in question, or it can occur in response to an original user request. By way of specific 31 non-limiting example, in the case of applet 116, a suitable generic client-specific 32 address could be AlertIM-shareprice-ABC@IMservice.com, while in the case of applet 118, a suitable generic client-specific address could be AlertIM-weather-34 (where "YUL" is the airport code for Montreal, Canada).
1 .
2 At step 204, in response to creation of the generic client-specific address associated 3 with the applet in question at step 202, the messaging application executed by the 4 processor 104 in the communication server 102 allocates a portion of the memory 106 to the applet in question. For example, with reference to Fig. 9A, the messaging 6 application executed by the processor 104 in the communication server 102 allocates 7 a memory area 916 to applet 116 and a memory area 918 to applet 118. It will be 8 observed that each of the memory areas 916, 918 comprises a respective contact list 9 926, 928 for the respective applet 116, 118. Initially, the contact lists 926, 928 can be empty, i.e. , they do not include the client-specific addresses of any other clients of the 11 instant messaging service (that is, applets 116, 118 have no "buddies").
The memory 12 areas 916, 918 each further comprise a respective eigen-area 936, 938 containing 13 client-controlled information regarding the respective applet 116, 118, which the 14 communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 110, 112, 114) if their contact lists 16 ultimately include applet 116 and/or applet 118.
18 The client-controlled information regarding applet 116 (which is stored in eigen-area 19 936) represents information that applet 116 wishes to convey to other clients of the instant messaging service. Similarly, the client-controlled information regarding 21 applet 118 (which is stored in eigen-area 938) represents information that applet 118 22 wishes to convey to other clients of the instant messaging service. The client-23 controlled information stored in eigen-area 936 or eigen-area 938 may include a 24 presence state and/or a screen name. The presence state could be used to specify an attentiveness of the applet in question to receiving instant messages, while the screen 26 name could be used to specify an identifier that the applet in question wishes to use to 27 identify itself during a conversation. However, in accordance with non-limiting 28 embodiments of the present invention, either or both of the presence state and/or the 29 screen name (and/or possibly other portions of the client-controlled information stored in the eigen-areas 936, 938) is used to convey information regarding a data service, 31 which in the case of applet 116 is the share price of company ABC and in the case of 32 applet 118 is the weather report for Montreal, Canada.
, 1 Accordingly, and returning to Fig. 2 at step 208, applets 116 and 118 are configured 2 to obtain the information regarding a data service 146, 148 from one (or more) of the 3 data sources 136, 138. It is assumed for convenience that data source 136 is capable 4 of producing the share price of company ABC for use by applet 116, and that data source 138 is capable of producing the weather report for Montreal, Canada for use by 6 applet 118, although this association between the applets 116, 118 and the data 7 sources 136, 138 is not to be considered a limitation of the present invention.
9 In order for applet 116 to obtain the share price of company ABC from data source 136, applet 116 may occasionally, continuously, synchronously or asynchronously 11 pull the share price of company ABC from data source 136; alternatively, data source 12 136 may be configured to occasionally, continuously, synchronously or 13 asynchronously push the share price of company ABC to applet 116. This latter 14 functionality can be achieved by applet 116 placing a request with data source 136 to receive the share price of company ABC. Similarly, in order for applet 118 to obtain 16 the weather report for Montreal, Canada from data source 138, applet 118 may 17 occasionally, continuously, synchronously or asynchronously pull the weather report 18 for Montreal, Canada from data source 138; alternatively, data source 138 may be 19 configured to occasionally, continuously, synchronously or asynchronously push the weather report for Montreal, Canada to applet 118. This latter functionality can be 21 achieved by applet 118 placing a request with data source 138 to receive the weather 22 report for Montreal, Canada.
24 Assume now that the share price of company ABC is "$32.45" and that the weather report for Montreal, Canada is "cloudy +7". This data is received by the applets 116, 26 118 as a result of execution of step 208. At step 210, each of the applets 116, 118 is 27 configured to update respective eigen-area 936, 938 for the relevant applet with the 28 received information regarding a data service.
Specifically, and with reference to Fig. 9B, applet 116 can update the client-controlled 31 information in eigen-area 936 by causing the presence state to reflect the share price 32 of company ABC (which, in the present example, is "$32.45"). In addition, or 33 alternatively, applet 116 can update the client-controlled information in eigen-area 34 936 by causing the presence state to reflect data that can be easily expressed using 1 simple icons, such as whether the share price of company ABC has 2 risen/fallen/remained unchanged since the previous day's close or since the previous 3 trade, or whether the related stock (or the stock market) is open or closed for trading.
4 In one embodiment, the presence state can be caused to indicate "online"
when the share price has risen and "offline" otherwise. In another embodiment, the presence 6 state can be caused to indicate "online" when the related stock is open for trading and 7 "offline" otherwise. Of course, in an alternative embodiment, applet 116 could have 8 updated the client-controlled information in eigen-area 936 by also (or instead) 9 causing the screen name and/or possibly other portions of the client-controlled information stored in eigen-area 936 to reflect the share price of company ABC
and/or 11 the change in share price and/or other information pertaining to the related stock. In 12 summary, the information of interest is stored in eigen-area 936 as text data or other 13 data (such as data that encodes one or more graphical icons).
Similarly, applet 118 can update the client-controlled information in eigen-area 938 16 by causing the presence state to reflect the weather report for Montreal, Canada 17 (which, in the present example, is "cloudy +7"). In addition, or alternatively, applet 18 118 can update the client-controlled information in eigen-area 938 by causing the 19 presence state to reflect data that can be easily expressed using simple icons, such as the presence or absence of headline news. Of course, in an alternative embodiment, 21 applet 118 could have updated the client-controlled information in eigen-area 938 by 22 also (or instead) causing the presence state and/or possibly other portions of the client-23 controlled information stored in eigen-area 938 to reflect the weather report for 24 Montreal, Canada and/or the general weather conditions (such as cloudy, sunny, snow, etc.) In summary, the information of interest is stored in eigen-area 938 as text 26 data or other data (such as data that encodes one or more graphical icons).
28 Interaction between a given one of the communication devices 120, 122, 124 and the 29 communication server 102 under Scenario I is now described. For the sake of simplicity, let the given communication device be communication device 120 which 31 is associated with user 110, and let it be assumed that user 110 is a client of the instant 32 messaging service. That is to say, user 110 has a client-specific address, say, "User-33 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 34 110. For example, with reference to Fig. 9C, the messaging application executed by 1 the processor 104 in the communication server 102 allocates a memory area 910 to 2 user 110.
4 It will be observed that memory area 910 comprises a contact list 920 for user 110.
Initially, the contact list 920 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, user 110 has no "buddies"). Over time, various buddies to the contact list 920 can be added or removed by control of the messaging application executed by the processor 104 in the communication server 102. The memory area 910 further comprises an eigen-area 930 containing client-controlled information regarding user 110, which the communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 112, 114 and applets 116, 118) if their 13 contact lists ultimately include user 110.
With reference now to the message flow diagram in Fig. 3, user 110 uses communication device 120 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 302. This can be achieved by providing identification and authentication credentials such as a username and a password, for 19 example.
21 At step 304, user 110 identifies as a "buddy" an applet that provides a desired data service, by entering the generic client-specific address associated with the applet in question. In the example being presently described, user 110 may enter one of the 24 aforesaid generic client-specific addresses, namely AlertIM-shareprice-ABC@IMservice.com (which is associated with applet 116 providing a share price reporting service that produces the share price of company ABC) or AlertIM-weather-YUL@IMservice.com (which is associated with applet 118 providing a weather reporting service that produces a weather report for Montreal, Canada). In certain embodiments, user 110 identifies the applet that provides the desired data service by invoking a directory service offered by the communication server 102, while in other embodiments, user 110 may directly type in the generic client-specific address 32 associated with the applet in question.
1 Having identified the generic client-specific address associated with the applet that 2 provides the desired data service (e.g., applet 116 or applet 118), and with additional 3 reference to Fig. 9C, the applet in question is added to the contact list 920 of user 110, 4 leaving at least one corresponding field in the contact list 920 for storing the client-controlled information regarding the applet in question. In the present example, not to 6 be considered limiting, fields 966, 976 are used to store the presence state and screen 7 name, respectively, of the client having the generic client-specific address AlertIM-8 shareprice-ABC@IMservice.com, while fields 968, 978 are used to store the presence 9 state and screen name, respectively, of the client having the generic client-specific address AlertIM-weather-YUL@IMservice.com.
12 As an aside, it should be appreciated that an optional step (206) could have been 13 performed in Fig. 2, whereby the generic client-specific address created at step 202 14 could have been revealed to the user community in order to inform the various clients of the instant messaging service (in particular, user 110) of the generic client-specific 16 address associated with applet 116 and/or applet 118. It should be appreciated that 17 step 206 is optional, since the clients of the instant messaging service can gain 18 awareness of the generic client-specific address associated with applet 116 and/or 19 applet 118 in other ways, such as through other communication devices and other methods of communication, including, without limitation: interaction with a customer 21 service representative, interaction with an automated voice response system, 22 interaction with a web portal, receipt of an email, text message or instant message 23 containing the generic client-specific address, etc. It should further be appreciated 24 that the clients of the instant messaging service may employ a directory service (e.g., operated by the communication server 102) and, as such, not need be explicitly aware 26 of the generic client-specific address associated with applet 116 and/or applet 118 in 27 order to identify the applet in question.
29 Returning now to Figs. 3 and 9C, at step 310, having determined that the client-controlled information regarding the new buddy (i.e., one of the applets 116, 118) has 31 been updated in eigen-area 936 or 938, the messaging application executed by the 32 processor 104 in the communication server 102 updates the client-controlled 33 information regarding the new buddy on a contact list 920 for user 110.
1 Specifically, the client-controlled information regarding applet 116 is obtained from 2 eigen-area 936 which, as previously described, conveys the share price of company 3 ABC. In one embodiment, the messaging application executed by the processor 104 4 in the communication server 102 copies the presence state and screen name from eigen-area 936 into fields 966, 976 of the contact list 920, respectively. In another 6 embodiment where the fields 966, 976 contain pointers to, respectively, the presence 7 state and screen name in eigen-area 936, the client-controlled information regarding 8 the applet in question will be instantly updated without the need for data transfer.
For its part, the client-controlled information regarding applet 118 is obtained from 11 eigen-area 938 which, as previously described, conveys the weather report for 12 Montreal, Canada. In one embodiment, the messaging application executed by the 13 processor 104 in the communication server 102 copies the presence state and screen 14 name from eigen-area 938 into fields 968, 978 of the contact list 920, respectively. In another embodiment where the fields 968, 978 contain pointers to, respectively, the 16 presence state and screen name in eigen-area 938, the client-controlled information 17 regarding the applet in question will be instantly updated without the need for data 18 transfer.
At this point, the client-controlled information regarding the applet in question 21 (which, it is recalled, comprises the information regarding the desired data service) is 22 ready for observation by user 110. Accordingly, at step 312, which can be inherent in 23 step 310 or a separate step altogether, the client-controlled information regarding the 24 applet in question can be conveyed to user 110 in a visual format.
26 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 27 information regarding the applet in question can be displayed on a screen of 28 communication device 120 in the form of text, graphics and/or an icon.
In this 29 example, "Bo Diddley" and "Jimi Hendrix" are screen names employed by other users that happen to be buddies of user 110. Also, "company ABC" and "$32.45" are, 31 respectively, the screen name and presence state of the client-controlled information 32 regarding applet 116, which provides a share price reporting service that produces the 33 share price of company ABC. Of note is the upwards arrow on the left of "company 34 ABC", which conveys yet further information regarding a data service. In addition, 1 "weather YUL" and "cloudy +7" are, respectively, the screen name and presence state 2 of the client-controlled information regarding applet 118, which provides a weather 3 reporting service that produces a weather report for Montreal, Canada.
Persons skilled in the art will therefore appreciate that the above described 6 embodiments allow the persistent conveyance of client-controlled information 7 regarding the applet in question to user 110, in a non-intrusive manner and without 8 interrupting user 110. Specifically, in two non-limiting examples, user 110 can 9 monitor the share price of company ABC or the weather report for Montreal, Canada on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 110 is 11 not compelled to remember the share price of company ABC or the weather report for 12 Montreal, Canada since user 110 can refresh his or her knowledge merely by glancing 13 at the contact list 920.
Meanwhile, it will be recalled from step 208 in Fig. 2, applets 116 and 118 continue to 16 obtain the information regarding a data service 146, 148 (i.e., share price of company 17 ABC or weather report for Montreal, Canada) from the data sources 136, 138. Thus, 18 the client-controlled information regarding the applets 116, 118 will continue to be 19 updated in eigen-areas 936, 938 as the applets 116, 118 continue to execute, which ensures currency of the information being persistently conveyed to, and observed by, 21 user 110.
23 Persons skilled in the art will appreciate that in some embodiments, observation of the 24 information regarding a data service by user 110 does not require adding the applet in question to the contact list 920 for user 110. Specifically, the messaging application 26 executed by the processor 104 in the communication server 102 can be configured to 27 persistently convey the client-controlled information regarding the applets 116, 118 28 (which is contained in eigen-areas 936, 938) even while user 110 merely browses the 29 directory service.
31 Persons skilled in the art will also appreciate that despite the public nature of the data 32 services falling under Scenario I, it may nevertheless be beneficial to ensure that a 33 given user who wishes to benefit from a particular data service be first authorized to 34 do so. For example, it is within the scope of the present invention to require that the 1 given user pay for the data service on a per-use basis, on a per-applet basis or in accordance with any suitable subscription scheme. It is also within the scope of the present invention to require that the given user enroll with the applet-hosting device 4 that hosts the applet that provides the particular data service.
6 Thus, an authorization step may be included at some point during Scenario I, or even 7 prior to step 202 of Scenario I. For the sake of simplicity, the examples to follow assume that user 110 intends to access the data service provided by applet 116.
9 However, this is not to be considered as a limitation of the present invention.
11 In a first non-limiting situation where authorization is required, shown in Fig.
4A, 12 user 110 initially enrolls with the communication server 102. User 110 can enroll by employing communication device 120 but may also enroll in a number of different 14 ways, such as by interaction with a web portal, a customer service representative, an interactive voice response system, etc., and/or by the transmission of email messages 16 or other messages, and using a variety of different devices. Upon enrolment, the communication server 102 stores the client-specific address associated with user 110 18 in a database 410 for future consultation. Later on, e.g., at step 304, when the messaging application executed by the processor 104 in the communication server 102 determines that the contact list 920 for user 110 includes a new buddy (in this example, applet 116), the messaging application executed by the processor 104 in the communication server 102 can be configured to consult the database 410 and verify whether the client-specific address being employed by communication device 120 appears in the database 410. If so, the messaging application executed by the processor 104 in the communication server 102 proceeds to execute step 310.
27 In a second non-limiting situation where authorization is required, shown in Fig.
4B, 28 user 110 initially enrolls with applet 116. User 110 can enroll by employing 29 communication device 120 but may also enroll in a number of different ways, such as by interaction with a web portal, a customer service representative, an interactive 31 voice response system, etc., and/or by the transmission of email messages or other 32 messages, and using a variety of different devices. Upon enrolment, applet 116 stores 33 the client-specific address associated with user 110 in a database 420 for future 34 consultation. Later on, e.g., at step 304, when the messaging application executed by 1 the processor 104 in the communication server 102 determines that the contact list for user 110 includes a new buddy (in this example, applet 116), the messaging application executed by the processor 104 in the communication server 102 can be configured to contact applet 116, which can be done by sending information to applet 116 in a variety of ways, including but not limited to using protocols such as IP and 6 SOAP, for example. The information sent to applet 116 contains the client-specific address being employed by communication device 120. In response, applet 116 consults the database 420 and verifies whether the client-specific address supplied by 9 the communication server 102 appears in the database 420. If so, applet 116 proceeds to send a confirmation message to the communication server 102, which then executes 11 step 310.
13 In a third non-limiting situation where authorization is required, shown in Fig.
4C, 14 once user 110 has added a new buddy (in this example, applet 116) to his or her contact list 920, but before the messaging application executed by the processor 104 16 in the communication server 102 determines that the contact list 920 includes the new 17 buddy, the messaging application executed by the processor 104 in the communication server 102 can be configured to communicate with user 110. To this 19 end, the communication server 102 can initiate an instant message exchange with communication device 120; alternatively, the communication server 102 can initiate a 21 call back to a telephone number associated with user 110; still other possibilities are within the scope of the present invention, including but not limited to via a web portal, interactive voice response system, URL embedded in an email or other electronic message, etc. During such communication between user 110 and the communication server 102, user 110 may supply to the communication server 102 candidate authorization data (e.g., a product code or a password) which is expected to match a priori authorization data stored by the communication server 102. The a priori authorization data could be learned from, for example, a pre-paid voucher or media advertising (e.g., newspaper, radio, television, Internet) and/or based on interaction with a customer service representative, a web portal, an interactive voice response system, and exchange of email or other messages, etc.; alternatively, user 110 may 32 have previously enrolled with the communication server 102 and agreed on which a priori authorization data to use. The candidate authorization data supplied to the 34 communication server 102 during communication between user 110 and 1 communication server 102 can be provided in a variety of ways including, but not 2 limited to, instant messaging, electronic mail and/or voice communications using 3 communication device 120 or any other communication device. The messaging 4 application executed by the processor 104 in the communication server 102 can be configured to then execute step 310 only if the candidate authorization data supplied 6 by user 110 is considered to match the a priori authorization data stored by the 7 communication server 102.
9 In a fourth non-limiting situation where authorization is required, shown in Fig. 4D, once user 110 has added a new buddy (in this example, applet 116) to his or her 11 contact list 920, but before the messaging application executed by the processor 104 12 in the communication server 102 determines that the contact list 920 includes the new 13 buddy, the messaging application executed by the processor 104 in the 14 communication server 102 can be configured to communicate with user 110.
Specifically, the communication server 102 can direct user 110 to a payment entity 16 440 (which, in a non-limiting example, may be associated with a third-party web site).
17 In a non-limiting embodiment, this can be done by sending an instant message to 18 communication device 120 containing a uniform resource locator (URL) that 19 identifies the third-party web site; alternatively, the communication server 102 can establish a three-way conference call between user 110 and the payment entity 440.
21 Still other possibilities are within the scope of the present invention, such as the 22 invoking of a pop-up window containing a URL, the transmission of an email or other 23 electronic message containing a URL, the triggering of an IM
conversation with a 24 payment system, and so on. User 110 may then employ communication device 120 or any other communication device to transact with the payment entity 440. The 26 payment entity 440 then returns a message to the communication server 102 27 indicative of whether payment has been received. The messaging application 28 executed by the processor 104 in the communication server 102 can be configured to 29 then execute step 310 only once payment has indeed been confirmed as received by the payment entity 440.
32 In a fifth non-limiting situation where authorization is required, shown in Fig. 4E, 33 once the messaging application executed by the processor 104 in the communication 34 server 102 determines that the contact list 920 includes a new buddy (in this example, 1 applet 116), the messaging application executed by the processor 104 in the 2 communication server 102 can be configured to contact the new buddy (e.g., via 3 instant message) and ask it whether it wishes to add user 110 to its own contact list 4 (i.e., contact list 926) as a buddy of its own. This may trigger applet 116 to communicate with user 110, e.g., by sending an instant message of its own, thereby 6 resulting in an exchange of instant messages between applet 116 and user 110. In 7 response, user 110 may supply to applet 116 authorization data (e.g., a product code 8 or a password) that could previously have been learned from, for example, a pre-paid 9 voucher or media advertising (e.g., newspaper, radio, television, Internet) and/or based on interaction with a customer service representative, a web portal, an 11 interactive voice response system, and exchange of email or other messages, etc.;.
12 Alternatively, user 110 may have previously enrolled with applet 116 and agreed on 13 which authorization data to use. The authorization data may be supplied to applet 116 14 in a variety of ways including, but not limited to, instant messaging, electronic mail and/or voice communications using communication device 120 or any other 16 communication device. Once applet 116 authorizes user 110 based on interaction 17 therewith, applet 116 can send a confirmation message to the communication server 18 102, which then executes step 310. In addition, the messaging application executed 19 by the processor 104 in the communication server 102 can ¨ but need not necessarily ¨ add user 110 to the contact list 926 for applet 116.
22 It should be appreciated that each of the above first through fifth non-limiting 23 situations can be caused not only once user 110 identifies as a "buddy"
an applet that 24 provides a desired data service, but also just prior thereto.
26 In a sixth non-limiting situation where authorization is required, shown in Fig. 4F, 27 user 110 is given the opportunity to accept or decline adding applet 116 as a buddy.
28 Specifically, prior to step 304, applet 116 learns the client-specific address of user 110 29 in this example, "User-110@IMservice.com". Such knowledge can be gained through prior interaction between user 110 and applet 116 (e.g., via email, SMS, a 31 web portal, a telephone interface). Applet 116 can then send a request for acceptance, 32 e.g., using the instant messaging service to which user 110 subscribes.
The 33 transmission of the request for acceptance can be formulated expressly or it may occur 34 automatically as a result of the attempt by applet 116 to add user 110 as a buddy to its 1 own contact list 926. When user 110 logs in to the instant messaging service, thereby instantiating itself as a client, the request for acceptance will be received by user 110.
3 At this point, user 110 may accept or decline the request for acceptance. If user 110 4 accepts, then applet 116 is added as a buddy of user 110. This may be a particularly applicable authorization scheme in an advertising scenario. In a more complex 6 scenario, user 110 might in addition to, or instead of, accepting or declining the 7 request for acceptance, send candidate authorization data that can be verified by the 8 communication server 102 and/or applet 116.
Scenario II (Figs. 5A, 6A and 10A-10C) 12 Scenario II is applicable to data services that are customized (L e., providing data that 13 is requested by individual users). Specific non-limiting examples of data services to 14 which Scenario II applies include, without limitation:
16 - a customized stock portfolio reporting service (where the information 17 regarding a data service is the share price of companies in a user-selected 18 portfolio);
19 - a customized news reporting service (where the information regarding a data service is the headline news from news sources in a user-selected set of news 21 sources or regarding user-specific topics);
22 - a customized traffic reporting service (where the information regarding a data 23 service is the current traffic synopsis for a user-selected travel route);
24 - a customized web search service (where the information regarding a data service is a feature (e.g., current status, number of results, result relevancy 26 score, etc.) of an online search);
27 - a customized real estate service (where the information regarding a data 28 service is an availability of a property meeting user-defined criteria);
29 - a customized dating service (where the information regarding a data service is an availability of a person of interest matching a user-defined profile);
31 - a customized job search service (where the information regarding a data 32 service is an availability of a position matching user-defined criteria);
1 - a customized shopping service (where the information regarding a data service 2 is an availability of an item or service meeting user-defined price or other 3 criteria);
4 - a web monitoring service (where the information regarding a data service is an indication of the most recent addition to a user-selected set of blogs or 6 websites);
7 - etc.
9 With reference to Fig. 5A, Scenario II begins at step 502 by user 110 enrolling with applet 116 and/or applet 118. In particular, user 110 can contact the applet in question 11 by employing communication device 120 but may also enroll in a number of different 12 ways, such as by interaction with a web portal, a customer service representative, an interactive voice response system, etc., and/or by the transmission of email messages 14 or other messages, and using a variety of different devices. During enrolment, user 110 provides an identity of user 110, which can be in the form of the client-specific 16 address associated with user 110 (which, in the example being used herein, is "User-110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social 18 security number, etc.
In addition, user 110 supplies customized alert parameters to the applet in question.
21 For the purposes of the discussion to follow, it is assumed that applet 116 provides a customized news reporting service that produces headline news from news sources in 23 a user-selected set of news sources, and that applet 118 provides a customized traffic 24 reporting service that produces the current traffic synopsis for a user-selected travel route. Thus, if the applet in question is applet 116, the customized alert parameters 26 may include the aforesaid user-selected set of news sources (e.g., URLs, key words, 27 newspaper names). Similarly, if the applet in question is applet 118, the customized 28 alert parameters may include the aforesaid user-selected travel route (e.g., road 29 segments, cardinal direction of travel in each segment).
31 Based on the information supplied at step 502, the applets 116, 118 are configured at 32 step 504.
Specifically, configuration of the applets 116, 118 begins by registering the 33 applet in question (either autonomously or with the aid of a person) as a client of the 34 instant messaging service. This is done by contacting the communication server 102 1 (in this case, www.IMservice.com) and creating a unique client-specific address 2 associated with user 110 and applet 116 and/or or a unique client-specific address 3 associated with user 110 and applet 118. By way of specific non-limiting example, in 4 the case of applet 116, a suitable unique client-specific address could be AlertIM-News-User-110@IMservice.com, while in the case of applet 118, a suitable unique 6 client-specific address could be AlertIM-Traffic-User-110@IMservice.com.
It will be 7 noted that the unique client-specific address is associated not only with the data 8 service provided by the applet in question, but also with user 110. Thus, the unique 9 client-specific addresses created at step 504 effectively spawn new clients of the instant messaging service, hereinafter referred to as "customized clients" of the instant 11 messaging service.
13 Of course, the preceding unique client-specific addresses have been used as examples 14 only, and for the sole purpose of enhancing readability; it should thus be appreciated that in actuality, the unique client-specific address associated with a given user and a 16 given applet, which need not be visible to user 110, could be different, non-standard 17 and/or less meaningful to interpretation by a human being. Also, the unique client-18 specific address associated with a given user and a given applet could be created by 19 the given user or the given applet.
21 At step 506, in response to creation of the unique client-specific address associated 22 with a specific customized client of the instant messaging service, the messaging 23 application executed by the processor 104 in the communication server 102 allocates 24 a portion of the memory 106 to the customized client in question. For example, with reference to Fig. 10A, the messaging application executed by the processor 104 in the 26 communication server 102 allocates a memory area 1060 to the customized client 27 identified by AlertIM-News-User-110@IMservice.com and a memory area 1080 to 28 the customized client identified by AlertIM-Traffic-User-110@IMservice.com. It will 29 be observed that each of the memory areas 1060, 1080 comprises a respective contact list 1062, 1082 for the respective customized client of the instant messaging service.
31 Initially, the contact lists 1062, 1082 can be empty, i.e., they do not include the client-32 specific addresses of any other clients of the instant messaging service (that is, the 33 customized clients have no "buddies"). The memory areas 1060, 1080 each further 34 comprise a respective eigen-area 1064, 1084 containing client-controlled information 1 regarding the respective customized client, which the communication server 102 will 2 make available to user 110 if that user's contact list ultimately includes the respective 3 customized client.
The client-controlled information regarding the customized client identified by 6 AlertIM-News-User-110@IMservice.com (which is stored in eigen-area 1064) 7 represents information that this particular customized client wishes to convey to user 8 110. Similarly, the client-controlled information regarding the customized client 9 identified by AlertIM-Traffic-User-110@IMservice.com (which is stored in eigen-area 1084) represents information that this particular customized client wishes to 11 convey to user 110. The client-controlled information stored in eigen-area 1064 or 12 eigen-area 1084 may include a presence state and/or a screen name. The presence 13 state could be used to specify an attentiveness of a given client to receiving instant 14 messages, while the screen name could be used to specify an identifier that the given customized client wishes to use to identify itself during a conversation.
However, in 16 accordance with non-limiting embodiments of the present invention, either or both of 17 the presence state and/or the screen name (and/or possibly other portions of the client-18 controlled information stored in the eigen-areas 1064, 1084) is used to convey 19 information regarding the respective data service, which in the case of the customized client identified by AlertIM-News-User-110@IMservice.com is headline news from 21 news sources in a user-selected set of news sources, and in the case of the customized 22 client identified by AlertIM-Traffic-User-110@IMservice.com is the current traffic 23 synopsis for a user-selected travel route.
Accordingly, and returning to Fig. 5A at step 512, applets 116 and 118 are configured 26 to obtain information regarding a data service specifically for user 110 (hereinafter 27 "user-specific information regarding a data service") from one or more of the data 28 sources 136, 138. Examples of user-specific information regarding a data source 29 include headline news from news sources in a user-selected set of news sources and the current traffic synopsis for a user-selected travel route. The obtaining of user-31 specific information regarding a data source can be performed for other users (e.g., 32 users 112, 114) who have specified their own customized alert parameters. It is 33 assumed for convenience that data source 136 is capable of producing the headline 34 news for user 110 sought by applet 116, and that data source 138 is capable of 1 producing the current traffic synopsis for user 110 sought by applet 118, although this 2 association between the applets 116, 118 and the data sources 136, 138 is not to be 3 considered a limitation of the present invention.
In order for applet 116 to obtain the headline news for user 110 from data source 136, 6 applet 116 may occasionally, continuously, synchronously or asynchronously pull the 7 headline news for user 110 from data source 136; alternatively, data source 136 may 8 be configured to occasionally, continuously, synchronously or asynchronously push 9 the headline news for user 110 to applet 116. This latter functionality can be achieved by applet 116 placing a request with data source 136 to receive the headline news for 11 user 110. Similarly, in order for applet 118 to obtain the current traffic synopsis for 12 user 110 from data source 138, applet 118 may occasionally, continuously, 13 synchronously or asynchronously pull the current traffic synopsis for user 110 from 14 data source 138; alternatively, data source 138 may be configured to occasionally, continuously, synchronously or asynchronously push the current traffic synopsis for 16 user 110 to applet 118. This latter functionality can be achieved by applet 118 placing 17 a request with data source 138 to receive the current traffic synopsis for user 110.
18 Similar data transfers are arranged for each of the other users that may desire 19 customized data services provided by applets 116 and 118.
21 Assume now that the headline news for user 110 is "Smalltown residents asked to boil 22 water" and that the current traffic synopsis for user 110 is "Accident ¨
Galipeault 23 bridge ¨ right lane". This user-specific information regarding a data service is 24 received by the applets 116, 118 as a result of execution of step 512.
At step 514, each of the applets 116, 118 is configured to update the respective eigen-area 1064, 26 1084 for the relevant customized client with the received user-specific information 27 regarding a data service.
29 Specifically, and with reference to Fig. 10B, applet 116 can update the client-controlled information in eigen-area 1064 by modifying the screen name to reflect the 31 headline news for user 110 (which, in the present example, is "Smalltown residents 32 asked to boil water"). In addition, or alternatively, applet 116 can update the client-33 controlled information in eigen-area 1064 by causing the screen name to reflect data 34 that can be easily expressed using simple icons, such as the presence or absence of 1 headline news. Of course, in an alternative embodiment, applet 116 could have 2 updated the client-controlled information in eigen-area 1064 by also (or instead) 3 modifying the presence state and/or possibly other portions of the client-controlled 4 information stored in eigen-area 1064 to reflect the headline news for user 110. In summary, the information of interest is stored in eigen-area 1064 as text data or other 6 data (such as data that encodes one or more graphical icons).
8 Similarly, applet 118 updates the client-controlled information in eigen-area 1084 by 9 modifying the screen name to reflect the current traffic synopsis for user 110 (which, in the present example, is "Accident ¨ Galipeault bridge ¨ right lane"). In addition, or 11 alternatively, applet 118 can update the client-controlled information in eigen-area 12 1084 by causing the screen name to reflect data that can be easily expressed using 13 simple icons, such as whether the user-selected traffic route is recommendable, 14 passable or to be avoided. Of course, in an alternative embodiment, applet 118 could have updated the client-controlled information in eigen-area 1084 by also (or instead) 16 modifying the presence state and/or possibly other portions of the client-controlled 17 information stored in eigen-area 1084 to reflect the current traffic synopsis for user 18 110. In summary, the information of interest is stored in eigen-area 1084 as text data 19 or other data (such as data that encodes one or more graphical icons).
21 Interaction between a given one the communication devices 120, 122, 124 and the 22 communication server 102 under Scenario II is now described. For the sake of 23 simplicity, let the given communication device be communication device 120 which 24 is associated with user 110, and let it be assumed that useill0 is a client of the instant messaging service. That is to say, user 110 has a client-specific address, say, "User-26 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 27 110. For example, with reference to Fig. 10C, the messaging application executed by 28 the processor 104 in the communication server 102 allocates a memory area 1010 to 29 user 110.
31 It will be observed that memory area 1010 comprises a contact list 1012 for user 110.
32 Initially, the contact list 1012 can be empty, i.e., it does not include the client-specific 33 addresses of any other clients of the instant messaging service (that is, user 110 has no 34 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 1 list 1012 by control of the messaging application executed by the processor 104 in the 2 communication server 102. The memory area 1010 further comprises an eigen-area 3 1014 containing client-controlled information regarding user 110, which the 4 communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 112, 114 and each of the aforesaid 6 customized clients) if their contact lists ultimately include user 110.
8 With reference to the message flow diagram in Fig. 6A, user 110 uses communication 9 device 120 to log in to e., thereby instantiating a client of) the instant messaging service at step 602. This can be achieved by providing identification and 11 authentication credentials such as a username and a password, for example.
13 At step 604, user 110 identifies a customized client of the instant messaging service 14 which provides a desired data service by entering the unique client-specific address associated with the customized client in question. In the example being presently 16 described, user 110 may enter one of the aforesaid unique client-specific addresses, 17 namely AlertIM-News-User-110@IMservice.com (which is associated with applet 18 116 producing the headline news for user 110) or AlertIM-Traffic-User-19 110@IMservice.com (which is associated with applet 118 producing the current traffic synopsis for user 110). In certain embodiments, user 110 identifies the 21 customized client of the instant messaging service that provides the desired data 22 service using a directory service offered by the communication server 102, while in 23 other embodiments, user 110 may directly type in the unique client-specific address 24 associated with the customized client in question.
26 Alternatively, since user 110 has previously enrolled with applet 116 producing the 27 headline news for user 110 and/or with applet 118 producing the current traffic 28 synopsis for user 110, the customized client may send a request for acceptance to user 29 110, such that when user 110 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the request for acceptance. If user 110 accepts, 31 then the customized client will be added to the contact list 1012 of user 110.
33 Either way, this results in the unique client-specific address associated with the 34 customized client in question being added to the contact list 1012, and leaving at least 1 one corresponding field to be filled with the client-controlled information regarding 2 the customized client in question. In the present example, not to be considered 3 limiting, fields 1066, 1076 are used to store the presence state and screen name, 4 respectively, of the customized client having the unique client-specific address AlertIM-News-User-110@IMservice.com, while fields 1068, 1078 are used to store 6 the presence state and screen name, respectively, of the customized client having the 7 unique client-specific address AlertIM-Traffic-User-110@IMservice.com.
9 As an aside, it should be appreciated that an optional step (510) could have been performed in Fig. 5A, whereby the unique client-specific address created at step 504 11 can be revealed to user 110 in order to inform him or her of the unique client-specific 12 address AlertIM-News-User-110@IMservice.com and/or of the unique client-specific 13 address AlertIM-Traffic-User-110@IMservice.com. It should be appreciated that step 14 510 is optional, since the clients of the instant messaging service can gain awareness of the unique client-specific address AlertIM-News-User-110@IMservice.com and/or 16 of the unique client-specific address AlertIM-Traffic-User-110@IMservice.com in 17 other ways, such as through other communication devices and other methods of 18 communication, including, without limitation: interaction with a customer service 19 representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message containing the 21 unique client-specific addresses, etc. It should further be appreciated that the clients 22 of the instant messaging service may employ a directory service (e.g., operated by the 23 communication server 102) and, as such, not need be explicitly aware of the unique 24 client-specific addresses associated with the customized clients of the instant messaging service.
27 Returning now to Fig. 6A and 10C, at step 610, having determined that the client-28 controlled information regarding the new buddy (i.e., one of the aforesaid customized 29 clients) has been updated in eigen-area 1064 or 1084, the messaging application executed by the processor 104 in the communication server 102 updates the client-31 controlled information regarding the new buddy on the contact list 1012 for user 110.
33 Specifically, the client-controlled information regarding the customized client 34 identified by AlertIM-News-User-110@IMservice.com is obtained from eigen-area 1 1064 which, as previously described, conveys headline news from news sources in a 2 user-selected set of news sources. In one embodiment, the messaging application 3 executed by the processor 104 in the communication server 102 copies the presence 4 state and screen name from eigen-area 1064 into fields 1066, 1076 of the contact list 1012. In another embodiment where fields 1066, 1076 contain pointers to, 6 respectively, the presence state and screen name in eigen-area 1064, the client-7 controlled information regarding the customized client in question will be instantly 8 updated without the need for data transfer. A similar updating operation is performed 9 by the communication server 102 with respect to the contact lists for other users.
11 For its part, the client-controlled information regarding the customized client 12 identified by AlertIM-Traffic-User-110@IMservice.com is obtained from eigen-area 13 1084 which, as previously described, conveys the current traffic synopsis for a user-14 selected travel route. In one embodiment, the messaging application executed by the processor 104 in the communication server 102 copies the presence state and screen 16 name from eigen-area 1084 into fields 1068, 1078 of the contact list 1012. In another 17 embodiment where fields 1068, 1078 contain pointers to, respectively, the presence 18 state and screen name in eigen-area 1084, the client-controlled information regarding 19 the customized client in question will be instantly updated without the need for data transfer. A similar updating operation is performed by the communication server 102 21 with respect to the contact lists for other users.
23 At this point, the client-controlled information regarding the customized client in 24 question (which, it is recalled, comprises the information regarding the desired data service) is ready for observation by user 110. Accordingly, at step 612, which can be 26 inherent in step 610 or a separate step altogether, the client-controlled information 27 regarding the customized client in question can be conveyed to user 110 in a visual 28 format.
In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 31 information regarding the customized client in question can be displayed on the 32 aforesaid screen of communication device 120 in the form of text, graphics and/or an 33 icon. In this example, "Smalltown residents asked to boil water" is the screen name 34 of the client-controlled information regarding the customized client identified by the 1 unique client-specific address AlertIM-News-User-110@IMservice.com, which 2 provides headline news from news sources in a user-selected set of news sources. In 3 addition, "Accident ¨ Galipeault bridge ¨ right lane" is the screen name of the client-4 controlled information regarding the customized client identified by the unique client-specific address AlertIM-Traffic-User-110@IMservice.com, which provides a 6 customized traffic reporting service that produces the current traffic synopsis for a 7 user-selected travel route. Of note is the "X" on the left of "Accident ¨
Galipeault 8 bridge ¨ right lane", which indicates a problem with the user-selected travel route.
Persons skilled in the art will therefore appreciate that the above described 11 embodiments allow the persistent conveyance of client-controlled information 12 regarding the customized client in question, in a non-intrusive manner and without 13 interrupting user 110. Specifically, in two non-limiting examples, user 110 can 14 monitor headline news from news sources in a user-selected set of news sources or the current traffic synopsis for a user-selected travel route on an ongoing basis ¨ and at 16 times of his or her own choosing. Moreover, user 110 is not compelled to remember 17 the headline news or current traffic synopsis since user 110 can refresh his or her 18 knowledge merely by glancing at the contact list 1012.
Meanwhile, it will be recalled from step 512 in Fig. 5A, applets 116 and 118 continue 21 to obtain from the data sources 136, 138 the user-specific information regarding a data 22 service associated with the various customized clients of the instant messaging 23 service. Thus, the client-controlled information regarding the customized clients of 24 the instant messaging service will continue to be updated in eigen-areas 1064, 1084 as the applets 116, 118 continue to execute, which ensures currency of the information 26 being persistently conveyed to, and observed by, user 110.
28 Moreover, it should be appreciated that the client-controlled information regarding a 29 given customized client can include passive data, which can be intended merely for observation by user 110, as well as active data, which can allow user 110 to perform 31 an action on the active data, triggering an interaction with the given customized client 32 and allowing user 110 to retrieve further information related to the active data. For 33 example, where the client-controlled information regarding the given customized 34 client is headline news from news sources in a user-selected set of news sources or 1 regarding user-specific topics, the "further information" can be an in-depth story 2 behind the headline news. Other examples of "further information" include stock 3 details, traffic details, real estate listing details, weather details, etc.
The aforesaid interaction between user 110 and the given customized client may be 6 triggered by user 110 sending an electronic message (e.g., an instant message) to the 7 given customized client, which can serve as a request for the further information.
8 Alternatively, the given customized client can send an electronic message (e.g., an 9 instant message) to user 110 containing an actionable URL, which can lead user 110 to a web portal where user 110 may interact further with the applet that supports the 11 given customized client.
13 The aforesaid interaction between user 110 and the given customized client may also 14 lead to downstream actions such as a sale, purchase or reservation.
16 Also, it should be appreciated that the client-controlled information regarding a given 17 customized client can be dynamically updated based on the aforesaid interaction 18 between user 110 and the given customized client. For example, the given 19 customized client can track which client-controlled information regarding the given customized client has been observed by user 110. This can be achieved by tracking 21 which further information has been retrieved by user 110 pursuant to an interaction 22 with the given customized client. Alternatively, this can be achieved by monitoring 23 cookies within communication device 120, or in a variety of other ways.
With the 24 knowledge of what information user 110 has actually observed, the given customized client can accordingly update the client-controlled information regarding the given 26 customized client.
28 For example, where the user-specific client-controlled information regarding the 29 given customized client is a list of ten headlines related to Iraq, and where user 110 has retrieved further information related to headline #3 of 10, the given customized 31 client can gain knowledge of this fact in one of the aforesaid ways. The result is that 32 the client-controlled information regarding the given customized client will now be a 33 list of nine headlines, which were formerly headlines #1, #2 and #4 through #10.
34 Alternatively, the ten headlines could remain displayed, with headline #3 being 1 displayed differently from the others (e.g., grayed out) to assist user 110 in navigating 2 through the headlines. Alternatively, or in addition, the client-controlled information 3 regarding the given customized client can also include an icon which is indicative 4 (e.g., by a change in color, size or shape) of the existence of unreviewed content.
Similar navigation aids can be provided for the various other data services within the 6 scope of the present invention.
8 Persons skilled in the art will also appreciate that it may be beneficial to ensure that a 9 given user who wishes to benefit from a particular customized data service falling under Scenario II be authorized to do so. For example, it is within the scope of the 11 present invention to require that the given user pay for the data service. It is also 12 within the scope of the present invention to require that the given user enroll with the 13 applet-hosting device that hosts the applet that provides the particular data service.
14 Thus, an authorization step may be included at some point during Scenario II.
Reference is made to the above description of Figs. 4A through 4F, which also apply 16 to Scenario II, with the exception that the enrollment steps in Figs. 4A
and 4B can be 17 considered redundant, since user 110 is assumed to have enrolled with applet 116 18 and/or applet 118 (see step 502 in Fig. 5A).
First Variant of Scenario II (Figs. 5B, 6B, 11, 12) 22 A first variant of Scenario II is now described, wherein customized clients of the 23 instant messaging service are identified using generic client-specific addresses.
24 Accordingly, reference is made to Fig. 5B, which repeats steps 502 through 506 of Fig. 5A. Once this point is reached, step 508 is executed, whereby the messaging 26 application executed by the processor 104 in the communication server 102 invokes 27 an aliasing function. The aliasing function allows user 110 to identify a specific 28 customized client of the instant messaging service using a generic client-specific 29 address, i.e., an address that is not unique to user 110. This may enhance traction within the user community from the commercial perspective as it allows the generic 31 client-specific address associated with a particular data service to be advertised 32 without waiting for any particular user to enroll at step 502.
1 Specifically, the aliasing function creates an association between (i) a given one of the 2 unique client-specific addresses created at step 504; (ii) the unique client-specific 3 address associated with user 110; and (iii) a (previously created) generic client-4 specific address associated with a given one of applets 116, 118. To this end, and with reference to Fig. 11, the aliasing function may rely on a database 1110 in order to 6 store the aforesaid association. In this non-limiting example, it will be observed that 7 the combination of User-110@IMservice.com (which uniquely identifies user 110) 8 and AlertIM-Customized-News@IMservice.com (which is a generic client-specific 9 address associated with the customized news reporting service provided by applet 116) uniquely specifies the address AlertIM-News-User-110@IMservice.com, which 11 was created at step 504. Analogously, it will be observed that the combination of 12 User-110@IMservice.com and AlertIM-Customized-Traffic@IMservice.com (which 13 is a generic client-specific address associated with the customized traffic reporting 14 service provided by applet 118) uniquely specifies the address AlertIM-Traffic-User-110@IMservice.com, which was also created at step 504. Similar associations are 16 stored in the database 110 for other users, such as user 112 and user 114.
18 Following step 508, steps 512 and 514 of Fig. 5A are repeated in Fig.
5B.
Reference is now made to Fig. 12, which is analogous to Fig. 10C but is specifically 21 applicable to the first variant of Scenario II. With user 110 being a client of the 22 instant messaging service, the messaging application executed by the processor 104 in 23 the communication server 102 will have allocated a memory area 1210 to user 110. It 24 will be observed that memory area 1210 comprises a contact list 1212 for user 110.
Initially, the contact list 1212 can be empty, i.e., it does not include the client-specific 26 addresses of any other clients of the instant messaging service (that is, user 110 has no 27 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 28 list 1212 by control of the messaging application executed by the processor 104 in the 29 communication server 102. The memory area 1210 further comprises an eigen-area 1214 containing client-controlled information regarding user 110, which the 31 communication server 102 will make available to other clients of the instant 32 messaging service (such as, potentially, users 112, 114 and each of the aforesaid 33 customized clients) if their contact lists ultimately include user 110.
1 Turning now to the message flow diagram in Fig. 6B, user 110 uses communication 2 device 120 to log in to (i e., thereby instantiating a client of) the instant messaging 3 service at step 602, as was the case in Fig. 6A. This can be achieved by providing 4 identification and authentication credentials such as a username and a password, for example.
7 At step 604*, user 110 identifies a customized client of the instant messaging service 8 which provides a desired data service. In contrast to step 604 in Fig.
6A, this is done 9 at step 604* by entering the generic client-specific address associated with the customized client in question. In the example being presently described, user 11 may enter one of the aforesaid generic client-specific addresses, namely AlertIM-12 Customized-News@IMservice.com or AlertIM-Customized-Traffic@IMservice.com.
13 In some embodiments, user 110 obtains knowledge of the generic client-specific 14 address associated with the customized client of the instant messaging service that provides the desired data service through media advertising, for example, and/or 16 based on interaction with a customer service representative, interaction with an 17 automated voice response system, interaction with a web portal, receipt of an email, 18 text message or instant message containing the generic client-specific address, etc. In 19 other embodiments, user 110 obtains the generic client-specific address associated with the customized client of the instant messaging service that provides the desired 21 data service by invoking a directory service offered by the communication server 102.
23 Alternatively, since user 110 has previously enrolled with applet 116 and/or applet 24 116, the customized client in question may send a request for acceptance to user 110, such that when user 110 logs in as a client of the instant messaging service, user 110 26 is prompted to accept or decline the request for acceptance. If user 110 accepts, then 27 the customized client will be added to the contact list 1212 of user 110.
29 Either way, this results in the generic client-specific address associated with the customized client in question being added to the contact list 1212, leaving at least one 31 corresponding field in the contact list 1212 for storing the client-controlled 32 information regarding the customized client in question. In the present example, not 33 to be considered limiting, fields 1256, 1276 are used to store the presence state and 34 screen name, respectively, of the client having the generic client-specific address 1 AlertIM-Customized-News@IMservice.com, while fields 1258, 1278 are used to 2 store the presence state and screen name, respectively, of the client having the generic 3 client-specific address AlertIM-Customized-Traffic@IMservice.com.
As an aside, it should be appreciated that an optional step (510*) could have been 6 performed in Fig. 5B, whereby the (previously created) generic client-specific address 7 associated with a given one of the customized clients could have been revealed to the 8 user community in order to inform the various other clients of the instant messaging 9 service (in particular, user 110) of the generic client-specific address associated with the given one of the customized clients. It should be appreciated that step 510* is 11 optional, since the clients of the instant messaging service can gain awareness of the 12 generic client-specific address associated with the customized clients in other ways, 13 such as through other communication devices and other methods of communication, 14 including, without limitation: interaction with a customer service representative, interaction with an automated voice response system, interaction with a web portal, 16 receipt of an email, text message or instant message containing the generic client-17 specific address, etc. It should further be appreciated that the clients of the instant 18 messaging service may employ a directory service (e.g., operated by the 19 communication server 102) and, as such, not need be explicitly aware of the generic client-specific address associated with the customized clients in order to identify a 21 given customized client.
23 Returning now to Figs. 6B and 12, at step 610A, having determined that the contact 24 list 1212 includes a new buddy, the messaging application executed by the processor 104 in the communication server 102 accesses the database 1110 on the basis of (i) 26 the client-specific address of the new buddy (i.e., the generic client-specific address 27 associated with the customized client in question) and (ii) the client-specific address 28 associated with user 110, in order to identify a unique client-specific address 29 associated with the customized client in question. In the non-limiting example depicted in Fig. 11, accessing the database 1110 on the basis of AlertIM-Customized-31 News@IMservice.com and User-110@IMservice.com would yield AlertIM-News-32 User-110@IMservice.com; analogously, accessing the database 1110 on the basis of 33 AlertIM-Customized-Traffic@IMservice.com and User-110@IMservice.com would 34 yield AlertIM-Traffic-User-110@IMservice.com.
2 At step 610B, having determined that the client-controlled information regarding the 3 new buddy (i.e., customized client identified by the unique client-specific address 4 obtained from the database 1110) has been updated in eigen-area 1064 or 1084, the messaging application executed by the processor 104 in the communication server 6 102 updates the client-controlled information regarding the new buddy on the contact 7 list 1212 for user 110.
9 Specifically, the client-controlled information regarding the customized client identified by AlertIM-News-User-110@IMservice.com is obtained from eigen-area 11 1064 which, as previously described, conveys headline news from news sources in a 12 user-selected set of news sources. In one embodiment, the messaging application 13 executed by the processor 104 in the communication server 102 copies the presence 14 state and screen name from eigen-area 1064 into fields 1256, 1276 of contact list 1212, respectively. In another embodiment where fields 1256, 1276 contain pointers 16 to, respectively, the presence state and screen name in eigen-area 1064, the client-17 controlled information regarding the customized client in question will be instantly 18 updated without the need for data transfer. A similar updating operation is performed 19 by the communication server 102 with respect to the contact lists for other users.
21 For its part, the client-controlled information regarding the customized client 22 identified by AlertIM-Traffic-User-110@IMservice.com is obtained from eigen-area 23 1084 which, as previously described, conveys the current traffic synopsis for a user-24 selected travel route. In one embodiment, the messaging application executed by the processor 104 in the communication server 102 copies the screen name and the 26 presence state from eigen-area 1084 into fields 1258, 1279 of contact list 1212, 27 respectively. In another embodiment where fields 1258, 1278 contain pointers to, 28 respectively, the presence state and screen name in eigen-area 1084, the client-29 controlled information regarding the customized client in question will be instantly updated without the need for data transfer. A similar updating operation is performed 31 by the communication server 102 with respect to the contact lists for other users.
33 At this point, the client-controlled information regarding the customized client in 34 question (which, it is recalled, comprises the information regarding the desired data 1 service) is ready for observation by user 110. Accordingly, at step 612, which can be inherent in 2 step 610B or a separate step altogether, the client-controlled information regarding the customized 3 client in question can be conveyed to user 110 in a visual format.
Persons skilled in the art will therefore appreciate that the above described embodiments allow the 6 persistent conveyance client-controlled information regarding the customized client in question to 7 user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 8 monitor headline news from news sources in a user-selected set of news sources or the current 9 traffic synopsis for a user-selected travel route on an ongoing basis ¨
and at times of his or her own choosing. Moreover, user 110 is not compelled to remember the headline news or current traffic 11 synopsis since user 110 can refresh his or her knowledge merely by glancing at the contact list 1012.
12 Moreover, in this first variant of Scenario II, user 110 can access the desired data service using a 13 generic client-specific address, which can be conveniently retained by user 110.
Meanwhile, it will be recalled from step 512 in Fig. 5B, applets 116 and 118 continue to obtain from 16 the data sources 136, 138 the user-specific information regarding a data service associated with the 17 various customized clients of the instant messaging service. Thus, the client-controlled information 18 regarding the customized clients of the instant messaging service will continue to be updated in 19 eigen-areas 1064, 1084 as the applets 116, 118 continue to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
22 Second Variant of Scenario II (Figs. 13A, 13B and 14) 24 A second variant of Scenario II is now described, wherein user 110 provides seed data for initiating a particular data service provided by a particular applet, say, applet 118S, which is hereinafter 26 referred to as a search applet. For the purposes of the present example, let the particular data service 27 be a customized web search service, where the user-specific information regarding a data service is 28 a feature (e.g., current status, number of results, relevancy, etc.) of an online search performed by 29 the search applet 118S, based on the aforementioned seed data provided by user 110.
31 Accordingly, reference is made to Fig. 13A, where user 110 logs in to the instant messaging service 32 at step 1302. This can be achieved by providing identification and authentication credentials such as 33 a username and a password, for example. At step 1304, user 110 enters a generic client-specific 1 address associated with the customized web search service (hereinafter referred to as a "generic web 2 search address"), such as "AlertIM-Search@IMservice.com". In some embodiments, user 110 3 obtains knowledge of the generic web search address through media advertising, interaction with a 4 customer service representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message containing the generic web 6 search address, etc. In other embodiments, user 110 obtains the generic web search address by 7 invoking a directory service offered by the communication server 102.
9 Alternatively, since user 110 has previously enrolled with the search applet 118S, the customized client in question may send a request for acceptance to user 110, such that when user 110 logs in as 11 a client of the instant messaging service, user 110 is prompted to accept or decline the request for 12 acceptance. Referring now to Fig. 14, if user 110 accepts, then the customized client will be added 13 to a contact list 1412 of user 110.
Either way, this results in the generic web search address (in this case, "AlertIM-16 Search@IMservice.com") being added to the contact list 1412, and leaving at least one 17 corresponding field to be filled with the client-controlled information regarding the customized 18 client in question. In the present example, not to be considered limiting, fields 1466, 1476 are used 19 to store the presence state and screen name, respectively, of the customized client having the unique client-specific address AlertIM-Search@IMservice.com.
22 At step 1308, the messaging application executed by the processor 104 in the communication server 23 102 determines that the contact list 1412 includes a new buddy, which has been identified by the 24 generic web search address. In response, the messaging application executed by the processor 104 in the communication server 102 creates a client-specific address associated with the search applet 26 118S and unique to user 110. By way of specific non-limiting example, a suitable client-specific 27 address associated with the search applet 118 and unique to user 110 could be AlertIM-Search-User-28 110@lMservice.com. Thus, the unique client-specific address created at step 1308 effectively 29 spawns a new client of the instant messaging service, which amounts to a "customized web search client" of the instant messaging service.
32 Of course, the preceding unique client-preceding specific address associated with the search applet 33 118S and unique to user 110 has been used as an example only, and for the sole purpose of 1 enhancing readability; it should thus be appreciated that in actuality, the unique client-specific 2 address associated with the search applet 118S and unique to user 110, but which need not be visible 3 to user 110, could be different, non-standard and/or less meaningful to interpretation by a human 4 being. Also, the unique client-specific address associated with the search applet 118S and a given user could be created by the given user or by the search applet 118S.
7 At step 1309, the messaging application executed by the processor 104 in the communication server 8 102 allocates a portion of the memory 106 to the customized web search client. For example, with 9 reference again to Fig. 14, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 1460 to the customized web search client. It 11 will be observed that the memory area 1460 comprises a contact list 1462 for the customized web 12 search client. Initially, the contact list 1462 can be empty, i.e., it does not include the client-specific 13 addresses of any other clients of the instant messaging service (that is, the customized web search 14 client has no "buddies"). The memory area 1460 further comprises an eigen-area 1464 containing client-controlled information regarding the customized web search client.
17 The client-controlled information regarding the customized web search client (which is stored in 18 eigen-area 1464) represents information that the customized web search client wishes to convey to 19 user 110. The client-controlled information stored in eigen-area 1464 may include a presence state and/or a screen name. The presence state could be used to specify an attentiveness of the 21 customized web search client to receiving instant messages, while the screen name could be used to 22 specify an identifier that the customized web search client wishes to use to identify itself during a 23 conversation. However, in accordance with non-limiting embodiments of the present invention, 24 either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information stored in eigen-area 1464) is used to convey the user-specific 26 information regarding a data service, namely, a feature (e.g., current status, number of results, 27 relevancy, etc.) of an online search to be performed later on at step 1314 based on seed data.
29 Accordingly, at step 1310, user 110 supplies the aforesaid seed data to the communication server 102. The seed data may include search parameters or other information employed by the search 31 applet 118S to generate user-specific information regarding a data service. The seed data can be 32 supplied in a number of ways, several non-limiting examples of which are now described.
1 In a first non-limiting example of step 1310, the messaging application executed by the processor 2 104 in the communication server 102 determines that the contact list 1412 includes the new buddy 3 (identified by aforesaid the generic web search address), as described above. At this point, the 4 messaging application executed by the processor 104 in the communication server 102 can be configured to communicate with user 110. To this end, the communication server 102 can initiate 6 an instant message exchange with communication device 120; alternatively, the communication 7 server 102 can initiate a call back to a telephone number associated with user 110; still other 8 possibilities are within the scope of the present invention, including but not limited to via a web 9 portal, interactive voice response system, URL embedded in an email or other electronic message, etc. During such communication between user 110 and the communication server 102, user 110 11 may supply to the communication server 102 the aforesaid seed data 13 In a second non-limiting example of step 1310, the messaging application executed by the processor 14 104 in the communication server 102 determines that the contact list 1412 includes the new buddy (identified by aforesaid the generic web search address), as described above.
At this point, the 16 messaging application executed by the processor 104 in the communication server 102 can be 17 configured to contact the search applet 118S (which can be done in a number of ways, including but 18 not limited to using protocols such as IP and SOAP, for example) and ask it whether it wishes to add 19 user 110 to its contact list as a buddy of its own. This may trigger the search applet 118S to communicate with user 110, e.g., by sending an instant message of its own or in a variety of other 21 ways including but not limited to via a web portal, interactive voice response system, URL
22 embedded in an email or other electronic message, etc. In response, user 110 may supply the 23 aforesaid seed data to the search applet 118S.
In a third non-limiting example of step 1310, the messaging application executed by the processor 26 104 in the communication server 102 determines that the contact list 1412 includes the new buddy 27 (identified by aforesaid the generic web search address), and the customized web search client adds 28 user 110 to its own contact list 1462. At this point, user 110 and the customized web search client 29 will be cross-linked to one another. By virtue of the instant messaging service provided by the communication server 102, user 110 can initiate an instant messaging session with the search applet 31 118S by sending the aforesaid seed data in an instant message.
1 Referring now to Fig. 13B, if the actual embodiment of step 1310 did not result in the search applet 2 118S having been provided the seed data by user 110, then at step 1312, the messaging application 3 executed by the processor 104 in the communication server 102 may contact the search applet 118S
4 and supply the search applet 118S with the identity of user 110 and the seed data.
6 At step 1314, the search applet 118S in turn performs the web search based on the seed data 7 provided at step 1310. The result of the web search is the user-specific information regarding a data 8 service.
Assume now that the user-specific information regarding a data service is "133 relevant results 11 found, 50% complete", which indicates that the web search is half complete and has found 133 12 relevant results. At step 1318, the search applet 118S is configured to update eigen-area 1464 for 13 the customized web search client with the aforesaid user-specific information regarding a data 14 service.
16 Specifically, and with reference again to Fig. 14, the customized web search client can update the 17 client-controlled information in eigen-area 1464 by modifying the presence 1 state to reflect the user-specific information regarding a data service (which, in the 2 present example, is "133 relevant results found, 50% complete"). In addition, or 3 alternatively, the customized web search client can update the client-controlled 4 information in eigen-area 1464 by causing the presence state to reflect other data such as whether the search is complete and/or whether at least one relevant result was 6 found. In a simple embodiment, the presence state can be toggled between two states 7 (e.g., online and offline) depending on whether there are new search results. Consider 8 the case where a specific song or video is being sought by user 110. Upon initiating 9 the search, the presence state of the customized web search client may go to "offline", and might not change to "online" until the search has concluded successfully.
By 11 observing the presence state, user 110 can gain knowledge in a non-intrusive way that 12 the web search has completed successfully (or that the web search has not yet 13 completed successfully). Of course, in an alternative embodiment, the customized 14 web search client could have updated the client-controlled information in eigen-area 1464 by also (or instead) modifying the screen name and/or possibly other portions of 16 the client-controlled information stored in eigen-area 1464 to reflect the user-specific 17 information regarding a data service. In summary, the information of interest is stored 18 in eigen-area 1464 as text data or other data (such as data that encodes one or more 19 graphical icons).
21 At step 1320, having determined that the client-controlled information regarding the 22 new buddy (i.e., the customized web search client) has been updated in eigen-area 23 1464, the messaging application executed by the processor 104 in the communication 24 server 102 updates the client-controlled information regarding the new buddy on the contact list 1412 for user 110. Specifically, the client-controlled information 26 regarding the customized web search client is obtained from eigen-area 1464 which, 27 as previously described, conveys the result of the web search. In one embodiment, the 28 messaging application executed by the processor 104 in the communication server 29 102 copies the presence state and screen name from eigen-area 1464 into fields 1466, 1476 of the contact list 1412, respectively. In another embodiment where fields 1466, 31 1476 contain pointers to, respectively, the presence state and screen name in eigen-32 area 1464, the client-controlled information regarding the customized web search 33 client will be instantly updated without the need for data transfer.
1 At this point, the client-controlled information regarding the customized web search client (which, it 2 is recalled, comprises a feature of the online search) is ready for observation by user 110.
3 Accordingly, at step 1322, which can be inherent in step 1320 or a separate step altogether, the 4 client-controlled information regarding the customized web search client can be conveyed to user 110 in a visual format.
7 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 8 regarding the customized web search client can be displayed on the aforesaid screen of 9 communication device 120 in the form of text, graphics and/or an icon. In this example, "web search" and "133 relevant results, 50% complete" are, respectively, the screen name and presence 11 state of the client-controlled information regarding the customized web search client, which 12 provides a feature of an online search performed by the search applet 118S, based on seed data 13 provided by user 110. Of note is the hourglass on the left of "web search", which indicates that the 14 online search is still in progress.
16 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 17 persistent conveyance of the search results of an online search based on seed data to user 110, in a 18 non-intrusive manner and without interrupting user 110. Specifically, user 110 can monitor the 19 status, progress and results of an online search over time ¨ and at instants of his or her own choosing. Moreover, user 110 is not compelled to remember this information since user 110 can 21 refresh his or her knowledge merely by glancing at the contact list 1412.
23 Meanwhile, it will be recalled from step 1314, the search applet 118S
may continue to perform the 24 online search (if it is not complete) in order to obtain the user-specific information regarding a data service. Thus, the client-controlled information regarding the customized web search client will 26 continue to be updated in eigen-area 1464 as the results of the search come in, which ensures 27 currency of the information being persistently conveyed to, and observed by, user 110. In addition, 28 the second variant of Scenario II allows user 110 to obtain search results on an ad hoc basis, i.e., 29 without any prior enrollment with the search applet 118S.
31 Scenario III (Figs. 7, 8, 15 and 16A-16C) 2 Scenario III is applicable to data services that are private (i.e., providing data that is 3 requested by individual users and is only accessible with the user's permission).
4 Specific non-limiting examples of data services to which Scenario III applies include, without limitation:
7 - a link to a voice mail system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 9 number of messages, number of new messages, content of messages, etc.) of voice mail messages in the user's voice mail box);
11 - a link to a financial institution subscribed to by a given user (where the information regarding a data service is a feature (e.g, current balance, .
13 transaction listing) regarding the user's account;
14 - a link to a home security system subscribed to by a given user (where the information regarding a data service is the current status of various sensors in 16 the user's home);
17 - a link to an electronic mail system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 19 number of messages, number of unread messages, content of messages, etc.) of email messages in the user's electronic mail box);
21 - a link to a vehicle management system subscribed to by a given user (where 22 the information regarding a data service is a feature (e.g., location, diagnostics, 23 etc.) of one or more vehicles in a fleet);
24 - a link to mapping system subscribed to by a given user (where the information regarding a data service is the location of items (e.g., mobile communication 26 devices, courier packages, electronically tagged inventory, etc.) associated 27 with a user account) 28 - a link to telephony presence feature subscribed to by a given user (where the information regarding a data service is an indication of whether a given potential called party is engaged in a telephone conversation);
31 - a link to a text messaging system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 33 number of text messages, number of unread text messages, content of text 34 messages, etc.) of text messages in the user's text message mailbox);
- etc.
3 Scenario III assumes the prior establishment of a relationship between user 110 and one of the data 4 sources, say, data source 136. With reference to Fig. 15, let it be assumed for the purposes of the present non-limiting example that the data source is a voice mail system 1502.
For the purposes of 6 the present example, user 110 is associated with a unique network identifier (e.g., a directory 7 number) that is reachable over a telephony network 1510, which may include the public switched 8 telephone network (PSTN) and/or a mobile network and/or a data network (such as the data network 9 130).
11 The voice mail system 1502 is used for storing messages arising from voice calls destined for the 12 directory number that user 110 cannot ¨ or does not wish to ¨ answer.
For instance, when the 13 telephony network 1510 cannot reach user 110 to complete a call placed by a caller to the directory 14 number associated with user 110, the telephony network 1510 redirects the caller to the voice mail system 1502 where the caller leaves a voice mail message for user 110. Voice mail messages for 16 user 110 are stored in a voice mail box 1504 associated with user 110.
18 The voice mail system 1502 also stores ancillary data 1506 associated with the voice mail box 1504.
19 The ancillary data 1506 associated with the voice mail box 1504 may include information regarding the voice mail messages in the voice mail box 1504, such as the number of voice mail messages, the 21 number of new voice mail messages, whether there are any new voice mail messages at all, the date 22 and time of receipt of individual voice mail messages, the duration of individual voice mail 23 messages, the urgency of individual voice mail messages, the source (e.g., originating party 24 telephone number) of individual voice mail messages, a preview (e.g., speech-to-text) of a portion of individual voice mail messages, a contextual analysis of individual voice mail messages, etc.
27 In addition, the voice mail system 1502 comprises a database 1508 that stores authentication 28 credentials for user 110 and other users of the voice mail system 1502.
The authentication 29 credentials can be used to impose or lift access restrictions to the voice mail box 1504. For example, when a querying party (e.g. voice mail applet 116V) provides the correct identifier (e.g., a 31 voice mail box number) and password to the voice mail system 1502, the querying party is given 32 access to the voice mail messages in the voice mail box 1504 as well as the ancillary data 1506 33 associated with the voice mail box 1504. The querying party may access the voice mail box 1504 in 1 a variety of ways, which may include ¨ but is not limited to ¨ dialing a telephone number of the 2 voice mail system 1502 and communicating with the voice mail system 1502 using email and/or 3 instant messaging. Where the querying party is a machine rather than a person, then the querying 4 party may also access the voice mail box 1504 in a variety of ways, which may include ¨ but is not limited to ¨ communicating with the voice mail system 1502 using protocols such as IP and SOAP, 6 for example.
8 It is noted that the querying party may be user 110 but may also be an entity other than user 110. In 9 the example to be presented below, the querying party is applet 116, which is assumed to be a voice mail applet.
12 With reference to Fig. 7, Scenario III begins at step 702 by user 110 enrolling with a voice mail 13 applet 116V to configure the data service for user 110. In particular, user 110 can contact the voice 14 mail applet 116V by employing communication device 120 but may also enroll in a number of different ways, such as by interaction with a web portal, a customer service representative, an 16 interactive voice response system, etc., and/or by the transmission of email messages or other 17 messages, and using a variety of different devices. During enrolment, user 110 provides an identity 18 of user 110, which can be in the form of the client-specific address associated with user 110 (which, 19 in the example being used herein, is "User-110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social security number, etc.
22 In addition, during step 702, user 110 supplies voice mail extraction parameters to the voice mail 23 applet 116V. The voice mail extraction parameters may include the aforesaid authentication 24 credentials (e.g., identifier and password), which can be used to access the voice mail box 1504.
The voice mail extraction parameters may optionally also include a telephone number of the voice 26 mail system 1502 or other information (e.g., IP address) that will allow the voice mail applet 116V
27 to contact the voice mail system 1502 at the next step (step 704). The voice mail extraction 28 parameters may further include an indication of "voice mail data" for user 110, i.e., an indication as 29 to what information user 110 is interested in knowing about the voice mail messages in the voice mail box 1504. Examples of voice mail data for user 110 include the number of voice mail 31 messages, the number of new voice mail messages, whether there are any new voice mail messages 32 at all (which is a binary value), the date and time of receipt of individual voice mail messages, the 33 duration of individual voice mail messages, the urgency of individual voice mail messages, the 1 source (e.g., originating party telephone number) of individual voice mail messages, a preview (e.g., 2 speech-to-text) of a portion of individual voice mail messages, a contextual analysis of individual 3 voice mail messages, etc. To this end, and depending on how user 110 entered into contact with the 4 voice mail applet 116V, the voice mail applet 116V may implement a graphical user interface or interactive voice response (IVR) system which guides user 110 through a customization procedure 6 for providing the aforesaid indication of voice mail data for user 110.
8 At step 704, the voice mail applet 116 contacts the voice mail system 1502 to configure the data 9 service for user 110. In some embodiments, the voice mail applet 116V
knows by default how to contact the voice mail system 1502. In other embodiments, information on how to contact the voice 11 mail system 1502 may have been provided by user 110 as a subset of the voice mail extraction 12 parameters. As part of step 704, a handshake procedure may take place, whereby the voice mail 13 applet 116V and the voice mail system 1502 agree on how the voice mail data for user 110 will be 14 sent from the voice mail system 1502 to the voice mail applet 116V.
16 In some embodiments, the voice mail data for user 110 will be pushed by the voice mail system 17 1502 on an occasional, continuous, synchronous or asynchronous basis, in which case the voice mail 18 applet 116V can provide the voice mail system 1502 with (i) the authentication credentials for user 19 110 in order to prove to the voice mail system 1502 that the voice mail applet 116V can be trusted;
and (ii) an address of applet-hosting device 126 in order to indicate to the voice mail system 1502 21 where to send the voice mail data for user 110. Alternatively, in a trusted environment, the 22 authentication credentials for user 110 can be omitted and instead, the voice mail applet 116V can 23 simply provide the identity of user 110 to the voice mail system 1502, whereas the address of 24 applet-hosting device 126 will be implicit in the communication between the voice mail applet 116V
and the voice mail system 1502. The identity of user 110 can then be used by the voice mail system 26 1502 to uniquely identify the voice mail box 1504.
28 In other embodiments, the voice mail data for user 110 will be pulled by the voice mail applet 116V
29 from the voice mail system 1502 on an occasional, continuous, synchronous or asynchronous basis, in which case the voice mail applet 116V does not need to provide any information to the voice mail 31 system 1502 at step 704. Rather, the voice mail applet 116V will provide the authentication 32 credentials to the voice mail system 1502 on an as-needed basis, in order to access the voice mail 33 data for user 110. In a trusted environment, the voice mail applet 116V
would not even need to 1 provide the authentication credentials to the voice mail system 1502 when accessing the voice mail 2 data for user 110.
4 At step 706, the voice mail applet 116V is registered (either autonomously or with the aid of a person) as a client of the instant messaging service. This is done by contacting the communication 6 server 102 (in this case, www.IMservice.com) and creating a client-specific address associated with 7 the voice mail applet 116V that is unique to user 110. By way of specific non-limiting example, a 8 suitable client-specific address associated with the voice mail applet 116V that is unique to user 110 9 could be AlertIM-VM-User-110@IMservice.com. It will be noted that this address is associated both with the nature of the data service (i.e., voice mail) and with a specific client of the instant 11 messaging service (in this case, user 110). The unique client-specific address created at step 706 12 effectively spawns a new client of the instant messaging service, hereinafter referred to as a 13 "customized voice mail client" of the instant messaging service.
Of course, the preceding unique client-preceding specific address associated with the voice mail 16 applet 116V and user 110 has been used as an example only, and for the sole purpose of enhancing 17 readability; it should thus be appreciated that in actuality, the unique client-specific address 18 associated with the voice mail applet 116V and user 110, but which need not be visible to user 110, 19 could be different, non-standard and/or less meaningful to interpretation by a human being. Also, the unique client-specific address associated with a the voice mail applet 116V and a given user 21 could be created by voice mail applet 116V or the given user.
23 At step 708, in response to creation of the client-specific address associated with the customized 24 voice mail client of the instant messaging service, the messaging application executed by the processor 104 in the communication server 102 allocates a portion of the memory 106 to the 26 customized voice mail client. For example, with reference to Fig. 16A, the messaging application 27 executed by the processor 104 in the communication server 102 allocates a memory area 1660 to the 28 customized voice mail client. It will be observed that the memory area 1660 comprises a contact list 29 1662 for the customized voice mail client. Initially, the contact list 1662 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, 31 the customized voice mail client has no "buddies"). The memory area 1660 further comprises an 32 eigen-area 1664 containing client-controlled information regarding the customized voice mail client, 1 which the communication server 102 will make available to user 110 if that user's contact list 2 ultimately includes the customized voice mail client.
4 The client-controlled information regarding the customized voice mail client (which is stored in eigen-area 1664) represents information that the customized voice mail client wishes to convey to 6 user 110. The client-controlled information stored in eigen-area 1664 may include a presence state 7 and/or a screen name. The presence state could be used to specify an attentiveness of the 8 customized voice mail client to receiving instant messages, while the screen name could be used to 9 specify an identifier that the customized voice mail client wishes to use to identify itself during a conversation. However, in accordance with non-limiting embodiments of the present invention, 11 either or both of the presence state and/or the screen name (and/or possibly other portions of the 12 client-controlled information stored in eigen-area 1664) is used to convey the aforesaid voice mail 13 data for user 110.
Accordingly, and returning to Fig. 7 at step 712, the voice mail applet 116 is configured to obtain 16 the voice mail data for user 110 from the voice mail system 1502.
Moreover, this operation can be 17 performed for other users (e.g., users 112, 114) in order to obtain the respective voice mail data for 18 those users as well. In order for the voice mail applet 116V to obtain the voice mail data for user 19 110 from the voice mail system 1502, the voice mail applet 116V may occasionally, continuously, synchronously or asynchronously pull the voice mail data for user 110 from the voice mail system 21 1502; alternatively, the voice mail system 1502 may be configured to occasionally, continuously, 22 synchronously or asynchronously push the voice mail data for user 110 to the voice mail applet 23 116V.
Assume now that the voice mail data for user 110 is "4 messages, 1 new", which indicates that there 26 are four (4) voice mail messages in the voice mail box 1504, of which one (1) is new. At step 714, 27 the voice mail applet 116V is configured to update eigen-area 1664 for the customized voice mail 28 client with the voice mail data for user 110.
Specifically, and with reference to Fig. 16B, the customized voice mail client can update the client-31 controlled information in eigen-area 1664 by modifying the presence state to reflect the voice mail 32 data for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or 33 alternatively, the customized voice mail client can update the client-controlled information in eigen-1 area 1664 by causing the presence state to reflect data that can be easily expressed using simple 2 icons, such as whether there are any voice mail messages at all and/or whether there are any new 3 voice mail messages. This can also be achieved by causing the presence state to indicate "online"
4 when there is at least one new voice mail message and "offline"
otherwise. Of course, in an alternative embodiment, the customized voice mail client could have updated the client-controlled 6 information in eigen-area 1664 by also (or instead) modifying the screen name and/or possibly other 7 portions of the client-controlled information stored in eigen-area 1664 to reflect the voice mail data 8 for user 110. In summary, the voice mail data is stored in eigen-area 1664 as text data or other data 9 (such as data that encodes one or more graphical icons).
11 Interaction between a given one the communication devices 120, 122, 124 and the communication 12 server 102 under Scenario III is now described.
For the sake of simplicity, let the given 13 communication device be communication device 120 which is associated with user 110, and let it be 14 assumed that user 110 is a client of the instant messaging service. That is to say, user 110 has a client-specific address, say, "User-110@IMservice.com". In addition, a portion of the memory 106 16 is allocated to user 110. For example, with reference to Fig. 16C, the messaging application 17 executed by the processor 104 in the communication server 102 allocates a memory area 1610 to 18 user 110.
It will be observed that memory area 1610 comprises a contact list 1612 for user 110. Initially, the 21 contact list 1612 can be empty, i.e., it does not include the client-specific addresses of any other 22 clients of the instant messaging service (that is, user 110 has no "buddies"). Over time, user 110 23 may add/remove various buddies to/from the contact list 1612 by control of the messaging 24 application executed by the processor 104 in the communication server 102. The memory area 1610 further comprises an eigen-area 1614 containing client-controlled information regarding user 110, 26 which the communication server 102 will make available to other clients of the instant messaging 27 service (such as, potentially, users 112, 114 and the customized voice mail client) if their contact 28 lists ultimately include user 110.
With reference now to the message flow diagram in Fig. 8, user 110 uses communication device 120 31 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 802. This can 32 be achieved by providing identification and authentication credentials such as a username and a 33 password, for example.
2 At step 804, user 110 identifies the customized voice mail client by entering the unique client-3 specific address associated with the customized voice mail client. In the example being presently 4 described, user 110 may enter AlertIM-VM-User-110@lMservice.com. In certain embodiments, user 110 identifies the customized voice mail client using a directory service offered by the 6 communication server 102, while in other embodiments, user 110 may directly type in the unique 7 client-specific address associated with the customized voice mail client.
9 Alternatively, since user 110 has previously enrolled with the voice mail applet 116V, the customized voice mail client may send a request for acceptance to user 110, such that when user 110 11 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the 12 request for acceptance. If user 110 accepts, then the customized voice mail client will be added to 13 the contact list 1612 of user 110.
1 Either way, this results in the unique client-specific address associated with the 2 customized voice mail client being added to the contact list 1612, leaving fields 1666, 3 1676 in the contact list 1612 for storing the client-controlled information regarding 4 the customized voice mail client. In the present example, not to be considered limiting, fields 1666, 1676 are used to store the presence state and screen name, 6 respectively, of the client having the unique client-specific address AlertIM-VM-7 User-110@IMservice.com.
9 As an aside, it should be appreciated that an optional step (710) could have been performed in Fig. 7, whereby the unique client-specific address created at step 704 11 can be revealed to user 110 in order to inform him or her of the unique client-specific 12 address associated with the customized voice mail client. It should be appreciated 13 that step 710 is optional, since the clients of the instant messaging service can gain 14 awareness of the unique client-specific address associated with the customized voice mail client in other ways, such as through other communication devices and other 16 methods of communication, including, without limitation: interaction with a customer 17 service representative, interaction with an automated voice response system, 18 interaction with a web portal, receipt of an email, text message or instant message 19 containing the unique client-specific address, etc. It should further be appreciated that the clients of the instant messaging service may employ a directory service (e.g., 21 operated by the communication server 102) and, as such, not need be explicitly aware 22 of the unique client-specific address associated with the customized voice mail client.
24 Returning now to Figs. 8 and 16C, having determined that the client-controlled information regarding the new buddy (i.e., the customized voice mail client) has been 26 updated in eigen-area 1664, the messaging application executed by the processor 104 27 in the communication server 102 updates the client-controlled information regarding 28 the new buddy on the contact list 1612 for user 110.
Specifically, the client-controlled information regarding the customized voice mail 31 client is obtained from eigen-area 1664 which, as previously described, conveys voice 32 mail data. In one embodiment, the messaging application executed by the processor 33 104 in the communication server 102 copies the presence state and screen name from 34 eigen-area 1664 into fields 1666, 1676 of the contact list 1612. In another 1 embodiment where fields 1666, 1676 contain pointers to, respectively, the presence state and screen 2 name in eigen-area 1664, the client-controlled information regarding the customized voice mail 3 client will be instantly updated without the need for data transfer.
At this point, the client-controlled information regarding the customized voice mail client (which, it 6 is recalled, comprises the voice mail data for user 110) is ready for observation by user 110.
7 Accordingly, at step 812, which can be inherent in step 810 or a separate step altogether, the client-8 controlled information regarding the customized voice mail client can be conveyed to user 110 in a 9 visual format.
11 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 12 regarding the customized voice mail client can be displayed on the aforesaid screen of 13 communication device 120 in the form of text, graphics and/or an icon.
In this example, "voice 14 mail" and "4 messages, 1 new" are, respectively, the screen name and presence state of the client-controlled information regarding the customized voice mail client, which provides a feature of voice 16 mail messages in voice mail box 1504.
18 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 19 persistent conveyance of client-controlled information regarding the customized voice mail client to user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 21 monitor the number of new or total messages in the voice mail box 1504 and/or their content and/or 22 their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 110 is 23 not compelled to remember this information since user 110 can refresh his or her knowledge merely 24 by glancing at the contact list 1612.
26 Meanwhile, it will be recalled from step 712 in Fig. 7, the voice mail applet 116V continues to 27 obtain the voice mail data for user 110 from the voice mail system 1502.
Thus, the client-controlled 28 information regarding the customized voice mail client will continue to be updated in eigen-area 29 1664 as the voice mail applet 116V continues to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
2 Moreover, it should be appreciated that the client-controlled information regarding a 3 given customized client can include passive data, which can be intended merely for 4 observation by user 110, as well as active data, which can allow user 110 to perform an action on the active data, triggering an interaction with the given customized client 6 and allowing user 110 to retrieve further information related to the active data. For 7 example, where the client-controlled information regarding the given customized 8 client is voice mail data for user 110, the "further information" can be the actual 9 contents of one or more voice mail messages.
11 The aforesaid interaction between user 110 and the given customized client may be 12 triggered by user 110 sending an electronic message (e.g., an instant message) to the 13 given customized client, which can serve as a request for the further information.
14 Alternatively, the given customized client can send an electronic message (e.g., an instant message) to user 110 containing an actionable URL, which can lead user 16 to a web portal where user 110 may interact further with the applet that supports the 17 given customized client.
19 The aforesaid further information (e.g., the actual contents of one or more voice mail messages) can be conveyed in various non-limiting ways, such as by triggering a 21 callback to a telephony device registered to user 110, or sending a media file for 22 playback over communication device 120. According to yet other non-limiting 23 alternatives, the aforesaid further information (e.g., the actual contents of one or more 24 voice mail messages) can be conveyed in various other ways, such as by conversion from speech into text that is sent in the form of one or more messages (e.g., instant 26 messages, email messages, etc.) to communication device 120 or to another 27 communication device employed by user 110.
29 Also, it should be appreciated that the client-controlled information regarding a given customized client can be dynamically updated based on the aforesaid interaction 31 between user 110 and the given customized client. For example, the given 32 customized client can track which client-controlled information regarding the given 33 customized client has been observed by user 110. This can be achieved by tracking 34 which further information has been retrieved by user 110 pursuant to an interaction 1 with the given customized client. Alternatively, this can be achieved by monitoring cookies within 2 communication device 120, or in a variety of other ways. With the knowledge of what information 3 user 110 has actually observed, the given customized client can accordingly update the client-4 controlled information regarding the given customized client.
6 For example, where the user-specific client-controlled information regarding the customized voice 7 mail client is an indication that there are three new voice mail messages #1, #2 and #3, and where 8 user 110 has retrieved further information (e.g., has just listened to) voice mail message #2, the 9 customized voice mail client can gain knowledge of this fact in one of the aforesaid ways. The result is that the client-controlled information regarding the customized voice mail client vvill now 11 be an indication that there are only two new voice mail messages (i.e., #1 and #3). An indication of 12 voice mail message #2 can be displayed differently, or can simply be classified as a voice mail 13 message that is "old", thereby assisting user 110 in navigating through the voice mail box 1504.
Persons skilled in the art will appreciate that it may be beneficial to ensure that a given user who 16 wishes to benefit from a particular private data service falling under Scenario III be authorized to do 17 so. For example, it is within the scope of the present invention to require that the given user pay for 18 the data service on a per-use basis, on a per-customized client basis or in accordance with any 19 suitable subscription scheme. It is also within the scope of the present invention to require that the given user enroll with the applet-hosting device that hosts the applet that provides the particular data 21 service. Thus, an authorization step may be included at some point during Scenario III. Reference 22 is made to the above description of Figs. 4A through 4F, which also apply to Scenario III, with the 23 exception that the enrollment steps in Figs. 4A and 48 can be considered redundant, since user 110 24 is assumed to have enrolled with the voice mail applet 116V.
26 Variant of Scenario III (Figs. 18A, 18B and 19) 28 A variant of Scenario III is now described, wherein a generic client-specific address is used to 29 identify a voice mail data service for user 110. Accordingly, reference is made to Fig. 18A, where user 110 logs in to the instant messaging service at step 1802. This can be achieved by providing 31 identification and authentication credentials such as a usemame and a password, for example. At 32 step 1804, user 110 enters a generic client-specific address associated with the voice mail data 33 service (hereinafter referred to as a "generic voice mail address"), such as "Alert1M-1 VM@1Mservice.com". In some embodiments, user 110 obtains knowledge of the generic voice 2 mail address through media advertising, interaction with a customer service representative, 3 interaction with an automated voice response system, interaction with a web portal, receipt of an 4 email, text message or instant message containing the generic voice mail address, etc. In other embodiments, user 110 obtains the generic voice mail address by invoking a directory service 6 offered by the communication server 102.
8 Alternatively, since user 110 has previously enrolled with the voice mail applet 116V, the 9 customized voice mail client may send a request for acceptance to user 110, such that when user 110 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the 11 request for acceptance. Referring now to Fig. 19, if user 110 accepts, then the customized voice 12 mail client will be added to a contact list 1912 of user 110.
14 Either way, his results in the generic voice mail address being added to the contact list 1912, and leaving at least one corresponding field to be filled with the client-controlled information regarding 16 the customized client in question. In the present example, not to be considered limiting, fields 1966, 17 1976 are used to store the presence state and screen name, respectively, of the customized client 18 having the generic client-specific address AlertIM-VM@IMservice.com.
At step 1808, the messaging application executed by the processor 104 in the communication server 21 102 determines that the contact list 1912 includes a new buddy, which has been identified by the 22 generic voice mail address. In response, the messaging application executed by the processor 104 in 23 the communication server 102 creates a client-specific address associated with the voice mail applet 24 116V and unique to user 110. By way of specific non-limiting example, a suitable client-specific address associated with the voice mail applet 116V and unique to user 110 could be AlertIM-VM-26 User-110@lMservice.com. Thus, the unique client-specific address created at step 1808 effectively 27 spawns a new client of the instant messaging service, which amounts to the aforementioned 28 "customized voice mail client" of the instant messaging service.
Of course, the preceding unique client-preceding specific address associated with the voice mail 31 applet 116V and user 110 has been used as an example only, and for the sole purpose of enhancing 32 readability; it should thus be appreciated that in actuality, the unique client-specific address 33 associated with the voice mail applet 116V and user 110, but which need not be visible to user 110, 1 could be different, non-standard and/or less meaningful to interpretation by a human being. Also, 2 the unique client-specific address associated with the voice mail applet 116V and a given user could 3 be created by voice mail applet 116V or the given user.
At step 1810, in response to creation of the unique client-specific address associated with the 6 customized voice mail client of the instant messaging service, the messaging application executed 7 by the processor 104 in the communication server 102 allocates a portion of the memory 106 to the 8 customized voice mail client. For example, with reference again to Fig.
19, the messaging 9 application executed by the processor 104 in the communication server 102 allocates a memory area 1960 to the customized voice mail client. It will be observed that the memory area 1960 comprises 11 a contact list 1962 for the customized voice mail client. Initially, the contact list 1962 can be empty, 12 i.e., it does not include the client-specific addresses of any other clients of the instant messaging 13 service (that is, the customized voice mail client has no "buddies").
The memory area 1960 further 14 comprises an eigen-area 1964 containing client-controlled information regarding the customized voice mail client.
17 The client-controlled information regarding the customized voice mail client (which is stored in 18 eigen-area 1964) represents information that the customized voice mail client wishes to convey to 19 user 110. The client-controlled information stored in eigen-area 1964 may include a presence state and/or a screen name. The presence state could be used to specify an attentiveness of the 21 customized voice mail client to receiving instant messages, while the screen name could be used to 22 specify an identifier that the customized voice mail client wishes to use to identify itself during a 23 conversation. However, in accordance with non-limiting embodiments of the present invention, 24 either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information stored in eigen-area 1964) is used to convey the aforesaid voice mail 26 data for user 110.
28 Accordingly, and referring now to Fig. 18B, at step 1812, the messaging application executed by the 29 processor 104 in the communication server 102 contacts the voice mail applet 116V and supplies the voice mail applet 116V with the identity of user 110, which was received at step 1802. At step 31 1814, the voice mail applet 116V in turn contacts the voice mail system 1502 to configure the data 32 service for.user 110. It is within the scope of the present invention for the voice mail applet 116V to 33 know by default how to contact the voice mail system 1502. As part of step 1814, a handshake 1 procedure may take place, whereby the voice mail applet 116V and the voice mail system 1502 2 agree on how voice mail data for user 110 will be sent from the voice mail system 1502 to the 3 customized voice mail client. This has previously been described with reference to step 704.
At step 1816, the voice mail applet 116V is configured to obtain the voice mail data for user 110 6 from the voice mail system 1502. In order for the voice mail applet 116V
to obtain the voice mail 7 data for user 110 from the voice mail system 1502, the customized voice mail client may 8 occasionally, continuously, synchronously or asynchronously pull the voice mail data for user 110 9 from the voice mail system 1502; alternatively, the voice mail system 1502 may be configured to occasionally, continuously, synchronously or asynchronously push the voice mail data for user 110 11 to the voice mail applet 1I6V.
13 Assume now that the voice mail data for user 110 is "4 messages, 1 new", which indicates that there 14 are four (4) voice mail messages in the voice mail box 1504, of which one (1) is new. At step 1818, the voice mail applet 116V is configured to update eigen-area 1964 for the customized voice mail 16 client with the voice mail data for user 110.
18 Specifically, and with reference again to Fig. 19, the customized voice mail client updates the client-19 controlled information in eigen-area 1964 by modifying the 1 presence state to reflect the voice mail data for user 110 (which, in the present 2 example, is "4 messages, 1 new"). In addition, or alternatively, the customized voice 3 mail client can update the client-controlled information in eigen-area 1964 by causing 4 the presence state to reflect data that can be easily expressed using simple icons, such as whether there are any voice mail messages at all and/or whether there are any new 6 voice mail messages. This can also be achieved by causing the presence state to 7 indicate "online" when there is at least one new voice mail message and "offline"
8 otherwise. Of course, in an alternative embodiment, the customized voice mail client 9 could have updated the client-controlled information in eigen-area 1964 by also (or instead) modifying the screen name and/or possibly other portions of the client-11 controlled information stored in eigen-area 1964 to reflect the voice mail data for user 12 110. In summary, the voice mail data is stored in eigen-area 1964 as text data or other 13 data (such as data that encodes one or more graphical icons).
At step 1820, having determined that the client-controlled information regarding the 16 new buddy (i.e., the customized voice mail client) has been updated in eigen-area 17 1964, the messaging application executed by the processor 104 in the communication 18 server 102 updates the client-controlled information regarding the new buddy on the 19 contact list 1912 for user 110.
21 Specifically, the client-controlled information regarding the customized voice mail 22 client is obtained from eigen-area 1964 which, as previously described, conveys voice 23 mail data. In one embodiment, the messaging application executed by the processor 24 104 in the communication server 102 copies the presence state and screen name from eigen-area 1964 into fields 1966, 1976 of the contact list 1612. In another 26 embodiment where fields 1966, 1976 contain pointers to, respectively, the presence 27 state and screen name in eigen-area 1964, the client-controlled information regarding 28 the customized voice mail client will be instantly updated without the need for data 29 transfer.
31 At this point, the client-controlled information regarding the customized voice mail 32 client (which, it is recalled, comprises the voice mail data) is ready for observation by 33 user 110. Accordingly, at step 1820, which can be inherent in step 1818 or a separate 1 step altogether, the client-controlled information regarding the customized voice mail client can 2 be conveyed to user 110 in a visual format.
4 Persons skilled in the art will therefore appreciate that the above described embodiments allow the persistent conveyance of client-controlled information regarding the customized voice mail 6 client to user 110, in a non-intrusive manner and without interrupting user 110. Specifically, user 7 110 can monitor the number of total or new messages in the voice mail box 1504 and/or their 8 content and/or their status on an ongoing basis ¨ and at times of his or her own choosing.
9 Moreover, user 110 is not compelled to remember this information since user 110 can refresh his or her knowledge merely by glancing at the contact list 1912.
12 Meanwhile, it will be recalled from step 1816, the voice mail applet 116V continues to obtain the 13 voice mail data for user 110 from the voice mail system 1502. Thus, the client-controlled 14 information regarding the customized voice mail client will continue to be updated in eigen-area 1964 as the voice mail applet 116V continues to execute, which ensures currency of the 16 information being persistently conveyed to, and observed by, user 110.
In addition, the above 17 variant of Scenario III allows user 110 to obtain voice mail data on an ad hoc basis, i.e., without 18 any prior enrollment with the voice mail applet 116V.
Thus, it will be appreciated that the present invention is applicable to instances where a given 21 user wishes to keep track of a certain amount of information regarding a data service on an 22 ongoing basis (even when the information regarding a data service does not change), and without 23 being interrupted when the information regarding a data service does change.
Moreover, it should be appreciated that the information regarding a data service can include 26 passive data, which is akin to a status update, and active data, which allows the given user to take 27 further action. For example, the information regarding a data service in any of the above 28 scenarios may comprise a uniform resource locator (URL) that can be actionable by user 110 and, 29 when actioned, leads user 110 to a portal where user 110 can interact with an underlying system, be it a search engine, voice mail system, etc.
32 With reference to Fig. 21, let it be assumed for the purposes of the present non-limiting example 33 that the data source is an electronic mail system 2102. For the purposes of the present example, 1 user 110 is associated with a unique network identifier (e.g., an email address) that is reachable 2 over a data network, which may include the data network 130. The electronic mail system 2102 3 comprises an electronic mailbox 2104 used for storing email messages sent to the aforesaid 4 unique network identifier. Specifically, the electronic mailbox 2104 can store data associated with the electronic mail messages, such as the number of electronic mail messages, the number of 6 unread electronic mail messages, whether there are any electronic mail messages at all, the date 7 and time of receipt of individual electronic mail messages, the duration of individual electronic 8 mail messages, the urgency of individual electronic mail messages, the source (e.g., originating 9 address) of individual electronic mail messages, a preview pane of a portion of individual electronic mail messages, whether the originating address of an individual electronic mail 11 message is present in an email contact list for user 110, etc. Various software interfaces can be 12 used to allow user 110 to manage (e.g., read, sort, delete, forward, etc.) the email messages in the 13 electronic mailbox 2104.
In addition, the electronic mail system 2102 comprises a database 2108 that stores authentication 16 credentials for user 110 and other users of the electronic mail system 2102. The authentication 17 credentials can be used to impose or lift access restrictions to the electronic mailbox 2104. For 18 example, when a querying party (e.g. email applet 116E) provides the correct identifier (e.g., a 19 electronic mailbox number) and password to the electronic mail system 2102, the querying party is given access to the electronic mail messages in the electronic mailbox 2104 as well as the data 21 associated therewith. The querying party may access the electronic mailbox 2104 in a variety of 22 ways, which may involve the use of various server-to-server protocols and/or communication 23 with the electronic mail system 2102 using email and/or instant messaging. Where the querying 24 party is a machine rather than a person, then the querying party may also access the electronic mailbox 2104 in a variety of ways, which may include ¨ but is not limited to ¨
communicating 26 with the electronic mail system 2102 using protocols such as IP and SOAP, for example.
28 It is noted that the querying party may be user 110 but may also be an entity other than user 110.
29 In the example to be presented below, the querying party is applet 116, which is assumed to be an electronic mail applet (email applet 116E).
32 With reference to Fig. 25, Scenario III begins at step 2502 by user 110 enrolling with the 33 electronic mail applet 116E to configure the data service for user 110.
In particular, user 110 can 1 contact the electronic mail applet 116E by employing communication device 120 but may also 2 enroll in a number of different ways, such as by interaction with a web portal, a customer service 3 representative, an interactive voice response system, etc., and/or by the transmission of email 4 messages or other messages, and using a variety of different devices.
During enrolment, user 110 provides an identity of user 110, which can be in the form of the client-specific address 6 associated with user 110 (which, in the example being used herein, is "User-7 110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social security 8 number, etc.
In addition, during step 2502, user 110 supplies electronic mail extraction parameters to the 11 electronic mail applet 116E. The electronic mail extraction parameters may include the aforesaid 12 authentication credentials (e.g., identifier and password), which can be used to access the 13 electronic mailbox 2104. The electronic mail extraction parameters may optionally also include a 14 telephone number of the electronic mail system 2102 or other information (e.g., IP address) that will allow the electronic mail applet 116E to contact the electronic mail system 2102 at the next 16 step (step 2504). The electronic mail extraction parameters may further include an indication of 17 "email data" for user 110, i.e., an indication as to what information user 110 is interested in 18 knowing about the electronic mail messages in the electronic mailbox 2104. Examples of email 19 data for user 110 include the number of electronic mail messages, the number of new electronic mail messages, whether there are any new electronic mail messages at all (which is a binary 21 value), the date and time of receipt of individual electronic mail messages, the duration of 22 individual electronic mail messages, the urgency of individual electronic mail messages, the 23 source (e.g., originating party telephone number) of individual electronic mail messages, a 24 preview (e.g., speech-to-text) of a portion of individual electronic mail messages, a contextual analysis of individual electronic mail messages, etc. To this end, and depending on how user 110 26 entered into contact with the electronic mail applet 116E, the electronic mail applet 116E may 27 implement a graphical user interface or interactive voice response (IVR) system which guides 28 user 110 through a customization procedure for providing the aforesaid indication of email data 29 for user 110.
31 At step 2504, the electronic mail applet 116E contacts the electronic mail system 2102 to 32 configure the data service for user 110. In some embodiments, the electronic mail applet 116E
33 knows by default how to contact the electronic mail system 2102. In other embodiments, 1 information on how to contact the electronic mail system 2102 may have been provided by user 2 110 as a subset of the electronic mail extraction parameters. As part of step 2504, a handshake 3 procedure may take place, whereby the electronic mail applet 116E and the electronic mail 4 system 2102 agree on how the email data for user 110 will be sent from the electronic mail system 2102 to the electronic mail applet 116E.
7 In some embodiments, the email data for user 110 will be pushed by the electronic mail system 8 2102 on an occasional, continuous, synchronous or asynchronous basis, in which case the 9 electronic mail applet 116E can provide the electronic mail system 2102 with (i) the authentication credentials for user 110 in order to prove to the electronic mail system 2102 that 11 the electronic mail applet 116E can be trusted; and (ii) an address of applet-hosting device 126 in 12 order to indicate to the electronic mail system 2102 where to send the email data for user 110.
13 Alternatively, in a trusted environment, the authentication credentials for user 110 can be omitted 14 and instead, the electronic mail applet 116E can simply provide the identity of user 110 to the electronic mail system 2102, whereas the address of applet-hosting device 126 will be implicit in 16 the communication between the electronic mail applet 116E and the electronic mail system 2102.
17 The identity of user 110 can then be used by the electronic mail system 2102 to uniquely identify 18 the electronic mailbox 2104.
In other embodiments, the email data for user 110 will be pulled by the electronic mail applet 21 116E from the electronic mail system 2102 on an occasional, continuous, synchronous or 22 asynchronous basis, in which case the electronic mail applet 116E does not need to provide any 23 information to the electronic mail system 2102 at step 2504. Rather, the electronic mail applet 24 116E will provide the authentication credentials to the electronic mail system 2102 on an as-needed basis, in order to access the email data for user 110. In a trusted environment, the 26 electronic mail applet 116E would not even need to provide the authentication credentials to the 27 electronic mail system 2102 when accessing the email data for user 110.
29 At step 2506, the electronic mail applet 116E is registered (either autonomously or with the aid of a person) as a client of the instant messaging service. This is done by contacting the 31 communication server 102 (in this case, www.IMservice.com) and creating a client-specific 32 address associated with the electronic mail applet 116E that is unique to user 110. By way of 33 specific non-limiting example, a suitable client-specific address associated with the electronic 1 mail applet 116E that is unique to user 110 could be AlertIM-EMAIL-User-110@IMservice.com.
2 It will be noted that this address is associated both with the nature of the data service (i.e., 3 electronic mail, or "email") and with a specific client of the instant messaging service (in this 4 case, user 110). The unique client-specific address created at step 2506 effectively spawns a new client of the instant messaging service, hereinafter referred to as a "customized email client" of 6 the instant messaging service.
8 Of course, the preceding unique client-preceding specific address associated with the electronic 9 mail applet 116E and user 110 has been used as an example only, and for the sole purpose of enhancing readability; it should thus be appreciated that in actuality, the unique client-specific 11 address associated with the electronic mail applet 116E and user 110, but which need not be 12 visible to user 110, could be different, non-standard and/or less meaningful to interpretation by a 13 human being. Also, the unique client-specific address associated with a the electronic mail applet 14 116E and a given user could be created by electronic mail applet 116E or the given user.
16 At step 2508, in response to creation of the client-specific address associated with the customized 17 email client of the instant messaging service, the messaging application executed by the 18 processor 104 in the communication server 102 allocates a portion of the memory 106 to the 19 customized email client. For example, with reference to Fig. 22A, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 2260 to 21 the customized email client. It will be observed that the memory area 2260 comprises a contact 22 list 2262 for the customized email client. Initially, the contact list 2262 can be empty, i.e., it does 23 not include the client-specific addresses of any other clients of the instant messaging service (that 24 is, the customized email client has no "buddies"). The memory area 2260 further comprises an eigen-area 2264 containing client-controlled information regarding the customized email client, 26 which the communication server 102 will make available to user 110 if that user's contact list 27 ultimately includes the customized email client.
29 The client-controlled information regarding the customized email client (which is stored in eigen-area 2264) represents information that the customized email client wishes to convey to user 110.
31 The client-controlled information stored in eigen-area 2264 may include a presence state and/or a 32 screen name. The presence state could be used to specify an attentiveness of the customized 33 email client to receiving instant messages, while the screen name could be used to specify an 1 identifier that the customized email client wishes to use to identify itself during a conversation.
2 However, in accordance with non-limiting embodiments of the present invention, either or both 3 of the presence state and/or the screen name (and/or possibly other portions of the client-4 controlled information stored in eigen-area 2264) is used to convey the aforesaid email data for user 110.
7 Accordingly, and returning to Fig. 25 at step 2512, the electronic mail applet 116E is configured 8 to obtain the email data for user 110 from the electronic mail system 2102. Moreover, this 9 operation can be performed for other users (e.g., users 112, 114) in order to obtain the respective email data for those users as well. In order for the electronic mail applet 116E to obtain the email 11 data for user 110 from the electronic mail system 2102, the electronic mail applet 116E may 12 occasionally, continuously, synchronously or asynchronously pull the email data for user 110 13 from the electronic mail system 2102; alternatively, the electronic mail system 2102 may be 14 configured to occasionally, continuously, synchronously or asynchronously push the email data for user 110 to the electronic mail applet 116E.
17 Assume now that the email data for user 110 is "4 messages, 1 new", which indicates that there 18 are four (4) electronic mail messages in the electronic mailbox 2104, of which one (1) is new. At 19 step 2514, the electronic mail applet 116E is configured to update eigen-area 2264 for the customized email client with the email data for user 110.
2 Specifically, and with reference to Fig. 22B, the customized email client can update 3 the client-controlled information in eigen-area 2264 by modifying the presence state 4 to reflect the email data for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or alternatively, the customized email client can update the client-6 controlled information in eigen-area 2264 by causing the presence state to reflect data 7 that can be easily expressed using simple icons, such as whether there are any 8 electronic mail messages at all and/or whether there are any new electronic mail 9 messages. This can also be achieved by causing the presence state to indicate "online" when there is at least one new electronic mail message and "offline"
11 otherwise. Of course, in an alternative embodiment, the customized email client 12 could have updated the client-controlled information in eigen-area 2264 by also (or 13 instead) modifying the screen name and/or possibly other portions of the client-14 controlled information stored in eigen-area 2264 to reflect the email data for user 110.
In summary, the email data is stored in eigen-area 2264 as text data or other data 16 (such as data that encodes one or more graphical icons).
18 Interaction between a given one the communication devices 120, 122, 124 and the 19 communication server 102 under Scenario III is now described. For the sake of simplicity, let the given communication device be communication device 120 which 21 is associated with user 110, and let it be assumed that user 110 is a client of the instant 22 messaging service. That is to say, user 110 has a client-specific address, say, "User-23 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 24 110. For example, with reference to Fig. 22C, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 2210 to 26 user 110.
28 It will be observed that memory area 2210 comprises a contact list 2212 for user 110.
29 Initially, the contact list 2212 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, user 110 has no 31 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 32 list 2212 by control of the messaging application executed by the processor 104 in the 33 communication server 102. The memory area 2210 further comprises an eigen-area 34 2214 containing client-controlled information regarding user 110, which the 1 communication server 102 will make available to other clients of the instant messaging service 2 (such as, potentially, users 112, 114 and the customized email client) if their contact lists ultimately 3 include user 110.
With reference now to the message flow diagram in Fig. 26, user 110 uses communication device 6 120 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 2602.
7 This can be achieved by providing identification and authentication credentials such as a username 8 and a password, for example.
At step 2604, user 110 identifies the customized email client by entering the unique client-specific 11 address associated with the customized email client. In the example being presently described, user 12 110 may enter AlertIM-EMAIL-User-110@IMservice.com. In certain embodiments, user 110 13 identifies the customized email client using a directory service offered by the communication server 14 102, while in other embodiments, user 110 may directly type in the unique client-specific address associated with the customized email client.
17 Alternatively, since user 110 has previously enrolled with the electronic mail applet 116E, the 18 customized email client may send a request for acceptance to user 110, such that when user 110 logs 19 in as a client of the instant messaging service, user 110 is prompted to accept or decline the request for acceptance. If user 110 accepts, then the customized email client will be added to the contact list 21 2212 of user 110.
23 Either way, this results in the unique client-specific address associated with the customized email 24 client being added to the contact list 2212, leaving fields 2266, 2276 in the contact list 2212 for storing the client-controlled information regarding the customized email client. In the present 26 example, not to be considered limiting, fields 2266, 2276 are used to store the presence state and 27 screen name, respectively, of the client having the unique client-specific address AlertIM-EMAIL-28 User-110@lMservice.com.
As an aside, it should be appreciated that an optional step (2510) could have been performed in Fig.
31 25, whereby the unique client-specific address created at step 2504 1 can be revealed to user 110 in order to inform him or her of the unique client-specific 2 address associated with the customized email client. It should be appreciated that step 3 2510 is optional, since the clients of the instant messaging service can gain awareness 4 of the unique client-specific address associated with the customized email client in other ways, such as through other communication devices and other methods of 6 communication, including, without limitation: interaction with a customer service 7 representative, interaction with an automated voice response system, interaction with 8 a web portal, receipt of an email, text message or instant message containing the 9 unique client-specific address, etc. It should further be appreciated that the clients of the instant messaging service may employ a directory service (e.g., operated by the 11 communication server 102) and, as such, not need be explicitly aware of the unique 12 client-specific address associated with the customized email client.
14 Returning now to Figs. 26 and 22C, having determined that the client-controlled information regarding the new buddy (i.e., the customized email client) has been 16 updated in eigen-area 2264, the messaging application executed by the processor 104 17 in the communication server 102 updates the client-controlled information regarding 18 the new buddy on the contact list 2212 for user 110.
Specifically, the client-controlled information regarding the customized email client is 21 obtained from eigen-area 2264 which, as previously described, conveys email data. In 22 one embodiment, the messaging application executed by the processor 104 in the 23 communication server 102 copies the presence state and screen name from eigen-area 24 2264 into fields 2266, 2276 of the contact list 2212. In another embodiment where fields 2266, 2276 contain pointers to, respectively, the presence state and screen name 26 in eigen-area 2264, the client-controlled information regarding the customized email 27 client will be instantly updated without the need for data transfer.
29 At this point, the client-controlled information regarding the customized email client (which, it is recalled, comprises the email data for user 110) is ready for observation 31 by user 110. Accordingly, at step 2612, which can be inherent in step 2610 or a 32 separate step altogether, the client-controlled information regarding the customized 33 email client can be conveyed to user 110 in a visual format.
1 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 2 regarding the customized email client can be displayed on the aforesaid screen of communication 3 device 120 in the form of text, graphics and/or an icon. ln this example, "email" and "14 messages, 4 8 unread, 1 from contacts" are, respectively, the screen name and presence state of the client-controlled information regarding the customized email client, which provides a feature of electronic 6 mail messages in electronic mailbox 2104.
8 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 9 persistent conveyance of client-controlled information regarding the customized email client to user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 11 monitor the number of new or total messages in the electronic mailbox 2104 and/or their content 12 and/or their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 13 110 is not compelled to remember this information since user 110 can refresh his or her knowledge 14 merely by glancing at the contact list 2212.
16 Meanwhile, it will be recalled from step 2512 in Fig. 25, the electronic mail applet 116E continues 17 to obtain the email data for user 110 from the electronic mail system 2102. Thus, the client-18 controlled information regarding the customized email client will continue to be updated in eigen-19 area 2264 as the electronic mail applet 116E continues to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
22 Moreover, it should be appreciated that the client-controlled information regarding a given 23 customized client can include passive data, which can be intended merely for observation by user 24 110, as well as active data, which can allow user 110 to perform an action on the active data, triggering an interaction with the given customized client and allowing user 110 to retrieve further 26 information related to the active data. For example, where the client-controlled information 27 regarding the given customized client is email data for user 110, the "further information" can be the 28 actual contents of one or more email messages.
1 The aforesaid interaction between user 110 and the given customized client may be 2 triggered by user 110 sending an electronic message (e.g., an instant message) to the 3 given customized client, which can serve as a request for the further information.
4 Alternatively, the given customized client can send an electronic message (e.g., an instant message) to user 110 containing an actionable URL, which can lead user 6 to a web portal where user 110 may interact further with the applet that supports the 7 given customized client.
9 Also, it should be appreciated that the client-controlled information regarding a given customized client can be dynamically updated based on the aforesaid interaction 11 between user 110 and the given customized client. For example, the given 12 customized client can track which client-controlled information regarding the given 13 customized client has been observed by user 110. This can be achieved by tracking 14 which further information has been retrieved by user 110 pursuant to an interaction with the given customized client. Alternatively, this can be achieved by monitoring 16 cookies within communication device 120, or in a variety of other ways.
With the 17 knowledge of what information user 110 has actually observed, the given customized 18 client can accordingly update the client-controlled information regarding the given 19 customized client.
21 For example, where the user-specific client-controlled information regarding the 22 customized electronic mail client is an indication that there are three unread email 23 messages #1, #2 and #3, and where user 110 has retrieved further information (e.g., 24 has just read to) email message #1, the customized electronic mail client can gain knowledge of this fact in one of the aforesaid ways. The result is that the client-26 controlled information regarding the customized electronic mail client will now be an 27 indication that there are only two unread email messages (i.e., #2 and #3). An 28 indication of email message #1 can be displayed differently, or can simply be 29 classified as an email message that is "read", thereby assisting user 110 in navigating through the electronic mailbox 2104.
32 Persons skilled in the art will appreciate that it may be beneficial to ensure that a 33 given user who wishes to benefit from a particular private data service falling under 34 Scenario III be authorized to do so. For example, it is within the scope of the present 1 invention to require that the given user pay for the data service on a per-use basis, on a per-2 customized client basis or in accordance with any suitable subscription scheme. It is also within the 3 scope of the present invention to require that the given user enroll with the applet-hosting device 4 that hosts the applet that provides the particular data service. Thus, an authorization step may be included at some point during Scenario III. Reference is made to the above description of Figs. 4A
6 through 4F, which also apply to Scenario III, with the exception that the enrollment steps in Figs.
7 4A and 4B can be considered redundant, since user 110 is assumed to have enrolled with the 8 electronic mail applet 116E.
Variant of Scenario III (Figs. 23A, 23B and 24) 12 A variant of Scenario III is now described, wherein a generic client-specific address is used to 13 identify an email data service for user 110. Accordingly, reference is made to Fig. 23A, where user 14 110 logs in to the instant messaging service at step 2302. This can be achieved by providing identification and authentication credentials such as a username and a password, for example. At 16 step 2304, user 110 enters a generic client-specific address associated with the email data service 17 (hereinafter referred to as a "generic email address"), such as "AlertIM-EMAIL@IMservice.com".
18 In some embodiments, user 110 obtains knowledge of the generic email address through media 19 advertising, interaction with a customer service representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message 21 containing the generic email address, etc. In other embodiments, user 110 obtains the generic email 22 address by invoking a directory service offered by the communication server 102.
24 Alternatively, since user 110 has previously enrolled with the electronic mail applet 116E, the customized email client may send a request for acceptance to user 110, such that when user 110 logs 26 in as a client of the instant messaging service, user 110 is prompted to accept or decline the request 27 for acceptance. Referring now to Fig. 24, if user 110 accepts, then the customized email client will 28 be added to a contact list 2412 of user 110.
Either way, his results in the generic email address being added to the contact list 2412, and leaving 31 at least one corresponding field to be filled with the client-controlled information regarding the 32 customized client in question. In the present example, not to be considered limiting, fields 2466, 1 2476 are used to store the presence state and screen name, respectively, of the customized client 2 having the generic client-specific address AlertIM-EMAIL@IMservice.com.
4 At step 2308, the messaging application executed by the processor 104 in the communication server 102 determines that the contact list 2412 includes a new buddy, which has been identified by the 6 generic email address. In response, the messaging application executed by the processor 104 in the 7 communication server 102 creates a client-specific address associated with the electronic mail applet 8 116E and unique to user 110. By way of specific non-limiting example, a suitable client-specific 9 address associated with the electronic mail applet 116E and unique to user 110 could be AlertIM-EMAIL-User-110@lMservice.com. Thus, the unique client-specific address created at step 2308 11 effectively spawns a new client of the instant messaging service, which amounts to the 12 aforementioned "customized email client" of the instant messaging service.
14 Of course, the preceding unique client-preceding specific address associated with the electronic mail applet 116E and user 110 has been used as an example only, and for the sole purpose of enhancing 16 readability; it should thus be appreciated that in actuality, the unique client-specific address 17 associated with the electronic mail applet 116E and user 110, but which need not be visible to user 18 110, could be different, non-standard and/or less meaningful to interpretation by a human being.
19 Also, the unique client-specific address associated with a the electronic mail applet 116E and a given user could be created by electronic mail applet 116E or the given user.
22 At step 2310, in response to creation of the unique client-specific address associated with the 23 customized email client of the instant messaging service, the messaging application executed by the 24 processor 104 in the communication server 102 allocates a portion of the memory 106 to the customized email client. For example, with reference again to Fig. 24, the messaging application 26 executed by the processor 104 in the communication server 102 allocates a memory area 2460 to the 27 customized email client. It will be observed that the memory area 2460 comprises a contact list 28 2462 for the customized email client. Initially, the contact list 2462 can be empty, i.e., it does not 29 include the client-specific addresses of any other clients of the instant messaging service (that is, the customized email client has no "buddies"). The memory area 2460 further comprises an eigen-area 31 2464 containing client-controlled information regarding the customized email client.
1 The client-controlled information regarding the customized email client (which is stored in eigen-2 area 2464) represents information that the customized email client wishes to convey to user 110.
3 The client-controlled information stored in eigen-area 2464 may include a presence state and/or a 4 screen name. The presence state could be used to specify an attentiveness of the customized email client to receiving instant messages, while the screen name could be used to specify an identifier that 6 the customized email client wishes to use to identify itself during a conversation. However, in 7 accordance with non-limiting embodiments of the present invention, either or both of the presence 8 state and/or the screen name (and/or possibly other portions of the client-controlled information 9 stored in eigen-area 2464) is used to convey the aforesaid email data for user 110.
11 Accordingly, and referring now to Fig. 23B, at step 2312, the messaging application executed by the 12 processor 104 in the communication server 102 contacts the electronic mail applet 116E and 13 supplies the electronic mail applet 116E with the identity of user 110, which was received at step 14 2302. At step 2314, the electronic mail applet 116E in turn contacts the electronic mail system 2102 to configure the data service for user 110. It is within the scope of the present invention for the 16 electronic mail applet 116E to know by default how to contact the electronic mail system 2102. As 17 part of step 2314, a handshake procedure may take place, whereby the electronic mail applet 116E
18 and the electronic mail system 2102 agree on how email data for user 110 will be sent from the 19 electronic mail system 2102 to the customized email client. This has previously been described with reference to step 2504.
22 At step 2316, the electronic mail applet 116E is configured to obtain the email data for user 110 23 from the electronic mail system 2102. In order for the electronic mail applet 116E to obtain the 24 email data for user 110 from the electronic mail system 2102, the customized email client may occasionally, continuously, synchronously or asynchronously pull the email data for user 110 from 26 the electronic mail system 2102; alternatively, the electronic mail system 2102 may be configured to 27 occasionally, continuously, synchronously or asynchronously push the email data for user 110 to the 28 electronic mail applet 116E.
Assume now that the email data for user 110 is "4 messages, 1 new", which indicates that there are 31 four (4) electronic mail messages in the electronic mailbox 2104, of which one (1) is new. At step 32 2318, the electronic mail applet 116E is configured to update eigen-area 2464 for the customized 33 email client with the email data for user 110.
2 Specifically, and with reference again to Fig. 24, the customized email client updates the client-3 controlled information in eigen-area 2464 by modifying the presence state to reflect the email data 4 for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or alternatively, the customized email client can update the client-controlled information in eigen-area 2464 by 6 causing the presence state to reflect data that can be easily expressed using simple icons, such as 7 whether there are any electronic mail messages at all and/or whether there are any new electronic 8 mail messages. This can also be achieved by causing the presence state to indicate "online" when 9 there is at least one new electronic mail message and "offline"
otherwise. Of course, in an alternative embodiment, the customized email client could have updated the client-controlled 11 information in eigen-area 2464 by also (or instead) modifying the screen name and/or possibly other 12 portions of the client-controlled information stored in eigen-area 2464 to reflect the email data for 13 user 110. In summary, the email data is stored in eigen-area 2464 as text data or other data (such as 14 data that encodes one or more graphical icons).
16 At step 2320, having determined that the client-controlled information regarding the new buddy 17 (i.e., the customized email client) has been updated in eigen-area 2464, the messaging application 18 executed by the processor 104 in the communication server 102 updates the client-controlled 19 information regarding the new buddy on the contact list 2412 for user 110.
21 Specifically, the client-controlled information regarding the customized email client is obtained 22 from eigen-area 2464 which, as previously described, conveys email data.
In one embodiment, the 23 messaging application executed by the processor 104 in the communication server 102 copies the 24 presence state and screen name from eigen-area 2464 into fields 2466, 2476 of the contact list 2212.
In another embodiment where fields 2466, 2476 contain pointers to, respectively, the presence state 26 and screen name in eigen-area 2464, the client-controlled information regarding the customized 27 email client will be instantly updated without the need for data transfer.
29 At this point, the client-controlled information regarding the customized email client (which, it is recalled, comprises the email data) is ready for observation by user 110.
Accordingly, at step 2320, 31 which can be inherent in step 2318 or a separate step altogether, the client-controlled information 32 regarding the customized email client can be conveyed to user 110 in a visual format.
1 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 2 persistent conveyance of client-controlled information regarding the customized email client to user 3 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 4 monitor the number of total or new messages in the electronic mailbox 2104 and/or their content and/or their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 6 110 is not compelled to remember this information since user 110 can refresh his or her knowledge 7 merely by glancing at the contact list 2412.
9 Meanwhile, it will be recalled from step 2316, the electronic mail applet 116E continues to obtain the email data for user 110 from the electronic mail system 2102. Thus, the client-controlled 11 information regarding the customized email client will continue to be updated in eigen-area 2464 as 12 the electronic mail applet 116E continues to execute, which ensures currency of the information 13 being persistently conveyed to, and observed by, user 110.
Thus, it will be appreciated that the present invention is applicable to instances where a given user 16 wishes to keep track of a certain amount of information regarding a data service on an ongoing basis 17 (even when the information regarding a data service does I not change), and without being interrupted when the information regarding a data 2 service does change.
4 Moreover, it should be appreciated that the information regarding a data service can include passive data, which is akin to a status update, and active data, which allows 6 the given user to take further action. For example, the information regarding a data 7 service in any of the above scenarios may comprise a uniform resource locator (URL) 8 that can be actionable by user 110 and, when actioned, leads user 110 to a portal 9 where user 110 can interact with an underlying system, be it a search engine, electronic mail system, etc.
12 Moreover, it should be appreciated that the present invention is also applicable to the 13 use and configuration of applets that serve as unified gateways to a plurality of data 14 services, which can be generic, customized, private or a combination thereof For example, applet 116 or applet 118 can serve as a unified voice mail applet that 16 accesses a plurality of voice mail boxes maintained by one or more voice mail 17 systems similar to voice mail system 1502. Similarly, applet 116 or applet 118 can 18 serve as a unified electronic mail applet that accesses a plurality of electronic 19 mailboxes maintained by one or more electronic mail systems similar to electronic mail system 2102. Also, applet 116 or applet 118 can serve as a unified voice mail /
21 email applet for user 110 by having access to both voice mail box 1504 and electronic 22 mailbox 2104. Accordingly, the unified voice mail / email applet may amalgamate 23 the information available from the voice mail system 1502 and the electronic mail 24 system 2102.
26 In a manner similar to what has previously been described, a unique client-specific 27 address is created for the unified voice mail / email applet, resulting in the creation of 28 what is hereinafter referred to as a "unified communication client" of the instant 29 messaging service for user 110. In particular, the unified communication client stores client-controlled information regarding the unified communication client. The client-31 controlled information regarding the unified communication client represents 32 information that the unified communication client renders available for conveyance to 33 user 110. The client-controlled information stored may include a presence state 34 and/or a screen name. The presence state could be used to specify an attentiveness of 1 the unified communication client to receiving instant messages, while the screen name 2 could be used to specify an identifier that the unified communication client wishes to 3 use to identify itself during a conversation. However, in accordance with non-limiting 4 embodiments of the present invention, either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information) is 6 used to convey voice mail data and email data for user 110.
8 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 9 information regarding the unified communication client can be displayed on the aforesaid screen of communication device 120 in the form of text, graphics and/or an 11 icon. In this example, "unified communication" and "(email: 3 new messages)(work 12 voice mail: 10 messages, 0 new)(home voice mail: 3 new messages)" are, 13 respectively, the screen name and presence state of the client-controlled information 14 regarding the unified communication client.
16 It should also be reiterated that in a peer-to-peer embodiment, the various clients of 17 the instant messaging service contact each other without assistance from the 18 communication server 102. Thus, the communication server 102 can be entirely 19 dispensed with, which would leave both the contact lists for the various clients and the eigen-areas for those clients to be stored in a distributed fashion, such as on the 21 devices used by those clients. Thus, if a given client knows the addresses of other 22 clients for whom the given client is a buddy, then in order to ensure that the 23 information on the contact lists of those other clients is up-to-date, the given client can 24 push the client-controlled information regarding the given client to those other clients directly. Alternatively, if a given client knows the addresses of his or her buddies, 26 then to ensure that the information on the given client's contact list is up-to-date, the 27 given client can obtain the client-controlled information regarding its buddies by 28 polling them directly.
While specific embodiments of the present invention have been described and 31 illustrated, it will be apparent to those skilled in the art that numerous modifications 32 and variations can be made without departing from the scope of the invention as 33 defined in the appended claims.
13 Fig. 5B is a message flow diagram related to a first variant of the second example 14 scenario considered in Fig. 5A;
16 Fig. 6A is a message flow diagram illustrating further interaction between various 17 components of the instant messaging architecture of Fig. 1, in the second example 18 scenario considered in Fig. 5A;
Fig. 68 is a message flow diagram illustrating further interaction between various 21 components of the instant messaging architecture of Fig. 1, in the first variant of the 22 second example scenario that is considered in Fig. 5B;
24 Fig. 7 is a message flow diagram illustrating interaction between various components of the instant messaging architecture of Fig. 1, in a third example scenario applicable 26 to data services that are private and in an example situation where one of the applets is 27 a voice mail applet;
29 Fig. 8 is a message flow diagram illustrating further interaction between various components of the instant messaging architecture of Fig. 1, in the third example 31 scenario and example situation considered in Fig. 7;
1 Fig. 9A illustrates an example of potential contents of memory areas of a memory of 2 the communication server of Fig. 1, in connection with the first example scenario 3 considered in Fig. 2;
Fig. 9B illustrates an example of potential updated contents of the memory areas of 6 Fig. 9A;
8 Fig. 9C illustrates a further example of potential contents of memory areas of the 9 memory of the communication server of Fig. 1, in connection with the first example scenario considered in Fig. 2;
12 Fig. 10A illustrates an example of potential contents of memory areas of the memory 13 of the communication server of Fig. 1, in connection with the second example 14 scenario considered in Fig. 5A;
16 Fig. 10B illustrates an example of potential updated contents of the memory areas of 17 Fig. 10A;
19 Fig. 10C illustrates a further example of potential contents of memory areas of the memory of the communication server of Fig. 1, in connection with the second 21 example scenario considered in Fig. 5A;
23 Fig. 11 illustrates an example of potential contents of a database storing addresses as 24 part of an aliasing function, in accordance with a non-limiting embodiment of the invention;
27 Fig. 12 illustrates an example of potential contents of memory areas of the memory of 28 the communication server of Fig. 1, in connection with the first variant of the second 29 example scenario that is considered in Fig. 5B;
31 Fig. 13A is a message flow diagram illustrating interaction between various 32 components of the instant messaging architecture of Fig. 1, in a second variant of the 33 second example scenario considered in Fig. 5A;
1 Fig. 13B is a message flow diagram illustrating further interaction between various 2 components of the instant messaging architecture of Fig. 1, in the second variant of 3 the second example scenario that is considered in Fig. 13A;
Fig. 14 illustrates an example of potential contents of memory areas of the memory of 6 the communication server of Fig. 1, in connection with the second variant of the 7 second example scenario that is considered in Fig. 13A;
9 Fig. 15 illustrates a non-limiting embodiment where one of the data sources of the instant messaging architecture of Fig. 1 is a voice mail system, in connection with the 11 third example scenario and example situation considered in Fig. 7;
13 Fig. 16A illustrates an example of potential contents of memory areas of the memory 14 of the communication server of Fig. 1, in connection with the third example scenario and example situation considered in Fig. 7;
17 Fig. 16B illustrates an example of potential updated contents of the memory areas of 18 Fig. 16A;
Fig. 16C illustrates a further example of potential contents of memory areas of the 21 memory of the communication server of Fig. 1, in connection with the third example 22 scenario and example situation considered in Fig. 7;
24 Fig. 17 illustrates an example of potential contents of a memory area of the memory of the communication server of Fig. 1, where the memory area is associated with a 26 given client of the instant messaging service provided by the communication server;
28 Fig. 18A is a message flow diagram related to a first variant of the third example 29 scenario and example situation considered in Fig. 7;
31 Fig. 18B is a message flow diagram illustrating further interaction between various 32 components of the instant messaging architecture of Fig. 1, in the first variant of the 33 third example scenario and example situation that is considered in Fig.
18A;
1 Fig. 19 illustrates an example of potential contents of memory areas of the memory of 2 the communication server of Fig. 1, in connection with the first variant of the third 3 example scenario and example situation considered in Fig. 7;
Fig. 20 illustrates an example of a window displayable on a screen of one of the 6 communication devices of Fig. 1;
8 Fig. 21 illustrates a non-limiting embodiment where one of the data sources of the 9 instant messaging architecture of Fig. 1 is an electronic mail system;
11 Fig. 22A illustrates an example of potential contents of a memory area of the memory 12 of the communication server of Fig. 1, in connection with the non-limiting 13 embodiment of Fig. 21;
Fig. 22B illustrates an example of potential updated contents of the memory area of 16 Fig. 22A;
18 Fig. 22C illustrates a further example of potential contents of a memory area of the 19 memory of the communication server of Fig. 1, in connection with the non-limiting embodiment of Fig. 21;
22 Fig. 23A is a message flow diagram illustrating interaction between various 23 components of the instant messaging architecture of Fig. 1, in connection with the 24 non-limiting embodiment considered in Fig. 21;
26 Fig. 23B is a message flow diagram illustrating further interaction between various 27 components of the instant messaging architecture of Fig. 1, in connection with the 28 non-limiting embodiment considered in Fig. 21;
Fig. 24 illustrates an example of potential contents of a memory area of the memory 31 of the communication server of Fig. 1, in connection with the non-limiting 32 embodiment of Fig. 21;
1 Fig. 25 is a message flow diagram illustrating interaction between various 2 components of the instant messaging architecture of Fig. 1, in connection with the 3 non-limiting embodiment considered in Fig. 21 and in a variant; and Fig. 26 is a message flow diagram illustrating further interaction between various 6 components of the instant messaging architecture of Fig. 1, in connection with the 7 non-limiting embodiment considered in Fig. 21 and the variant considered in Fig. 25.
9 It is to be expressly understood that the description and drawings are only for the purpose of illustration of certain embodiments of the invention and are an aid for 11 understanding. They are not intended to be a definition of the limits of the invention.
16 With reference to Fig. 1, there is shown an instant messaging architecture comprising 17 a communication server 102 that is generally depicted as having a processor 104, a 18 memory 106 and an interface 108. The processor 104 executes a messaging 19 application, which can be defined by a set of instructions in the form of computer-readable program code stored in the memory 106. In certain embodiments, the 21 memory 106 may be physically co-located with the processor 104, while in other 22 embodiments, the memory 106 may be remote from the processor 104 and connected 23 thereto by a communication link and/or a network (not shown).
The messaging application being executed by the processor 104 allows the 26 communication server 102 to provide an instant messaging service, which can be 27 viewed as a managed conduit for the exchange of instant messages among members 28 of an instant messaging community. The instant messaging service provided by the 29 messaging application may be an existing branded consumer instant messaging service (e.g., MSN Messenger, .NET Messenger Service, AOL Instant Messenger, 31 Excite/Pal, Gadu-Gadu, Google Talk, iChat, ICQ, Jabber, Qnext, QQ, Skype, Trillian, 32 Yahoo! Messenger, etc.) or an existing branded enterprise instant messaging service 33 (e.g., Mictrosoft Communicator, IBM Lotus Sametime, etc.) or a proprietary instant 34 messaging service or a combination thereof. The clients may include actual people 1 (hereinafter referred to as "users" and denoted 110, 112, 114) as well as artificial 2 intelligence agents (hereinafter referred to as "applets" or "bots" and denoted 116, 3 118) that are all registered as "clients" of the instant messaging service.
Each of the users e., people) 110, 112, 114 employs a respective one of a plurality 6 of communication devices 120, 122, 124 to exchange instant messages with other 7 clients (i.e., either users or applets) of the instant messaging service via the 8 communication server 102. The communication server 102 is reachable from the 9 communication devices 120, 122, 124 via a data network 130, a non-limiting example of which is the Internet. Examples of communication devices 120, 122, 124 that may 11 be employed by the users 110, 112, 114 include desktop computers, laptop computers, 12 wireless networked personal digital assistants and cellular telephones, to name a few.
14 The applets 116, 118 may reside on respective applet-hosting devices 126, 128 that comprise the requisite hardware, firmware, software and/or control functionality to 16 make each applet's interaction with the communication server 102 appear to the latter 17 as if it were dealing with a person. Non-limiting examples of the applet-hosting 18 devices 126, 128 include computer servers and server farms, for example.
The 19 communication server 102 is reachable from the applet-hosting devices 126, 128 via a data network, which may be ¨ but is not limited to ¨ the aforesaid data network 130.
21 In accordance with non-limiting embodiments of the present invention, the applets 22 116, 118 provide data services to the users 110, 112, 114, various examples of which 23 will be given later on in this specification.
In order to participate in the instant messaging service provided by the 26 communication server 102, the clients of the instant messaging service (i.e., the users 27 110, 112, 114 and the applets 116, 118) begin by becoming clients of the 28 communication server 102. More specifically, each of the clients of the instant 29 messaging service contacts the communication server 102 at a known address over the data network 130 and sets up an account for that client. This can be done for free or 31 in exchange for payment. With additional reference to Fig. 17, the account for a 32 given client of the instant messaging service (e.g., client X) is characterized by a 33 client-specific address and an area in the memory 106 of the communication server 34 102 (e.g., 106X) that is allocated to client X. The format of the client-specific address 1 is not material; in the present example, it is an email-like address format (specifically, Client-2 X@IMservice.com for client X) but other formats (such as, without limitation, an IP address, a 3 Uniform Resource Indicator, a Universal Internet Number, a Unified Identification Number, a 4 proprietary string, etc) are of course possible.
6 The client-specific address (in this example, Client-X@IMservice.com) is used to identify the given 7 client of the instant messaging service (in this example, client X) to other clients of the instant 8 messaging service (for instance, clients A, B and C having respective client-specific addresses 9 Client-A@IMservice.com, Client-B@IMservice.com and Client-C@IMservice.com), so that instant messages can be routed to the appropriate recipient. In this way, the given client of the instant 11 messaging service (in this example, client X) will receive instant messages sent to the client-specific 12 address (in this example, Client-X@IMservice.com). In addition, when the given client of the 13 instant messaging service (in this example, client X) sends an instant message to another client of 14 the instant messaging service (for instance, any of clients A, B and C), the client-specific address (in this example, Client-X@IMservice.com) forms part of the instant message so that such other client 16 can ascertain the origin of the instant message upon receipt.
18 Regarding the memory area 106X allocated to client X, it is used for maintaining a "contact list"
19 132X for client X, which links client X to other clients of the instant messaging service (e.g., clients A, B and C). More specifically, client X can identify other clients of the instant messaging service 21 that client X may be interested in corresponding with (hereinafter referred to as "buddies" and 22 sometimes also referred to as "contacts", both of which are expressions that have significance in 23 relation to client X). Client X then adds the client-specific addresses of such other clients onto the 24 given client's contact list 132X. Alternatively, the other clients that were identified as buddies of client X may add their respective client-specific addresses to the contact list 132X of client X. In 26 the non-limiting example depicted in Fig. 17, the clients A, B and C are contacts of client X and, 27 accordingly, their respective client-specific addresses (Client-A@IMservice.com, Client-28 B@IMservice.com and Client-C@1Mservice.com) appear in the contact list 132X for client X.
To allow efficient management of communications, the contact list 132X also comprises at least one 31 field that stores client-controlled information regarding each of the buddies of client X, i.e., each of 32 the clients whose client-specific addresses appear in the contact list 132X. For example, a first field 33 1710 regarding a given buddy of client X may comprise a screen name of the given buddy, while a 1 second field 1720 regarding a given buddy of client X may comprise a "presence state" of the 2 buddy. The presence state of the given buddy of client X specifies an attentiveness of the given 3 buddy of client X to receiving instant messages, while the screen name of the given buddy of client 4 X specifies a name that the given buddy of client X wishes to use as an identifier during a conversation. Other fields (not shown) may also be used. The client-controlled information 6 regarding a given buddy of client X provides information on the given buddy of client X and is 7 available to all clients of the instant messaging service for whom the given buddy of client X is also 8 their buddy ¨ assuming that such availability of information is permitted by the privacy policy in 9 place.
11 Conversely, to allow client X to appear as a buddy of other clients, the memory area 106X allocated 12 to client X includes an eigen-area 134X containing client-controlled information regarding client X, 13 which the communication server 102 can then make available to such other clients (e.g., clients A, B
14 and C) whose contact lists include client X. As mentioned earlier, privacy settings could limit which of those other clients of the instant messaging service actually have visibility into the client-16 controlled information in the eigen-area 134X.
18 Thus, the client-controlled information regarding client X, which is stored in the eigen-area 134X, 19 represents information that client X wishes to convey to certain other clients of the instant messaging service. The client-controlled information regarding client X can be modified by client X
21 at any time (provided that client X is logged in to the instant messaging service). For example, the 22 client-controlled information regarding client X may include a presence state and/or a screen name.
23 In addition to, or in lieu of, the presence state and/or the screen name, and in accordance with non-24 limiting embodiments of the present invention, the client-controlled information regarding client X
of the instant messaging service may include, for 1 example, information regarding a data service, examples of which will be given later 2 on.
4 In operation, as different clients of the instant messaging service log in and out of the instant messaging service, the communication server 102 ensures that each client's 6 contact list contains up-to-date client-controlled information regarding the buddies of 7 that client. For example, the communication server 102 can ensure that contact lists 8 are kept up-do-date by (i) consulting the eigen-area 134X in order to learn the client-9 controlled information regarding client X; (ii) identifying which clients of the instant messaging service have included client X on their contact lists; and (iii) updating the 11 client-controlled information regarding client X on those other clients' contact lists.
12 This process would be performed for each client.
14 In another non-limiting embodiment, the contact list for a given client (user or applet) can be kept up-to-date automatically if it is designed to include pointers to the eigen-16 areas of the various buddies of the given client, rather than to store copies of the 17 client-controlled information stored in those eigen-areas.
19 In yet another non-limiting embodiment, it should be appreciated that the contact list for a given client (user or applet) of the instant messaging service can be stored on the 21 communication device or applet-hosting device being used by the given client to 22 participate in the instant messaging service, rather than on the communication server 23 102. The communication server 102 can therefore disseminate updated client-24 controlled information to the contact lists stored by the various clients.
26 It should further be appreciated that in a peer-to-peer embodiment, the various clients 27 of the instant messaging service contact each other without assistance from the 28 communication server 102. Thus, the communication server 102 can be entirely 29 dispensed with, which would leave both the contact lists for the various clients and the eigen-areas for those clients to be stored in a distributed fashion, such as on the 31 devices used by those clients. Thus, if a given client knows the addresses of other 32 clients for whom the given client is a buddy, then in order to ensure that the 33 information on the contact lists of those other clients is up-to-date, the given client can 34 push the client-controlled information regarding the given client to those other clients 1 directly. Alternatively, if a given client knows the addresses of his or her buddies, 2 then to ensure that the information on the given client's contact list is up-to-date, the 3 given client can obtain the client-controlled information regarding its buddies by 4 polling them directly.
6 For simplicity, the remainder of this description returns to the situation where the 7 communication server 102 stores both the contact list 132X for client X
and the eigen-8 area 134X for client X in the memory area 106X on the communication server 102, 9 although it should be expressly understood that the present invention also applies to embodiments where at least one of the contact list 132X for client X and the eigen-11 area 134X for client X, and possibly both, may be stored on the device used by client 12 X to participate in the instant messaging service.
14 Having logged in to the instant messaging service, a given client of the instant messaging service (such as client X) may compose an instant message destined for a 16 recipient (such as client A, B or C). The recipient can be identified by explicitly 17 entering the client-specific address of the recipient (e.g., Client-A@IMservice.com, 18 Client-B@IMservice.com or Client-C@IMservice.com ¨ other formats of course 19 being possible) or by choosing a buddy from the given client's contact list (e.g., contact list 132X). The manner in which instant messages are sent and received is 21 generally known and, as such, it need not be described in greater detail.
23 As mentioned previously, the applets 116, 118 provide data services to the users 110, 24 112, 114. Generally speaking, the provision of a data service involves accessing data from one or more data sources and enabling conveyance of the accessed data to one or 26 more of the users 110, 112, 114. To this end, Fig. 1 depicts a plurality of data sources 27 136, 138 that store or provide data 146, 148 that may be of interest to various ones of 28 the users 110, 112, 114. The data 146, 148 is hereinafter referred to as "information 29 regarding a data service". In some embodiments, the data sources 136, 138 are accessible by the applets 116, 118 via dedicated communication links or via a data 31 network, which can be ¨ but is not limited to ¨ the aforesaid data network 130. In 32 other implementations, certain ones of the data sources 136, 138 may be integrated 33 with certain ones of the applets 116, 118 on the corresponding applet-hosting 34 device(s) 126, 128. Persons skilled in the art will appreciate that the number of data 1 sources 136, 138 and their location within the architecture of Fig. 1 is not particularly 2 limited. Moreover, there is not necessarily a fixed correspondence between the 3 applets 116, 118 and the data sources 136, 138, since a given one of the applets 116, 4 118 may need to access different ones of the data sources 136, 138 at different times;
conversely, a common one of the data sources 136, 138 may need to be accessed by 6 different ones of the applets 116, 118 at different times.
8 Embodiments of the present invention contemplate a wide variety of data services to 9 be provided by the applets 116, 118. These include data services that are generic (L e., providing data that is of potential interest to multiple users), customized (i.e., 11 providing data that is requested by individual users) and private (i.e., providing data 12 that is requested by individual users and is only accessible with the user's 13 permission). These non-limiting possibilities are now discussed in greater detail with 14 reference to specific ones of the drawings.
16 Scenario I (Figs. 2, 3, 4A-4F, 9A-9C) 18 Scenario I is applicable to data services that are generic (i.e., providing data that is of 19 potential interest to multiple users). Specific non-limiting examples of data services to which Scenario I applies include, without limitation:
22 - a share price reporting service (where the information regarding a data service 23 is the share price of a given company);
24 - a weather reporting service (where the information regarding a data service is a weather report for a given city);
26 - a sports reporting service (where the information regarding a data service is 27 the current score in a sporting event);
28 - a web monitoring service (where the information regarding a data service is an 29 indication of the most recent addition to a blog or website);
- a general traffic reporting service (where the information regarding a data 31 service is an indication of the traffic conditions on certain roads or bridges);
32 - a news reporting service on specific topics (where the information regarding a 33 data service is news regarding the specific topics);
1 - a movie listing service (where the information regarding a data service is a 2 schedule or price grid for movies being shown at a certain movie theater);
3 - a horoscope service (where the information regarding a data service is 4 commentary about each zodiac sign);
- a lottery results service (where the information regarding a data service is the 6 result of recent prize draws);
7 - a transportation schedule service (where the information regarding a data 8 service is current information regarding trains, flights, public transit, etc.) 9 - a product pricing service (where the information regarding a data service is information regarding the movement in the price of a certain product available 11 from one or more suppliers);
12 - an advertisement service (where the information regarding a data service is an 13 advertisement for a product or service);
14 - etc.
16 For the purposes of the discussion to follow, it is assumed that applet 116 provides a 17 share price reporting service that produces the share price of company ABC, and that applet 118 provides a weather reporting service that produces a weather report for Montreal, Canada. This is of course a non-limiting example. With reference now to Fig. 2, there is shown a message flow diagram that illustrates configuration of the applets 116, 118 under Scenario I, in accordance with a specific non-limiting example 22 of the present invention. Configuration of the applets 116, 118 begins by registering 23 the applet in question (either autonomously or with the aid of a person) as a client of 24 the instant messaging service. As shown at step 202, this is done by contacting the communication server 102 (in this case, www.IMservice.com) and creating a generic client-specific address associated with applet 116 and/or applet 118. What is meant 27 by the client-specific address being "generic" is that it is configured to operate independently of demand for the data service associated with the applet in question.
Initial configuration of the applet in question can be done by an operator of the applet in question, or it can occur in response to an original user request. By way of specific 31 non-limiting example, in the case of applet 116, a suitable generic client-specific 32 address could be AlertIM-shareprice-ABC@IMservice.com, while in the case of applet 118, a suitable generic client-specific address could be AlertIM-weather-34 (where "YUL" is the airport code for Montreal, Canada).
1 .
2 At step 204, in response to creation of the generic client-specific address associated 3 with the applet in question at step 202, the messaging application executed by the 4 processor 104 in the communication server 102 allocates a portion of the memory 106 to the applet in question. For example, with reference to Fig. 9A, the messaging 6 application executed by the processor 104 in the communication server 102 allocates 7 a memory area 916 to applet 116 and a memory area 918 to applet 118. It will be 8 observed that each of the memory areas 916, 918 comprises a respective contact list 9 926, 928 for the respective applet 116, 118. Initially, the contact lists 926, 928 can be empty, i.e. , they do not include the client-specific addresses of any other clients of the 11 instant messaging service (that is, applets 116, 118 have no "buddies").
The memory 12 areas 916, 918 each further comprise a respective eigen-area 936, 938 containing 13 client-controlled information regarding the respective applet 116, 118, which the 14 communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 110, 112, 114) if their contact lists 16 ultimately include applet 116 and/or applet 118.
18 The client-controlled information regarding applet 116 (which is stored in eigen-area 19 936) represents information that applet 116 wishes to convey to other clients of the instant messaging service. Similarly, the client-controlled information regarding 21 applet 118 (which is stored in eigen-area 938) represents information that applet 118 22 wishes to convey to other clients of the instant messaging service. The client-23 controlled information stored in eigen-area 936 or eigen-area 938 may include a 24 presence state and/or a screen name. The presence state could be used to specify an attentiveness of the applet in question to receiving instant messages, while the screen 26 name could be used to specify an identifier that the applet in question wishes to use to 27 identify itself during a conversation. However, in accordance with non-limiting 28 embodiments of the present invention, either or both of the presence state and/or the 29 screen name (and/or possibly other portions of the client-controlled information stored in the eigen-areas 936, 938) is used to convey information regarding a data service, 31 which in the case of applet 116 is the share price of company ABC and in the case of 32 applet 118 is the weather report for Montreal, Canada.
, 1 Accordingly, and returning to Fig. 2 at step 208, applets 116 and 118 are configured 2 to obtain the information regarding a data service 146, 148 from one (or more) of the 3 data sources 136, 138. It is assumed for convenience that data source 136 is capable 4 of producing the share price of company ABC for use by applet 116, and that data source 138 is capable of producing the weather report for Montreal, Canada for use by 6 applet 118, although this association between the applets 116, 118 and the data 7 sources 136, 138 is not to be considered a limitation of the present invention.
9 In order for applet 116 to obtain the share price of company ABC from data source 136, applet 116 may occasionally, continuously, synchronously or asynchronously 11 pull the share price of company ABC from data source 136; alternatively, data source 12 136 may be configured to occasionally, continuously, synchronously or 13 asynchronously push the share price of company ABC to applet 116. This latter 14 functionality can be achieved by applet 116 placing a request with data source 136 to receive the share price of company ABC. Similarly, in order for applet 118 to obtain 16 the weather report for Montreal, Canada from data source 138, applet 118 may 17 occasionally, continuously, synchronously or asynchronously pull the weather report 18 for Montreal, Canada from data source 138; alternatively, data source 138 may be 19 configured to occasionally, continuously, synchronously or asynchronously push the weather report for Montreal, Canada to applet 118. This latter functionality can be 21 achieved by applet 118 placing a request with data source 138 to receive the weather 22 report for Montreal, Canada.
24 Assume now that the share price of company ABC is "$32.45" and that the weather report for Montreal, Canada is "cloudy +7". This data is received by the applets 116, 26 118 as a result of execution of step 208. At step 210, each of the applets 116, 118 is 27 configured to update respective eigen-area 936, 938 for the relevant applet with the 28 received information regarding a data service.
Specifically, and with reference to Fig. 9B, applet 116 can update the client-controlled 31 information in eigen-area 936 by causing the presence state to reflect the share price 32 of company ABC (which, in the present example, is "$32.45"). In addition, or 33 alternatively, applet 116 can update the client-controlled information in eigen-area 34 936 by causing the presence state to reflect data that can be easily expressed using 1 simple icons, such as whether the share price of company ABC has 2 risen/fallen/remained unchanged since the previous day's close or since the previous 3 trade, or whether the related stock (or the stock market) is open or closed for trading.
4 In one embodiment, the presence state can be caused to indicate "online"
when the share price has risen and "offline" otherwise. In another embodiment, the presence 6 state can be caused to indicate "online" when the related stock is open for trading and 7 "offline" otherwise. Of course, in an alternative embodiment, applet 116 could have 8 updated the client-controlled information in eigen-area 936 by also (or instead) 9 causing the screen name and/or possibly other portions of the client-controlled information stored in eigen-area 936 to reflect the share price of company ABC
and/or 11 the change in share price and/or other information pertaining to the related stock. In 12 summary, the information of interest is stored in eigen-area 936 as text data or other 13 data (such as data that encodes one or more graphical icons).
Similarly, applet 118 can update the client-controlled information in eigen-area 938 16 by causing the presence state to reflect the weather report for Montreal, Canada 17 (which, in the present example, is "cloudy +7"). In addition, or alternatively, applet 18 118 can update the client-controlled information in eigen-area 938 by causing the 19 presence state to reflect data that can be easily expressed using simple icons, such as the presence or absence of headline news. Of course, in an alternative embodiment, 21 applet 118 could have updated the client-controlled information in eigen-area 938 by 22 also (or instead) causing the presence state and/or possibly other portions of the client-23 controlled information stored in eigen-area 938 to reflect the weather report for 24 Montreal, Canada and/or the general weather conditions (such as cloudy, sunny, snow, etc.) In summary, the information of interest is stored in eigen-area 938 as text 26 data or other data (such as data that encodes one or more graphical icons).
28 Interaction between a given one of the communication devices 120, 122, 124 and the 29 communication server 102 under Scenario I is now described. For the sake of simplicity, let the given communication device be communication device 120 which 31 is associated with user 110, and let it be assumed that user 110 is a client of the instant 32 messaging service. That is to say, user 110 has a client-specific address, say, "User-33 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 34 110. For example, with reference to Fig. 9C, the messaging application executed by 1 the processor 104 in the communication server 102 allocates a memory area 910 to 2 user 110.
4 It will be observed that memory area 910 comprises a contact list 920 for user 110.
Initially, the contact list 920 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, user 110 has no "buddies"). Over time, various buddies to the contact list 920 can be added or removed by control of the messaging application executed by the processor 104 in the communication server 102. The memory area 910 further comprises an eigen-area 930 containing client-controlled information regarding user 110, which the communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 112, 114 and applets 116, 118) if their 13 contact lists ultimately include user 110.
With reference now to the message flow diagram in Fig. 3, user 110 uses communication device 120 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 302. This can be achieved by providing identification and authentication credentials such as a username and a password, for 19 example.
21 At step 304, user 110 identifies as a "buddy" an applet that provides a desired data service, by entering the generic client-specific address associated with the applet in question. In the example being presently described, user 110 may enter one of the 24 aforesaid generic client-specific addresses, namely AlertIM-shareprice-ABC@IMservice.com (which is associated with applet 116 providing a share price reporting service that produces the share price of company ABC) or AlertIM-weather-YUL@IMservice.com (which is associated with applet 118 providing a weather reporting service that produces a weather report for Montreal, Canada). In certain embodiments, user 110 identifies the applet that provides the desired data service by invoking a directory service offered by the communication server 102, while in other embodiments, user 110 may directly type in the generic client-specific address 32 associated with the applet in question.
1 Having identified the generic client-specific address associated with the applet that 2 provides the desired data service (e.g., applet 116 or applet 118), and with additional 3 reference to Fig. 9C, the applet in question is added to the contact list 920 of user 110, 4 leaving at least one corresponding field in the contact list 920 for storing the client-controlled information regarding the applet in question. In the present example, not to 6 be considered limiting, fields 966, 976 are used to store the presence state and screen 7 name, respectively, of the client having the generic client-specific address AlertIM-8 shareprice-ABC@IMservice.com, while fields 968, 978 are used to store the presence 9 state and screen name, respectively, of the client having the generic client-specific address AlertIM-weather-YUL@IMservice.com.
12 As an aside, it should be appreciated that an optional step (206) could have been 13 performed in Fig. 2, whereby the generic client-specific address created at step 202 14 could have been revealed to the user community in order to inform the various clients of the instant messaging service (in particular, user 110) of the generic client-specific 16 address associated with applet 116 and/or applet 118. It should be appreciated that 17 step 206 is optional, since the clients of the instant messaging service can gain 18 awareness of the generic client-specific address associated with applet 116 and/or 19 applet 118 in other ways, such as through other communication devices and other methods of communication, including, without limitation: interaction with a customer 21 service representative, interaction with an automated voice response system, 22 interaction with a web portal, receipt of an email, text message or instant message 23 containing the generic client-specific address, etc. It should further be appreciated 24 that the clients of the instant messaging service may employ a directory service (e.g., operated by the communication server 102) and, as such, not need be explicitly aware 26 of the generic client-specific address associated with applet 116 and/or applet 118 in 27 order to identify the applet in question.
29 Returning now to Figs. 3 and 9C, at step 310, having determined that the client-controlled information regarding the new buddy (i.e., one of the applets 116, 118) has 31 been updated in eigen-area 936 or 938, the messaging application executed by the 32 processor 104 in the communication server 102 updates the client-controlled 33 information regarding the new buddy on a contact list 920 for user 110.
1 Specifically, the client-controlled information regarding applet 116 is obtained from 2 eigen-area 936 which, as previously described, conveys the share price of company 3 ABC. In one embodiment, the messaging application executed by the processor 104 4 in the communication server 102 copies the presence state and screen name from eigen-area 936 into fields 966, 976 of the contact list 920, respectively. In another 6 embodiment where the fields 966, 976 contain pointers to, respectively, the presence 7 state and screen name in eigen-area 936, the client-controlled information regarding 8 the applet in question will be instantly updated without the need for data transfer.
For its part, the client-controlled information regarding applet 118 is obtained from 11 eigen-area 938 which, as previously described, conveys the weather report for 12 Montreal, Canada. In one embodiment, the messaging application executed by the 13 processor 104 in the communication server 102 copies the presence state and screen 14 name from eigen-area 938 into fields 968, 978 of the contact list 920, respectively. In another embodiment where the fields 968, 978 contain pointers to, respectively, the 16 presence state and screen name in eigen-area 938, the client-controlled information 17 regarding the applet in question will be instantly updated without the need for data 18 transfer.
At this point, the client-controlled information regarding the applet in question 21 (which, it is recalled, comprises the information regarding the desired data service) is 22 ready for observation by user 110. Accordingly, at step 312, which can be inherent in 23 step 310 or a separate step altogether, the client-controlled information regarding the 24 applet in question can be conveyed to user 110 in a visual format.
26 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 27 information regarding the applet in question can be displayed on a screen of 28 communication device 120 in the form of text, graphics and/or an icon.
In this 29 example, "Bo Diddley" and "Jimi Hendrix" are screen names employed by other users that happen to be buddies of user 110. Also, "company ABC" and "$32.45" are, 31 respectively, the screen name and presence state of the client-controlled information 32 regarding applet 116, which provides a share price reporting service that produces the 33 share price of company ABC. Of note is the upwards arrow on the left of "company 34 ABC", which conveys yet further information regarding a data service. In addition, 1 "weather YUL" and "cloudy +7" are, respectively, the screen name and presence state 2 of the client-controlled information regarding applet 118, which provides a weather 3 reporting service that produces a weather report for Montreal, Canada.
Persons skilled in the art will therefore appreciate that the above described 6 embodiments allow the persistent conveyance of client-controlled information 7 regarding the applet in question to user 110, in a non-intrusive manner and without 8 interrupting user 110. Specifically, in two non-limiting examples, user 110 can 9 monitor the share price of company ABC or the weather report for Montreal, Canada on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 110 is 11 not compelled to remember the share price of company ABC or the weather report for 12 Montreal, Canada since user 110 can refresh his or her knowledge merely by glancing 13 at the contact list 920.
Meanwhile, it will be recalled from step 208 in Fig. 2, applets 116 and 118 continue to 16 obtain the information regarding a data service 146, 148 (i.e., share price of company 17 ABC or weather report for Montreal, Canada) from the data sources 136, 138. Thus, 18 the client-controlled information regarding the applets 116, 118 will continue to be 19 updated in eigen-areas 936, 938 as the applets 116, 118 continue to execute, which ensures currency of the information being persistently conveyed to, and observed by, 21 user 110.
23 Persons skilled in the art will appreciate that in some embodiments, observation of the 24 information regarding a data service by user 110 does not require adding the applet in question to the contact list 920 for user 110. Specifically, the messaging application 26 executed by the processor 104 in the communication server 102 can be configured to 27 persistently convey the client-controlled information regarding the applets 116, 118 28 (which is contained in eigen-areas 936, 938) even while user 110 merely browses the 29 directory service.
31 Persons skilled in the art will also appreciate that despite the public nature of the data 32 services falling under Scenario I, it may nevertheless be beneficial to ensure that a 33 given user who wishes to benefit from a particular data service be first authorized to 34 do so. For example, it is within the scope of the present invention to require that the 1 given user pay for the data service on a per-use basis, on a per-applet basis or in accordance with any suitable subscription scheme. It is also within the scope of the present invention to require that the given user enroll with the applet-hosting device 4 that hosts the applet that provides the particular data service.
6 Thus, an authorization step may be included at some point during Scenario I, or even 7 prior to step 202 of Scenario I. For the sake of simplicity, the examples to follow assume that user 110 intends to access the data service provided by applet 116.
9 However, this is not to be considered as a limitation of the present invention.
11 In a first non-limiting situation where authorization is required, shown in Fig.
4A, 12 user 110 initially enrolls with the communication server 102. User 110 can enroll by employing communication device 120 but may also enroll in a number of different 14 ways, such as by interaction with a web portal, a customer service representative, an interactive voice response system, etc., and/or by the transmission of email messages 16 or other messages, and using a variety of different devices. Upon enrolment, the communication server 102 stores the client-specific address associated with user 110 18 in a database 410 for future consultation. Later on, e.g., at step 304, when the messaging application executed by the processor 104 in the communication server 102 determines that the contact list 920 for user 110 includes a new buddy (in this example, applet 116), the messaging application executed by the processor 104 in the communication server 102 can be configured to consult the database 410 and verify whether the client-specific address being employed by communication device 120 appears in the database 410. If so, the messaging application executed by the processor 104 in the communication server 102 proceeds to execute step 310.
27 In a second non-limiting situation where authorization is required, shown in Fig.
4B, 28 user 110 initially enrolls with applet 116. User 110 can enroll by employing 29 communication device 120 but may also enroll in a number of different ways, such as by interaction with a web portal, a customer service representative, an interactive 31 voice response system, etc., and/or by the transmission of email messages or other 32 messages, and using a variety of different devices. Upon enrolment, applet 116 stores 33 the client-specific address associated with user 110 in a database 420 for future 34 consultation. Later on, e.g., at step 304, when the messaging application executed by 1 the processor 104 in the communication server 102 determines that the contact list for user 110 includes a new buddy (in this example, applet 116), the messaging application executed by the processor 104 in the communication server 102 can be configured to contact applet 116, which can be done by sending information to applet 116 in a variety of ways, including but not limited to using protocols such as IP and 6 SOAP, for example. The information sent to applet 116 contains the client-specific address being employed by communication device 120. In response, applet 116 consults the database 420 and verifies whether the client-specific address supplied by 9 the communication server 102 appears in the database 420. If so, applet 116 proceeds to send a confirmation message to the communication server 102, which then executes 11 step 310.
13 In a third non-limiting situation where authorization is required, shown in Fig.
4C, 14 once user 110 has added a new buddy (in this example, applet 116) to his or her contact list 920, but before the messaging application executed by the processor 104 16 in the communication server 102 determines that the contact list 920 includes the new 17 buddy, the messaging application executed by the processor 104 in the communication server 102 can be configured to communicate with user 110. To this 19 end, the communication server 102 can initiate an instant message exchange with communication device 120; alternatively, the communication server 102 can initiate a 21 call back to a telephone number associated with user 110; still other possibilities are within the scope of the present invention, including but not limited to via a web portal, interactive voice response system, URL embedded in an email or other electronic message, etc. During such communication between user 110 and the communication server 102, user 110 may supply to the communication server 102 candidate authorization data (e.g., a product code or a password) which is expected to match a priori authorization data stored by the communication server 102. The a priori authorization data could be learned from, for example, a pre-paid voucher or media advertising (e.g., newspaper, radio, television, Internet) and/or based on interaction with a customer service representative, a web portal, an interactive voice response system, and exchange of email or other messages, etc.; alternatively, user 110 may 32 have previously enrolled with the communication server 102 and agreed on which a priori authorization data to use. The candidate authorization data supplied to the 34 communication server 102 during communication between user 110 and 1 communication server 102 can be provided in a variety of ways including, but not 2 limited to, instant messaging, electronic mail and/or voice communications using 3 communication device 120 or any other communication device. The messaging 4 application executed by the processor 104 in the communication server 102 can be configured to then execute step 310 only if the candidate authorization data supplied 6 by user 110 is considered to match the a priori authorization data stored by the 7 communication server 102.
9 In a fourth non-limiting situation where authorization is required, shown in Fig. 4D, once user 110 has added a new buddy (in this example, applet 116) to his or her 11 contact list 920, but before the messaging application executed by the processor 104 12 in the communication server 102 determines that the contact list 920 includes the new 13 buddy, the messaging application executed by the processor 104 in the 14 communication server 102 can be configured to communicate with user 110.
Specifically, the communication server 102 can direct user 110 to a payment entity 16 440 (which, in a non-limiting example, may be associated with a third-party web site).
17 In a non-limiting embodiment, this can be done by sending an instant message to 18 communication device 120 containing a uniform resource locator (URL) that 19 identifies the third-party web site; alternatively, the communication server 102 can establish a three-way conference call between user 110 and the payment entity 440.
21 Still other possibilities are within the scope of the present invention, such as the 22 invoking of a pop-up window containing a URL, the transmission of an email or other 23 electronic message containing a URL, the triggering of an IM
conversation with a 24 payment system, and so on. User 110 may then employ communication device 120 or any other communication device to transact with the payment entity 440. The 26 payment entity 440 then returns a message to the communication server 102 27 indicative of whether payment has been received. The messaging application 28 executed by the processor 104 in the communication server 102 can be configured to 29 then execute step 310 only once payment has indeed been confirmed as received by the payment entity 440.
32 In a fifth non-limiting situation where authorization is required, shown in Fig. 4E, 33 once the messaging application executed by the processor 104 in the communication 34 server 102 determines that the contact list 920 includes a new buddy (in this example, 1 applet 116), the messaging application executed by the processor 104 in the 2 communication server 102 can be configured to contact the new buddy (e.g., via 3 instant message) and ask it whether it wishes to add user 110 to its own contact list 4 (i.e., contact list 926) as a buddy of its own. This may trigger applet 116 to communicate with user 110, e.g., by sending an instant message of its own, thereby 6 resulting in an exchange of instant messages between applet 116 and user 110. In 7 response, user 110 may supply to applet 116 authorization data (e.g., a product code 8 or a password) that could previously have been learned from, for example, a pre-paid 9 voucher or media advertising (e.g., newspaper, radio, television, Internet) and/or based on interaction with a customer service representative, a web portal, an 11 interactive voice response system, and exchange of email or other messages, etc.;.
12 Alternatively, user 110 may have previously enrolled with applet 116 and agreed on 13 which authorization data to use. The authorization data may be supplied to applet 116 14 in a variety of ways including, but not limited to, instant messaging, electronic mail and/or voice communications using communication device 120 or any other 16 communication device. Once applet 116 authorizes user 110 based on interaction 17 therewith, applet 116 can send a confirmation message to the communication server 18 102, which then executes step 310. In addition, the messaging application executed 19 by the processor 104 in the communication server 102 can ¨ but need not necessarily ¨ add user 110 to the contact list 926 for applet 116.
22 It should be appreciated that each of the above first through fifth non-limiting 23 situations can be caused not only once user 110 identifies as a "buddy"
an applet that 24 provides a desired data service, but also just prior thereto.
26 In a sixth non-limiting situation where authorization is required, shown in Fig. 4F, 27 user 110 is given the opportunity to accept or decline adding applet 116 as a buddy.
28 Specifically, prior to step 304, applet 116 learns the client-specific address of user 110 29 in this example, "User-110@IMservice.com". Such knowledge can be gained through prior interaction between user 110 and applet 116 (e.g., via email, SMS, a 31 web portal, a telephone interface). Applet 116 can then send a request for acceptance, 32 e.g., using the instant messaging service to which user 110 subscribes.
The 33 transmission of the request for acceptance can be formulated expressly or it may occur 34 automatically as a result of the attempt by applet 116 to add user 110 as a buddy to its 1 own contact list 926. When user 110 logs in to the instant messaging service, thereby instantiating itself as a client, the request for acceptance will be received by user 110.
3 At this point, user 110 may accept or decline the request for acceptance. If user 110 4 accepts, then applet 116 is added as a buddy of user 110. This may be a particularly applicable authorization scheme in an advertising scenario. In a more complex 6 scenario, user 110 might in addition to, or instead of, accepting or declining the 7 request for acceptance, send candidate authorization data that can be verified by the 8 communication server 102 and/or applet 116.
Scenario II (Figs. 5A, 6A and 10A-10C) 12 Scenario II is applicable to data services that are customized (L e., providing data that 13 is requested by individual users). Specific non-limiting examples of data services to 14 which Scenario II applies include, without limitation:
16 - a customized stock portfolio reporting service (where the information 17 regarding a data service is the share price of companies in a user-selected 18 portfolio);
19 - a customized news reporting service (where the information regarding a data service is the headline news from news sources in a user-selected set of news 21 sources or regarding user-specific topics);
22 - a customized traffic reporting service (where the information regarding a data 23 service is the current traffic synopsis for a user-selected travel route);
24 - a customized web search service (where the information regarding a data service is a feature (e.g., current status, number of results, result relevancy 26 score, etc.) of an online search);
27 - a customized real estate service (where the information regarding a data 28 service is an availability of a property meeting user-defined criteria);
29 - a customized dating service (where the information regarding a data service is an availability of a person of interest matching a user-defined profile);
31 - a customized job search service (where the information regarding a data 32 service is an availability of a position matching user-defined criteria);
1 - a customized shopping service (where the information regarding a data service 2 is an availability of an item or service meeting user-defined price or other 3 criteria);
4 - a web monitoring service (where the information regarding a data service is an indication of the most recent addition to a user-selected set of blogs or 6 websites);
7 - etc.
9 With reference to Fig. 5A, Scenario II begins at step 502 by user 110 enrolling with applet 116 and/or applet 118. In particular, user 110 can contact the applet in question 11 by employing communication device 120 but may also enroll in a number of different 12 ways, such as by interaction with a web portal, a customer service representative, an interactive voice response system, etc., and/or by the transmission of email messages 14 or other messages, and using a variety of different devices. During enrolment, user 110 provides an identity of user 110, which can be in the form of the client-specific 16 address associated with user 110 (which, in the example being used herein, is "User-110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social 18 security number, etc.
In addition, user 110 supplies customized alert parameters to the applet in question.
21 For the purposes of the discussion to follow, it is assumed that applet 116 provides a customized news reporting service that produces headline news from news sources in 23 a user-selected set of news sources, and that applet 118 provides a customized traffic 24 reporting service that produces the current traffic synopsis for a user-selected travel route. Thus, if the applet in question is applet 116, the customized alert parameters 26 may include the aforesaid user-selected set of news sources (e.g., URLs, key words, 27 newspaper names). Similarly, if the applet in question is applet 118, the customized 28 alert parameters may include the aforesaid user-selected travel route (e.g., road 29 segments, cardinal direction of travel in each segment).
31 Based on the information supplied at step 502, the applets 116, 118 are configured at 32 step 504.
Specifically, configuration of the applets 116, 118 begins by registering the 33 applet in question (either autonomously or with the aid of a person) as a client of the 34 instant messaging service. This is done by contacting the communication server 102 1 (in this case, www.IMservice.com) and creating a unique client-specific address 2 associated with user 110 and applet 116 and/or or a unique client-specific address 3 associated with user 110 and applet 118. By way of specific non-limiting example, in 4 the case of applet 116, a suitable unique client-specific address could be AlertIM-News-User-110@IMservice.com, while in the case of applet 118, a suitable unique 6 client-specific address could be AlertIM-Traffic-User-110@IMservice.com.
It will be 7 noted that the unique client-specific address is associated not only with the data 8 service provided by the applet in question, but also with user 110. Thus, the unique 9 client-specific addresses created at step 504 effectively spawn new clients of the instant messaging service, hereinafter referred to as "customized clients" of the instant 11 messaging service.
13 Of course, the preceding unique client-specific addresses have been used as examples 14 only, and for the sole purpose of enhancing readability; it should thus be appreciated that in actuality, the unique client-specific address associated with a given user and a 16 given applet, which need not be visible to user 110, could be different, non-standard 17 and/or less meaningful to interpretation by a human being. Also, the unique client-18 specific address associated with a given user and a given applet could be created by 19 the given user or the given applet.
21 At step 506, in response to creation of the unique client-specific address associated 22 with a specific customized client of the instant messaging service, the messaging 23 application executed by the processor 104 in the communication server 102 allocates 24 a portion of the memory 106 to the customized client in question. For example, with reference to Fig. 10A, the messaging application executed by the processor 104 in the 26 communication server 102 allocates a memory area 1060 to the customized client 27 identified by AlertIM-News-User-110@IMservice.com and a memory area 1080 to 28 the customized client identified by AlertIM-Traffic-User-110@IMservice.com. It will 29 be observed that each of the memory areas 1060, 1080 comprises a respective contact list 1062, 1082 for the respective customized client of the instant messaging service.
31 Initially, the contact lists 1062, 1082 can be empty, i.e., they do not include the client-32 specific addresses of any other clients of the instant messaging service (that is, the 33 customized clients have no "buddies"). The memory areas 1060, 1080 each further 34 comprise a respective eigen-area 1064, 1084 containing client-controlled information 1 regarding the respective customized client, which the communication server 102 will 2 make available to user 110 if that user's contact list ultimately includes the respective 3 customized client.
The client-controlled information regarding the customized client identified by 6 AlertIM-News-User-110@IMservice.com (which is stored in eigen-area 1064) 7 represents information that this particular customized client wishes to convey to user 8 110. Similarly, the client-controlled information regarding the customized client 9 identified by AlertIM-Traffic-User-110@IMservice.com (which is stored in eigen-area 1084) represents information that this particular customized client wishes to 11 convey to user 110. The client-controlled information stored in eigen-area 1064 or 12 eigen-area 1084 may include a presence state and/or a screen name. The presence 13 state could be used to specify an attentiveness of a given client to receiving instant 14 messages, while the screen name could be used to specify an identifier that the given customized client wishes to use to identify itself during a conversation.
However, in 16 accordance with non-limiting embodiments of the present invention, either or both of 17 the presence state and/or the screen name (and/or possibly other portions of the client-18 controlled information stored in the eigen-areas 1064, 1084) is used to convey 19 information regarding the respective data service, which in the case of the customized client identified by AlertIM-News-User-110@IMservice.com is headline news from 21 news sources in a user-selected set of news sources, and in the case of the customized 22 client identified by AlertIM-Traffic-User-110@IMservice.com is the current traffic 23 synopsis for a user-selected travel route.
Accordingly, and returning to Fig. 5A at step 512, applets 116 and 118 are configured 26 to obtain information regarding a data service specifically for user 110 (hereinafter 27 "user-specific information regarding a data service") from one or more of the data 28 sources 136, 138. Examples of user-specific information regarding a data source 29 include headline news from news sources in a user-selected set of news sources and the current traffic synopsis for a user-selected travel route. The obtaining of user-31 specific information regarding a data source can be performed for other users (e.g., 32 users 112, 114) who have specified their own customized alert parameters. It is 33 assumed for convenience that data source 136 is capable of producing the headline 34 news for user 110 sought by applet 116, and that data source 138 is capable of 1 producing the current traffic synopsis for user 110 sought by applet 118, although this 2 association between the applets 116, 118 and the data sources 136, 138 is not to be 3 considered a limitation of the present invention.
In order for applet 116 to obtain the headline news for user 110 from data source 136, 6 applet 116 may occasionally, continuously, synchronously or asynchronously pull the 7 headline news for user 110 from data source 136; alternatively, data source 136 may 8 be configured to occasionally, continuously, synchronously or asynchronously push 9 the headline news for user 110 to applet 116. This latter functionality can be achieved by applet 116 placing a request with data source 136 to receive the headline news for 11 user 110. Similarly, in order for applet 118 to obtain the current traffic synopsis for 12 user 110 from data source 138, applet 118 may occasionally, continuously, 13 synchronously or asynchronously pull the current traffic synopsis for user 110 from 14 data source 138; alternatively, data source 138 may be configured to occasionally, continuously, synchronously or asynchronously push the current traffic synopsis for 16 user 110 to applet 118. This latter functionality can be achieved by applet 118 placing 17 a request with data source 138 to receive the current traffic synopsis for user 110.
18 Similar data transfers are arranged for each of the other users that may desire 19 customized data services provided by applets 116 and 118.
21 Assume now that the headline news for user 110 is "Smalltown residents asked to boil 22 water" and that the current traffic synopsis for user 110 is "Accident ¨
Galipeault 23 bridge ¨ right lane". This user-specific information regarding a data service is 24 received by the applets 116, 118 as a result of execution of step 512.
At step 514, each of the applets 116, 118 is configured to update the respective eigen-area 1064, 26 1084 for the relevant customized client with the received user-specific information 27 regarding a data service.
29 Specifically, and with reference to Fig. 10B, applet 116 can update the client-controlled information in eigen-area 1064 by modifying the screen name to reflect the 31 headline news for user 110 (which, in the present example, is "Smalltown residents 32 asked to boil water"). In addition, or alternatively, applet 116 can update the client-33 controlled information in eigen-area 1064 by causing the screen name to reflect data 34 that can be easily expressed using simple icons, such as the presence or absence of 1 headline news. Of course, in an alternative embodiment, applet 116 could have 2 updated the client-controlled information in eigen-area 1064 by also (or instead) 3 modifying the presence state and/or possibly other portions of the client-controlled 4 information stored in eigen-area 1064 to reflect the headline news for user 110. In summary, the information of interest is stored in eigen-area 1064 as text data or other 6 data (such as data that encodes one or more graphical icons).
8 Similarly, applet 118 updates the client-controlled information in eigen-area 1084 by 9 modifying the screen name to reflect the current traffic synopsis for user 110 (which, in the present example, is "Accident ¨ Galipeault bridge ¨ right lane"). In addition, or 11 alternatively, applet 118 can update the client-controlled information in eigen-area 12 1084 by causing the screen name to reflect data that can be easily expressed using 13 simple icons, such as whether the user-selected traffic route is recommendable, 14 passable or to be avoided. Of course, in an alternative embodiment, applet 118 could have updated the client-controlled information in eigen-area 1084 by also (or instead) 16 modifying the presence state and/or possibly other portions of the client-controlled 17 information stored in eigen-area 1084 to reflect the current traffic synopsis for user 18 110. In summary, the information of interest is stored in eigen-area 1084 as text data 19 or other data (such as data that encodes one or more graphical icons).
21 Interaction between a given one the communication devices 120, 122, 124 and the 22 communication server 102 under Scenario II is now described. For the sake of 23 simplicity, let the given communication device be communication device 120 which 24 is associated with user 110, and let it be assumed that useill0 is a client of the instant messaging service. That is to say, user 110 has a client-specific address, say, "User-26 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 27 110. For example, with reference to Fig. 10C, the messaging application executed by 28 the processor 104 in the communication server 102 allocates a memory area 1010 to 29 user 110.
31 It will be observed that memory area 1010 comprises a contact list 1012 for user 110.
32 Initially, the contact list 1012 can be empty, i.e., it does not include the client-specific 33 addresses of any other clients of the instant messaging service (that is, user 110 has no 34 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 1 list 1012 by control of the messaging application executed by the processor 104 in the 2 communication server 102. The memory area 1010 further comprises an eigen-area 3 1014 containing client-controlled information regarding user 110, which the 4 communication server 102 will make available to other clients of the instant messaging service (such as, potentially, users 112, 114 and each of the aforesaid 6 customized clients) if their contact lists ultimately include user 110.
8 With reference to the message flow diagram in Fig. 6A, user 110 uses communication 9 device 120 to log in to e., thereby instantiating a client of) the instant messaging service at step 602. This can be achieved by providing identification and 11 authentication credentials such as a username and a password, for example.
13 At step 604, user 110 identifies a customized client of the instant messaging service 14 which provides a desired data service by entering the unique client-specific address associated with the customized client in question. In the example being presently 16 described, user 110 may enter one of the aforesaid unique client-specific addresses, 17 namely AlertIM-News-User-110@IMservice.com (which is associated with applet 18 116 producing the headline news for user 110) or AlertIM-Traffic-User-19 110@IMservice.com (which is associated with applet 118 producing the current traffic synopsis for user 110). In certain embodiments, user 110 identifies the 21 customized client of the instant messaging service that provides the desired data 22 service using a directory service offered by the communication server 102, while in 23 other embodiments, user 110 may directly type in the unique client-specific address 24 associated with the customized client in question.
26 Alternatively, since user 110 has previously enrolled with applet 116 producing the 27 headline news for user 110 and/or with applet 118 producing the current traffic 28 synopsis for user 110, the customized client may send a request for acceptance to user 29 110, such that when user 110 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the request for acceptance. If user 110 accepts, 31 then the customized client will be added to the contact list 1012 of user 110.
33 Either way, this results in the unique client-specific address associated with the 34 customized client in question being added to the contact list 1012, and leaving at least 1 one corresponding field to be filled with the client-controlled information regarding 2 the customized client in question. In the present example, not to be considered 3 limiting, fields 1066, 1076 are used to store the presence state and screen name, 4 respectively, of the customized client having the unique client-specific address AlertIM-News-User-110@IMservice.com, while fields 1068, 1078 are used to store 6 the presence state and screen name, respectively, of the customized client having the 7 unique client-specific address AlertIM-Traffic-User-110@IMservice.com.
9 As an aside, it should be appreciated that an optional step (510) could have been performed in Fig. 5A, whereby the unique client-specific address created at step 504 11 can be revealed to user 110 in order to inform him or her of the unique client-specific 12 address AlertIM-News-User-110@IMservice.com and/or of the unique client-specific 13 address AlertIM-Traffic-User-110@IMservice.com. It should be appreciated that step 14 510 is optional, since the clients of the instant messaging service can gain awareness of the unique client-specific address AlertIM-News-User-110@IMservice.com and/or 16 of the unique client-specific address AlertIM-Traffic-User-110@IMservice.com in 17 other ways, such as through other communication devices and other methods of 18 communication, including, without limitation: interaction with a customer service 19 representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message containing the 21 unique client-specific addresses, etc. It should further be appreciated that the clients 22 of the instant messaging service may employ a directory service (e.g., operated by the 23 communication server 102) and, as such, not need be explicitly aware of the unique 24 client-specific addresses associated with the customized clients of the instant messaging service.
27 Returning now to Fig. 6A and 10C, at step 610, having determined that the client-28 controlled information regarding the new buddy (i.e., one of the aforesaid customized 29 clients) has been updated in eigen-area 1064 or 1084, the messaging application executed by the processor 104 in the communication server 102 updates the client-31 controlled information regarding the new buddy on the contact list 1012 for user 110.
33 Specifically, the client-controlled information regarding the customized client 34 identified by AlertIM-News-User-110@IMservice.com is obtained from eigen-area 1 1064 which, as previously described, conveys headline news from news sources in a 2 user-selected set of news sources. In one embodiment, the messaging application 3 executed by the processor 104 in the communication server 102 copies the presence 4 state and screen name from eigen-area 1064 into fields 1066, 1076 of the contact list 1012. In another embodiment where fields 1066, 1076 contain pointers to, 6 respectively, the presence state and screen name in eigen-area 1064, the client-7 controlled information regarding the customized client in question will be instantly 8 updated without the need for data transfer. A similar updating operation is performed 9 by the communication server 102 with respect to the contact lists for other users.
11 For its part, the client-controlled information regarding the customized client 12 identified by AlertIM-Traffic-User-110@IMservice.com is obtained from eigen-area 13 1084 which, as previously described, conveys the current traffic synopsis for a user-14 selected travel route. In one embodiment, the messaging application executed by the processor 104 in the communication server 102 copies the presence state and screen 16 name from eigen-area 1084 into fields 1068, 1078 of the contact list 1012. In another 17 embodiment where fields 1068, 1078 contain pointers to, respectively, the presence 18 state and screen name in eigen-area 1084, the client-controlled information regarding 19 the customized client in question will be instantly updated without the need for data transfer. A similar updating operation is performed by the communication server 102 21 with respect to the contact lists for other users.
23 At this point, the client-controlled information regarding the customized client in 24 question (which, it is recalled, comprises the information regarding the desired data service) is ready for observation by user 110. Accordingly, at step 612, which can be 26 inherent in step 610 or a separate step altogether, the client-controlled information 27 regarding the customized client in question can be conveyed to user 110 in a visual 28 format.
In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 31 information regarding the customized client in question can be displayed on the 32 aforesaid screen of communication device 120 in the form of text, graphics and/or an 33 icon. In this example, "Smalltown residents asked to boil water" is the screen name 34 of the client-controlled information regarding the customized client identified by the 1 unique client-specific address AlertIM-News-User-110@IMservice.com, which 2 provides headline news from news sources in a user-selected set of news sources. In 3 addition, "Accident ¨ Galipeault bridge ¨ right lane" is the screen name of the client-4 controlled information regarding the customized client identified by the unique client-specific address AlertIM-Traffic-User-110@IMservice.com, which provides a 6 customized traffic reporting service that produces the current traffic synopsis for a 7 user-selected travel route. Of note is the "X" on the left of "Accident ¨
Galipeault 8 bridge ¨ right lane", which indicates a problem with the user-selected travel route.
Persons skilled in the art will therefore appreciate that the above described 11 embodiments allow the persistent conveyance of client-controlled information 12 regarding the customized client in question, in a non-intrusive manner and without 13 interrupting user 110. Specifically, in two non-limiting examples, user 110 can 14 monitor headline news from news sources in a user-selected set of news sources or the current traffic synopsis for a user-selected travel route on an ongoing basis ¨ and at 16 times of his or her own choosing. Moreover, user 110 is not compelled to remember 17 the headline news or current traffic synopsis since user 110 can refresh his or her 18 knowledge merely by glancing at the contact list 1012.
Meanwhile, it will be recalled from step 512 in Fig. 5A, applets 116 and 118 continue 21 to obtain from the data sources 136, 138 the user-specific information regarding a data 22 service associated with the various customized clients of the instant messaging 23 service. Thus, the client-controlled information regarding the customized clients of 24 the instant messaging service will continue to be updated in eigen-areas 1064, 1084 as the applets 116, 118 continue to execute, which ensures currency of the information 26 being persistently conveyed to, and observed by, user 110.
28 Moreover, it should be appreciated that the client-controlled information regarding a 29 given customized client can include passive data, which can be intended merely for observation by user 110, as well as active data, which can allow user 110 to perform 31 an action on the active data, triggering an interaction with the given customized client 32 and allowing user 110 to retrieve further information related to the active data. For 33 example, where the client-controlled information regarding the given customized 34 client is headline news from news sources in a user-selected set of news sources or 1 regarding user-specific topics, the "further information" can be an in-depth story 2 behind the headline news. Other examples of "further information" include stock 3 details, traffic details, real estate listing details, weather details, etc.
The aforesaid interaction between user 110 and the given customized client may be 6 triggered by user 110 sending an electronic message (e.g., an instant message) to the 7 given customized client, which can serve as a request for the further information.
8 Alternatively, the given customized client can send an electronic message (e.g., an 9 instant message) to user 110 containing an actionable URL, which can lead user 110 to a web portal where user 110 may interact further with the applet that supports the 11 given customized client.
13 The aforesaid interaction between user 110 and the given customized client may also 14 lead to downstream actions such as a sale, purchase or reservation.
16 Also, it should be appreciated that the client-controlled information regarding a given 17 customized client can be dynamically updated based on the aforesaid interaction 18 between user 110 and the given customized client. For example, the given 19 customized client can track which client-controlled information regarding the given customized client has been observed by user 110. This can be achieved by tracking 21 which further information has been retrieved by user 110 pursuant to an interaction 22 with the given customized client. Alternatively, this can be achieved by monitoring 23 cookies within communication device 120, or in a variety of other ways.
With the 24 knowledge of what information user 110 has actually observed, the given customized client can accordingly update the client-controlled information regarding the given 26 customized client.
28 For example, where the user-specific client-controlled information regarding the 29 given customized client is a list of ten headlines related to Iraq, and where user 110 has retrieved further information related to headline #3 of 10, the given customized 31 client can gain knowledge of this fact in one of the aforesaid ways. The result is that 32 the client-controlled information regarding the given customized client will now be a 33 list of nine headlines, which were formerly headlines #1, #2 and #4 through #10.
34 Alternatively, the ten headlines could remain displayed, with headline #3 being 1 displayed differently from the others (e.g., grayed out) to assist user 110 in navigating 2 through the headlines. Alternatively, or in addition, the client-controlled information 3 regarding the given customized client can also include an icon which is indicative 4 (e.g., by a change in color, size or shape) of the existence of unreviewed content.
Similar navigation aids can be provided for the various other data services within the 6 scope of the present invention.
8 Persons skilled in the art will also appreciate that it may be beneficial to ensure that a 9 given user who wishes to benefit from a particular customized data service falling under Scenario II be authorized to do so. For example, it is within the scope of the 11 present invention to require that the given user pay for the data service. It is also 12 within the scope of the present invention to require that the given user enroll with the 13 applet-hosting device that hosts the applet that provides the particular data service.
14 Thus, an authorization step may be included at some point during Scenario II.
Reference is made to the above description of Figs. 4A through 4F, which also apply 16 to Scenario II, with the exception that the enrollment steps in Figs. 4A
and 4B can be 17 considered redundant, since user 110 is assumed to have enrolled with applet 116 18 and/or applet 118 (see step 502 in Fig. 5A).
First Variant of Scenario II (Figs. 5B, 6B, 11, 12) 22 A first variant of Scenario II is now described, wherein customized clients of the 23 instant messaging service are identified using generic client-specific addresses.
24 Accordingly, reference is made to Fig. 5B, which repeats steps 502 through 506 of Fig. 5A. Once this point is reached, step 508 is executed, whereby the messaging 26 application executed by the processor 104 in the communication server 102 invokes 27 an aliasing function. The aliasing function allows user 110 to identify a specific 28 customized client of the instant messaging service using a generic client-specific 29 address, i.e., an address that is not unique to user 110. This may enhance traction within the user community from the commercial perspective as it allows the generic 31 client-specific address associated with a particular data service to be advertised 32 without waiting for any particular user to enroll at step 502.
1 Specifically, the aliasing function creates an association between (i) a given one of the 2 unique client-specific addresses created at step 504; (ii) the unique client-specific 3 address associated with user 110; and (iii) a (previously created) generic client-4 specific address associated with a given one of applets 116, 118. To this end, and with reference to Fig. 11, the aliasing function may rely on a database 1110 in order to 6 store the aforesaid association. In this non-limiting example, it will be observed that 7 the combination of User-110@IMservice.com (which uniquely identifies user 110) 8 and AlertIM-Customized-News@IMservice.com (which is a generic client-specific 9 address associated with the customized news reporting service provided by applet 116) uniquely specifies the address AlertIM-News-User-110@IMservice.com, which 11 was created at step 504. Analogously, it will be observed that the combination of 12 User-110@IMservice.com and AlertIM-Customized-Traffic@IMservice.com (which 13 is a generic client-specific address associated with the customized traffic reporting 14 service provided by applet 118) uniquely specifies the address AlertIM-Traffic-User-110@IMservice.com, which was also created at step 504. Similar associations are 16 stored in the database 110 for other users, such as user 112 and user 114.
18 Following step 508, steps 512 and 514 of Fig. 5A are repeated in Fig.
5B.
Reference is now made to Fig. 12, which is analogous to Fig. 10C but is specifically 21 applicable to the first variant of Scenario II. With user 110 being a client of the 22 instant messaging service, the messaging application executed by the processor 104 in 23 the communication server 102 will have allocated a memory area 1210 to user 110. It 24 will be observed that memory area 1210 comprises a contact list 1212 for user 110.
Initially, the contact list 1212 can be empty, i.e., it does not include the client-specific 26 addresses of any other clients of the instant messaging service (that is, user 110 has no 27 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 28 list 1212 by control of the messaging application executed by the processor 104 in the 29 communication server 102. The memory area 1210 further comprises an eigen-area 1214 containing client-controlled information regarding user 110, which the 31 communication server 102 will make available to other clients of the instant 32 messaging service (such as, potentially, users 112, 114 and each of the aforesaid 33 customized clients) if their contact lists ultimately include user 110.
1 Turning now to the message flow diagram in Fig. 6B, user 110 uses communication 2 device 120 to log in to (i e., thereby instantiating a client of) the instant messaging 3 service at step 602, as was the case in Fig. 6A. This can be achieved by providing 4 identification and authentication credentials such as a username and a password, for example.
7 At step 604*, user 110 identifies a customized client of the instant messaging service 8 which provides a desired data service. In contrast to step 604 in Fig.
6A, this is done 9 at step 604* by entering the generic client-specific address associated with the customized client in question. In the example being presently described, user 11 may enter one of the aforesaid generic client-specific addresses, namely AlertIM-12 Customized-News@IMservice.com or AlertIM-Customized-Traffic@IMservice.com.
13 In some embodiments, user 110 obtains knowledge of the generic client-specific 14 address associated with the customized client of the instant messaging service that provides the desired data service through media advertising, for example, and/or 16 based on interaction with a customer service representative, interaction with an 17 automated voice response system, interaction with a web portal, receipt of an email, 18 text message or instant message containing the generic client-specific address, etc. In 19 other embodiments, user 110 obtains the generic client-specific address associated with the customized client of the instant messaging service that provides the desired 21 data service by invoking a directory service offered by the communication server 102.
23 Alternatively, since user 110 has previously enrolled with applet 116 and/or applet 24 116, the customized client in question may send a request for acceptance to user 110, such that when user 110 logs in as a client of the instant messaging service, user 110 26 is prompted to accept or decline the request for acceptance. If user 110 accepts, then 27 the customized client will be added to the contact list 1212 of user 110.
29 Either way, this results in the generic client-specific address associated with the customized client in question being added to the contact list 1212, leaving at least one 31 corresponding field in the contact list 1212 for storing the client-controlled 32 information regarding the customized client in question. In the present example, not 33 to be considered limiting, fields 1256, 1276 are used to store the presence state and 34 screen name, respectively, of the client having the generic client-specific address 1 AlertIM-Customized-News@IMservice.com, while fields 1258, 1278 are used to 2 store the presence state and screen name, respectively, of the client having the generic 3 client-specific address AlertIM-Customized-Traffic@IMservice.com.
As an aside, it should be appreciated that an optional step (510*) could have been 6 performed in Fig. 5B, whereby the (previously created) generic client-specific address 7 associated with a given one of the customized clients could have been revealed to the 8 user community in order to inform the various other clients of the instant messaging 9 service (in particular, user 110) of the generic client-specific address associated with the given one of the customized clients. It should be appreciated that step 510* is 11 optional, since the clients of the instant messaging service can gain awareness of the 12 generic client-specific address associated with the customized clients in other ways, 13 such as through other communication devices and other methods of communication, 14 including, without limitation: interaction with a customer service representative, interaction with an automated voice response system, interaction with a web portal, 16 receipt of an email, text message or instant message containing the generic client-17 specific address, etc. It should further be appreciated that the clients of the instant 18 messaging service may employ a directory service (e.g., operated by the 19 communication server 102) and, as such, not need be explicitly aware of the generic client-specific address associated with the customized clients in order to identify a 21 given customized client.
23 Returning now to Figs. 6B and 12, at step 610A, having determined that the contact 24 list 1212 includes a new buddy, the messaging application executed by the processor 104 in the communication server 102 accesses the database 1110 on the basis of (i) 26 the client-specific address of the new buddy (i.e., the generic client-specific address 27 associated with the customized client in question) and (ii) the client-specific address 28 associated with user 110, in order to identify a unique client-specific address 29 associated with the customized client in question. In the non-limiting example depicted in Fig. 11, accessing the database 1110 on the basis of AlertIM-Customized-31 News@IMservice.com and User-110@IMservice.com would yield AlertIM-News-32 User-110@IMservice.com; analogously, accessing the database 1110 on the basis of 33 AlertIM-Customized-Traffic@IMservice.com and User-110@IMservice.com would 34 yield AlertIM-Traffic-User-110@IMservice.com.
2 At step 610B, having determined that the client-controlled information regarding the 3 new buddy (i.e., customized client identified by the unique client-specific address 4 obtained from the database 1110) has been updated in eigen-area 1064 or 1084, the messaging application executed by the processor 104 in the communication server 6 102 updates the client-controlled information regarding the new buddy on the contact 7 list 1212 for user 110.
9 Specifically, the client-controlled information regarding the customized client identified by AlertIM-News-User-110@IMservice.com is obtained from eigen-area 11 1064 which, as previously described, conveys headline news from news sources in a 12 user-selected set of news sources. In one embodiment, the messaging application 13 executed by the processor 104 in the communication server 102 copies the presence 14 state and screen name from eigen-area 1064 into fields 1256, 1276 of contact list 1212, respectively. In another embodiment where fields 1256, 1276 contain pointers 16 to, respectively, the presence state and screen name in eigen-area 1064, the client-17 controlled information regarding the customized client in question will be instantly 18 updated without the need for data transfer. A similar updating operation is performed 19 by the communication server 102 with respect to the contact lists for other users.
21 For its part, the client-controlled information regarding the customized client 22 identified by AlertIM-Traffic-User-110@IMservice.com is obtained from eigen-area 23 1084 which, as previously described, conveys the current traffic synopsis for a user-24 selected travel route. In one embodiment, the messaging application executed by the processor 104 in the communication server 102 copies the screen name and the 26 presence state from eigen-area 1084 into fields 1258, 1279 of contact list 1212, 27 respectively. In another embodiment where fields 1258, 1278 contain pointers to, 28 respectively, the presence state and screen name in eigen-area 1084, the client-29 controlled information regarding the customized client in question will be instantly updated without the need for data transfer. A similar updating operation is performed 31 by the communication server 102 with respect to the contact lists for other users.
33 At this point, the client-controlled information regarding the customized client in 34 question (which, it is recalled, comprises the information regarding the desired data 1 service) is ready for observation by user 110. Accordingly, at step 612, which can be inherent in 2 step 610B or a separate step altogether, the client-controlled information regarding the customized 3 client in question can be conveyed to user 110 in a visual format.
Persons skilled in the art will therefore appreciate that the above described embodiments allow the 6 persistent conveyance client-controlled information regarding the customized client in question to 7 user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 8 monitor headline news from news sources in a user-selected set of news sources or the current 9 traffic synopsis for a user-selected travel route on an ongoing basis ¨
and at times of his or her own choosing. Moreover, user 110 is not compelled to remember the headline news or current traffic 11 synopsis since user 110 can refresh his or her knowledge merely by glancing at the contact list 1012.
12 Moreover, in this first variant of Scenario II, user 110 can access the desired data service using a 13 generic client-specific address, which can be conveniently retained by user 110.
Meanwhile, it will be recalled from step 512 in Fig. 5B, applets 116 and 118 continue to obtain from 16 the data sources 136, 138 the user-specific information regarding a data service associated with the 17 various customized clients of the instant messaging service. Thus, the client-controlled information 18 regarding the customized clients of the instant messaging service will continue to be updated in 19 eigen-areas 1064, 1084 as the applets 116, 118 continue to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
22 Second Variant of Scenario II (Figs. 13A, 13B and 14) 24 A second variant of Scenario II is now described, wherein user 110 provides seed data for initiating a particular data service provided by a particular applet, say, applet 118S, which is hereinafter 26 referred to as a search applet. For the purposes of the present example, let the particular data service 27 be a customized web search service, where the user-specific information regarding a data service is 28 a feature (e.g., current status, number of results, relevancy, etc.) of an online search performed by 29 the search applet 118S, based on the aforementioned seed data provided by user 110.
31 Accordingly, reference is made to Fig. 13A, where user 110 logs in to the instant messaging service 32 at step 1302. This can be achieved by providing identification and authentication credentials such as 33 a username and a password, for example. At step 1304, user 110 enters a generic client-specific 1 address associated with the customized web search service (hereinafter referred to as a "generic web 2 search address"), such as "AlertIM-Search@IMservice.com". In some embodiments, user 110 3 obtains knowledge of the generic web search address through media advertising, interaction with a 4 customer service representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message containing the generic web 6 search address, etc. In other embodiments, user 110 obtains the generic web search address by 7 invoking a directory service offered by the communication server 102.
9 Alternatively, since user 110 has previously enrolled with the search applet 118S, the customized client in question may send a request for acceptance to user 110, such that when user 110 logs in as 11 a client of the instant messaging service, user 110 is prompted to accept or decline the request for 12 acceptance. Referring now to Fig. 14, if user 110 accepts, then the customized client will be added 13 to a contact list 1412 of user 110.
Either way, this results in the generic web search address (in this case, "AlertIM-16 Search@IMservice.com") being added to the contact list 1412, and leaving at least one 17 corresponding field to be filled with the client-controlled information regarding the customized 18 client in question. In the present example, not to be considered limiting, fields 1466, 1476 are used 19 to store the presence state and screen name, respectively, of the customized client having the unique client-specific address AlertIM-Search@IMservice.com.
22 At step 1308, the messaging application executed by the processor 104 in the communication server 23 102 determines that the contact list 1412 includes a new buddy, which has been identified by the 24 generic web search address. In response, the messaging application executed by the processor 104 in the communication server 102 creates a client-specific address associated with the search applet 26 118S and unique to user 110. By way of specific non-limiting example, a suitable client-specific 27 address associated with the search applet 118 and unique to user 110 could be AlertIM-Search-User-28 110@lMservice.com. Thus, the unique client-specific address created at step 1308 effectively 29 spawns a new client of the instant messaging service, which amounts to a "customized web search client" of the instant messaging service.
32 Of course, the preceding unique client-preceding specific address associated with the search applet 33 118S and unique to user 110 has been used as an example only, and for the sole purpose of 1 enhancing readability; it should thus be appreciated that in actuality, the unique client-specific 2 address associated with the search applet 118S and unique to user 110, but which need not be visible 3 to user 110, could be different, non-standard and/or less meaningful to interpretation by a human 4 being. Also, the unique client-specific address associated with the search applet 118S and a given user could be created by the given user or by the search applet 118S.
7 At step 1309, the messaging application executed by the processor 104 in the communication server 8 102 allocates a portion of the memory 106 to the customized web search client. For example, with 9 reference again to Fig. 14, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 1460 to the customized web search client. It 11 will be observed that the memory area 1460 comprises a contact list 1462 for the customized web 12 search client. Initially, the contact list 1462 can be empty, i.e., it does not include the client-specific 13 addresses of any other clients of the instant messaging service (that is, the customized web search 14 client has no "buddies"). The memory area 1460 further comprises an eigen-area 1464 containing client-controlled information regarding the customized web search client.
17 The client-controlled information regarding the customized web search client (which is stored in 18 eigen-area 1464) represents information that the customized web search client wishes to convey to 19 user 110. The client-controlled information stored in eigen-area 1464 may include a presence state and/or a screen name. The presence state could be used to specify an attentiveness of the 21 customized web search client to receiving instant messages, while the screen name could be used to 22 specify an identifier that the customized web search client wishes to use to identify itself during a 23 conversation. However, in accordance with non-limiting embodiments of the present invention, 24 either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information stored in eigen-area 1464) is used to convey the user-specific 26 information regarding a data service, namely, a feature (e.g., current status, number of results, 27 relevancy, etc.) of an online search to be performed later on at step 1314 based on seed data.
29 Accordingly, at step 1310, user 110 supplies the aforesaid seed data to the communication server 102. The seed data may include search parameters or other information employed by the search 31 applet 118S to generate user-specific information regarding a data service. The seed data can be 32 supplied in a number of ways, several non-limiting examples of which are now described.
1 In a first non-limiting example of step 1310, the messaging application executed by the processor 2 104 in the communication server 102 determines that the contact list 1412 includes the new buddy 3 (identified by aforesaid the generic web search address), as described above. At this point, the 4 messaging application executed by the processor 104 in the communication server 102 can be configured to communicate with user 110. To this end, the communication server 102 can initiate 6 an instant message exchange with communication device 120; alternatively, the communication 7 server 102 can initiate a call back to a telephone number associated with user 110; still other 8 possibilities are within the scope of the present invention, including but not limited to via a web 9 portal, interactive voice response system, URL embedded in an email or other electronic message, etc. During such communication between user 110 and the communication server 102, user 110 11 may supply to the communication server 102 the aforesaid seed data 13 In a second non-limiting example of step 1310, the messaging application executed by the processor 14 104 in the communication server 102 determines that the contact list 1412 includes the new buddy (identified by aforesaid the generic web search address), as described above.
At this point, the 16 messaging application executed by the processor 104 in the communication server 102 can be 17 configured to contact the search applet 118S (which can be done in a number of ways, including but 18 not limited to using protocols such as IP and SOAP, for example) and ask it whether it wishes to add 19 user 110 to its contact list as a buddy of its own. This may trigger the search applet 118S to communicate with user 110, e.g., by sending an instant message of its own or in a variety of other 21 ways including but not limited to via a web portal, interactive voice response system, URL
22 embedded in an email or other electronic message, etc. In response, user 110 may supply the 23 aforesaid seed data to the search applet 118S.
In a third non-limiting example of step 1310, the messaging application executed by the processor 26 104 in the communication server 102 determines that the contact list 1412 includes the new buddy 27 (identified by aforesaid the generic web search address), and the customized web search client adds 28 user 110 to its own contact list 1462. At this point, user 110 and the customized web search client 29 will be cross-linked to one another. By virtue of the instant messaging service provided by the communication server 102, user 110 can initiate an instant messaging session with the search applet 31 118S by sending the aforesaid seed data in an instant message.
1 Referring now to Fig. 13B, if the actual embodiment of step 1310 did not result in the search applet 2 118S having been provided the seed data by user 110, then at step 1312, the messaging application 3 executed by the processor 104 in the communication server 102 may contact the search applet 118S
4 and supply the search applet 118S with the identity of user 110 and the seed data.
6 At step 1314, the search applet 118S in turn performs the web search based on the seed data 7 provided at step 1310. The result of the web search is the user-specific information regarding a data 8 service.
Assume now that the user-specific information regarding a data service is "133 relevant results 11 found, 50% complete", which indicates that the web search is half complete and has found 133 12 relevant results. At step 1318, the search applet 118S is configured to update eigen-area 1464 for 13 the customized web search client with the aforesaid user-specific information regarding a data 14 service.
16 Specifically, and with reference again to Fig. 14, the customized web search client can update the 17 client-controlled information in eigen-area 1464 by modifying the presence 1 state to reflect the user-specific information regarding a data service (which, in the 2 present example, is "133 relevant results found, 50% complete"). In addition, or 3 alternatively, the customized web search client can update the client-controlled 4 information in eigen-area 1464 by causing the presence state to reflect other data such as whether the search is complete and/or whether at least one relevant result was 6 found. In a simple embodiment, the presence state can be toggled between two states 7 (e.g., online and offline) depending on whether there are new search results. Consider 8 the case where a specific song or video is being sought by user 110. Upon initiating 9 the search, the presence state of the customized web search client may go to "offline", and might not change to "online" until the search has concluded successfully.
By 11 observing the presence state, user 110 can gain knowledge in a non-intrusive way that 12 the web search has completed successfully (or that the web search has not yet 13 completed successfully). Of course, in an alternative embodiment, the customized 14 web search client could have updated the client-controlled information in eigen-area 1464 by also (or instead) modifying the screen name and/or possibly other portions of 16 the client-controlled information stored in eigen-area 1464 to reflect the user-specific 17 information regarding a data service. In summary, the information of interest is stored 18 in eigen-area 1464 as text data or other data (such as data that encodes one or more 19 graphical icons).
21 At step 1320, having determined that the client-controlled information regarding the 22 new buddy (i.e., the customized web search client) has been updated in eigen-area 23 1464, the messaging application executed by the processor 104 in the communication 24 server 102 updates the client-controlled information regarding the new buddy on the contact list 1412 for user 110. Specifically, the client-controlled information 26 regarding the customized web search client is obtained from eigen-area 1464 which, 27 as previously described, conveys the result of the web search. In one embodiment, the 28 messaging application executed by the processor 104 in the communication server 29 102 copies the presence state and screen name from eigen-area 1464 into fields 1466, 1476 of the contact list 1412, respectively. In another embodiment where fields 1466, 31 1476 contain pointers to, respectively, the presence state and screen name in eigen-32 area 1464, the client-controlled information regarding the customized web search 33 client will be instantly updated without the need for data transfer.
1 At this point, the client-controlled information regarding the customized web search client (which, it 2 is recalled, comprises a feature of the online search) is ready for observation by user 110.
3 Accordingly, at step 1322, which can be inherent in step 1320 or a separate step altogether, the 4 client-controlled information regarding the customized web search client can be conveyed to user 110 in a visual format.
7 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 8 regarding the customized web search client can be displayed on the aforesaid screen of 9 communication device 120 in the form of text, graphics and/or an icon. In this example, "web search" and "133 relevant results, 50% complete" are, respectively, the screen name and presence 11 state of the client-controlled information regarding the customized web search client, which 12 provides a feature of an online search performed by the search applet 118S, based on seed data 13 provided by user 110. Of note is the hourglass on the left of "web search", which indicates that the 14 online search is still in progress.
16 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 17 persistent conveyance of the search results of an online search based on seed data to user 110, in a 18 non-intrusive manner and without interrupting user 110. Specifically, user 110 can monitor the 19 status, progress and results of an online search over time ¨ and at instants of his or her own choosing. Moreover, user 110 is not compelled to remember this information since user 110 can 21 refresh his or her knowledge merely by glancing at the contact list 1412.
23 Meanwhile, it will be recalled from step 1314, the search applet 118S
may continue to perform the 24 online search (if it is not complete) in order to obtain the user-specific information regarding a data service. Thus, the client-controlled information regarding the customized web search client will 26 continue to be updated in eigen-area 1464 as the results of the search come in, which ensures 27 currency of the information being persistently conveyed to, and observed by, user 110. In addition, 28 the second variant of Scenario II allows user 110 to obtain search results on an ad hoc basis, i.e., 29 without any prior enrollment with the search applet 118S.
31 Scenario III (Figs. 7, 8, 15 and 16A-16C) 2 Scenario III is applicable to data services that are private (i.e., providing data that is 3 requested by individual users and is only accessible with the user's permission).
4 Specific non-limiting examples of data services to which Scenario III applies include, without limitation:
7 - a link to a voice mail system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 9 number of messages, number of new messages, content of messages, etc.) of voice mail messages in the user's voice mail box);
11 - a link to a financial institution subscribed to by a given user (where the information regarding a data service is a feature (e.g, current balance, .
13 transaction listing) regarding the user's account;
14 - a link to a home security system subscribed to by a given user (where the information regarding a data service is the current status of various sensors in 16 the user's home);
17 - a link to an electronic mail system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 19 number of messages, number of unread messages, content of messages, etc.) of email messages in the user's electronic mail box);
21 - a link to a vehicle management system subscribed to by a given user (where 22 the information regarding a data service is a feature (e.g., location, diagnostics, 23 etc.) of one or more vehicles in a fleet);
24 - a link to mapping system subscribed to by a given user (where the information regarding a data service is the location of items (e.g., mobile communication 26 devices, courier packages, electronically tagged inventory, etc.) associated 27 with a user account) 28 - a link to telephony presence feature subscribed to by a given user (where the information regarding a data service is an indication of whether a given potential called party is engaged in a telephone conversation);
31 - a link to a text messaging system subscribed to by a given user (where the information regarding a data service is a feature (e.g., message urgency, 33 number of text messages, number of unread text messages, content of text 34 messages, etc.) of text messages in the user's text message mailbox);
- etc.
3 Scenario III assumes the prior establishment of a relationship between user 110 and one of the data 4 sources, say, data source 136. With reference to Fig. 15, let it be assumed for the purposes of the present non-limiting example that the data source is a voice mail system 1502.
For the purposes of 6 the present example, user 110 is associated with a unique network identifier (e.g., a directory 7 number) that is reachable over a telephony network 1510, which may include the public switched 8 telephone network (PSTN) and/or a mobile network and/or a data network (such as the data network 9 130).
11 The voice mail system 1502 is used for storing messages arising from voice calls destined for the 12 directory number that user 110 cannot ¨ or does not wish to ¨ answer.
For instance, when the 13 telephony network 1510 cannot reach user 110 to complete a call placed by a caller to the directory 14 number associated with user 110, the telephony network 1510 redirects the caller to the voice mail system 1502 where the caller leaves a voice mail message for user 110. Voice mail messages for 16 user 110 are stored in a voice mail box 1504 associated with user 110.
18 The voice mail system 1502 also stores ancillary data 1506 associated with the voice mail box 1504.
19 The ancillary data 1506 associated with the voice mail box 1504 may include information regarding the voice mail messages in the voice mail box 1504, such as the number of voice mail messages, the 21 number of new voice mail messages, whether there are any new voice mail messages at all, the date 22 and time of receipt of individual voice mail messages, the duration of individual voice mail 23 messages, the urgency of individual voice mail messages, the source (e.g., originating party 24 telephone number) of individual voice mail messages, a preview (e.g., speech-to-text) of a portion of individual voice mail messages, a contextual analysis of individual voice mail messages, etc.
27 In addition, the voice mail system 1502 comprises a database 1508 that stores authentication 28 credentials for user 110 and other users of the voice mail system 1502.
The authentication 29 credentials can be used to impose or lift access restrictions to the voice mail box 1504. For example, when a querying party (e.g. voice mail applet 116V) provides the correct identifier (e.g., a 31 voice mail box number) and password to the voice mail system 1502, the querying party is given 32 access to the voice mail messages in the voice mail box 1504 as well as the ancillary data 1506 33 associated with the voice mail box 1504. The querying party may access the voice mail box 1504 in 1 a variety of ways, which may include ¨ but is not limited to ¨ dialing a telephone number of the 2 voice mail system 1502 and communicating with the voice mail system 1502 using email and/or 3 instant messaging. Where the querying party is a machine rather than a person, then the querying 4 party may also access the voice mail box 1504 in a variety of ways, which may include ¨ but is not limited to ¨ communicating with the voice mail system 1502 using protocols such as IP and SOAP, 6 for example.
8 It is noted that the querying party may be user 110 but may also be an entity other than user 110. In 9 the example to be presented below, the querying party is applet 116, which is assumed to be a voice mail applet.
12 With reference to Fig. 7, Scenario III begins at step 702 by user 110 enrolling with a voice mail 13 applet 116V to configure the data service for user 110. In particular, user 110 can contact the voice 14 mail applet 116V by employing communication device 120 but may also enroll in a number of different ways, such as by interaction with a web portal, a customer service representative, an 16 interactive voice response system, etc., and/or by the transmission of email messages or other 17 messages, and using a variety of different devices. During enrolment, user 110 provides an identity 18 of user 110, which can be in the form of the client-specific address associated with user 110 (which, 19 in the example being used herein, is "User-110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social security number, etc.
22 In addition, during step 702, user 110 supplies voice mail extraction parameters to the voice mail 23 applet 116V. The voice mail extraction parameters may include the aforesaid authentication 24 credentials (e.g., identifier and password), which can be used to access the voice mail box 1504.
The voice mail extraction parameters may optionally also include a telephone number of the voice 26 mail system 1502 or other information (e.g., IP address) that will allow the voice mail applet 116V
27 to contact the voice mail system 1502 at the next step (step 704). The voice mail extraction 28 parameters may further include an indication of "voice mail data" for user 110, i.e., an indication as 29 to what information user 110 is interested in knowing about the voice mail messages in the voice mail box 1504. Examples of voice mail data for user 110 include the number of voice mail 31 messages, the number of new voice mail messages, whether there are any new voice mail messages 32 at all (which is a binary value), the date and time of receipt of individual voice mail messages, the 33 duration of individual voice mail messages, the urgency of individual voice mail messages, the 1 source (e.g., originating party telephone number) of individual voice mail messages, a preview (e.g., 2 speech-to-text) of a portion of individual voice mail messages, a contextual analysis of individual 3 voice mail messages, etc. To this end, and depending on how user 110 entered into contact with the 4 voice mail applet 116V, the voice mail applet 116V may implement a graphical user interface or interactive voice response (IVR) system which guides user 110 through a customization procedure 6 for providing the aforesaid indication of voice mail data for user 110.
8 At step 704, the voice mail applet 116 contacts the voice mail system 1502 to configure the data 9 service for user 110. In some embodiments, the voice mail applet 116V
knows by default how to contact the voice mail system 1502. In other embodiments, information on how to contact the voice 11 mail system 1502 may have been provided by user 110 as a subset of the voice mail extraction 12 parameters. As part of step 704, a handshake procedure may take place, whereby the voice mail 13 applet 116V and the voice mail system 1502 agree on how the voice mail data for user 110 will be 14 sent from the voice mail system 1502 to the voice mail applet 116V.
16 In some embodiments, the voice mail data for user 110 will be pushed by the voice mail system 17 1502 on an occasional, continuous, synchronous or asynchronous basis, in which case the voice mail 18 applet 116V can provide the voice mail system 1502 with (i) the authentication credentials for user 19 110 in order to prove to the voice mail system 1502 that the voice mail applet 116V can be trusted;
and (ii) an address of applet-hosting device 126 in order to indicate to the voice mail system 1502 21 where to send the voice mail data for user 110. Alternatively, in a trusted environment, the 22 authentication credentials for user 110 can be omitted and instead, the voice mail applet 116V can 23 simply provide the identity of user 110 to the voice mail system 1502, whereas the address of 24 applet-hosting device 126 will be implicit in the communication between the voice mail applet 116V
and the voice mail system 1502. The identity of user 110 can then be used by the voice mail system 26 1502 to uniquely identify the voice mail box 1504.
28 In other embodiments, the voice mail data for user 110 will be pulled by the voice mail applet 116V
29 from the voice mail system 1502 on an occasional, continuous, synchronous or asynchronous basis, in which case the voice mail applet 116V does not need to provide any information to the voice mail 31 system 1502 at step 704. Rather, the voice mail applet 116V will provide the authentication 32 credentials to the voice mail system 1502 on an as-needed basis, in order to access the voice mail 33 data for user 110. In a trusted environment, the voice mail applet 116V
would not even need to 1 provide the authentication credentials to the voice mail system 1502 when accessing the voice mail 2 data for user 110.
4 At step 706, the voice mail applet 116V is registered (either autonomously or with the aid of a person) as a client of the instant messaging service. This is done by contacting the communication 6 server 102 (in this case, www.IMservice.com) and creating a client-specific address associated with 7 the voice mail applet 116V that is unique to user 110. By way of specific non-limiting example, a 8 suitable client-specific address associated with the voice mail applet 116V that is unique to user 110 9 could be AlertIM-VM-User-110@IMservice.com. It will be noted that this address is associated both with the nature of the data service (i.e., voice mail) and with a specific client of the instant 11 messaging service (in this case, user 110). The unique client-specific address created at step 706 12 effectively spawns a new client of the instant messaging service, hereinafter referred to as a 13 "customized voice mail client" of the instant messaging service.
Of course, the preceding unique client-preceding specific address associated with the voice mail 16 applet 116V and user 110 has been used as an example only, and for the sole purpose of enhancing 17 readability; it should thus be appreciated that in actuality, the unique client-specific address 18 associated with the voice mail applet 116V and user 110, but which need not be visible to user 110, 19 could be different, non-standard and/or less meaningful to interpretation by a human being. Also, the unique client-specific address associated with a the voice mail applet 116V and a given user 21 could be created by voice mail applet 116V or the given user.
23 At step 708, in response to creation of the client-specific address associated with the customized 24 voice mail client of the instant messaging service, the messaging application executed by the processor 104 in the communication server 102 allocates a portion of the memory 106 to the 26 customized voice mail client. For example, with reference to Fig. 16A, the messaging application 27 executed by the processor 104 in the communication server 102 allocates a memory area 1660 to the 28 customized voice mail client. It will be observed that the memory area 1660 comprises a contact list 29 1662 for the customized voice mail client. Initially, the contact list 1662 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, 31 the customized voice mail client has no "buddies"). The memory area 1660 further comprises an 32 eigen-area 1664 containing client-controlled information regarding the customized voice mail client, 1 which the communication server 102 will make available to user 110 if that user's contact list 2 ultimately includes the customized voice mail client.
4 The client-controlled information regarding the customized voice mail client (which is stored in eigen-area 1664) represents information that the customized voice mail client wishes to convey to 6 user 110. The client-controlled information stored in eigen-area 1664 may include a presence state 7 and/or a screen name. The presence state could be used to specify an attentiveness of the 8 customized voice mail client to receiving instant messages, while the screen name could be used to 9 specify an identifier that the customized voice mail client wishes to use to identify itself during a conversation. However, in accordance with non-limiting embodiments of the present invention, 11 either or both of the presence state and/or the screen name (and/or possibly other portions of the 12 client-controlled information stored in eigen-area 1664) is used to convey the aforesaid voice mail 13 data for user 110.
Accordingly, and returning to Fig. 7 at step 712, the voice mail applet 116 is configured to obtain 16 the voice mail data for user 110 from the voice mail system 1502.
Moreover, this operation can be 17 performed for other users (e.g., users 112, 114) in order to obtain the respective voice mail data for 18 those users as well. In order for the voice mail applet 116V to obtain the voice mail data for user 19 110 from the voice mail system 1502, the voice mail applet 116V may occasionally, continuously, synchronously or asynchronously pull the voice mail data for user 110 from the voice mail system 21 1502; alternatively, the voice mail system 1502 may be configured to occasionally, continuously, 22 synchronously or asynchronously push the voice mail data for user 110 to the voice mail applet 23 116V.
Assume now that the voice mail data for user 110 is "4 messages, 1 new", which indicates that there 26 are four (4) voice mail messages in the voice mail box 1504, of which one (1) is new. At step 714, 27 the voice mail applet 116V is configured to update eigen-area 1664 for the customized voice mail 28 client with the voice mail data for user 110.
Specifically, and with reference to Fig. 16B, the customized voice mail client can update the client-31 controlled information in eigen-area 1664 by modifying the presence state to reflect the voice mail 32 data for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or 33 alternatively, the customized voice mail client can update the client-controlled information in eigen-1 area 1664 by causing the presence state to reflect data that can be easily expressed using simple 2 icons, such as whether there are any voice mail messages at all and/or whether there are any new 3 voice mail messages. This can also be achieved by causing the presence state to indicate "online"
4 when there is at least one new voice mail message and "offline"
otherwise. Of course, in an alternative embodiment, the customized voice mail client could have updated the client-controlled 6 information in eigen-area 1664 by also (or instead) modifying the screen name and/or possibly other 7 portions of the client-controlled information stored in eigen-area 1664 to reflect the voice mail data 8 for user 110. In summary, the voice mail data is stored in eigen-area 1664 as text data or other data 9 (such as data that encodes one or more graphical icons).
11 Interaction between a given one the communication devices 120, 122, 124 and the communication 12 server 102 under Scenario III is now described.
For the sake of simplicity, let the given 13 communication device be communication device 120 which is associated with user 110, and let it be 14 assumed that user 110 is a client of the instant messaging service. That is to say, user 110 has a client-specific address, say, "User-110@IMservice.com". In addition, a portion of the memory 106 16 is allocated to user 110. For example, with reference to Fig. 16C, the messaging application 17 executed by the processor 104 in the communication server 102 allocates a memory area 1610 to 18 user 110.
It will be observed that memory area 1610 comprises a contact list 1612 for user 110. Initially, the 21 contact list 1612 can be empty, i.e., it does not include the client-specific addresses of any other 22 clients of the instant messaging service (that is, user 110 has no "buddies"). Over time, user 110 23 may add/remove various buddies to/from the contact list 1612 by control of the messaging 24 application executed by the processor 104 in the communication server 102. The memory area 1610 further comprises an eigen-area 1614 containing client-controlled information regarding user 110, 26 which the communication server 102 will make available to other clients of the instant messaging 27 service (such as, potentially, users 112, 114 and the customized voice mail client) if their contact 28 lists ultimately include user 110.
With reference now to the message flow diagram in Fig. 8, user 110 uses communication device 120 31 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 802. This can 32 be achieved by providing identification and authentication credentials such as a username and a 33 password, for example.
2 At step 804, user 110 identifies the customized voice mail client by entering the unique client-3 specific address associated with the customized voice mail client. In the example being presently 4 described, user 110 may enter AlertIM-VM-User-110@lMservice.com. In certain embodiments, user 110 identifies the customized voice mail client using a directory service offered by the 6 communication server 102, while in other embodiments, user 110 may directly type in the unique 7 client-specific address associated with the customized voice mail client.
9 Alternatively, since user 110 has previously enrolled with the voice mail applet 116V, the customized voice mail client may send a request for acceptance to user 110, such that when user 110 11 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the 12 request for acceptance. If user 110 accepts, then the customized voice mail client will be added to 13 the contact list 1612 of user 110.
1 Either way, this results in the unique client-specific address associated with the 2 customized voice mail client being added to the contact list 1612, leaving fields 1666, 3 1676 in the contact list 1612 for storing the client-controlled information regarding 4 the customized voice mail client. In the present example, not to be considered limiting, fields 1666, 1676 are used to store the presence state and screen name, 6 respectively, of the client having the unique client-specific address AlertIM-VM-7 User-110@IMservice.com.
9 As an aside, it should be appreciated that an optional step (710) could have been performed in Fig. 7, whereby the unique client-specific address created at step 704 11 can be revealed to user 110 in order to inform him or her of the unique client-specific 12 address associated with the customized voice mail client. It should be appreciated 13 that step 710 is optional, since the clients of the instant messaging service can gain 14 awareness of the unique client-specific address associated with the customized voice mail client in other ways, such as through other communication devices and other 16 methods of communication, including, without limitation: interaction with a customer 17 service representative, interaction with an automated voice response system, 18 interaction with a web portal, receipt of an email, text message or instant message 19 containing the unique client-specific address, etc. It should further be appreciated that the clients of the instant messaging service may employ a directory service (e.g., 21 operated by the communication server 102) and, as such, not need be explicitly aware 22 of the unique client-specific address associated with the customized voice mail client.
24 Returning now to Figs. 8 and 16C, having determined that the client-controlled information regarding the new buddy (i.e., the customized voice mail client) has been 26 updated in eigen-area 1664, the messaging application executed by the processor 104 27 in the communication server 102 updates the client-controlled information regarding 28 the new buddy on the contact list 1612 for user 110.
Specifically, the client-controlled information regarding the customized voice mail 31 client is obtained from eigen-area 1664 which, as previously described, conveys voice 32 mail data. In one embodiment, the messaging application executed by the processor 33 104 in the communication server 102 copies the presence state and screen name from 34 eigen-area 1664 into fields 1666, 1676 of the contact list 1612. In another 1 embodiment where fields 1666, 1676 contain pointers to, respectively, the presence state and screen 2 name in eigen-area 1664, the client-controlled information regarding the customized voice mail 3 client will be instantly updated without the need for data transfer.
At this point, the client-controlled information regarding the customized voice mail client (which, it 6 is recalled, comprises the voice mail data for user 110) is ready for observation by user 110.
7 Accordingly, at step 812, which can be inherent in step 810 or a separate step altogether, the client-8 controlled information regarding the customized voice mail client can be conveyed to user 110 in a 9 visual format.
11 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 12 regarding the customized voice mail client can be displayed on the aforesaid screen of 13 communication device 120 in the form of text, graphics and/or an icon.
In this example, "voice 14 mail" and "4 messages, 1 new" are, respectively, the screen name and presence state of the client-controlled information regarding the customized voice mail client, which provides a feature of voice 16 mail messages in voice mail box 1504.
18 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 19 persistent conveyance of client-controlled information regarding the customized voice mail client to user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 21 monitor the number of new or total messages in the voice mail box 1504 and/or their content and/or 22 their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 110 is 23 not compelled to remember this information since user 110 can refresh his or her knowledge merely 24 by glancing at the contact list 1612.
26 Meanwhile, it will be recalled from step 712 in Fig. 7, the voice mail applet 116V continues to 27 obtain the voice mail data for user 110 from the voice mail system 1502.
Thus, the client-controlled 28 information regarding the customized voice mail client will continue to be updated in eigen-area 29 1664 as the voice mail applet 116V continues to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
2 Moreover, it should be appreciated that the client-controlled information regarding a 3 given customized client can include passive data, which can be intended merely for 4 observation by user 110, as well as active data, which can allow user 110 to perform an action on the active data, triggering an interaction with the given customized client 6 and allowing user 110 to retrieve further information related to the active data. For 7 example, where the client-controlled information regarding the given customized 8 client is voice mail data for user 110, the "further information" can be the actual 9 contents of one or more voice mail messages.
11 The aforesaid interaction between user 110 and the given customized client may be 12 triggered by user 110 sending an electronic message (e.g., an instant message) to the 13 given customized client, which can serve as a request for the further information.
14 Alternatively, the given customized client can send an electronic message (e.g., an instant message) to user 110 containing an actionable URL, which can lead user 16 to a web portal where user 110 may interact further with the applet that supports the 17 given customized client.
19 The aforesaid further information (e.g., the actual contents of one or more voice mail messages) can be conveyed in various non-limiting ways, such as by triggering a 21 callback to a telephony device registered to user 110, or sending a media file for 22 playback over communication device 120. According to yet other non-limiting 23 alternatives, the aforesaid further information (e.g., the actual contents of one or more 24 voice mail messages) can be conveyed in various other ways, such as by conversion from speech into text that is sent in the form of one or more messages (e.g., instant 26 messages, email messages, etc.) to communication device 120 or to another 27 communication device employed by user 110.
29 Also, it should be appreciated that the client-controlled information regarding a given customized client can be dynamically updated based on the aforesaid interaction 31 between user 110 and the given customized client. For example, the given 32 customized client can track which client-controlled information regarding the given 33 customized client has been observed by user 110. This can be achieved by tracking 34 which further information has been retrieved by user 110 pursuant to an interaction 1 with the given customized client. Alternatively, this can be achieved by monitoring cookies within 2 communication device 120, or in a variety of other ways. With the knowledge of what information 3 user 110 has actually observed, the given customized client can accordingly update the client-4 controlled information regarding the given customized client.
6 For example, where the user-specific client-controlled information regarding the customized voice 7 mail client is an indication that there are three new voice mail messages #1, #2 and #3, and where 8 user 110 has retrieved further information (e.g., has just listened to) voice mail message #2, the 9 customized voice mail client can gain knowledge of this fact in one of the aforesaid ways. The result is that the client-controlled information regarding the customized voice mail client vvill now 11 be an indication that there are only two new voice mail messages (i.e., #1 and #3). An indication of 12 voice mail message #2 can be displayed differently, or can simply be classified as a voice mail 13 message that is "old", thereby assisting user 110 in navigating through the voice mail box 1504.
Persons skilled in the art will appreciate that it may be beneficial to ensure that a given user who 16 wishes to benefit from a particular private data service falling under Scenario III be authorized to do 17 so. For example, it is within the scope of the present invention to require that the given user pay for 18 the data service on a per-use basis, on a per-customized client basis or in accordance with any 19 suitable subscription scheme. It is also within the scope of the present invention to require that the given user enroll with the applet-hosting device that hosts the applet that provides the particular data 21 service. Thus, an authorization step may be included at some point during Scenario III. Reference 22 is made to the above description of Figs. 4A through 4F, which also apply to Scenario III, with the 23 exception that the enrollment steps in Figs. 4A and 48 can be considered redundant, since user 110 24 is assumed to have enrolled with the voice mail applet 116V.
26 Variant of Scenario III (Figs. 18A, 18B and 19) 28 A variant of Scenario III is now described, wherein a generic client-specific address is used to 29 identify a voice mail data service for user 110. Accordingly, reference is made to Fig. 18A, where user 110 logs in to the instant messaging service at step 1802. This can be achieved by providing 31 identification and authentication credentials such as a usemame and a password, for example. At 32 step 1804, user 110 enters a generic client-specific address associated with the voice mail data 33 service (hereinafter referred to as a "generic voice mail address"), such as "Alert1M-1 VM@1Mservice.com". In some embodiments, user 110 obtains knowledge of the generic voice 2 mail address through media advertising, interaction with a customer service representative, 3 interaction with an automated voice response system, interaction with a web portal, receipt of an 4 email, text message or instant message containing the generic voice mail address, etc. In other embodiments, user 110 obtains the generic voice mail address by invoking a directory service 6 offered by the communication server 102.
8 Alternatively, since user 110 has previously enrolled with the voice mail applet 116V, the 9 customized voice mail client may send a request for acceptance to user 110, such that when user 110 logs in as a client of the instant messaging service, user 110 is prompted to accept or decline the 11 request for acceptance. Referring now to Fig. 19, if user 110 accepts, then the customized voice 12 mail client will be added to a contact list 1912 of user 110.
14 Either way, his results in the generic voice mail address being added to the contact list 1912, and leaving at least one corresponding field to be filled with the client-controlled information regarding 16 the customized client in question. In the present example, not to be considered limiting, fields 1966, 17 1976 are used to store the presence state and screen name, respectively, of the customized client 18 having the generic client-specific address AlertIM-VM@IMservice.com.
At step 1808, the messaging application executed by the processor 104 in the communication server 21 102 determines that the contact list 1912 includes a new buddy, which has been identified by the 22 generic voice mail address. In response, the messaging application executed by the processor 104 in 23 the communication server 102 creates a client-specific address associated with the voice mail applet 24 116V and unique to user 110. By way of specific non-limiting example, a suitable client-specific address associated with the voice mail applet 116V and unique to user 110 could be AlertIM-VM-26 User-110@lMservice.com. Thus, the unique client-specific address created at step 1808 effectively 27 spawns a new client of the instant messaging service, which amounts to the aforementioned 28 "customized voice mail client" of the instant messaging service.
Of course, the preceding unique client-preceding specific address associated with the voice mail 31 applet 116V and user 110 has been used as an example only, and for the sole purpose of enhancing 32 readability; it should thus be appreciated that in actuality, the unique client-specific address 33 associated with the voice mail applet 116V and user 110, but which need not be visible to user 110, 1 could be different, non-standard and/or less meaningful to interpretation by a human being. Also, 2 the unique client-specific address associated with the voice mail applet 116V and a given user could 3 be created by voice mail applet 116V or the given user.
At step 1810, in response to creation of the unique client-specific address associated with the 6 customized voice mail client of the instant messaging service, the messaging application executed 7 by the processor 104 in the communication server 102 allocates a portion of the memory 106 to the 8 customized voice mail client. For example, with reference again to Fig.
19, the messaging 9 application executed by the processor 104 in the communication server 102 allocates a memory area 1960 to the customized voice mail client. It will be observed that the memory area 1960 comprises 11 a contact list 1962 for the customized voice mail client. Initially, the contact list 1962 can be empty, 12 i.e., it does not include the client-specific addresses of any other clients of the instant messaging 13 service (that is, the customized voice mail client has no "buddies").
The memory area 1960 further 14 comprises an eigen-area 1964 containing client-controlled information regarding the customized voice mail client.
17 The client-controlled information regarding the customized voice mail client (which is stored in 18 eigen-area 1964) represents information that the customized voice mail client wishes to convey to 19 user 110. The client-controlled information stored in eigen-area 1964 may include a presence state and/or a screen name. The presence state could be used to specify an attentiveness of the 21 customized voice mail client to receiving instant messages, while the screen name could be used to 22 specify an identifier that the customized voice mail client wishes to use to identify itself during a 23 conversation. However, in accordance with non-limiting embodiments of the present invention, 24 either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information stored in eigen-area 1964) is used to convey the aforesaid voice mail 26 data for user 110.
28 Accordingly, and referring now to Fig. 18B, at step 1812, the messaging application executed by the 29 processor 104 in the communication server 102 contacts the voice mail applet 116V and supplies the voice mail applet 116V with the identity of user 110, which was received at step 1802. At step 31 1814, the voice mail applet 116V in turn contacts the voice mail system 1502 to configure the data 32 service for.user 110. It is within the scope of the present invention for the voice mail applet 116V to 33 know by default how to contact the voice mail system 1502. As part of step 1814, a handshake 1 procedure may take place, whereby the voice mail applet 116V and the voice mail system 1502 2 agree on how voice mail data for user 110 will be sent from the voice mail system 1502 to the 3 customized voice mail client. This has previously been described with reference to step 704.
At step 1816, the voice mail applet 116V is configured to obtain the voice mail data for user 110 6 from the voice mail system 1502. In order for the voice mail applet 116V
to obtain the voice mail 7 data for user 110 from the voice mail system 1502, the customized voice mail client may 8 occasionally, continuously, synchronously or asynchronously pull the voice mail data for user 110 9 from the voice mail system 1502; alternatively, the voice mail system 1502 may be configured to occasionally, continuously, synchronously or asynchronously push the voice mail data for user 110 11 to the voice mail applet 1I6V.
13 Assume now that the voice mail data for user 110 is "4 messages, 1 new", which indicates that there 14 are four (4) voice mail messages in the voice mail box 1504, of which one (1) is new. At step 1818, the voice mail applet 116V is configured to update eigen-area 1964 for the customized voice mail 16 client with the voice mail data for user 110.
18 Specifically, and with reference again to Fig. 19, the customized voice mail client updates the client-19 controlled information in eigen-area 1964 by modifying the 1 presence state to reflect the voice mail data for user 110 (which, in the present 2 example, is "4 messages, 1 new"). In addition, or alternatively, the customized voice 3 mail client can update the client-controlled information in eigen-area 1964 by causing 4 the presence state to reflect data that can be easily expressed using simple icons, such as whether there are any voice mail messages at all and/or whether there are any new 6 voice mail messages. This can also be achieved by causing the presence state to 7 indicate "online" when there is at least one new voice mail message and "offline"
8 otherwise. Of course, in an alternative embodiment, the customized voice mail client 9 could have updated the client-controlled information in eigen-area 1964 by also (or instead) modifying the screen name and/or possibly other portions of the client-11 controlled information stored in eigen-area 1964 to reflect the voice mail data for user 12 110. In summary, the voice mail data is stored in eigen-area 1964 as text data or other 13 data (such as data that encodes one or more graphical icons).
At step 1820, having determined that the client-controlled information regarding the 16 new buddy (i.e., the customized voice mail client) has been updated in eigen-area 17 1964, the messaging application executed by the processor 104 in the communication 18 server 102 updates the client-controlled information regarding the new buddy on the 19 contact list 1912 for user 110.
21 Specifically, the client-controlled information regarding the customized voice mail 22 client is obtained from eigen-area 1964 which, as previously described, conveys voice 23 mail data. In one embodiment, the messaging application executed by the processor 24 104 in the communication server 102 copies the presence state and screen name from eigen-area 1964 into fields 1966, 1976 of the contact list 1612. In another 26 embodiment where fields 1966, 1976 contain pointers to, respectively, the presence 27 state and screen name in eigen-area 1964, the client-controlled information regarding 28 the customized voice mail client will be instantly updated without the need for data 29 transfer.
31 At this point, the client-controlled information regarding the customized voice mail 32 client (which, it is recalled, comprises the voice mail data) is ready for observation by 33 user 110. Accordingly, at step 1820, which can be inherent in step 1818 or a separate 1 step altogether, the client-controlled information regarding the customized voice mail client can 2 be conveyed to user 110 in a visual format.
4 Persons skilled in the art will therefore appreciate that the above described embodiments allow the persistent conveyance of client-controlled information regarding the customized voice mail 6 client to user 110, in a non-intrusive manner and without interrupting user 110. Specifically, user 7 110 can monitor the number of total or new messages in the voice mail box 1504 and/or their 8 content and/or their status on an ongoing basis ¨ and at times of his or her own choosing.
9 Moreover, user 110 is not compelled to remember this information since user 110 can refresh his or her knowledge merely by glancing at the contact list 1912.
12 Meanwhile, it will be recalled from step 1816, the voice mail applet 116V continues to obtain the 13 voice mail data for user 110 from the voice mail system 1502. Thus, the client-controlled 14 information regarding the customized voice mail client will continue to be updated in eigen-area 1964 as the voice mail applet 116V continues to execute, which ensures currency of the 16 information being persistently conveyed to, and observed by, user 110.
In addition, the above 17 variant of Scenario III allows user 110 to obtain voice mail data on an ad hoc basis, i.e., without 18 any prior enrollment with the voice mail applet 116V.
Thus, it will be appreciated that the present invention is applicable to instances where a given 21 user wishes to keep track of a certain amount of information regarding a data service on an 22 ongoing basis (even when the information regarding a data service does not change), and without 23 being interrupted when the information regarding a data service does change.
Moreover, it should be appreciated that the information regarding a data service can include 26 passive data, which is akin to a status update, and active data, which allows the given user to take 27 further action. For example, the information regarding a data service in any of the above 28 scenarios may comprise a uniform resource locator (URL) that can be actionable by user 110 and, 29 when actioned, leads user 110 to a portal where user 110 can interact with an underlying system, be it a search engine, voice mail system, etc.
32 With reference to Fig. 21, let it be assumed for the purposes of the present non-limiting example 33 that the data source is an electronic mail system 2102. For the purposes of the present example, 1 user 110 is associated with a unique network identifier (e.g., an email address) that is reachable 2 over a data network, which may include the data network 130. The electronic mail system 2102 3 comprises an electronic mailbox 2104 used for storing email messages sent to the aforesaid 4 unique network identifier. Specifically, the electronic mailbox 2104 can store data associated with the electronic mail messages, such as the number of electronic mail messages, the number of 6 unread electronic mail messages, whether there are any electronic mail messages at all, the date 7 and time of receipt of individual electronic mail messages, the duration of individual electronic 8 mail messages, the urgency of individual electronic mail messages, the source (e.g., originating 9 address) of individual electronic mail messages, a preview pane of a portion of individual electronic mail messages, whether the originating address of an individual electronic mail 11 message is present in an email contact list for user 110, etc. Various software interfaces can be 12 used to allow user 110 to manage (e.g., read, sort, delete, forward, etc.) the email messages in the 13 electronic mailbox 2104.
In addition, the electronic mail system 2102 comprises a database 2108 that stores authentication 16 credentials for user 110 and other users of the electronic mail system 2102. The authentication 17 credentials can be used to impose or lift access restrictions to the electronic mailbox 2104. For 18 example, when a querying party (e.g. email applet 116E) provides the correct identifier (e.g., a 19 electronic mailbox number) and password to the electronic mail system 2102, the querying party is given access to the electronic mail messages in the electronic mailbox 2104 as well as the data 21 associated therewith. The querying party may access the electronic mailbox 2104 in a variety of 22 ways, which may involve the use of various server-to-server protocols and/or communication 23 with the electronic mail system 2102 using email and/or instant messaging. Where the querying 24 party is a machine rather than a person, then the querying party may also access the electronic mailbox 2104 in a variety of ways, which may include ¨ but is not limited to ¨
communicating 26 with the electronic mail system 2102 using protocols such as IP and SOAP, for example.
28 It is noted that the querying party may be user 110 but may also be an entity other than user 110.
29 In the example to be presented below, the querying party is applet 116, which is assumed to be an electronic mail applet (email applet 116E).
32 With reference to Fig. 25, Scenario III begins at step 2502 by user 110 enrolling with the 33 electronic mail applet 116E to configure the data service for user 110.
In particular, user 110 can 1 contact the electronic mail applet 116E by employing communication device 120 but may also 2 enroll in a number of different ways, such as by interaction with a web portal, a customer service 3 representative, an interactive voice response system, etc., and/or by the transmission of email 4 messages or other messages, and using a variety of different devices.
During enrolment, user 110 provides an identity of user 110, which can be in the form of the client-specific address 6 associated with user 110 (which, in the example being used herein, is "User-7 110@IMservice.com"), a name, a telephone number, an IP address, an alias, a social security 8 number, etc.
In addition, during step 2502, user 110 supplies electronic mail extraction parameters to the 11 electronic mail applet 116E. The electronic mail extraction parameters may include the aforesaid 12 authentication credentials (e.g., identifier and password), which can be used to access the 13 electronic mailbox 2104. The electronic mail extraction parameters may optionally also include a 14 telephone number of the electronic mail system 2102 or other information (e.g., IP address) that will allow the electronic mail applet 116E to contact the electronic mail system 2102 at the next 16 step (step 2504). The electronic mail extraction parameters may further include an indication of 17 "email data" for user 110, i.e., an indication as to what information user 110 is interested in 18 knowing about the electronic mail messages in the electronic mailbox 2104. Examples of email 19 data for user 110 include the number of electronic mail messages, the number of new electronic mail messages, whether there are any new electronic mail messages at all (which is a binary 21 value), the date and time of receipt of individual electronic mail messages, the duration of 22 individual electronic mail messages, the urgency of individual electronic mail messages, the 23 source (e.g., originating party telephone number) of individual electronic mail messages, a 24 preview (e.g., speech-to-text) of a portion of individual electronic mail messages, a contextual analysis of individual electronic mail messages, etc. To this end, and depending on how user 110 26 entered into contact with the electronic mail applet 116E, the electronic mail applet 116E may 27 implement a graphical user interface or interactive voice response (IVR) system which guides 28 user 110 through a customization procedure for providing the aforesaid indication of email data 29 for user 110.
31 At step 2504, the electronic mail applet 116E contacts the electronic mail system 2102 to 32 configure the data service for user 110. In some embodiments, the electronic mail applet 116E
33 knows by default how to contact the electronic mail system 2102. In other embodiments, 1 information on how to contact the electronic mail system 2102 may have been provided by user 2 110 as a subset of the electronic mail extraction parameters. As part of step 2504, a handshake 3 procedure may take place, whereby the electronic mail applet 116E and the electronic mail 4 system 2102 agree on how the email data for user 110 will be sent from the electronic mail system 2102 to the electronic mail applet 116E.
7 In some embodiments, the email data for user 110 will be pushed by the electronic mail system 8 2102 on an occasional, continuous, synchronous or asynchronous basis, in which case the 9 electronic mail applet 116E can provide the electronic mail system 2102 with (i) the authentication credentials for user 110 in order to prove to the electronic mail system 2102 that 11 the electronic mail applet 116E can be trusted; and (ii) an address of applet-hosting device 126 in 12 order to indicate to the electronic mail system 2102 where to send the email data for user 110.
13 Alternatively, in a trusted environment, the authentication credentials for user 110 can be omitted 14 and instead, the electronic mail applet 116E can simply provide the identity of user 110 to the electronic mail system 2102, whereas the address of applet-hosting device 126 will be implicit in 16 the communication between the electronic mail applet 116E and the electronic mail system 2102.
17 The identity of user 110 can then be used by the electronic mail system 2102 to uniquely identify 18 the electronic mailbox 2104.
In other embodiments, the email data for user 110 will be pulled by the electronic mail applet 21 116E from the electronic mail system 2102 on an occasional, continuous, synchronous or 22 asynchronous basis, in which case the electronic mail applet 116E does not need to provide any 23 information to the electronic mail system 2102 at step 2504. Rather, the electronic mail applet 24 116E will provide the authentication credentials to the electronic mail system 2102 on an as-needed basis, in order to access the email data for user 110. In a trusted environment, the 26 electronic mail applet 116E would not even need to provide the authentication credentials to the 27 electronic mail system 2102 when accessing the email data for user 110.
29 At step 2506, the electronic mail applet 116E is registered (either autonomously or with the aid of a person) as a client of the instant messaging service. This is done by contacting the 31 communication server 102 (in this case, www.IMservice.com) and creating a client-specific 32 address associated with the electronic mail applet 116E that is unique to user 110. By way of 33 specific non-limiting example, a suitable client-specific address associated with the electronic 1 mail applet 116E that is unique to user 110 could be AlertIM-EMAIL-User-110@IMservice.com.
2 It will be noted that this address is associated both with the nature of the data service (i.e., 3 electronic mail, or "email") and with a specific client of the instant messaging service (in this 4 case, user 110). The unique client-specific address created at step 2506 effectively spawns a new client of the instant messaging service, hereinafter referred to as a "customized email client" of 6 the instant messaging service.
8 Of course, the preceding unique client-preceding specific address associated with the electronic 9 mail applet 116E and user 110 has been used as an example only, and for the sole purpose of enhancing readability; it should thus be appreciated that in actuality, the unique client-specific 11 address associated with the electronic mail applet 116E and user 110, but which need not be 12 visible to user 110, could be different, non-standard and/or less meaningful to interpretation by a 13 human being. Also, the unique client-specific address associated with a the electronic mail applet 14 116E and a given user could be created by electronic mail applet 116E or the given user.
16 At step 2508, in response to creation of the client-specific address associated with the customized 17 email client of the instant messaging service, the messaging application executed by the 18 processor 104 in the communication server 102 allocates a portion of the memory 106 to the 19 customized email client. For example, with reference to Fig. 22A, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 2260 to 21 the customized email client. It will be observed that the memory area 2260 comprises a contact 22 list 2262 for the customized email client. Initially, the contact list 2262 can be empty, i.e., it does 23 not include the client-specific addresses of any other clients of the instant messaging service (that 24 is, the customized email client has no "buddies"). The memory area 2260 further comprises an eigen-area 2264 containing client-controlled information regarding the customized email client, 26 which the communication server 102 will make available to user 110 if that user's contact list 27 ultimately includes the customized email client.
29 The client-controlled information regarding the customized email client (which is stored in eigen-area 2264) represents information that the customized email client wishes to convey to user 110.
31 The client-controlled information stored in eigen-area 2264 may include a presence state and/or a 32 screen name. The presence state could be used to specify an attentiveness of the customized 33 email client to receiving instant messages, while the screen name could be used to specify an 1 identifier that the customized email client wishes to use to identify itself during a conversation.
2 However, in accordance with non-limiting embodiments of the present invention, either or both 3 of the presence state and/or the screen name (and/or possibly other portions of the client-4 controlled information stored in eigen-area 2264) is used to convey the aforesaid email data for user 110.
7 Accordingly, and returning to Fig. 25 at step 2512, the electronic mail applet 116E is configured 8 to obtain the email data for user 110 from the electronic mail system 2102. Moreover, this 9 operation can be performed for other users (e.g., users 112, 114) in order to obtain the respective email data for those users as well. In order for the electronic mail applet 116E to obtain the email 11 data for user 110 from the electronic mail system 2102, the electronic mail applet 116E may 12 occasionally, continuously, synchronously or asynchronously pull the email data for user 110 13 from the electronic mail system 2102; alternatively, the electronic mail system 2102 may be 14 configured to occasionally, continuously, synchronously or asynchronously push the email data for user 110 to the electronic mail applet 116E.
17 Assume now that the email data for user 110 is "4 messages, 1 new", which indicates that there 18 are four (4) electronic mail messages in the electronic mailbox 2104, of which one (1) is new. At 19 step 2514, the electronic mail applet 116E is configured to update eigen-area 2264 for the customized email client with the email data for user 110.
2 Specifically, and with reference to Fig. 22B, the customized email client can update 3 the client-controlled information in eigen-area 2264 by modifying the presence state 4 to reflect the email data for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or alternatively, the customized email client can update the client-6 controlled information in eigen-area 2264 by causing the presence state to reflect data 7 that can be easily expressed using simple icons, such as whether there are any 8 electronic mail messages at all and/or whether there are any new electronic mail 9 messages. This can also be achieved by causing the presence state to indicate "online" when there is at least one new electronic mail message and "offline"
11 otherwise. Of course, in an alternative embodiment, the customized email client 12 could have updated the client-controlled information in eigen-area 2264 by also (or 13 instead) modifying the screen name and/or possibly other portions of the client-14 controlled information stored in eigen-area 2264 to reflect the email data for user 110.
In summary, the email data is stored in eigen-area 2264 as text data or other data 16 (such as data that encodes one or more graphical icons).
18 Interaction between a given one the communication devices 120, 122, 124 and the 19 communication server 102 under Scenario III is now described. For the sake of simplicity, let the given communication device be communication device 120 which 21 is associated with user 110, and let it be assumed that user 110 is a client of the instant 22 messaging service. That is to say, user 110 has a client-specific address, say, "User-23 110@IMservice.com". In addition, a portion of the memory 106 is allocated to user 24 110. For example, with reference to Fig. 22C, the messaging application executed by the processor 104 in the communication server 102 allocates a memory area 2210 to 26 user 110.
28 It will be observed that memory area 2210 comprises a contact list 2212 for user 110.
29 Initially, the contact list 2212 can be empty, i.e., it does not include the client-specific addresses of any other clients of the instant messaging service (that is, user 110 has no 31 "buddies"). Over time, user 110 may add/remove various buddies to/from the contact 32 list 2212 by control of the messaging application executed by the processor 104 in the 33 communication server 102. The memory area 2210 further comprises an eigen-area 34 2214 containing client-controlled information regarding user 110, which the 1 communication server 102 will make available to other clients of the instant messaging service 2 (such as, potentially, users 112, 114 and the customized email client) if their contact lists ultimately 3 include user 110.
With reference now to the message flow diagram in Fig. 26, user 110 uses communication device 6 120 to log in to (i.e., thereby instantiating a client of) the instant messaging service at step 2602.
7 This can be achieved by providing identification and authentication credentials such as a username 8 and a password, for example.
At step 2604, user 110 identifies the customized email client by entering the unique client-specific 11 address associated with the customized email client. In the example being presently described, user 12 110 may enter AlertIM-EMAIL-User-110@IMservice.com. In certain embodiments, user 110 13 identifies the customized email client using a directory service offered by the communication server 14 102, while in other embodiments, user 110 may directly type in the unique client-specific address associated with the customized email client.
17 Alternatively, since user 110 has previously enrolled with the electronic mail applet 116E, the 18 customized email client may send a request for acceptance to user 110, such that when user 110 logs 19 in as a client of the instant messaging service, user 110 is prompted to accept or decline the request for acceptance. If user 110 accepts, then the customized email client will be added to the contact list 21 2212 of user 110.
23 Either way, this results in the unique client-specific address associated with the customized email 24 client being added to the contact list 2212, leaving fields 2266, 2276 in the contact list 2212 for storing the client-controlled information regarding the customized email client. In the present 26 example, not to be considered limiting, fields 2266, 2276 are used to store the presence state and 27 screen name, respectively, of the client having the unique client-specific address AlertIM-EMAIL-28 User-110@lMservice.com.
As an aside, it should be appreciated that an optional step (2510) could have been performed in Fig.
31 25, whereby the unique client-specific address created at step 2504 1 can be revealed to user 110 in order to inform him or her of the unique client-specific 2 address associated with the customized email client. It should be appreciated that step 3 2510 is optional, since the clients of the instant messaging service can gain awareness 4 of the unique client-specific address associated with the customized email client in other ways, such as through other communication devices and other methods of 6 communication, including, without limitation: interaction with a customer service 7 representative, interaction with an automated voice response system, interaction with 8 a web portal, receipt of an email, text message or instant message containing the 9 unique client-specific address, etc. It should further be appreciated that the clients of the instant messaging service may employ a directory service (e.g., operated by the 11 communication server 102) and, as such, not need be explicitly aware of the unique 12 client-specific address associated with the customized email client.
14 Returning now to Figs. 26 and 22C, having determined that the client-controlled information regarding the new buddy (i.e., the customized email client) has been 16 updated in eigen-area 2264, the messaging application executed by the processor 104 17 in the communication server 102 updates the client-controlled information regarding 18 the new buddy on the contact list 2212 for user 110.
Specifically, the client-controlled information regarding the customized email client is 21 obtained from eigen-area 2264 which, as previously described, conveys email data. In 22 one embodiment, the messaging application executed by the processor 104 in the 23 communication server 102 copies the presence state and screen name from eigen-area 24 2264 into fields 2266, 2276 of the contact list 2212. In another embodiment where fields 2266, 2276 contain pointers to, respectively, the presence state and screen name 26 in eigen-area 2264, the client-controlled information regarding the customized email 27 client will be instantly updated without the need for data transfer.
29 At this point, the client-controlled information regarding the customized email client (which, it is recalled, comprises the email data for user 110) is ready for observation 31 by user 110. Accordingly, at step 2612, which can be inherent in step 2610 or a 32 separate step altogether, the client-controlled information regarding the customized 33 email client can be conveyed to user 110 in a visual format.
1 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled information 2 regarding the customized email client can be displayed on the aforesaid screen of communication 3 device 120 in the form of text, graphics and/or an icon. ln this example, "email" and "14 messages, 4 8 unread, 1 from contacts" are, respectively, the screen name and presence state of the client-controlled information regarding the customized email client, which provides a feature of electronic 6 mail messages in electronic mailbox 2104.
8 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 9 persistent conveyance of client-controlled information regarding the customized email client to user 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 11 monitor the number of new or total messages in the electronic mailbox 2104 and/or their content 12 and/or their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 13 110 is not compelled to remember this information since user 110 can refresh his or her knowledge 14 merely by glancing at the contact list 2212.
16 Meanwhile, it will be recalled from step 2512 in Fig. 25, the electronic mail applet 116E continues 17 to obtain the email data for user 110 from the electronic mail system 2102. Thus, the client-18 controlled information regarding the customized email client will continue to be updated in eigen-19 area 2264 as the electronic mail applet 116E continues to execute, which ensures currency of the information being persistently conveyed to, and observed by, user 110.
22 Moreover, it should be appreciated that the client-controlled information regarding a given 23 customized client can include passive data, which can be intended merely for observation by user 24 110, as well as active data, which can allow user 110 to perform an action on the active data, triggering an interaction with the given customized client and allowing user 110 to retrieve further 26 information related to the active data. For example, where the client-controlled information 27 regarding the given customized client is email data for user 110, the "further information" can be the 28 actual contents of one or more email messages.
1 The aforesaid interaction between user 110 and the given customized client may be 2 triggered by user 110 sending an electronic message (e.g., an instant message) to the 3 given customized client, which can serve as a request for the further information.
4 Alternatively, the given customized client can send an electronic message (e.g., an instant message) to user 110 containing an actionable URL, which can lead user 6 to a web portal where user 110 may interact further with the applet that supports the 7 given customized client.
9 Also, it should be appreciated that the client-controlled information regarding a given customized client can be dynamically updated based on the aforesaid interaction 11 between user 110 and the given customized client. For example, the given 12 customized client can track which client-controlled information regarding the given 13 customized client has been observed by user 110. This can be achieved by tracking 14 which further information has been retrieved by user 110 pursuant to an interaction with the given customized client. Alternatively, this can be achieved by monitoring 16 cookies within communication device 120, or in a variety of other ways.
With the 17 knowledge of what information user 110 has actually observed, the given customized 18 client can accordingly update the client-controlled information regarding the given 19 customized client.
21 For example, where the user-specific client-controlled information regarding the 22 customized electronic mail client is an indication that there are three unread email 23 messages #1, #2 and #3, and where user 110 has retrieved further information (e.g., 24 has just read to) email message #1, the customized electronic mail client can gain knowledge of this fact in one of the aforesaid ways. The result is that the client-26 controlled information regarding the customized electronic mail client will now be an 27 indication that there are only two unread email messages (i.e., #2 and #3). An 28 indication of email message #1 can be displayed differently, or can simply be 29 classified as an email message that is "read", thereby assisting user 110 in navigating through the electronic mailbox 2104.
32 Persons skilled in the art will appreciate that it may be beneficial to ensure that a 33 given user who wishes to benefit from a particular private data service falling under 34 Scenario III be authorized to do so. For example, it is within the scope of the present 1 invention to require that the given user pay for the data service on a per-use basis, on a per-2 customized client basis or in accordance with any suitable subscription scheme. It is also within the 3 scope of the present invention to require that the given user enroll with the applet-hosting device 4 that hosts the applet that provides the particular data service. Thus, an authorization step may be included at some point during Scenario III. Reference is made to the above description of Figs. 4A
6 through 4F, which also apply to Scenario III, with the exception that the enrollment steps in Figs.
7 4A and 4B can be considered redundant, since user 110 is assumed to have enrolled with the 8 electronic mail applet 116E.
Variant of Scenario III (Figs. 23A, 23B and 24) 12 A variant of Scenario III is now described, wherein a generic client-specific address is used to 13 identify an email data service for user 110. Accordingly, reference is made to Fig. 23A, where user 14 110 logs in to the instant messaging service at step 2302. This can be achieved by providing identification and authentication credentials such as a username and a password, for example. At 16 step 2304, user 110 enters a generic client-specific address associated with the email data service 17 (hereinafter referred to as a "generic email address"), such as "AlertIM-EMAIL@IMservice.com".
18 In some embodiments, user 110 obtains knowledge of the generic email address through media 19 advertising, interaction with a customer service representative, interaction with an automated voice response system, interaction with a web portal, receipt of an email, text message or instant message 21 containing the generic email address, etc. In other embodiments, user 110 obtains the generic email 22 address by invoking a directory service offered by the communication server 102.
24 Alternatively, since user 110 has previously enrolled with the electronic mail applet 116E, the customized email client may send a request for acceptance to user 110, such that when user 110 logs 26 in as a client of the instant messaging service, user 110 is prompted to accept or decline the request 27 for acceptance. Referring now to Fig. 24, if user 110 accepts, then the customized email client will 28 be added to a contact list 2412 of user 110.
Either way, his results in the generic email address being added to the contact list 2412, and leaving 31 at least one corresponding field to be filled with the client-controlled information regarding the 32 customized client in question. In the present example, not to be considered limiting, fields 2466, 1 2476 are used to store the presence state and screen name, respectively, of the customized client 2 having the generic client-specific address AlertIM-EMAIL@IMservice.com.
4 At step 2308, the messaging application executed by the processor 104 in the communication server 102 determines that the contact list 2412 includes a new buddy, which has been identified by the 6 generic email address. In response, the messaging application executed by the processor 104 in the 7 communication server 102 creates a client-specific address associated with the electronic mail applet 8 116E and unique to user 110. By way of specific non-limiting example, a suitable client-specific 9 address associated with the electronic mail applet 116E and unique to user 110 could be AlertIM-EMAIL-User-110@lMservice.com. Thus, the unique client-specific address created at step 2308 11 effectively spawns a new client of the instant messaging service, which amounts to the 12 aforementioned "customized email client" of the instant messaging service.
14 Of course, the preceding unique client-preceding specific address associated with the electronic mail applet 116E and user 110 has been used as an example only, and for the sole purpose of enhancing 16 readability; it should thus be appreciated that in actuality, the unique client-specific address 17 associated with the electronic mail applet 116E and user 110, but which need not be visible to user 18 110, could be different, non-standard and/or less meaningful to interpretation by a human being.
19 Also, the unique client-specific address associated with a the electronic mail applet 116E and a given user could be created by electronic mail applet 116E or the given user.
22 At step 2310, in response to creation of the unique client-specific address associated with the 23 customized email client of the instant messaging service, the messaging application executed by the 24 processor 104 in the communication server 102 allocates a portion of the memory 106 to the customized email client. For example, with reference again to Fig. 24, the messaging application 26 executed by the processor 104 in the communication server 102 allocates a memory area 2460 to the 27 customized email client. It will be observed that the memory area 2460 comprises a contact list 28 2462 for the customized email client. Initially, the contact list 2462 can be empty, i.e., it does not 29 include the client-specific addresses of any other clients of the instant messaging service (that is, the customized email client has no "buddies"). The memory area 2460 further comprises an eigen-area 31 2464 containing client-controlled information regarding the customized email client.
1 The client-controlled information regarding the customized email client (which is stored in eigen-2 area 2464) represents information that the customized email client wishes to convey to user 110.
3 The client-controlled information stored in eigen-area 2464 may include a presence state and/or a 4 screen name. The presence state could be used to specify an attentiveness of the customized email client to receiving instant messages, while the screen name could be used to specify an identifier that 6 the customized email client wishes to use to identify itself during a conversation. However, in 7 accordance with non-limiting embodiments of the present invention, either or both of the presence 8 state and/or the screen name (and/or possibly other portions of the client-controlled information 9 stored in eigen-area 2464) is used to convey the aforesaid email data for user 110.
11 Accordingly, and referring now to Fig. 23B, at step 2312, the messaging application executed by the 12 processor 104 in the communication server 102 contacts the electronic mail applet 116E and 13 supplies the electronic mail applet 116E with the identity of user 110, which was received at step 14 2302. At step 2314, the electronic mail applet 116E in turn contacts the electronic mail system 2102 to configure the data service for user 110. It is within the scope of the present invention for the 16 electronic mail applet 116E to know by default how to contact the electronic mail system 2102. As 17 part of step 2314, a handshake procedure may take place, whereby the electronic mail applet 116E
18 and the electronic mail system 2102 agree on how email data for user 110 will be sent from the 19 electronic mail system 2102 to the customized email client. This has previously been described with reference to step 2504.
22 At step 2316, the electronic mail applet 116E is configured to obtain the email data for user 110 23 from the electronic mail system 2102. In order for the electronic mail applet 116E to obtain the 24 email data for user 110 from the electronic mail system 2102, the customized email client may occasionally, continuously, synchronously or asynchronously pull the email data for user 110 from 26 the electronic mail system 2102; alternatively, the electronic mail system 2102 may be configured to 27 occasionally, continuously, synchronously or asynchronously push the email data for user 110 to the 28 electronic mail applet 116E.
Assume now that the email data for user 110 is "4 messages, 1 new", which indicates that there are 31 four (4) electronic mail messages in the electronic mailbox 2104, of which one (1) is new. At step 32 2318, the electronic mail applet 116E is configured to update eigen-area 2464 for the customized 33 email client with the email data for user 110.
2 Specifically, and with reference again to Fig. 24, the customized email client updates the client-3 controlled information in eigen-area 2464 by modifying the presence state to reflect the email data 4 for user 110 (which, in the present example, is "4 messages, 1 new"). In addition, or alternatively, the customized email client can update the client-controlled information in eigen-area 2464 by 6 causing the presence state to reflect data that can be easily expressed using simple icons, such as 7 whether there are any electronic mail messages at all and/or whether there are any new electronic 8 mail messages. This can also be achieved by causing the presence state to indicate "online" when 9 there is at least one new electronic mail message and "offline"
otherwise. Of course, in an alternative embodiment, the customized email client could have updated the client-controlled 11 information in eigen-area 2464 by also (or instead) modifying the screen name and/or possibly other 12 portions of the client-controlled information stored in eigen-area 2464 to reflect the email data for 13 user 110. In summary, the email data is stored in eigen-area 2464 as text data or other data (such as 14 data that encodes one or more graphical icons).
16 At step 2320, having determined that the client-controlled information regarding the new buddy 17 (i.e., the customized email client) has been updated in eigen-area 2464, the messaging application 18 executed by the processor 104 in the communication server 102 updates the client-controlled 19 information regarding the new buddy on the contact list 2412 for user 110.
21 Specifically, the client-controlled information regarding the customized email client is obtained 22 from eigen-area 2464 which, as previously described, conveys email data.
In one embodiment, the 23 messaging application executed by the processor 104 in the communication server 102 copies the 24 presence state and screen name from eigen-area 2464 into fields 2466, 2476 of the contact list 2212.
In another embodiment where fields 2466, 2476 contain pointers to, respectively, the presence state 26 and screen name in eigen-area 2464, the client-controlled information regarding the customized 27 email client will be instantly updated without the need for data transfer.
29 At this point, the client-controlled information regarding the customized email client (which, it is recalled, comprises the email data) is ready for observation by user 110.
Accordingly, at step 2320, 31 which can be inherent in step 2318 or a separate step altogether, the client-controlled information 32 regarding the customized email client can be conveyed to user 110 in a visual format.
1 Persons skilled in the art will therefore appreciate that the above described embodiments allow the 2 persistent conveyance of client-controlled information regarding the customized email client to user 3 110, in a non-intrusive manner and without interrupting user 110.
Specifically, user 110 can 4 monitor the number of total or new messages in the electronic mailbox 2104 and/or their content and/or their status on an ongoing basis ¨ and at times of his or her own choosing. Moreover, user 6 110 is not compelled to remember this information since user 110 can refresh his or her knowledge 7 merely by glancing at the contact list 2412.
9 Meanwhile, it will be recalled from step 2316, the electronic mail applet 116E continues to obtain the email data for user 110 from the electronic mail system 2102. Thus, the client-controlled 11 information regarding the customized email client will continue to be updated in eigen-area 2464 as 12 the electronic mail applet 116E continues to execute, which ensures currency of the information 13 being persistently conveyed to, and observed by, user 110.
Thus, it will be appreciated that the present invention is applicable to instances where a given user 16 wishes to keep track of a certain amount of information regarding a data service on an ongoing basis 17 (even when the information regarding a data service does I not change), and without being interrupted when the information regarding a data 2 service does change.
4 Moreover, it should be appreciated that the information regarding a data service can include passive data, which is akin to a status update, and active data, which allows 6 the given user to take further action. For example, the information regarding a data 7 service in any of the above scenarios may comprise a uniform resource locator (URL) 8 that can be actionable by user 110 and, when actioned, leads user 110 to a portal 9 where user 110 can interact with an underlying system, be it a search engine, electronic mail system, etc.
12 Moreover, it should be appreciated that the present invention is also applicable to the 13 use and configuration of applets that serve as unified gateways to a plurality of data 14 services, which can be generic, customized, private or a combination thereof For example, applet 116 or applet 118 can serve as a unified voice mail applet that 16 accesses a plurality of voice mail boxes maintained by one or more voice mail 17 systems similar to voice mail system 1502. Similarly, applet 116 or applet 118 can 18 serve as a unified electronic mail applet that accesses a plurality of electronic 19 mailboxes maintained by one or more electronic mail systems similar to electronic mail system 2102. Also, applet 116 or applet 118 can serve as a unified voice mail /
21 email applet for user 110 by having access to both voice mail box 1504 and electronic 22 mailbox 2104. Accordingly, the unified voice mail / email applet may amalgamate 23 the information available from the voice mail system 1502 and the electronic mail 24 system 2102.
26 In a manner similar to what has previously been described, a unique client-specific 27 address is created for the unified voice mail / email applet, resulting in the creation of 28 what is hereinafter referred to as a "unified communication client" of the instant 29 messaging service for user 110. In particular, the unified communication client stores client-controlled information regarding the unified communication client. The client-31 controlled information regarding the unified communication client represents 32 information that the unified communication client renders available for conveyance to 33 user 110. The client-controlled information stored may include a presence state 34 and/or a screen name. The presence state could be used to specify an attentiveness of 1 the unified communication client to receiving instant messages, while the screen name 2 could be used to specify an identifier that the unified communication client wishes to 3 use to identify itself during a conversation. However, in accordance with non-limiting 4 embodiments of the present invention, either or both of the presence state and/or the screen name (and/or possibly other portions of the client-controlled information) is 6 used to convey voice mail data and email data for user 110.
8 In a specific non-limiting example, and with reference to Fig. 20, the client-controlled 9 information regarding the unified communication client can be displayed on the aforesaid screen of communication device 120 in the form of text, graphics and/or an 11 icon. In this example, "unified communication" and "(email: 3 new messages)(work 12 voice mail: 10 messages, 0 new)(home voice mail: 3 new messages)" are, 13 respectively, the screen name and presence state of the client-controlled information 14 regarding the unified communication client.
16 It should also be reiterated that in a peer-to-peer embodiment, the various clients of 17 the instant messaging service contact each other without assistance from the 18 communication server 102. Thus, the communication server 102 can be entirely 19 dispensed with, which would leave both the contact lists for the various clients and the eigen-areas for those clients to be stored in a distributed fashion, such as on the 21 devices used by those clients. Thus, if a given client knows the addresses of other 22 clients for whom the given client is a buddy, then in order to ensure that the 23 information on the contact lists of those other clients is up-to-date, the given client can 24 push the client-controlled information regarding the given client to those other clients directly. Alternatively, if a given client knows the addresses of his or her buddies, 26 then to ensure that the information on the given client's contact list is up-to-date, the 27 given client can obtain the client-controlled information regarding its buddies by 28 polling them directly.
While specific embodiments of the present invention have been described and 31 illustrated, it will be apparent to those skilled in the art that numerous modifications 32 and variations can be made without departing from the scope of the invention as 33 defined in the appended claims.
Claims (69)
1. A method, comprising:
- instantiating a first client of a messaging service, the first client providing a data service;
- maintaining in memory a contact list for a second client of the messaging service;
- receiving a request for the data service from the second client;
- as part of providing the data service, the first client retrieving data from at least one data source;
- including, in the contact list for the second client, client-controlled information regarding the first client;
- the client-controlled information regarding the first client being controlled by the first client to include the retrieved data.
- instantiating a first client of a messaging service, the first client providing a data service;
- maintaining in memory a contact list for a second client of the messaging service;
- receiving a request for the data service from the second client;
- as part of providing the data service, the first client retrieving data from at least one data source;
- including, in the contact list for the second client, client-controlled information regarding the first client;
- the client-controlled information regarding the first client being controlled by the first client to include the retrieved data.
2. The method defined in claim 1, further comprising persistently conveying to the second client the contact list for the second client.
3. The method defined in claim 1, said messaging service having a distributed architecture.
4. The method defined in claim 3, said first and second clients being peers.
5. The method defined in claim 1, said messaging service having a server-centric architecture comprising a server.
6. The method defined in claim 5, said first and second clients communicating via said server.
7. The method defined in claim 1, wherein the first client is implemented by an applet.
8. The method defined in claim 1, wherein the retrieved data is publicly accessible.
9. The method defined in claim 1, wherein the retrieved data is customized to a user of the second client.
10. The method defined in claim 1, wherein the retrieved data is protected by credentials associated with a user of the second client.
11. The method defined in claim 10, further comprising supplying the credentials to the data source in order to obtain said retrieved data.
12. The method defined in claim 1, further comprising responding to a request from the second client to view further information related to the data service by rendering said further information available for conveyance to the second client.
13. The method defined in claim 12, further comprising modifying the client-controlled information included in the contact list as a function of observation by a user of the second client of said further information related to the data service.
14. The method defined in claim 1, wherein the data service comprises at least one of a share price reporting service, a weather reporting service, a sports reporting service, a web monitoring service, a general traffic reporting service, a news reporting service on specific topics, a movie listing service, a horoscope service, a lottery results service, a transportation schedule service, a product pricing service, an advertisement service, a stock portfolio reporting service customized for a user of the second client, a news reporting service customized for a user of the second client, a traffic reporting service customized for a user of the second client, a web search service customized for a user of the second client, a real estate service customized for a user of the second client, a dating service customized for a user of the second client, a job search service customized for a user of the second client, a shopping service customized for a user of the second client, a web monitoring customized for a user of the second client, a link to a voice mail system subscribed to by a user of the second client, a link to a financial institution subscribed to by a user of the second client, a link to a home security system subscribed to by a user of the second client, a link to an email system subscribed to by a user of the second client, a link to a vehicle management system subscribed to by a user of the second client, a link to a mapping system subscribed to by a user of the second client, comprises a link to a telephony presence feature subscribed to by a user of the second client, and a link to a text messaging system subscribed to by a user of the second client.
15. The method defined in claim 14, wherein the retrieved data comprises at least one of a share price of a given company, a weather report for a given city, a current score in a sporting event, an indication of a recent addition to a blog or website, an indication of the traffic conditions on certain roads or bridges, news regarding the specific topics, a schedule or price grid for movies being shown at a certain movie theatre, commentary about each zodiac sign, the result of recent prize draws, current information regarding at least one of trains, flights and public transit, movement in a price of a certain product available from one or more suppliers, an advertisement for a product or service, a share price of companies in a user-selected portfolio, headline news from news sources in a user-selected set of news sources or regarding user-specific topics, a current traffic synopsis for a user-selected travel route, a feature of an online search including at least one of current status, number of results and result relevancy score, an availability of a property meeting user-defined criteria, an availability of a person of interest matching a user-defined profile, an availability of a position matching user-defined criteria, an availability of an item or service meeting user-defined criteria including a price, an indication of the most recent addition to a user-selected set of blogs or websites, a feature of voice mail messages in a voice mail box of the user including at least one of message urgency, number of messages, number of new messages and content of messages, a feature regarding the user's account including at least one of a current balance and a transaction listing, a current status of at least one sensor in the user's home, a feature of email messages in an electronic mailbox of the user including at least one of message urgency, number of messages, number of unread messages, content of messages, a feature of at least one vehicle in a fleet including at least one of vehicle location and vehicle diagnostics, the location of at least one items associated with an account of the user, an indication of whether a given potential called party is engaged in a telephone conversation, and a feature of text messages in a text message mailbox of the user including at least one of message urgency, number of text messages, number of unread text messages, content of text messages.
16. A system, comprising:
- an applet associated with a first client of a messaging service, the applet providing a data service, wherein as part of the data service, the applet retrieves data from at least one data source;
- a communication device associated with a second client of the messaging service, the second client configured to generate a request for the data service;
- the applet being configured to respond to said request by causing client-controlled information regarding the first client to be included in a contact list for the second client, the client-controlled information regarding the first client including the retrieved data.
- an applet associated with a first client of a messaging service, the applet providing a data service, wherein as part of the data service, the applet retrieves data from at least one data source;
- a communication device associated with a second client of the messaging service, the second client configured to generate a request for the data service;
- the applet being configured to respond to said request by causing client-controlled information regarding the first client to be included in a contact list for the second client, the client-controlled information regarding the first client including the retrieved data.
17. The system defined in claim 16, wherein the messaging service is configured to persistently convey to the communication device the contact list for the second client.
18. The system defined in claim 16, said messaging service having a distributed architecture.
19. The system defined in claim 18, said first and second clients being peers.
20. The system defined in claim 16, said messaging service having a server-centric architecture comprising a server.
21. The system defined in claim 20, said first and second clients communicating via said server.
22. The method defined in claim 12, said request being received via an instant message.
23. The method defined in claim 12, further comprising causing said further information to be conveyed to the second client via an instant message.
24. The method defined in claim 22, further comprising causing said further information to be conveyed to the second client via an instant message.
25. The method defined in claim 1, wherein the client-controlled information regarding the first client includes a state of the first client, the state being an online state or an offline state in dependence upon said retrieved data.
26. The method defined in claim 1, wherein the client-controlled information regarding the first client includes a presence state of the first client, the presence state being modifiable to include said retrieved data.
27. The method defined in claim 1, wherein the client-controlled information regarding the first client includes a screen name of the first client that is modifiable to include said retrieved data.
28. The method defined in claim 1, wherein the client-controlled information regarding the first client is conveyed to the second client without an instant message exchange between the first client and the second client.
29. A method for execution by a first client of a messaging service, comprising:
- receiving and storing a client-specific address associated with at least one authorized client;
- receiving a client-specific address associated with a second client of the messaging service;
- determining whether the client-specific address associated with the second client matches the client-specific address of at least one of the at least one authorized client;
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for the second client when a data service associated with the first client is requested by the second client and the client-specific address associated with the second client matches the client-specific address of at least one of the at least one authorized client;
and - causing the client-controlled information regarding the first client to include said data obtained from the data source.
- receiving and storing a client-specific address associated with at least one authorized client;
- receiving a client-specific address associated with a second client of the messaging service;
- determining whether the client-specific address associated with the second client matches the client-specific address of at least one of the at least one authorized client;
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for the second client when a data service associated with the first client is requested by the second client and the client-specific address associated with the second client matches the client-specific address of at least one of the at least one authorized client;
and - causing the client-controlled information regarding the first client to include said data obtained from the data source.
30. A method for execution by a first client of a messaging service, comprising:
- receiving an indication of a desire of a second client of the messaging service to obtain data from a data source;
- determining whether the second client is authorized to obtain said data;
- causing client-controlled information regarding the first client to be included in a contact list for the second client when a data service associated with the first client is requested by the second client; and - causing the client-controlled information regarding the first client to include said data only if the second client is authorized to obtain said data.
- receiving an indication of a desire of a second client of the messaging service to obtain data from a data source;
- determining whether the second client is authorized to obtain said data;
- causing client-controlled information regarding the first client to be included in a contact list for the second client when a data service associated with the first client is requested by the second client; and - causing the client-controlled information regarding the first client to include said data only if the second client is authorized to obtain said data.
31. The method defined in claim 30, wherein said determining comprises:
- interacting with the second client to obtain authorization data therefrom;
- determining whether the authorization data matches pre-stored authorization data.
- interacting with the second client to obtain authorization data therefrom;
- determining whether the authorization data matches pre-stored authorization data.
32. The method defined in claim 31, wherein said interacting comprises an exchange of instant messages.
33. The method defined in claim 31, further comprising:
- initiating said interacting.
- initiating said interacting.
34. The method defined in claim 33, wherein said initiating is performed by sending an instant message to the second client.
35. A method for execution by a first client of a messaging service, comprising:
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for a second client of the messaging service when a data service associated with the first client is requested by the second client;
- causing the client-controlled information regarding the first client to include said data obtained from the data source; and - creating a specific address associated with the first client, the specific address being unique to the second client.
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for a second client of the messaging service when a data service associated with the first client is requested by the second client;
- causing the client-controlled information regarding the first client to include said data obtained from the data source; and - creating a specific address associated with the first client, the specific address being unique to the second client.
36. The method defined in claim 35, further comprising:
- using the specific address to identify the first client to the messaging service.
- using the specific address to identify the first client to the messaging service.
37. The method defined in claim 35, further comprising:
- informing the second client of the specific address associated with the first client.
- informing the second client of the specific address associated with the first client.
38. The method defined in claim 35, further comprising:
- receiving customized alert parameters from the second client.
- receiving customized alert parameters from the second client.
39. The method defined in claim 38, wherein said creating a specific address is performed in response to said receiving customized alert parameters.
40. The method defined in claim 39, wherein the customized alert parameters specify the data to be obtained from the data source by said step of obtaining.
41. A method for execution by a first client of a messaging service, comprising:
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for a second client of the messaging service when a data service associated with the first client is requested by the second client;
- causing the client-controlled information regarding the first client to include said data obtained from the data source;
- obtaining changes in the data from the data source;
- causing the client-controlled information regarding the first client to include said changes in the data.
- obtaining data from a data source;
- causing client-controlled information regarding the first client to be included in a contact list for a second client of the messaging service when a data service associated with the first client is requested by the second client;
- causing the client-controlled information regarding the first client to include said data obtained from the data source;
- obtaining changes in the data from the data source;
- causing the client-controlled information regarding the first client to include said changes in the data.
42. The method defined in claim 41, wherein the data is related to a data service and wherein the data service comprises at least one of a share price reporting service, a weather reporting service, a sports reporting service, a web monitoring service, a general traffic reporting service, a news reporting service on specific topics, a movie listing service, a horoscope service, a lottery results service, a transportation schedule service, a product pricing service, an advertisement service, a stock portfolio reporting service customized for a user of the second client, a news reporting service customized for a user of the second client, a traffic reporting service customized for a user of the second client, a web search service customized for a user of the second client, a real estate service customized for a user of the second client, a dating service customized for a user of the second client, a job search service customized for a user of the second client, a shopping service customized for a user of the second client, a web monitoring customized for a user of the second client, a link to a voice mail system subscribed to by a user of the second client, a link to a financial institution subscribed to by a user of the second client, a link to a home security system subscribed to by a user of the second client, a link to an email system subscribed to by a user of the second client, a link to a vehicle management system subscribed to by a user of the second client, a link to a mapping system subscribed to by a user of the second client, comprises a link to a telephony presence feature subscribed to by a user of the second client, and a link to a text messaging system subscribed to by a user of the second client.
43. The method defined in claim 42, wherein the data comprises at least one of a share price of a given company, a weather report for a given city, a current score in a sporting event, an indication of a recent addition to a blog or website, an indication of the traffic conditions on certain roads or bridges, news regarding the specific topics, a schedule or price grid for movies being shown at a certain movie theatre, commentary about each zodiac sign, the result of recent prize draws, current information regarding at least one of trains, flights and public transit, movement in a price of a certain product available from one or more suppliers, an advertisement for a product or service, a share price of companies in a user-selected portfolio, headline news from news sources in a user-selected set of news sources or regarding user-specific topics, a current traffic synopsis for a user-selected travel route, a feature of an online search including at least one of current status, number of results and result relevancy score, an availability of a property meeting user-defined criteria, an availability of a person of interest matching a user-defined profile, an availability of a position matching user-defined criteria, an availability of an item or service meeting user-defined criteria including a price, an indication of the most recent addition to a user-selected set of blogs or websites, a feature of voice mail messages in a voice mail box of the user including at least one of message urgency, number of messages, number of new messages and content of messages, a feature regarding the user's account including at least one of a current balance and a transaction listing, a current status of at least one sensor in the user's home, a feature of email messages in an electronic mailbox of the user including at least one of message urgency, number of messages, number of unread messages, content of messages, a feature of at least one vehicle in a fleet including at least one of vehicle location and vehicle diagnostics, the location of at least one items associated with an account of the user, an indication of whether a given potential called party is engaged in a telephone conversation, and a feature of text messages in a text message mailbox of the user including at least one of message urgency, number of text messages, number of unread text messages, content of text messages.
44. A method for execution by a computing apparatus associated with a first client of a messaging service, the method comprising displaying a contact list for the first client, the contact list for the first client including client-controlled information regarding a second client linked to the first client, the client-controlled information regarding the second client comprising data retrieved by the second client as part of a data service provided by the second client and requested by the first client.
45. The method defined in claim 44, wherein the client-controlled information regarding the second client further comprises an indication of the data service.
46. The method defined in claim 44, the retrieved data being persistently conveyed as graphics.
47. The method defined in claim 44, the retrieved data being persistently conveyed as text.
48. The method defined in claim 44, the retrieved data being persistently conveyed as a combination of text and graphics.
49. The method defined in claim 48, wherein said graphics comprise at least one icon associated a respective instance of the retrieved data.
50. The method defined in claim 44, further comprising computer-readable program code which, when executed by the computing apparatus associated with the first client of the messaging service, causes the computing apparatus to enable messaging with the second client via the contact list for the first client.
51. The method defined in claim 50, wherein said messaging with the second client occurs without an exchange of instant messages with the second client.
52. The method defined in claim 44, wherein the data service comprises at least one of a share price reporting service, a weather reporting service, a sports reporting service, a web monitoring service, a general traffic reporting service, a news reporting service on specific topics, a movie listing service, a horoscope service, a lottery results service, a transportation schedule service, a product pricing service, an advertisement service, a stock portfolio reporting service customized for a user of the second client, a news reporting service customized for a user of the second client, a traffic reporting service customized for a user of the second client, a web search service customized for a user of the second client, a real estate service customized for a user of the second client, a dating service customized for a user of the second client, a job search service customized for a user of the second client, a shopping service customized for a user of the second client, a web monitoring customized for a user of the second client, a link to a voice mail system subscribed to by a user of the second client, a link to a financial institution subscribed to by a user of the second client, a link to a home security system subscribed to by a user of the second client, a link to an email system subscribed to by a user of the second client, a link to a vehicle management system subscribed to by a user of the second client, a link to a mapping system subscribed to by a user of the second client, comprises a link to a telephony presence feature subscribed to by a user of the second client, and a link to a text messaging system subscribed to by a user of the second client.
53. The method defined in claim 52, wherein the data comprises at least one of a share price of a given company, a weather report for a given city, a current score in a sporting event, an indication of a recent addition to a blog or website, an indication of the traffic conditions on certain roads or bridges, news regarding the specific topics, a schedule or price grid for movies being shown at a certain movie theatre, commentary about each zodiac sign, the result of recent prize draws, current information regarding at least one of trains, flights and public transit, movement in a price of a certain product available from one or more suppliers, an advertisement for a product or service, a share price of companies in a user-selected portfolio, headline news from news sources in a user-selected set of news sources or regarding user-specific topics, a current traffic synopsis for a user-selected travel route, a feature of an online search including at least one of current status, number of results and result relevancy score, an availability of a property meeting user-defined criteria, an availability of a person of interest matching a user-defined profile, an availability of a position matching user-defined criteria, an availability of an item or service meeting user-defined criteria including a price, an indication of the most recent addition to a user-selected set of blogs or websites, a feature of voice mail messages in a voice mail box of the user including at least one of message urgency, number of messages, number of new messages and content of messages, a feature regarding the user's account including at least one of a current balance and a transaction listing, a current status of at least one sensor in the user's home, a feature of email messages in an electronic mailbox of the user including at least one of message urgency, number of messages, number of unread messages, content of messages, a feature of at least one vehicle in a fleet including at least one of vehicle location and vehicle diagnostics, the location of at least one items associated with an account of the user, an indication of whether a given potential called party is engaged in a telephone conversation, and a feature of text messages in a text message mailbox of the user including at least one of message urgency, number of text messages, number of unread text messages, content of text messages.
54. A method, comprising:
- instantiating a first client of a messaging service;
- requesting that a second client of the messaging service be linked to the first client, the second client associated with at least one data service;
-displaying a contact list for the first client, the contact list for the first client including client-controlled information regarding the second client, the client-controlled information regarding the second client including retrieved data.
- instantiating a first client of a messaging service;
- requesting that a second client of the messaging service be linked to the first client, the second client associated with at least one data service;
-displaying a contact list for the first client, the contact list for the first client including client-controlled information regarding the second client, the client-controlled information regarding the second client including retrieved data.
55. The method defined in claim 54, wherein said requesting includes entering an identifier of the second client in a process of adding the second client to the contact list for the first client.
56. The method defined in claim 54, wherein said requesting includes consulting a directory where an identifier of the second client is listed.
57. The method defined in claim 54, further comprising providing seed data to the second client for enabling the second client to retrieve the retrieved data.
58. The method defined in claim 54, further comprising enrolling with an applet that is associated with the second client.
59. The method defined in claim 58, wherein said enrolling takes place before said instantiating.
60. The method defined in claim 54, further comprising triggering an interaction with the second client based on the retrieved data.
61. The method defined in claim 60, wherein said interaction with the second client causes transmission of at least one instant message.
62. The method defined in claim 61, wherein said interaction with the second client causes display of further information regarding the retrieved data.
63. The method defined in claim 62, further comprising displaying said further information regarding the retrieved data.
64. The method defined in claim 63, wherein said further information regarding the retrieved data results in a modification to the retrieved data.
65. The method defined in claim 54, wherein the at least one data service includes a plurality of data services.
66. The method defined in claim 65, wherein the client-controlled information regarding the second client comprises retrieved data from each of the plurality of data services.
67. The method defined in claim 54, wherein the client-controlled information regarding the second client includes a state of the second client, the state being an online state or an offline state in dependence upon said retrieved data.
68. The method defined in claim 54, wherein the client-controlled information regarding the second client includes a presence state of the second client, the presence state being modifiable to convey said retrieved data.
69. The method defined in claim 54, wherein the client-controlled information regarding the second client includes a screen name of the second client that is modifiable to convey said retrieved data.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CA2006/002094 WO2008074124A1 (en) | 2006-12-21 | 2006-12-21 | Systems and methods for conveying information to an instant messaging client |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2673420A1 CA2673420A1 (en) | 2008-06-26 |
CA2673420C true CA2673420C (en) | 2015-10-20 |
Family
ID=39535923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2673420A Active CA2673420C (en) | 2006-12-21 | 2006-12-21 | Systems and methods for conveying information to an instant messaging client |
Country Status (2)
Country | Link |
---|---|
CA (1) | CA2673420C (en) |
WO (1) | WO2008074124A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8943128B2 (en) | 2006-12-21 | 2015-01-27 | Bce Inc. | Systems and methods for conveying information to an instant messaging client |
CN112540804B (en) * | 2020-12-23 | 2024-08-13 | 北京百度网讯科技有限公司 | Applet running method and device, electronic equipment and medium |
CN114827064B (en) * | 2022-04-18 | 2023-08-04 | 京东科技信息技术有限公司 | Message pushing method, device, electronic equipment and readable medium |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075305A1 (en) * | 2000-12-18 | 2002-06-20 | Beaton Brian F. | Graphical user interface for a virtual team environment |
WO2003021798A2 (en) * | 2001-09-04 | 2003-03-13 | Soft2B Llc | Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization |
US7334001B2 (en) * | 2003-06-13 | 2008-02-19 | Yahoo! Inc. | Method and system for data collection for alert delivery |
US7650380B2 (en) * | 2004-02-12 | 2010-01-19 | International Business Machines Corporation | System and method for messaging and collaborating in an intranet environment |
FI20045504A0 (en) * | 2004-12-28 | 2004-12-28 | Stream Mobile Oy | Push communication methods and devices |
US20060230154A1 (en) * | 2005-04-11 | 2006-10-12 | Nokia Corporation | Method and entities for performing a push session in a communication system |
-
2006
- 2006-12-21 CA CA2673420A patent/CA2673420C/en active Active
- 2006-12-21 WO PCT/CA2006/002094 patent/WO2008074124A1/en active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
CA2673420A1 (en) | 2008-06-26 |
WO2008074124A1 (en) | 2008-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9270622B2 (en) | Systems and methods for conveying information to an instant messaging client | |
US20080155031A1 (en) | Systems and methods for conveying information to an instant messaging client | |
US20080155030A1 (en) | Systems and methods for conveying information to an instant messaging client | |
AU2022206740A1 (en) | Authentication of service requests initiated from a social networking site | |
US7822821B2 (en) | Access point object depositable on a web page and useful for initiating communication between depositing user and buddy | |
US9203879B2 (en) | Offline alerts mechanism | |
US7392306B1 (en) | Instant messaging client having an embedded browser | |
US20150172228A1 (en) | Method and system for communicating information over a network | |
KR20060089137A (en) | Propagating and responding to announcements in an environment having pre-established social groups | |
MXPA04001432A (en) | Method, apparatus, and user interface for managing electronic mail and alert messages. | |
US10269027B2 (en) | Method and system configured to assess a fee for communication facilitation regarding publication information | |
EP1183617A1 (en) | Signalling apparatus and method | |
JP2011515735A (en) | Community-based targeted advertising | |
KR20080101880A (en) | Interactive electronic desktop action method and system | |
US20040230562A1 (en) | System and method of providing an online user with directory listing information about an entity | |
US20090187490A1 (en) | System and a method enabling a customer and a business to interconnect via instant messaging in order to complete a business transaction | |
CA2673420C (en) | Systems and methods for conveying information to an instant messaging client | |
US20130073394A1 (en) | Human curated targeting of offers | |
US20160078138A1 (en) | Portal for sharing data over a network | |
WO2009049196A1 (en) | Multi-modal mobile platform | |
CA2653208A1 (en) | Personal directory services with presence indication | |
JP2003296224A (en) | Information distribution surrogating system and information distribution surrogating program | |
WO2005094186A2 (en) | E-mail automatic processing program, recording medium containing e-mail automatic processing program, and e-mail automatic processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |