Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
PROXIMITY-BASED PRESENCE NOTIFICATION OF SOCIAL NETWORK PARTICIPANTS
Document Type and Number:
WIPO Patent Application WO/2009/098695
Kind Code:
A3
Abstract:
A method is provided for social communication, including downloading from a social networking site (26), by a first user device (12) having a first user, a buddy list of the first user. Using a proximity-based wireless communication protocol, the first user device (12) receives, from a second user device (14), identity information with respect to a second user of the second user device (14). The first user device (12) identifies, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user. The first user device (12) issues an alert to the first user regarding the identified social connection. Other embodiments are also described.

Inventors:
DRABKIN VADIM (IL)
FRIEDMAN ROY (IL)
KLIOT GABRIAL (IL)
Application Number:
PCT/IL2009/000144
Publication Date:
March 11, 2010
Filing Date:
February 08, 2009
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TECHNION RES & DEV FOUNDATION (IL)
DRABKIN VADIM (IL)
FRIEDMAN ROY (IL)
KLIOT GABRIAL (IL)
International Classes:
H04W24/00; G06F21/62
Foreign References:
US20070030824A12007-02-08
US20050227676A12005-10-13
US20060270419A12006-11-30
Attorney, Agent or Firm:
SANFORD T. COLB & CO. et al. (Rehovot, IL)
Download PDF:
Claims:
CLAIMS

1. A method for social communication, comprising: downloading from a social networking site, by a first user device having a first user, a buddy list of the first user; using a proximity-based wireless communication protocol, receiving, by the first user device from a second user device, identity information with respect to a second user of the second user device; identifying by the first user device, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issuing, by the first user device to the first user, an alert regarding the identified social connection.

2. The method according to claim 1, wherein the identity information includes a user ID of the second user on the social networking site, and wherein identifying the social connection comprises finding that the user ID of the second user is included on the downloaded buddy list.

3. The method according to claim 1, wherein the buddy list of the first user is a first buddy list, wherein the identity information includes a second buddy list of the second user on the social networking site, and wherein identifying the social connection comprises finding a common occurrence of a member of the social networking site on the first and second buddy lists, the member different from both the first and second users.

4. The method according to any one of claims 1-3, wherein the buddy list comprises a plurality of member IDs, wherein receiving the identity information comprises receiving at least one output identity information value of a one-way function having the identity information as input, and wherein identifying the social connection comprises: performing the one-way function on the member IDs to generate respective output member values; and identifying the social connection responsively to the comparison of the at least one output identity information value and the output member values. 5. The method according to claim 4, wherein the one-way function is a hash function, wherein receiving the at least one output identity information value comprises receiving the at least one output identity information value of the hash function having the identity

information as input, and wherein performing the one-way function on the member IDs comprises performing the hash function on the member IDs to generate the respective output member values.

6. The method according to claim 5, wherein the hash function is a cryptographic hash function, wherein receiving the at least one output identity information value comprises receiving the at least one output identity information value of the cryptographic hash function having the identity information as input, and wherein performing the hash function on the member IDs comprises performing the cryptographic hash function on the member IDs to generate the respective output member values. 7. The method according to claim 1, wherein receiving the identify information using the proximity-based wireless communication protocol comprises receiving the identify information using a proximity-based wireless communication protocol selected from the group consisting of: a Bluetooth protocol, a WiFi ad hoc mode protocol, a WiFi infrastructure mode protocol, a WiMAX protocol, and an ultra-wideband (UWB) protocol.

8. The method according to claim 1, wherein downloading the buddy list comprises downloading the buddy list from the social networking site using an API provided by the social networking site.

9. The method according to claim 1, wherein downloading the buddy list comprises sending one or more requests to the social networking site, and parsing respective returned Web pages.

10. The method according to claim 9, wherein the requests are HTTP requests, and wherein sending the one or more requests comprises sending the one or more HTTP requests to the social networking site. 11. The method according to claim 1, wherein receiving the identity information does not comprise receiving the identity information via the social networking site.

12. The method according to claim 1, wherein receiving the identify information comprises receiving one or more attributes of the second user, and wherein identifying the social connection comprises comparing the attributes to one or more criteria specified by the first user.

13. A computer software product for social communication between first and second computing devices, the product comprising a tangible computer-readable storage medium in which computer program instructions are stored, which instructions, when executed by the first computing device, cause the first computing device to download, from a social networking site, a buddy list of a first user of the first computing device; receive, using a proximity-based wireless communication protocol, from the second computing device, identity information with respect to a second user of the second computing device; identify, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issue an alert to the first user regarding the identified social connection.

14. The computer software product according to claim 13, wherein the identity information includes a user ID of the second user on the social networking site, and wherein the instructions, when executed by the first computing device, cause the first computing device to identify the social connection upon finding that the user ID of the second user is included on the downloaded buddy list.

15. The computer software product according to claim 13, wherein the buddy list of the first user is a first buddy list, wherein the identity information includes a second buddy list of the second user on the social networking site, and wherein the instructions, when executed by the first computing device, cause the first computing device to identify the social connection upon finding a common occurrence of a member of the social networking site on the first and second buddy lists, the member different from both the first and second users.

16. The computer software product according to any one of claims 13-15, wherein the buddy list comprises a plurality of member IDs, wherein the instructions, when executed by the first computing device, cause the first computing device to receive at least one output identity information value of a one-way function having the identity information as input, to identify the social connection by performing the one-way function on the member IDs to generate respective output member values, and to identify the social connection responsively to the comparison of the at least one output identity information value and the output member values.

17. The computer software product according to claim 16, wherein the one-way function is a hash function, and wherein the instructions, when executed by the first

computing device, cause the first computing device to receive the at least one output identity information value of the hash function having the identity information as input, and to perform the hash function on the member IDs to generate the respective output member values. 18. The computer software product according to claim 17, wherein the hash function is a cryptographic hash function, and wherein the instructions, when executed by the first computing device, cause the first computing device to receive the at least one output identity information value of the cryptographic hash function having the identity information as input, and to perform the cryptographic hash function on the member IDs to generate the respective output member values.

19. Apparatus for social communication with a wireless communications device, the apparatus comprising: a first wireless proximity-based communications interface; a second wide-area network (WAN) interface; and a processor, configured to download, from a social networking site, via the second interface, a buddy list of a first user of the apparatus; receive, via the first interface, using a proximity-based wireless communication protocol, from the wireless communications device, identity information with respect to a second user of the wireless communications device; identify, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issue an alert to the first user regarding the identified social connection.

20. The apparatus according to claim 19, wherein the identity information includes a user ID of the second user on the social networking site, and wherein the processor is configured to identify the social connection upon finding that the user ID of the second user is included on the downloaded buddy list.

21. The apparatus according to claim 19, wherein the buddy list of the first user is a first buddy list, wherein the identity information includes a second buddy list of the second user on the social networking site, and wherein the processor is configured to identify the social connection upon finding a common occurrence of a member of the social networking site on the first and second buddy lists, the member different from both the first and second users.

22. The apparatus according to any one of claims 19-21, wherein the buddy list comprises a plurality of member IDs, and wherein the processor is configured to receive at least one output identity information value of a one-way function having the identity information as input, to identify the social connection by performing the one-way function on the member IDs to generate respective output member values, and to identify the social connection responsively to the comparison of the at least one output identity information value and the output member values.

23. The apparatus according to claim 22, wherein the one-way function is a hash function, and wherein the processor is configured to receive the at least one output identity information value of the hash function having the identity information as input, and to perform the hash function on the member IDs to generate the respective output member values.

24. The apparatus according to claim 23, wherein the hash function is a cryptographic hash function, and wherein the processor is configured to receive the at least one output identity information value of the cryptographic hash function having the identity information as input, and to perform the cryptographic hash function on the member IDs to generate the respective output member values.

Description:

PROXIMITY-BASED PRESENCE NOTIFICATION OF SOCIAL NETWORK

PARTICIPANTS

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority from U.S. Provisional Application No. 61/027,059, filed February 8, 2008, which is assigned to the assignee of the present application and herein incorporated by reference.

FIELD OF THE INVENTION

This invention relates to communications and messaging systems. More particularly, this invention relates to proximity-based networking communications.

BACKGROUND OF THE INVENTION

Social networks enable users to define social groups on the Internet, which include their buddies or friends. Social networks provide facilities for interchange of information among members or participants, and may provide an option to publicize the information outside the social groups. Social networking information typically includes basic personal facts, and possibly a photograph, collectively known as an optional personal profile. Extended information may also be intercommunicated, including free-text expressions, images, computer applications, and the like.

Each member of a social network can view the status of his buddies, including their exported information. Modern social networks also push changes to the personal information of members to their buddies. In general, social networks require connectivity to the Internet. Once on-line, a member may see his buddies, sometimes with an indicator of their on-line status.

Concurrently with the proliferation of social networks, proximity-based communication hardware has become ubiquitous in computer equipment and other communications devices. For instance, nearly every laptop sold today comes preinstalled with short-range wireless communications facilities, which use, for example, the Wi-Fi protocol (IEEE 802.11) or the Bluetooth® protocol. Both of these technologies enable direct communication, either with an access point, or with another corresponding device that is within the technology's transmission range.

SUMMARY OF THE INVENTION

According to some embodiments of the invention, Internet-based social networking is integrated with proximity-based communication. A software application executing in a first communications device uses a proximity-based wireless communications protocol to detect physical proximity of a compatible second communications device. A communication channel is established between the first and second devices using the proximity-based wireless communications protocol. Information, previously taken from a common social networking site, is exchanged between the devices, enabling a determination that a social relationship exists between their respective users. An alert is issued to at least one of the users indicating the presence of the other user, and a social communication session may thereupon be established therebetween.

New mobile telephone models typically support the Bluetooth protocol and increasingly the WiFi protocol as well. It is expected that in the next few years most, if not all, mobile telephones will be preinstalled with proximity communication capabilities. Proximity-based communication enables direct communication between nearby devices, and even the creation of infrastructure-independent (multiple hop) ad-hoc networks. Embodiments of the invention can be used to implement a localized presence service, which notifies a user whenever one of his friends or buddies is nearby, i.e., within operational range of the proximity-based communication equipment. Ad-hoc arrangements among proximity-based communication devices may allow sharing information and files among users, and playing data-intensive and real-time multiplayer games. In embodiments of the present invention, devices may establish communication using a point-to-point mode wireless protocol, such as the Bluetooth protocol or the ad hoc mode of the WiFi protocol, using a WiMAX (Worldwide Interoperability for Microwave Access) protocol, using an ultra-wideband (UWB) protocol, or using a local access point protocol, such as the infrastructure mode of the WiFi protocol (also called the access point mode).

The communications devices used in embodiments of the present invention may comprise any mobile or fixed information devices, e.g., a mobile internet device, a laptop computer, ultra-mobile personal computer (UMPC), personal digital assistant (PDA), mobile telephone, or a desktop computer, so long as the device is provided with- proximity-based wireless communications capabilities. The service provided by the

software application is sometimes referred to herein as a "proximity-based communications service."

The software application in the communications device is linked to a social networking web site, typically via the Internet (either over a wireless or wired connection), and exploits existing buddy lists of the social network. It is an advantage of some aspects of the invention that it is unnecessary for users to define new buddy lists in addition to those they already maintain on a social networking site. Nor are their social network buddies burdened by a requirement to actively migrate to a proximity-detection service. Rather, the communications device integrates seamlessly with an existing social network, or even a plurality of social networks concurrently, to obtain buddy identifications and such information concerning the buddy as may be available to the user as a member of the social network.

Assume, for example, that two users, Alice and Bob, are buddies and are in proximity to one another. The proximity-based communications service analyzes their buddy lists and determines that Alice and Bob are buddies on a social networking web site. If appropriate permissions are set, the service notifies one or both of the users that the other is in physical proximity, and the users may decide to begin a direct communication session with one another using the proximity-based wireless communication facility, and/or to arrange a face-to-face meeting. In some embodiments of the present invention, the proximity-based communications service notifies users who are not already buddies that they share a mutual buddy, and therefore may desire to communicate with one another. To continue the example above, the proximity-based communications service further analyzes Alice's and Bob's buddy lists and determines that although Alice and Bob are not buddies, they have a common buddy, Crystal. If appropriate permissions are set, the proximity-based communications service may alert Alice and Bob and suggest an introduction, based on their common acquaintance, Crystal. It is noted that Crystal need not be in physical proximity to Alice and Bob in order to make the introduction. This mutual-friend based identification of potential acquaintances may be useful, for example, for introducing professionals with common acquaintances who happen to meet in a location such as an airport lounge or trade show, or for freshmen students who would like to become acquainted with their peers. Alternatively, this technique may be useful for social network dating. The term "dating" is used herein broadly to mean matching parties and should be

understood as encompassing both romantic dating and professional business dating, such as finding job applicants, or identifying employees of the same company.

While social networking web organizations play a mostly passive role in the proximity-based communications service described herein, the proximity-based communications service described herein may nevertheless be of value for them. Presence notifications and the possibility of new introductions of members based on common acquaintances enhance connectivity among social networking participants, who might otherwise be unaware of one another. For example, in the case of Alice, Bob, and Crystal mentioned above, following an interchange resulting from the presence notification, Alice and Bob may decide to include one another on their respective buddy lists.

There is therefore provided, in accordance with an embodiment of the present invention, a method for social communication, including: downloading from a social networking site, by a first user device having a first user, a buddy list of the first user; using a proximity-based wireless communication protocol, receiving, by the first user device from a second user device, identity information with respect to a second user of the second user device; identifying by the first user device, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issuing, by the first user device to the first user, an alert regarding the identified social connection.

In an embodiment, the identity information includes a user ID of the second user on the social networking site, and identifying the social connection includes finding that the user ID of the second user is included on the downloaded buddy list.

In an embodiment, the buddy list of the first user is a first buddy list, the identity information includes a second buddy list of the second user on the social networking site, and identifying the social connection includes finding a common occurrence of a member of the social networking site on the first and second buddy lists, the member different from both the first and second users.

In an embodiment, the buddy list includes a plurality of member IDs, receiving the identity information includes receiving at least one output identity information value of a

one-way function having the identity information as input, and identifying the social connection includes performing the one-way function on the member IDs to generate respective output member values, and identifying the social connection responsively to the comparison of the at least one output identity information value and the output member values. For some applications, the one-way function is a hash function, receiving the at least one output identity information value includes receiving the at least one output identity information value of the hash function having the identity information as input, and performing the one-way function on the member IDs includes performing the hash function on the member IDs to generate the respective output member values. Typically, the hash function is a cryptographic hash function, receiving the at least one output identity information value includes receiving the at least one output identity information value of the cryptographic hash function having the identity information as input, and performing the hash function on the member IDs includes performing the cryptographic hash function on the member IDs to generate the respective output member values For some applications, receiving the identify information using the proximity- based wireless communication protocol includes receiving the identify information using a proximity-based wireless communication protocol selected from the group consisting of: a Bluetooth protocol, a WiFi ad hoc mode protocol, a WiFi infrastructure mode protocol, a WiMAX protocol, and an ultra-wideband (UWB) protocol. For some applications, downloading the buddy list includes downloading the buddy list from the social networking site using an API provided by the social networking site. Alternatively, downloading the buddy list includes sending one or more requests (such as HTTP requests) to the social networking site, and parsing respective returned Web pages. Further alternatively, receiving the identity information does not include receiving the identity information via the social networking site.

For some applications, receiving the identify information includes receiving one or more attributes of the second user, and identifying the social connection includes comparing the attributes to one or more criteria specified by the first user.

There is further provided, in accordance with an embodiment of the present invention, a computer software product for social communication between first and second computing devices, the product including a tangible computer-readable storage medium in which computer program instructions are stored, which instructions, when

executed by the first computing device, cause the first computing device to download, from a social networking site, a buddy list of a first user of the first computing device; receive, using a proximity-based wireless communication protocol, from the second computing device, identity information with respect to a second user of the second computing device; identify, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issue an alert to the first user regarding the identified social connection.

There is still further provided, in accordance with an embodiment of the present invention, apparatus for social communication with a wireless communications device, the apparatus including: a first wireless proximity-based communications interface; a second wide-area network (WAN) interface; and a processor, configured to download, from a social networking site, via the second interface, a buddy list of a first user of the apparatus; receive, via the first interface, using a proximity-based wireless communication protocol, from the wireless communications device, identity information with respect to a second user of the wireless communications device; identify, responsively to a comparison of the identity information and the buddy list, a social connection between the first user and the second user; and issue an alert to the first user regarding the identified social connection.

BRIEF DESCRIPTION OF THE DRAWINGS 20

For a better understanding of the present invention, reference is made to the detailed description of the invention, by way of example, which is to be read in conjunction with the following drawings, wherein like elements are given like reference numerals, and wherein: Fig. 1 is a pictorial diagram of a system that is constructed and operative in accordance with a disclosed embodiment of the invention;

Fig. 2 is a flow chart of a method of proximity-based presence notification of social networking participants in accordance with a disclosed embodiment of the invention; and

Fig. 3 is a flow chart of a method of proximity-based presence notification of social networking participants in accordance with an alternate embodiment of the invention.

DETAILED DESCRD?TION OF THE INVENTION In the following description, numerous specific details are set forth in order to provide a thorough understanding of the various principles of the present invention. It will be apparent to one skilled in the art, however, that not all these details are necessarily always needed for practicing the present invention. In this instance, well-known circuits, control logic, and the details of computer program instructions for conventional algorithms and processes have not been shown in detail in order not to obscure the general concepts unnecessarily.

Aspects of the present invention may be embodied in software programming code, which is typically maintained in permanent storage, such as a computer readable medium. In a client/server environment, such software programming code may be stored on a client or a server. The software programming code may be embodied on any of a variety of known tangible media for use with a data processing system, such as a diskette, hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to storage devices on other computer systems for use by users of such other systems. Typically, each user device performing the techniques described herein downloads, via the Internet, a client software application that performs the techniques described herein.

System Architecture

Turning now to the drawings, reference is initially made to Fig. 1, which is a pictorial diagram of a system 10, which is constructed and operative in accordance with a disclosed embodiment of the invention. A plurality of user devices 12, 14, 16, 18 are shown. User devices 12, 16 are realized as laptop computers. User device 14 is a mobile telephone. User device 18 is a fixed device, such as a desktop personal computer. The user devices are all equipped with proximity-based wireless communications interfaces 19 (shown only in device 12, for clarity of illustration), which provide short-range wireless proximity communications capabilities, e.g., using the WiFi, Bluetooth, WiMAX, and/or UWB protocols. System 10 may comprise any number of user devices, which can be realized as many combinations of different types of fixed and mobile information devices.

Typically, user devices 12, 14, 16 are connected to a wide-area data network 24, which is typically the public Internet, such as over a public wireless communication' network, e.g., a cellular network. The user devices connect to the data network via respective wide-area network (WAN) interfaces 21 (shown only in device 12, for clarity of illustration). WAN interfaces 21 may communicate with the WAN wirelessly (e.g., via a public cellular network) or over a wired connection. As described hereinbelow, the proximity-based communications services provided by embodiments of the present invention do not require the devices to be constantly connected to network 24; sporadic connectivity is sufficient. A social networking web site 26 operated by a social networking organization is also connected to data network 24. Web site 26 is a conventional web site, operated by a social networking organization, which maintains lists of registrants and buddy lists, often as encoded identifiers. In the arrangement of Fig. 1, the buddy lists of web site 26 are downloaded to user devices 12, 14, 16 (typically, with sporadic updates). However, once the users of the user devices have registered with the social networking organization, and have downloaded buddy lists, social networking site identifiers, and suitable software, the users no longer need to be connected to the Internet to perform the proximity-based communications service described herein, because this service operates using proximity- based wireless communication facilities, rather than over the Internet. Directional ranges of the proximity-based communications facility in user device 16 are represented by ellipses 20, 22. While not shown in Fig. 1 in the interest of clarity, the operational ranges of user devices 12, 14 are similar. Ellipse 20 includes user devices 12, 14, 16. Thus user device 16 can sense the proximity of user devices 12, 14. As the operational ranges of the other user devices are similar, each of user devices 12, 14, 16 is able to detect the others when they are within range of its proximity-based communications facilities. However, user devices 16, 18 cannot detect one another using their proximity-based communications facilities, as they are too distant from one another. Alternatively, even if user devices 16, 18 were in physical proximity, their proximity- based communications facilities could be blocked, for example by intervening structural iron in a building. In any case, ellipse 22 does not encompass user device 18.

Direct buddy embodiment

Reference is now made to Fig. 2, which is a flow chart of a method of proximity- based presence notification of social networking participants in accordance with a disclosed embodiment of the invention. The method is described with respect to an individual user device. However, in practice it is typically performed concurrently by a large number of user devices, for example the user devices shown in Fig. 1. The method determines, inter alia, whether a social relationship or connection exists between users of two wirelessly-enabled user devices that are in physical proximity to one another, the social relationship having been established using a buddy list taken from a common social networking service or web site. The method is typically performed by a client software application installed on each client device, as described hereinabove.

The method includes two portions: a buddy list download portion 25, and a proximity determination and alert portion 27. After portion 25 is performed a first time, the two portions of the method are typically performed generally in parallel with one another. Each portion is typically performed in an infinite loop so long as the client software application is running in the user device.

Buddy list download portion 25 begins at an initial step 28, at which the user device connects to the Internet. Next, at a social network access step 30, a social networking site is accessed over the Internet connection established at step 28. The user of the user device is a prior registrant of the social networking site. Then at download step 32, the user device downloads the user's buddy list from the social networking site (the buddy list typically comprises respective IDs of the buddy assigned by the social networking site, rather than the actual names of the buddies), as well as the user's own ID. For some applications, the user device downloads the buddy list by sending an HTTP request to the social networking site that requests the buddy list, and receiving the buddy list in response to the HTTP request. To the social networking site, the user device appears to be an Internet browser. The social networking site returns a Web page, which the user device parses the Web page to extract the buddy list information from the Web page. (Typically, the user device first logs into the social networking site using the user's ID and password for the site, using another HTTP request.) Alternatively, the user device utilizes an API offered by the social networking site that includes a method to receive the buddy list. For example, some social networking sites offer such an API to enable the development of third-party applications. Optionally, the buddy list includes additional

related information downloaded from the social networking sites, such as permissions associated with each buddy. Such permissions may define specific users or types of other users with whom the user is willing to communicate or share profile or other information, or to whom the user is willing to be visible. The list of permissions may comprise a list of exclusions. It is noted that there is no need for tight integration between the client software application running on the user device and the social networking application running on the social networking server.

It is not uncommon for the user of the user device to participate in multiple social networking sites. To accommodate this practice, control now proceeds to a decision step 34, where it is determined whether more social networking sites need to be contacted. If the determination at decision step 34 is affirmative, then control returns to step 30, and an additional buddy list is downloaded. If the determination at decision step 34 is negative, the current iteration of buddy list download portion 25 is complete. Alternatively, instead of downloading the buddy lists from multiple social networking sites in series, some or all of the social networking sites are accessed in parallel.

Buddy list download portion 25 is repeated sporadically when a connection to the

Internet is available. After portion 25 has been performed the first time, during subsequent performances of portion 25 the entire buddy list may be again downloaded, or only updates to the buddy list may be downloaded, such as if the social network's API supports such updating.

As mentioned above, typically buddy list download portion 25 is performed some time in advance of proximity detection. Once they are completed, it is not necessary that the user device or any other devices that may be in proximity to the user device be connected to the Internet. All subsequent steps can be effected using the proximity-based communications facilities of the devices.

Proximity determination and alert portion 27 is performed generally in parallel with buddy list download portion 25, as mentioned above. Portion 27 begins at a decision step 36, at which the client software application running in the user device determines whether another user device having a compatible proximity-based communications facility is within operational range.

If the determination at decision step 36 is negative, the client application software concludes that no other devices are within operational range of the user device, and the

method returns to the beginning of determination and alert portion 27, such that the portion is repeated in an infinite loop while the client software application is running in the user device.

If, on the other hand, the determination at decision step 36 is affirmative, then control proceeds to an ID information exchange step 40, at which a communications channel is established between the user device and the detected device using their proximity-based communications facilities. For some applications, establishing the communications channel includes establishing a session between the devices, while for other applications, the communications channel is sessionless. The user device and the detected device exchange identify information that enables at least one of the respective client software applications running in the devices to determine whether the users of the two devices are registered as buddies on the common social networking site, at step 44 described hereinbelow. For some applications, the user device transmits the user's social networking ID to the detected device via the proximity-based wireless communication facility. Optionally, the detected device also sends the buddy identifier of the other user to the user's device, such as if the detected device also generally simultaneously detected the user's device. For some applications, social networking site identifications and buddy lists are received by the user device from the detected device, and may even be mutually exchanged between the user device and the detected device. After completion of step 40, control proceeds to a buddy decision step 44, where at least one of the user device or detected device determines whether the users of the user device and detected device are buddies. For some applications, the detected device receives the user ID transmitted at step 40, and checks whether the ID is included in the buddy list of the user of the detected device, which was downloaded from the social networking site at download step 32. If the identifier is found on the list, the detected device determines that the two users are registered as buddies on the common social networking site.

If the determination at decision step 44 is affirmative, then control proceeds to an alert step 46. It is concluded that the users of the user device and the detected device are indeed buddies, and a private communication session may be established therebetween. Assuming that appropriate permissions have been set by the parties, a presence alert is issued to one or both of the users. Optionally, the detected device may be commanded to issue a presence alert to its user. Responsively to the alert, the users may decide to open a

direct communication channel between themselves, or to hold a face-to-face meeting. For example, the users may use the direct communication channel for chatting, sharing information and files, and/or playing a game. Control then returns to decision step 36.

If the determination at decision step 44 is negative, then it cannot be demonstrated that the users of the user device and the detected device have any connection or social relationship. No alerts are issued. Control returns directly to decision step 36.

Mutual Buddy Embodiment

Reference is now made to Fig. 3, which is a flow chart of a method of proximity- based presence notification of social networking participants in accordance with an alternate embodiment of the invention. This embodiment is similar to the first embodiment, except as described hereinbelow. Steps of the method not described hereinbelow are performed as the like numbered steps described hereinabove with reference to Fig. 2.

At ID information exchange step 40, in addition to transmitting the user's social networking ID, the user device transmits the entire buddy list of the user to the detected device. As mentioned above, the user device downloaded this buddy list from the social networking site at download step 32. At buddy decision step 44, the detected device checks whether the two users are buddies, as described hereinabove with reference to Fig.

2. If the determination at decision step 44 is affirmative, then control proceeds to step 46, as in the previous embodiment.

However, if the determination at decision step 44 is negative, then control proceeds to a mutual buddy decision step 48. At this step, the detected device determines whether the buddy lists of the user device and detected device have a buddy in common. This can be done by detecting an intersection of the sets of buddies in the two buddy lists. If the determination at mutual buddy decision step 48 is affirmative, then an indirect social relationship may exist between the users of the user device and the detected device, based on a common acquaintance. Control proceeds to step 46, and, assuming suitable permissions are set, a presence alert is issued to one or both of the users, and the two users may decide to open a direct communication channel between themselves, or hold a face-to-face meeting. For example, the two users may already be acquainted with one another, even though their buddy lists did not yet reflect this relationship.

Alternatively, the two users may not be acquainted with one another, but may wish to meet one another because of the identified mutual acquaintance.

After performing mutual buddy decision step 46, or if the determination at decision step 48 is negative, control returns to decision step 36. In an embodiment of the present invention, at ID information exchange step 40, in addition to transmitting the user's social networking ID, and instead of or in addition to transmitting the entire buddy list of the user, the user device transmits a list of attributes of the user downloaded by the user device from the social networking site at download step 32. For example, the attributes may include interests, age, gender, city of residence, and/or country of residence. Alternatively, the client software application infers interests based on one or more of the attributes. The detected device checks whether the two users share a common attribute (such as a common interest). This can be done by detecting an intersection of the set of attributes of the user of the user device, and a set of attributes of the user of the detected device, which is downloaded from the social networking site at download step 32. Alternatively, the detected device compares the attributes received from the user device to one or more criteria regarding desired attributes specified by the user of the detected device, either by specifying the criteria directly to the client software application running on the detected device, or via the social networking site. In either case, if a match is found, the users of the user device and the detected device may wish to become acquainted, based on their common attribute, such as common interest. Assuming suitable permissions are set, a presence alert is issued to one or both of the users. The presence alert may include an identification of the common attribute (e.g., the common interest), the ID of the other user, and/or a profile or other information about the other user. The two users may decide to communicate or physically meet, or request additional information before doing so.

For some applications, a standard representation is defined for attributes common to different social networking sites. The client software application translates attributes received in each specific social network's representation, e.g., using the network's API, to the standard representation. Use of such a standard representation enables attribute matching between members of different social networks who have common attributes, such as common interests. In particular, this technique may be useful for a dating application between members of different social networks, in which case the match is

between the common representation of each user's attributes and other user's specified target attributes.

In an embodiment of the present invention, in order to preserve the users' privacy, the methods of Fig. 2 or Fig. 3 are performed without transmitting the real social network IDs of the users or their buddy lists. Instead, the client software applications apply a oneway function to the IDs, and the devices share the output values of the one-way function at ID information exchange step 40, and perform the comparison(s) at buddy decision step 44 between the output values of the one-way function rather than the IDs themselves. Because the function is one-way, neither the devices nor any other devices that may be in proximity are able to derive the actual IDs from the output values of the function (unless the device already knows the ID, in which case the device determines the ID based on the output value by performing a reverse look-up). As a result, specific user IDs are not sent between users, and anonymity regarding the social network is maintained. For some applications, the one-way function comprises a one-way cryptographic hash function, such as a Secure Hash Algorithm (SHA) function, e.g., SHA-I or SHA-O, or MD-5. The use of a hash function ensures that the probability of a collision of values is low, so that there is a negligible likelihood of users mistakenly identifying one another as buddies based on the hash values.

In this embodiment, at ID information exchange step 40 of the method of Fig. 2, the user device applies the one-way function to the social networking ID of the user, and transmits the output value to the detected device. At buddy decision step 44, the detected device applies the same one-way function to the IDs on the buddy list the detected device downloaded at download step 32, and compares the received output value to the output values of the IDs on the buddy list to determine whether there is a match. Alternatively, the user device and/or the detected device apply the one-way functions to the IDs beforehand, such as during buddy list download portion 25 of the method.

Similarly, in this embodiment, at ID information exchange step 40 of the method of Fig. 3, the user device applies the one-way function to the social networking IDs of the user and the IDs of the users on the user's buddy list, and transmits the output values to the detected device. At buddy decision step 44, the detected device applies the same oneway function to the IDs on the buddy list the detected device downloaded at download step 32, and compares the received output value to the output values of the IDs in the buddy list to determine whether there is a match. At mutual buddy decision step 48, the

detected device applies the same one-way function to the IDs on the buddy list the detected device downloaded at download step 32, checks for overlap between the output values and the output values received from the user device. Alternatively, the user device and/or the detected device apply the one-way functions to the IDs beforehand, such as during buddy list download portion 25 of the method.

Furthermore, in this embodiment, the user device may apply the one-way function to the attributes, such as interests, of the user of the user device, and transmits the output values to the detected device.

In an embodiment of the present invention, the proximity-based matching service described herein is offered by an Internet social networking site that desires to increase its popularity, or by a mobile communication network that desires to increase its revenues by attracting clients or increasing the number of calls placed by buddies communicating with one another. The service may be offered for a one-time or a monthly fee, or for a per- buddy-found fee. The service may be offered by commercial entities placing communication devices at their locations such that users who approach their locations and have an interest in their goods or services are notified. The service may generate revenues from advertisements, for example targeted advertisement based on location, attributes and/or interests (as expressed in the user profile), intersection of interests between a user and his/her nearby buddies, and/or location. As used in the present application, including in the claims, a user's "buddy list" is a list of people ("buddies"), or identifiers (IDs) of such people, with whom the user has some type of relationship. The buddies may be friends, coworkers, professional contacts, or other acquaintances.

It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications thereof that are not in the prior art, which would occur to persons skilled in the art upon reading the foregoing description.