Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

Techniques are described for providing location-based information and
functionality to people and computing devices in various ways. In at
least some situations, the techniques include enabling multiple people in
a common geographic area to interact in various ways, such as via devices
capable of communications (e.g., cellular telephones, computing devices
with wired and/or wireless communications capabilities, etc.), while in
other situations at least some users who are remote from a particular
geographic area may be allowed to inter-communicate with one or more
other users or other entities in or related to that geographic area. In
addition, the techniques include enabling the creation and maintenance of
location-based virtual groups of users (also referred to as "clouds"),
such as for users of mobile and/or fixed-location devices. Such clouds
may enable various types of interactions between group members, and may
be temporary and/or mobile.

Claims:

1. A computer-implemented method comprising: receiving, by one or more
configured computing systems, an indication of a location-based virtual
group of users that has one or more associated geographical areas and one
or more associated interaction rules related to allowable types of user
activities; determining, by the one or more configured computing systems,
multiple users to participate in the virtual group, at least some of the
multiple users having current geographical locations within the one or
more associated geographical areas of the virtual group, the determining
of one or more of the multiple users being made in response to requests
received from the one or more users; and enabling, by the one or more
configured computing systems, communications for the virtual group with
communication-capable devices of the multiple users in accordance with
the interaction rules.

2. The method of claim 1 wherein the receiving of the indication of the
location-based virtual group includes receiving definition information
for the virtual group from an administrator user for the virtual group.

3. The method of claim 2 wherein the administrator user represents a
commercial entity that provides services to the multiple users via the
virtual group.

4. The method of claim 2 wherein the administrator user is one of the
multiple users of the virtual group.

5. The method of claim 1 wherein the receiving of the indication of the
location-based virtual group is based at least in part on activities of
at least one of the multiple users related to the one or more associated
geographical areas.

6. The method of claim 5 wherein the activities of the at least user
include indicating a check-in for at least one commercial entity located
within the one or more associated geographical areas.

7. The method of claim 5 wherein the activities of the at least one user
include indicating a tag corresponding to the virtual group for a
location that is at least part of the one or more associated geographical
areas.

8. The method of claim 5 wherein the receiving of the indication of the
location-based virtual group includes adding at least one of the one or
more associated geographical areas to the virtual group based at least in
part on the activities of the at least one user.

9. The method of claim 1 wherein the one or more configured computing
systems are under control of a commercial entity that provides services
to the multiple users via the virtual group.

10. The method of claim 1 further comprising: determining an additional
user to participate in the virtual group who has a geographical location
outside the one or more associated geographical areas of the virtual
group; and enabling the determined additional user to participate in the
communications for the virtual group while the geographical location of
the determined additional user is outside the one or more associated
geographical areas of the virtual group.

11. The method of claim 10 wherein the determining of the additional user
to participate in the virtual group is based on a request received from
the additional user to join the virtual group.

12. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes selecting the multiple users
based on the multiple users entering the one or more associated
geographical areas of the virtual group.

13. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes sending notifications to a
plurality of users who enter the one or more associated geographical
areas of the virtual group, the plurality of users including the at least
some users, and receiving indications from the at least some users to
join the virtual group.

14. The method of claim 1 wherein the requests received from the one or
more users include indications from each of the one or more users of a
physical check-in of that user at a location within the one or more
associated geographical areas of the virtual group.

15. The method of claim 14 wherein the virtual group includes multiple
distinct business locations, and wherein the one or more users each join
the virtual group by performing the physical check-in at any one of the
multiple business locations.

16. The method of claim 14 wherein the virtual group includes multiple
distinct business locations, and wherein the one or more associated
geographical areas for the virtual group include multiple non-contiguous
geographical areas that are each associated with one of the multiple
business locations.

17. The method of claim 1 wherein the requests received from the one or
more users include indications from each of the one or more users of a
virtual check-in of that user at a location within the one or more
associated geographical areas of the virtual group while that user is
remote from that location.

18. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes receiving an indication that
one of the multiple users has agreed to join the virtual group in
response to an invitation issued by another user who is already part of
the virtual group.

19. The method of claim 1 wherein the requests received from the one or
more users include a request from each of the one or more users to
establish a trusted friend relationship with another user who is already
part of the virtual group.

20. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes taking one or more actions
to initiate admission of the multiple users to the virtual group.

21. The method of claim 20 wherein at least some of the
communication-capable devices of the multiple users are mobile devices,
and wherein the determining of the multiple users to participate in the
virtual group further includes receiving information regarding the
geographical locations of the multiple users from the
communication-capable devices of the multiple users, and automatically
determining that the multiple users are eligible to participate in the
virtual group based at least in part on the received information.

22. The method of claim 20 wherein the taking of the one or more actions
to initiate admission of the multiple users to the virtual group
includes, for at least one of the multiple users, automatically admitting
the user to the virtual group without receiving a request from the at
least one user to join the virtual group.

23. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes, for at least one of the
multiple users, automatically determining that attributes of the user
satisfy specified admission criteria for the virtual group.

24. The method of claim 1 wherein the request received from one of the
one or more users includes a location specified by the one user that is
within the one or more associated geographical areas of the virtual
group.

25. The method of claim 1 wherein the location-based virtual group of
users is a temporary virtual group.

26. The method of claim 25 further comprising terminating the temporary
virtual group, and continuing to provide at least some functionality of
the temporary virtual group to the multiple users after the terminating.

27. The method of claim 1 further comprising terminating the virtual
group based on at least one of voting by the multiple users and of a
period of inactivity of a specified type by users of the virtual group
that lasts for at least a specified minimum amount of time.

28. The method of claim 1 further comprising, while the determined
multiple users are participating in the virtual group, modifying the one
or more associated geographical areas of the virtual group.

29. The method of claim 28 wherein the one or more associated
geographical areas of the virtual group are based on at least one anchor
point for the virtual group, and wherein the modifying of the one or more
associated geographical areas of the virtual group is based on changes in
a geographical location of one or more of the at least one anchor points.

30. The method of claim 29 wherein the at least one anchor point for the
virtual group includes multiple business locations, and wherein the
changes in the geographical location of the one or more anchor points are
based on a modification of which business locations are included in the
at least one anchor points.

31. The method of claim 28 further comprising automatically updating the
users who participate in the virtual group based on the modified one or
more associated geographical areas of the virtual group.

32. The method of claim 1 further comprising, for each of at least one of
the multiple users, providing information to the user that indicates a
plurality of location-based virtual groups, and enabling simultaneous
participation of the user in each of multiple of the plurality of
location-based virtual groups.

33. The method of claim 1 wherein the allowable types of user activities
are specified by the one or more associated interaction rules and
indicate one or more actions allowed for a user of the virtual group that
include at least one of: revealing personal details to one or more other
users of the virtual group, revealing a physical location of the user to
one or more other users of the virtual group, viewing at least one of
personal details and of physical locations of other users of the virtual
group only if at least one of personal details and of a physical location
of the user are available to those other users, sending electronic
communications to at least one of the other users of the virtual group,
blocking communications from at least one of the other users of the
virtual group, making electronic communications available to all other
users of the virtual group, initiating creation of a bi-directional
trusted friend relationship with another user of the virtual group by
requesting that the another user agree to link to the user, creating a
uni-directional bookmark relationship to another user of the virtual
group, and allowing the user to invite other users to join the virtual
group.

34. The method of claim 33 wherein the allowable types of user activities
further indicate one or more additional types of actions allowed for a
user that is a former participant in the virtual group that include at
least one of: communicating with users who are participants in the
virtual group, and viewing information regarding interactions between
users of the virtual group.

35. The method of claim 33 wherein the indicated one or more actions are
further allowed for a user that is a former participant in the virtual
group.

36. The method of claim 1 wherein the communications for the virtual
group include information provided by at least one of the multiple users,
the information including at least one of user recommendations, user
preferences, user ratings, user comments, video, photos, and images.

37. The method of claim 1 further comprising receiving information
provided by at least some of the multiple users, the information
including at least one of user recommendations, user preferences, user
ratings, user comments, video, photos, and images, and generating shared
content for the virtual group that includes the provided information and
is accessible to the multiple users.

38. The method of claim 1 further comprising restricting information that
is made available to the multiple users for the virtual group based at
least in part on one or more filter criteria associated with the virtual
group.

39. The method of claim 1 wherein the virtual group is associated with
one or more business locations, and wherein the communications for the
virtual group include one or more offers corresponding to at least one of
the one or more business locations that are provided to the multiple
users of the virtual group.

40. The method of claim 1 wherein the virtual group is associated with
one or more business locations, and wherein the communications for the
virtual group include one or more orders made to at least one of the one
or more business locations by at least one of the multiple users of the
virtual group.

41. The method of claim 1 wherein the communications for the virtual
group include one or more notifications provided to at least one of the
multiple users, the one or more notifications including one or more
indications of at least one of a new offer available to the multiple
users, a new user that has joined the virtual group, a new trending event
that is identified involving actions of two or more of the multiple
users, new content this is provided by one of the multiple users, a
current location of a notified one of the multiple users corresponding to
a specified location of interest, and a determined pattern of interest
for the virtual group.

42. The method of claim 1 wherein the determining of the multiple users
to participate in the virtual group includes selecting users who share
one or more attributes associated with the virtual group.

43. The method of claim 42 wherein the shared one or more attributes
associated with the virtual group include activities performed together
by the selected users.

44. The method of claim 42 wherein the virtual group further has one or
more associated effective times, and wherein the shared one or more
attributes associated with the virtual group correspond to attributes
that exist during the one or more associated effective times.

45. The method of claim 1 further comprising, for one of the multiple
users, determining to remove the one user from the virtual group based at
least in part on the one user not performing a specified type of activity
during a prior period of time.

46. The method of claim 1 further comprising providing points to at least
one of the multiple users based on activities of the at least one user,
and providing one or more benefits to the at least one user for the
virtual group based at least in part on a quantity of the points provided
to the at least one user.

47. The method of claim 46 wherein the virtual group is associated with
one or more business locations, and wherein the activities of the at
least one user are based on interactions of the at least one user with at
least one of the one or more business locations.

48. The method of claim 46 further comprising determining to remove at
least some of the points provided to one of the at least one users based
at least in part on the one user not performing a specified type of
activity during a prior period of time, and removing at least one of the
provided one or more benefits from the one user based at least in part on
the removing of the at least some points.

49. The method of claim 1 further comprising determining information
related to the multiple users, and providing the determined information
to one or more recipients.

50. The method of claim 49 wherein the determining of the information
related to the multiple users includes analyzing patterns corresponding
to activities of the multiple users, and wherein the one or more
recipients include are not members of the virtual group.

51. The method of claim 1 wherein the enabling of the communications for
the virtual group includes receiving at least some of the communications
and forwarding the received at least some communications to at least some
of the communication-capable devices.

52. The method of claim 1 wherein the enabling of the communications for
the virtual group includes providing information to at least one of the
multiple users to enable the at least one user to initiate communications
to other of the multiple users.

53. The method of claim 1 wherein each of the multiple users has at least
one of the communication-capable devices, and wherein the one or more
configured computing systems are one or more of the communication-capable
devices.

54. A non-transitory computer-readable medium whose contents configure a
computing device to perform a method, the method comprising: receiving,
by the configured computing device, an indication of a location-based
virtual group having one or more associated geographical areas and one or
more associated user interaction rules; determining, by the configured
computing device, multiple users to participate in the virtual group, the
determining of one or more of the multiple users being made in response
to requests received from the one or more users; and enabling, by the
configured computing device, communications for the virtual group with
communication-capable devices of the multiple users.

55. The non-transitory computer-readable medium of claim 54 wherein the
associated user interaction rules for the virtual group indicate
allowable types of user activities corresponding to the communications
for the virtual group, wherein the computer-readable medium is a memory
of the configured computing device, and wherein the contents are
instructions that when executed program the configured computing device
to perform the method.

56. The non-transitory computer-readable medium of claim 54 wherein the
determining of the multiple users includes selecting at least some of the
multiple users based at least in part on the at least some users having
geographical locations at one or more times within the one or more
associated geographical areas of the virtual group.

57. A configured computing system comprising: one or more processors; and
a first component configured to, when executed by at least one of the one
or more processors, facilitate functionality for a location-based virtual
group by: receiving one or more indications of one or more associated
geographical areas for the virtual group and of one or more associated
user interaction rules for the virtual group; determining multiple users
to participate in the virtual group, the determining of one or more of
the multiple users being made in response to requests received from the
one or more users; and enabling communications for the virtual group with
communication-capable devices of the multiple users.

58. The computing system of claim 57 wherein the associated user
interaction rules for the virtual group indicate allowable types of user
activities corresponding to the communications for the virtual group, and
wherein the component includes software instructions for execution by the
one or more processors.

59. The computing system of claim 57 wherein the determining of the
multiple users includes selecting at least some of the multiple users
based at least in part on the at least some users having geographical
locations at one or more times within the one or more associated
geographical areas of the virtual group.

60. The computing system of claim 57 wherein the first component consists
of one or more means for performing the facilitating of the functionality
for the location-based virtual group.

Description:

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation-in-part of co-pending U.S.
application Ser. No. 12/950,709, filed Nov. 19, 2010 and entitled
"Facilitating User Interactions Based On Proximity," which is hereby
incorporated herein by reference in its entirety and which is a
continuation of U.S. application Ser. No. 11/697,617, filed Apr. 6, 2007
and entitled "Facilitating User Interactions Based On Proximity," now
U.S. Pat. No. 7,840,224. U.S. application Ser. No. 11/697,617 claims the
benefit of provisional U.S. Patent Application No. 60/790,276, filed Apr.
7, 2006 and entitled "A Model For Proximity-Based User Interaction,"
which is hereby incorporated by reference in its entirety.

[0002] This application claims the benefit of provisional U.S. Patent
Application No. 61/451,521, filed Mar. 10, 2011 and entitled
"Proximity-Related User Groups," which is hereby incorporated by
reference in its entirety.

TECHNICAL FIELD

[0003] The following disclosure relates generally to techniques for
facilitating user interactions based on physical locations of interest,
such as to provide functionality to location-based virtual groups of
users.

BACKGROUND

[0004] There are many situations in which people would benefit from
receiving information based on their geographic location, such as to
obtain information about businesses near the geographic location and/or
to interact with other people near the geographic location. This is
particularly true when people are mobile, such as traveling or otherwise
changing their current geographic location. Unfortunately, existing
techniques for providing location-based information and functionality to
people suffer from numerous problems.

BRIEF DESCRIPTION OF THE DRAWINGS

[0005] FIG. 1A is a network diagram illustrating interactions between
various devices and systems located in various geographic locations.

[0006] FIGS. 1B-1F illustrate examples of providing location-based
information and functionality to a user via an example graphical user
interface displayed on a mobile device of the user.

[0008]FIG. 3 is a block diagram illustrating a computing system suitable
for executing an embodiment of the described Cloud Management system.

[0009] FIG. 4 is a flow diagram of an example embodiment of a Cloud
Management routine.

[0010] FIG. 5 is a flow diagram of an example embodiment of a Cloud
Participation routine.

DETAILED DESCRIPTION

[0011] Techniques are described for providing location-based information
and functionality to people and computing devices in various ways. In at
least some embodiments, the techniques include enabling multiple people
in a common geographic area to interact in various ways. For example, if
each of the people is a user of one or more devices capable of
communications (e.g., cellular telephones, computing devices with wired
and/or wireless communications capabilities, etc.), the users may be
allowed to inter-communicate via their communication-capable devices in
various ways. Furthermore, in at least some embodiments, some or all such
users in a particular geographic area may further be allowed to
inter-communicate with one or more entities in or related to the
geographic area, such as one or more businesses. In addition, in at least
some embodiments, users who are remote from a particular geographic area
may be allowed to inter-communicate with one or more other users or other
entities (e.g., one or more businesses) in or related to that geographic
area in one or more manners, or to otherwise access information and/or
functionality associated with that geographic area or with such other
uses or other entities, as discussed in greater detail below.

[0012] In at least some embodiments, the techniques for providing
location-based information and functionality to people and computing
devices include enabling the creation and maintenance of location-based
virtual groups of users, such as for users of mobile and/or
fixed-location devices. The location-based virtual groups, also referred
to as "clouds" herein, may enable various types of interactions between
group members in various embodiments, as described in greater detail
below. In some embodiments, the clouds may be temporary, such as to exist
for only days, hours, or minutes. Furthermore, in at least some
embodiments, clouds may be mobile, such as to move with one or more
people, objects, or other entities. In addition, in at least some
embodiments, users in various geographical locations may be members of a
particular cloud and/or may be allowed to access various functionality
associated with that cloud. Additional details related to such clouds are
included below. In addition, in at least some embodiments, the described
techniques are automatically performed by an embodiment of a Cloud
Management system, as described in greater detail below.

[0013] In at least some embodiments, the communication-capable devices of
the users include networked devices capable of communicating with other
networked devices, whether via wireless or wired protocols. Furthermore,
in at least some such embodiments, an arbitrary set of networked device
users is enabled to join a cloud in which they may interact in a
specified fashion, such as based on software executing on the networked
devices or hardware embedded in the networked devices, and/or via one or
more central server computing systems that interact with the networked
devices. In various embodiments, the networked devices communicate their
locations and optionally other information (e.g., user-entered pass
codes) to a central server, and the central server uses this transmitted
information as well as other information (e.g., personal profile
information about the users of the devices, current time, cloud
configuration, etc.) to determine whether a particular user is admitted
to any of the various clouds it manages. Furthermore, in at least some
embodiments, a cloud is "anchored" to one or more specific point
locations (e.g., one or more latitude, longitude, altitude coordinates or
other designations of a geographic location) and/or one or more entities
(one or more people, buildings, vehicles, business locations, etc.),
referred to as the cloud's anchor(s). A user may participate in any
number of clouds simultaneously in at least some embodiments, including
one or more clouds for which the user's current location is inside those
clouds' boundaries and/or one or more clouds for which the user's current
location is outside those clouds' boundaries.

[0014] FIG. 1A is a network diagram illustrating example interactions
between various devices and systems located in various geographic
locations. The illustrated example includes one or more central server
systems 100 operated by an entity (not shown) to provide cloud management
functionality (e.g., as a business, such as for profit). In this example,
various mobile communication capable client devices 115 and
fixed-location communication-capable client devices 120 are able to
communicate with the central server(s), as are one or more devices 130
used by cloud administrator users who may configure and manipulate
clouds. In this example, two or more communication-capable devices are
co-located in a common geographic area, and are participating in a
location-based cloud 125a corresponding to that geographic area on behalf
of their users (not shown). The devices in the cloud may include one or
more mobile communication capable client devices 115a and/or one or more
fixed-location communication-capable client devices 120a. The devices of
the cloud and their users may interact in various ways, including by
sending communications to each other via the central server system(s)
and/or directly between each other. In addition, in at least some
embodiments, the geographic area corresponding to the location-based
cloud 125a may have other forms than is illustrated in this example
(e.g., different shapes, such as to not be a regularly shaped polygon
and/or regular closed curve shape, including in some situations and
embodiments to have multiple non-contiguous or otherwise non-overlapping
disjunct geographic areas for a single location-based cloud).
Furthermore, in at least some embodiments, one or more other additional
communication-capable devices that are not physically present in the
geographic area of the location-based cloud 125a may nonetheless
optionally participate in the location-based cloud 125a, including to
exchange information with one or more of the devices 115a and/or 120a. In
this example embodiment, the additional remote communication-capable
devices that are participating in the location-based cloud 125a each is
illustrated as having a virtual presence 135 within the location-based
cloud 125a, although the actual physical presence of those devices is
elsewhere (e.g., is one or more of the devices 115b and/or 120b). As
described in greater detail elsewhere, such additional remote
communication-capable devices may represent various types of devices,
such as for devices that were previously physically present in the
geographic area of the location-based cloud 125a but that are no longer
there, devices that have joined the location-based cloud 125a by checking
in or otherwise joining from a remote location (e.g., optionally without
ever being physically present in the geographic area of the
location-based cloud 125a), etc.

[0015] For illustrative purposes, some embodiments are described below in
which specific types of users and devices interact in specific manners as
part of specific types of clouds, such as to obtain specific types of
functionality coordinated by one or more cloud management systems
provided by one or more central servers. These examples are provided for
illustrative purposes and are simplified for the sake of brevity, and the
inventive techniques can be used in a wide variety of other situations,
some of which are discussed below.

[0016] In some embodiments, one or more people may act as a cloud
administrator for a cloud. Such person(s) may, for example, establish a
geographical boundary for the cloud, and may further define various
configuration information for the cloud. Such configuration information
may include, for example, one or more of the following: establishing
optional admission criteria for the cloud to specify which users are
allowed to join the cloud, such that a user physically present within the
geographical boundary may be allowed to join the cloud and/or that a user
that performs one or more specified actions may be allowed to join the
cloud, such as actions that may include the user remotely requesting to
join the cloud, the user providing a pass code established by the
administrator or in another manner, etc.; establishing optional
termination criteria to determine when a temporary cloud will end, such
as a specific start and end date/time for the cloud, after a specified
amount of time without a specified amount and/or type of cloud member
activity (e.g., any user check-ins or other activity for a specified
period of time), or after other specified types of cloud member
activities do occur (e.g., after a specified amount of the cloud members
vote to terminate the cloud, such as a majority or all members); etc. In
addition, the administrator may also establish rules of interaction among
users who are members of a cloud, and can dissolve the cloud manually if
desired (e.g., if there is no end date/time set for the cloud or the
administrator wishes to terminate the cloud before the established end
date/time). An administrator may also in some embodiments transfer
administrator status to or share administrator status with another user
or users in the cloud or a designated agent who is not in the cloud. In
the case of shared administrator status, all users designated as
administrators generally have full administrative control over the cloud,
except that there may be some limitations on administrator privileges for
administrators other than the original administrator, e.g., a secondary
administrator may not be able to disable the administrative privileges of
the original administrator, may not be able to terminate the cloud
without approval of the original administrator, etc.

[0017] A cloud administrator may choose to participate in the cloud or not
participate, i.e., he or she could define the cloud but never actually
join it. Thus, as one example, a cloud administrator for a cloud virtual
group may be one of multiple users in the cloud (e.g., a user who creates
the cloud and then joins it). As another example, a cloud administrator
for a cloud virtual group may be a user or other entity (e.g., a business
or other organization) with one or more associated physical locations,
such as for the cloud to include those physical locations (and optionally
additional areas)--if the entity is a business, the cloud administrator
may, for example, use the cloud to provide offers for the business to
users in the cloud who are potential or actual customers of the business,
or otherwise provide business-related functionality to such customers.
The administrator may in some embodiments and situations specify a fee
that each user must pay in order to join the cloud. The fee may vary
among users, depending on, for example, a user's status or location,
e.g., users who are already inside a venue or the first N users to join
the cloud may not have to pay to join an associated cloud; alternatively,
the administrator may choose to manually apply various fee levels to
specific users or groups of users. In various embodiments, the
administrator(s) can monitor or otherwise view information about cloud
activity, e.g., the number of users who have joined and/or exited, the
number of conversations in progress, etc. both during the cloud's
existence and after its termination. A record or log of all or some cloud
activities (e.g., user actions) could be provided (either while the cloud
is in progress or afterward or both) to some or all users who
participated in a cloud.

[0018] A non-exclusive list of example forms of user interaction rules
inside a cloud is as follows: (a) a user may reveal personal details to
all or a subset of the other users participating in the cloud, e.g., at a
professional conference, a user participating in a cloud associated with
the conference may choose to reveal his professional history, his current
company and position and a set of positions he is hiring for; (b) a user
may only be able to view others' personal details if he reveals his own
details; (c) a user may send or broadcast messages or other content
consisting of text (e.g., recommendations of particular indicated
businesses or other things), video, photos and other images, indications
of the user's preferences or ratings (e.g., "likes" or "dislikes" of
other particular content or other indicated things), or any other content
transmittable over an electronic network, to other individual users or
groups of users within the cloud (e.g., to all cloud members); (d) a user
may block messages from any user or all users; (e) users may post
messages to all users in the cloud, optionally at some
administrator-specified maximum frequency; (f) users may request that
another user agree to link as a "friend," which is a bidirectional
mutually agreed-upon trust relationship that transcends the duration of
the cloud and may provide access to information and capabilities that are
not granted to other members of the cloud; (g) users may "bookmark" other
users, which creates a unidirectional relationship from the first
(bookmarking) user to the second (bookmarked) user, without explicit
approval of the second user; (g) users may reveal their physical
locations to either individuals or to all users in the cloud; the ability
to see the physical location of other users may or may not require that a
user reciprocally reveal his physical location; (i) users who have been
invited to join a cloud but who have not yet joined may be able to
communicate with participants within the cloud and/or see activity
information associated with a cloud during and after the cloud's
lifetime; and (j) a user may or may not be enabled to invite other users
to join the cloud. In at least some embodiments, any capabilities that
are available to users who have previously joined a cloud and continue to
be members of the cloud are available to any such users, regardless of
whether the physical location of the user is currently within the
geographical boundaries of the cloud, while in other embodiments some
capabilities for members of a cloud may vary such that cloud members
currently within the cloud's geographical boundaries receive access to
some capabilities that are not available to cloud members who are not
currently within the cloud's geographical boundaries. In at least some
embodiments, any capabilities that are available to users who are
currently members of a cloud virtual group are also available to users
who were previously members but are not currently members, while in other
embodiments the users who were previously but not currently members may
have access to different capabilities than current members (e.g., a
subset of the capabilities available to current members). The messages
and other content that may be shared between or otherwise available to
current and/or former members of a cloud virtual group may have various
forms in various embodiments, including to have shared content that is
available to all cloud members (e.g., joint content that is an
aggregation of content supplied by some or all cloud members, such as to
have a virtual shared camera that includes photos posted by any of the
cloud members), and/or content that satisfies one or more specified
filter criteria associated with the cloud virtual group, such as
time-based or with respect to any other indicated attribute--for example,
a user who is a member of a cloud may in some embodiments (and optionally
subject to the cloud's defined interaction rules) post content, edit
content posted by others, target content to particular group members,
invite other users to join the group, etc. A user who is a member of a
cloud may thus access various types of cloud-specific functionality, such
as content posted for the cloud, recommendations or ratings of a
specified type by other members of the cloud, etc. A user who is a member
of a cloud may also in some embodiments earn points for performing
various activities, with such points then providing various types of
benefits for the user (e.g., achieving various enhanced levels within
that cloud or more generally within any clouds to which the user belongs,
which have corresponding benefits), as discussed in greater detail below.

[0019] As an example of case (i), if a cloud were initiated for a party at
John's home, Frank (a user who was invited to the party and given the
pass code to join the cloud but who has not yet left home to go to the
party) can see who is already at the party, as well as potentially other
activity information (e.g., communications to some or all users in the
cloud). In some embodiments, Frank may further proceed to join the party
cloud before he has left his home, so as to optionally obtain access to
further cloud-related functionality before physically arriving at the
location of the party.

[0020] In various embodiments, a cloud itself is mobile. If the cloud's
anchor (described earlier) moves, the cloud also moves. The cloud's
anchor point/entity, shape and size may be specified in various manners
(e.g., by the cloud administrator), and in at least some embodiments may
be altered by the administrator at any time. As one illustrative example,
a teacher plans to take 27 children on a walking field trip. He equips
each child with a school-provided inexpensive wireless networked device
(with the appropriate software or hardware) before departure. The teacher
establishes a circular cloud, anchored on him, and specifies a cloud
radius large enough that the children should not be more than that
distance away throughout the field trip. Before departing, the teacher
asks all the children to gather within the perimeter and admits them all
to the cloud. As the field trip progresses, if any child leaves the
boundary of the cloud, the teacher is alerted. In addition, in some
embodiments and situations, multiple distinct geographical areas may each
be specified to be part of a single cloud (e.g., multiple distinct stores
that are part of a single company or that are otherwise affiliated, such
that the geographical boundary of the cloud includes non-contiguous or
otherwise non-overlapping areas around each of the stores), thus enabling
the user to be within the geographical boundaries of the cloud when the
user is in any of those geographical areas.

[0021] In order to prevent frequent unnecessary alerts, various techniques
may be employed to reduce "noise" at the boundary of the cloud due to
users drifting in and out of the cloud, such as inadvertently (either
because they are legitimately briefly exiting and re-entering the cloud
or because of occasional errors in location determination on a user's
device). One simple example technique to address this issue is to apply
spatial and/or temporal hysteresis to the locations of some or all cloud
participants with respect to the cloud boundary. In the case of temporal
hysteresis, the user would need to be outside the cloud boundary for some
minimum amount of time before he was identified as having exited the
cloud. In the case of spatial hysteresis, the cloud participant would
need to be beyond the boundary of the cloud (computed as shortest
distance to the boundary) by at least a minimum distance before he would
be identified as having exited the cloud.

[0022] In various embodiments, a cloud may be used for commercial
purposes, in which case the administrator may pay a fee (which may be a
fixed amount, a share of revenue based on activities that occur within
the cloud, a function of the number of users who are targeted to join the
cloud and/or who actually join the cloud, or some other function) or
provide some other consideration in order to use the cloud mechanism for
commercial purposes. For example, a company like ESPN may wish to create
a cloud at a specific sporting event, e.g., a Seattle Seahawks game, in
order to offer a real-time sports information service to users attending
the game. In some commercial-use embodiments, the administrator will have
the option of being the only user enabled to post messages to all users
or to any subset of the users in the cloud. As another example, a museum
could establish a cloud around the entire space of the facility and thus
allow anyone who entered the facility to join the cloud. Participants in
the cloud would then receive location-sensitive guidance and information
about works of art, e.g., when a user is standing in front of a specific
painting, his networked device would receive information about that
painting. While in some situations a particular company or other entity
may operate a Cloud Management system embodiment to manage one or more
clouds for itself (e.g., corresponding to one or more retail outlets or
locations of the company), in other embodiments an operator of a Cloud
Management system embodiment manages clouds corresponding to various
other companies or other entities, such as other companies or entities
that are affiliated in some manner with the Cloud Management system
operator (e.g., a company who pays a fee to the system operator for
managing corresponding cloud functionality at one or more retail
locations of the company) or instead that are unaffiliated with the Cloud
Management system operator (e.g., a company who is unaware of or
otherwise unaffiliated with a cloud provided at one or more retail
locations of the company). When a cloud is associated with one or more
locations of a particular company or other entity, various additional
functionality may be provided to users who are members of the cloud,
including the following non-exclusive list: to enable commercial offers
to be provided to some or all cloud members (e.g., to members that opt
in), such as offers from the associated company or other entity for the
cloud, or instead from a third-party operator of the Cloud Management
system (whether offers originated from the Cloud Management system
operator, or offers that are originated by other companies and entities
and provided to cloud members by the Cloud Management system operator);
to enable points to be provided to cloud members based on interactions
with the company (e.g., purchases made from the company), with the points
being issued by the Cloud Management system operator and/or by the
associated company for the cloud; etc. In situations in which a company
or other entity makes an offer to cloud members, whether or not the cloud
is associated with that company or other entity, the company or other
entity may in some embodiments pay a fee to the Cloud Management system
operator corresponding to the offer, such as one or more of a flat fee
for making the offer, a fee for making the offer that varies with the
number of cloud members to which the offer is made and/or in accordance
with one or more other attributes of those cloud members, a fee based on
the offers that are accepted by cloud members, etc.

[0023] In yet another example, a cloud may be established within the
physical boundaries of a restaurant, bar or similar establishment
(whether by that company or by a third-party Cloud Management system
operator) and allow customers who join the cloud to place orders for
food, drinks, etc. or make other requests of the establishment's staff.
The ordering customer's message and his location are transmitted from the
mobile device to a server and then to a client device (either another
mobile device, a PC or other networked device) managed by the
establishment. The human server then responds to the request (which could
include sending messages to the user's mobile device) and uses the
location information accompanying the request message to determine the
appropriate customer to service. Furthermore, if a user who is a member
of the cloud is not physically located within the cloud boundaries, the
user may still in some embodiments and situations be able to place such
orders for food, drinks or other items, such as for delivery to another
person who is physically located within the cloud boundaries (e.g., to
enable a remote purchase of a drink for one or more friends or other
people at the location, such as for other cloud members), as a pre-order
for when the user arrives at the physical location of the cloud, etc.
Thus, certain establishments, e.g., coffee shops, could allow customers
who are cloud members to place their order from a remote location or to
pre-specify their order (such that when the customer arrives within the
cloud boundary, the order is placed), so that the food/drink/etc.
preparation process can begin before the customer arrives at the
point-of-sale location. This provides for ordering that (a) is extremely
likely to be consummated with payment by the customer, if payment is not
already made at the time of order placement, and (b) allows for
appropriate preparation timing (e.g., for a hot drink). As another
example, a pizza delivery establishment with multiple delivery outlets
could create a cloud encompassing their delivery area. Users within the
delivery area could order pizza from a mobile device and the pizza
delivery company would route the order to the nearest delivery outlet for
processing, with orders from outside the delivery area optionally not
being allowed. Thus, it will be appreciated that a business-related
clouds may be used by a user or other entity that operates the business
to provide a wide variety of business-related functionality to customers
that are members of the cloud virtual group, including for current,
former and/or potential future customers, and including for customers
that are currently located, previously located and/or potentially future
located at one or more physical locations of the business that are
associated with the cloud.

[0024] In various embodiments and situations, there is no cloud
administrator for a particular cloud. In this case, a set of default
rules, specified by a central server of the Cloud Management system or by
the device user or a combination of the two, will apply to the user
interactions in the cloud. This type of cloud is known as an "ad hoc
cloud" and is established when two or more networked location-aware
devices come within a pre-defined range (specified by the device users or
centrally) of each other and are configured to participate in ad hoc
clouds. The configuration can be controlled by the device user such that
(a) he can specify whether he must approve the joining of an ad hoc
cloud; (b) only ad hoc clouds meeting certain criteria are surfaced to
the user, e.g., based on the personal characteristics of the second
device owner (e.g., gender, single/married, is the other person already
linked as a friend, physical characteristics such as age, height, weight,
etc., general location of residence, job type, religious beliefs, etc.);
(c) he can specify the maximum number of people allowed in an ad hoc
cloud in which he is participating (which will both stop others from
joining a cloud for which he is already a member and the maximum number
of participants has been reached, and stop him from joining another cloud
if that cloud already has greater than or equal to the maximum number of
cloud users he has specified). Such configuration information is sent
from the client device to a central server of the Cloud Management
system. In various embodiments, the central server detects when users are
in appropriate proximity (based on configuration) to join an ad hoc cloud
and determines whether the criteria established by the potential cloud
co-participants match the profile information of the other user(s). In
the case of a cloud between exactly two people, both users' profiles must
match the other user's criteria for either user to be presented an
opportunity to join the cloud. In the case of an ad hoc cloud among more
than two users, a variety of techniques may be employed to determine
whether a user is presented with an opportunity to join the cloud. One
such algorithm is that each user's profile must match at least N other
user's criteria in order to be presented the opportunity to join the
cloud, where N is greater than or equal to 1. Another example is to allow
current cloud participants to vote, and only if a sufficient number
(which could be a majority, two-thirds or some other fraction of votes)
acquiesce (e.g., vote "yes") is the new user presented with the
opportunity to join the cloud. Such voting by cloud members (also
referred to as "participants") may also be used in at least some
embodiments with clouds configured by one or more administrators and/or
for purposes other than admitting new users to the cloud, such as if
allowed by the administrator and/or in some situations to take certain
types of actions without explicit administrator approval (e.g., to
terminate an existing cloud).

[0025] In various embodiments, a cloud may create a residual permission
group that survives the cloud's termination. Such a permission group
would allow users in the cloud to, for example, communicate online with
other users from the cloud even after the cloud was terminated, either
through a proxy (e.g., a website that does not reveal users' email
addresses, a central server, etc.), directly by email, or via some other
means. In such embodiments, users may be empowered to opt out of the
residual permission group, in which case they may be unable to interact
with others in the permission group.

[0026] In various embodiments, search functionality is provided to users
via their networked devices, such as to discover existing clouds (e.g.,
to help a user determine whether there are any clouds he would be
interested in joining) and/or to identify other information of interest.
Such search functionality may be able to filter the search results based
on various criteria, including those clouds the searching user could
potentially participate in. As examples, "show only those clouds that are
nearby and configured as visible" (by the cloud administrator or another
method of cloud configuration) or "show only those clouds that are `open`
to arbitrary users or that have entrance admission criteria that the
searching user matches." In some cases, a searching user may be allowed
to see activity in a cloud before joining and even interact with
participants (e.g., in a more limited fashion than if the searching user
became a cloud participant), depending on the cloud configuration. In
various embodiments, the user will receive a proactive notification on
his mobile device when he is in the proximity of clouds that he is able
to join. Such notification could be accompanied with information about
the cloud, its participants, previous activity, and so on, and direct him
to the nearest physical location in which he would be within the boundary
of the cloud or otherwise direct him to perform particular activities to
enable joining the cloud.

[0027] With regard to implementation, the general case in at least some
embodiments consists of at least three components: a server component, a
client component, a networked device, e.g., a PC (but which could be one
and the same with the client component) and a database component. The
client is generally a mobile device that communicates via wireless
signals over a wireless network with the server in such embodiments. The
server (which, for scaling purposes, can be implemented as many physical
servers) also sends information to the client in such embodiments, e.g.,
when the client is admitted to or exits a cloud, the server notifies the
client as such and the client takes appropriate actions. The networked
device, which might be the client, but which might be a separate device
and is not necessarily mobile, is used to define and configure the cloud
on the server in such embodiments. The database component in such
embodiments is used by the server to store cloud definition and
configuration data, cloud activity and participation data and other
information associated with clouds.

[0028] A client device is in at least some embodiments capable of
determining its location via global positioning system (GPS) signals or
other location technologies, and if so the location information may be
transmitted frequently to the server. Some or all information entered by
the user into the client device, e.g., pass codes, messages to other
users in a cloud, user profile updates, etc., is also transmitted to the
server.

[0029] The networked device in such embodiments is used to define and
configure a cloud. It can also be a client, but is often separate, e.g.,
the client might be a cellular phone while the networked device is a home
PC. The networked device communicates via network signals (either
wireless or wired) with the server, and the user interface presented to
the user is guided in large part by the instructions received from the
server. Information entered by the user (e.g., the definition of a cloud)
is transmitted to the server and responses (e.g., status of a cloud) are
sent from the server to the networked device.

[0030] The software running on the server in such embodiments acts as a
controller for the user interface on both the networked device and the
client. Information received by the server from these two components
(e.g., user-entered cloud definitions or pass codes) is stored in the
database component along with information generated by the server (e.g.,
status changes in a cloud when access to join a cloud is granted by the
server to a user). Because the server receives information from the
users; it maintains a central model (which is backstored in the database
component) of the state of the clouds and enforces the rules associated
with a cloud.

[0031] The database component in such embodiments is used as an
information store for the server. Cloud definitions (physical geometry
and location information defining a cloud), rules associated with a cloud
(e.g., whether a pass code is required for access, whether the cloud has
an administrator or not, the attributes of or other admission criteria
for users allowed to join a cloud, maximum users allowed in a cloud,
etc.) user activity (e.g., messages sent between users within a cloud,
enter/exit events, etc.) permissions, access decisions, user location
information over time and so on which either flow to the server from the
client and/or networked device or which are generated by software running
on the server can be stored for later retrieval in the database
component. The database component, like the server component, might be
implemented as multiple physical database instances for scaling reasons.

[0032] FIGS. 2A-2C illustrate examples of providing location-based
information and functionality to various geographical locations indicated
on maps. In particular, FIG. 2A illustrates a map 205 that shows image
data (e.g., a satellite image or other photo) with road annotations for a
geographical area corresponding to a section of the city of Bellevue,
Wash. A particular user has a current geographical location 210 that is
shown on the map with a black triangle. The illustrated map may be
provided to, for example, the user for display, such as by a central
server as part of a graphical user interface to provide access to
cloud-related functionality. In this example, information about existing
clouds in the geographical area of the map is not displayed to the user,
but in other embodiments such information may be displayed.

[0033] For example, FIG. 2B illustrates an alternative map 250 for the
same geographical area, but with information about various existing
clouds 215 being displayed on the map. This map 250 may be provided to
and/or displayed to the user in response to, for example, a request from
the user for information about some or all clouds in the geographical
area, or as part of a notification that is pushed to a device of the user
without an explicit corresponding request. In this example, the map 250
includes road information but not image data, although in other
embodiments the information about the clouds 215 may instead be displayed
in other manners (e.g., as part of an image data map such as that
displayed in FIG. 2A). In this example, the displayed clouds are of a
variety of types, and in other embodiments a variety of other types of
clouds may be displayed. For example, clouds 215d and 215e correspond to
parts of Bellevue High School, such as the smaller cloud 215e
corresponding to a particular location within the school grounds (e.g., a
particular classroom, student or staff gathering area, etc.), and the
larger cloud 215d corresponding to the entire school. Clouds 215f and
215g are overlapping clouds corresponding to portions of a hotel, such as
to correspond to one or more of the hotel lobby, pool area, a particular
floor (e.g., based on a group staying together on the floor), restaurant,
etc. A cloud 215i in this example corresponds to a retail store, in this
case a Toys `R` Us store. A cloud 215j corresponds to the Bellevue
Convention Center, such as a temporary cloud that corresponds to a
particular current convention in progress. In addition, a cloud 215h has
been established to correspond to a moving vehicle, such as a bus. In
this example, a direction legend 209 is also illustrated.

[0034] In this example, the user at the location 210 is eligible to
participate in 3 clouds that encompass that location based on that
location (although may not be eligible for one or more of those clouds
based on other admission criteria for the clouds), and may also
optionally be eligible to participate in one or other clouds at other
locations. In this example, a cloud 215b is centered around a park, such
as to correspond to a temporary festival or other event occurring in the
park. In addition, a nearby mall has multiple clouds that encompass the
location 210, including a cloud 215c corresponding to the entire mall,
and a cloud 215a corresponding to a particular store in the mall. In this
example, the three available clouds whose geographic boundaries include
the current location of the user are illustrated using dashed lines, such
as to provide information to the user regarding at least some of the
clouds that the user may join (e.g., by selecting the displayed
representation of the cloud on the map), although in other embodiments
some or all of the clouds may be displayed in other manners. For example,
if the user requests to join a specified new cloud or to check-in to a
specified cloud for which the user is already a member (e.g., by
selecting a graphical indication of the cloud on the map, by selecting a
hyperlink or other user-selectable option in a list or other textual
format that corresponds to that cloud, by requesting or establishing a
trusted friend relationship with an administrator user for the cloud
virtual group and/or for a user who is already a member of the cloud
virtual group, etc.), the device may proceed to perform that request.
Alternatively, if the user requests to join a new cloud or to check-in to
a cloud for which the user is already a member, but without specifying a
particular cloud with the request, the Cloud Management system may
display or otherwise provide to the user a list of one or more possible
clouds that are available, with the list optionally being ordered based
on one or more criteria (e.g., distance between the user's current
location and the geographical boundary of a cloud, such as to list clouds
215a, 215b and 215c before any other clouds; likelihood that the user is
currently within a cloud; clouds for which the user is already a member,
if the request is to check-in to a cloud or to a business associated with
a cloud; clouds for which the user is not already a member, if the
request is to join a new cloud for which the user is not already a
member; etc.). When generating an order for such possible clouds, various
other information may similarly be considered in at least some such
embodiments, such as the user's preferences, historical activities (e.g.,
to rank the cloud 215a first if the user regularly shops at the store
associated with that cloud), etc.

[0035] FIG. 2C illustrates a map 255 similar to the map 250 of FIG. 2B,
but it corresponds to a time shortly after the time represented in FIG.
2B. In particular, the user has moved to a new location 210 in which the
geographical boundaries of cloud 215b continues to enclose the new
location of the user, but in which the geographic boundaries of clouds
215a and 215c no longer enclose the new user location. Similarly, the
moving vehicle has traveled during the time interval, as has its
corresponding cloud 215h. Other previously displayed clouds are not
displayed here, such as based on user-specified modifications to the
display (e.g., to show only clouds that exist within a specified distance
from the user's location, such as a distance corresponding to
approximately 6 blocks). In addition, an additional location-based cloud
225 is illustrated in this example, which has three non-contiguous or
otherwise non-overlapping geographic areas 225a, 225b and 225c that are
part of the cloud--in particular, in this example, each of the geographic
areas 225a, 225b and 225c corresponds to a different retail outlet of a
single coffee company (e.g., different coffee shops operated by the same
retailer) that is a distinct anchor of the cloud 225. In other
embodiments, the geographic boundaries of such a cloud 225 may have other
shapes, such as to have a single closed shape that encompasses all of the
geographic areas 225a, 225b and 225c. In this example, the user at
location 210 is able to remotely check in to one of the three coffee
shops corresponding to the geographic areas 225a, 225b and 225c if so
desired while the user is still at location 210, such as to obtain
information corresponding to cloud 225 (e.g., to see cloud members who
are currently at any of the three coffee shops or alternatively at the
one coffee shop to which the user checks in, to obtain information about
any current offers available to cloud members from the coffee company or
other companies or entities, to post content or obtain available content
for the cloud, etc.), to provide information to other cloud members
(e.g., to notify other cloud members that the user is planning on
arriving at the checked in coffee shop at a specified time in the future,
and optionally to invite other users to join him/her), and/or to access
functionality associated with the cloud (e.g., to place an order to be
ready at a future time when the user plans to arrive at the checked-in
coffee store, to place a current order for another cloud member who is
currently at one of the coffee stores, etc.). In some embodiments, the
ability for the user to check-in at the coffee shop (or more generally to
check-in to the cloud 225) is only available to users who are already
cloud members, while in other embodiments the user may request to join
the cloud 225 for the first time from the remote location 210.
Alternatively, the user may instead first travel to one of the coffee
shops and then check-in to that coffee shop or to the cloud 225 while at
that location, whether explicitly or based on a mobile device of the user
being able to determine that location (e.g., based on GPS or other
location-determination capabilities of the device, based on the user
using the device as part of a transaction, etc.).

[0036] In some embodiments, a particular location-based cloud may have one
or more associated anchors, but may be associated at least in part with
common activities that occur at those anchor locations or other common
attributes of those anchor locations, referred to generally herein as a
society-based cloud. For example, a particular society-based cloud may be
associated with users who meet at various locations as part of a book
club, who like to eat food of a particular ethnicity, who are part of the
same club or other group, etc. As one example, a particular book club may
meet occasionally at the coffee shop at location 225b, at the Bellevue
Downtown Park corresponding to location 215b, and optionally at one or
more other locations that are not illustrated in FIG. 2C--for such a
society-based cloud, locations 215b and 225b (but not 225a or 225c) may
be anchors of a corresponding location-based cloud that may have some or
all of the same types of associated features and functionality as
described elsewhere herein for other clouds. Furthermore, such
society-based clouds may be formed and modified in various manners,
including based on actions of users who are members of the clouds. As
with other clouds, in some embodiments a society-based cloud has one or
more administrator users who define various information about the
society-based cloud, including to specify one or more locations
associated with the society-based cloud. In addition, in some
embodiments, one or more users who are members of a society-based cloud
may modify the cloud in various manners, such as by requesting that a new
location be added to the cloud (e.g., to request that the Bellevue Square
Mall at location 215c be added to the cloud if the users have been
meeting occasionally in a public gathering area of the mall), by
indicating cloud-related activities occurring at a particular location
(e.g., if multiple people check-in to the book club cloud while at the
coffee shop corresponding to location 225a, to infer that the new
location is another anchor of the society-based cloud), etc. Users may
indicate such cloud-related activities in various manners, such as in
some situations by adding a tag corresponding to a particular
society-based cloud to a particular new location--similarly, in some
embodiments an ad-hoc society-based cloud may be automatically created by
multiple different users using a common tag at a given location,
optionally at the same time. Furthermore, in some embodiments, such
society-based clouds may have associated times associated with particular
anchors for the cloud (or for the cloud generally), such as if the book
club cloud is associated with coffee shop location 225b only on
Wednesdays from 10 am-noon, if the book club cloud is associated with
Bellevue Downtown Park location 215b only during the summer months, etc.
In a similar manner, a "night owls" society-based cloud may have an
associated effective time of 10 pm-2 am, optionally with one or more
associated locations such as bars and/or late-night diners.

[0037] It will be appreciated that the details of FIGS. 2A-2C are provided
for illustrative purposes, and are not intended to limit the scope of the
invention.

[0038] FIGS. 1B-1F depict the screen of a mobile device showing an example
cloud user interface that demonstrates user interaction in certain
embodiments. In FIG. 1B, a user is notified that his physical location is
within the physical boundary of the cloud entitled "John's Party," such
as based on the user moving into the cloud geographical area. The mobile
device previously sent the user's location to the server, and the server
determined the location was within the polygon associated with the cloud
"John's Party." It also determined that the user is authorized to join
this cloud. In this example, the user selects the "OK" option in FIG. 1B
by pressing the 1 key on his mobile device, which moves the user to FIG.
1C. The displayed screen may be, for example, part of a Web page supplied
by a server associated with a Cloud Management system, with the "OK"
option having an associated hyperlink or other similar control to cause
corresponding information to be sent back to the server.

[0039] FIG. 1C exemplifies a cloud configured to require a pass code.
After the user enters the pass code, the user interface of FIG. 1D is
displayed or otherwise presented to the user. In this example, the user
has joined the cloud and sees via the user interface illustrated in FIG.
1D that there are 44 other people already participating in the cloud. The
user is offered a few options, including viewing all the cloud
participants, viewing people he has saved to his "Favorite People" list
(which has zero people in it, since this user just joined the cloud) and
sending a message to all cloud participants (which is a capability that
may or may not be present in a cloud, depending on the cloud
configuration and the current state of the cloud, as described earlier).
The user chooses the option "View all participants" and moves to FIG. 1E.

[0040] In FIG. 1E, the user is presented with a list of 10 cloud
participants out of 45 total (44 other users plus this user). The user
can choose to see additional users by choosing a page number at the
bottom of the list or may choose one of the users from the list. In this
example, the user chooses "Jennifer Stevens" which takes him to FIG. 1F.

[0041] In FIG. 1F, the user is presented with information that the cloud
participant Jennifer Stevens has indicated she is willing to reveal to
other cloud participants. The user is presented with four options for
interacting with Jennifer, including sending her a message, adding her to
his Favorite People list, inviting her to be his friend (which Jennifer
must accept in order for the formal relationship to be effected) or
revealing his location to Jennifer. In the latter case, Jennifer would
receive a message indicating that this user has revealed his location. In
various embodiments, Jennifer would be able to view his location on a map
so she could find him within the confines of the cloud.

[0042]FIG. 3 is a block diagram illustrating an embodiment of a server
computing system 300 that is suitable for performing at least some of the
described techniques, such as by acting as a central server to manage the
creation and operation of clouds. The computing system 300 includes one
or more central processing units ("CPU") processors 305, various
input/output ("I/O") components 310, storage 320, and memory 330, with
the illustrated I/O components including a display 311, a network
connection 312, a computer-readable media drive 313, and other I/O
devices 315 (e.g., keyboards, mice or other pointing devices,
microphones, speakers, etc.).

[0043] In the illustrated embodiment, an embodiment of a Cloud Management
system 350 executes in memory 330 in order to perform at least some of
the described techniques, such as to provide location-based information
and functionality to people and computing devices in various ways. The
Cloud Management system in the illustrated embodiment includes software
instructions that when executed by one or more of the processors
configure the server computing system 300 to perform the described
techniques. In particular, cloud administrator users may interact with
the Cloud Management system in order to define configuration information
for clouds and manage the clouds, such as via communication-capable
client devices 350 and/or other computing systems 370. In addition,
various communication-capable client devices 350 may interact with the
Cloud Management system, such as to provide location information for the
devices and/or information about users of the devices, so that the Cloud
Management system can determine clouds that are available to the devices
and their users, and otherwise manage clouds in the manners described
elsewhere herein. In this example embodiment, cloud definition
information, user information, and information about clouds (e.g., their
membership, historical cloud interaction information, etc.) are stored in
databases ("DBs") 322-324 respectively on store 320, although such
information may be stored in other manners in other embodiments. The
other computing systems 370 may also perform other actions in some
embodiments, such as to be operated by companies or entities (e.g., to
manage clouds associated with their geographical locations, to make
offers to members of particular clouds, etc.).

[0044] One or more other systems 345 may also be optionally executing in
memory 330 in this example, such as a payment processing system to handle
fees and other payments for the Cloud Management system, a search engine
to provide search capabilities to users of devices 350 other than to
indicate cloud-related information, a system to analyze and generate
various cloud-related information (e.g., to determine patterns
corresponding to users and related clouds, such as to determine that
users who are members of a first cloud are also frequently members of a
second cloud, or that users who are members of the first cloud frequently
visit a particular location that is not part of the first cloud), a
system to identify various types of events of interest for clouds and to
send corresponding notifications to members of those clouds and/or to
other users (e.g., to send notifications to members of a cloud when a new
offer is made for the cloud; to send notifications to members of a cloud
when a new member joins the cloud; to send notifications to members of a
cloud when a specified type of activity happens for the cloud, such as a
"trending event" involving several members checking in at a particular
location within the cloud; to send notifications to members of a cloud
when a new recommendation or rating is entered by a cloud member; to send
notifications to members of a cloud when a member's current physical
location nears a specified location of interest for the cloud; to send
notifications to members of a cloud when a pattern of interest is
determined for the cloud; etc.), a system to manage points and associated
benefits to be provided to users based on particular cloud-related
activities that they perform, etc. The devices 350 and systems 370 may
each have one or more programs 353 and 379, respectively, executing in
memory 357 and 377, respectively, to provide various functionality. For
example, the programs 353 may include a Web browser or other client
program (e.g., a client program specific to the Cloud Management system)
that a user may use to interact with the Cloud Management system, such as
a program that provides a graphical user interface to users in other to
provide various functionality related to participation in clouds.
Similarly, the programs 379 may include a client program to allow a user
to define or otherwise configure clouds, as well as to monitor and manage
existing clouds. In addition, the programs 353 and/or 379 may provide a
variety of other types of functionality in other embodiments, including
to determine location information for the devices 350. While not
illustrated here, the storage 351 and 371 on the devices 350 and systems
370, respectively, may store a variety of types of information, such as
for storage 351 on a device to store information specific to a user of
the device (e.g., user preference information, user attribute information
relevant to determining whether the user is eligible to be admitted to
clouds, etc.), to clouds and cloud-related interactions (e.g., to linked
friends and bookmarked users, to communications sent to and/or received
from other cloud members, etc.).

[0045] It will be appreciated that the illustrated computing systems and
devices are merely illustrative and are not intended to limit the scope
of the present invention. Computing system 300 and/or devices 350 may be
connected to other devices that are not illustrated, including through
one or more networks such as the Internet or via the Web. More generally,
a "client" or "server" computing system or device may comprise a
combination of hardware and software that can interact and perform the
described types of functionality, including without limitation desktop or
other computers, database servers, network storage devices and other
network devices, PDAs, cell phones, wireless phones, pagers, electronic
organizers, Internet appliances, television-based systems (e.g., using
set-top boxes and/or personal/digital video recorders), and various other
consumer products that include appropriate inter-communication
capabilities. In addition, the functionality provided by the illustrated
systems may in some embodiments be distributed in various components (not
shown), and some functionality of the illustrated systems may not be
provided and/or other additional functionality may be available.

[0046] In addition, while various items are illustrated as being stored in
memory or on storage while being used, these items or portions of them
may be transferred between memory and other storage devices for purposes
of memory management and/or data integrity. Alternatively, in other
embodiments, some or all of the software systems and/or components may
execute in memory on another device and communicate with the illustrated
computing system via inter-computer communication. Furthermore, in some
embodiments, some or all of the systems and/or components may be
implemented or provided in other manners, such as by using means (e.g.,
specialized electronics) that are implemented at least partially or
completely in firmware and/or hardware, including, but not limited to,
one or more application-specific integrated circuits (ASICs), standard
integrated circuits, controllers (e.g., by executing appropriate
instructions, and including microcontrollers and/or embedded
controllers), field-programmable gate arrays (FPGAs), complex
programmable logic devices (CPLDs), etc. Some or all of the system
components or data structures may also be stored (e.g., as software
instructions or structured data) on a non-transitory computer-readable
storage medium, such as a hard disk or flash drive or other non-volatile
storage device, volatile or non-volatile memory (e.g., RAM), a network
storage device, or a portable media article to be read by an appropriate
drive (e.g., a DVD disk, a CD disk, an optical disk, etc.) or via an
appropriate connection. The system components and data structures may
also in some embodiments be transmitted as generated data signals (e.g.,
as part of a carrier wave or other analog or digital propagated signal)
on a variety of computer-readable transmission mediums, including
wireless-based and wired/cable-based mediums, and may take a variety of
forms (e.g., as part of a single or multiplexed analog signal, or as
multiple discrete digital packets or frames). Such computer program
products may also take other forms in other embodiments. Accordingly, the
present invention may be practiced with other computer system
configurations.

[0047] FIG. 4 is a flow diagram of an example embodiment of a Cloud
Management routine 400. The routine may be provided by, for example,
execution of the Cloud Management system 340 of FIG. 3, such as to
provide location-based information and functionality to people and
computing devices in various ways.

[0048] The routine begins at step 405, where it receives a request for
information or functionality related to clouds, or it receives
information regarding one or more clouds, users, administrators or
communication-capable devices. The routine continues to step 410 to
determine whether information was received, and if so continues to step
415 to store the information. The information may include, for example,
cloud configuration information from an administrator, information from
or about a user (e.g., current user location; current user activity,
including to check-in to a particular cloud or location associated with a
cloud; user-supplied content (e.g., a user recommendation or rating);
user preferences; etc.) from a communication-capable device, information
about a communication-capable device (e.g., current device location),
information about cloud management (e.g., votes from members of a cloud
regarding whether to admit a new user to the cloud or to perform another
type of activity), information from a company or other entity
corresponding to a cloud (e.g., an offer to be made to members of the
cloud), etc. The routine then continues to step 420 to optionally take
one or more automated actions in response to the received information
(e.g., to make user-supplied content or other information available to
other cloud members in a specified or configured manner, to make supplied
offers available to some or all current cloud members, to charge the
supplier of an offer one or more associated fees, to determine whether
cloud availability has changed for a user or device based on a change in
location or other change in relevant attribute information, to notify a
user or device of new availability to join a cloud, to determine whether
to admit a new user to a cloud based on received votes from other cloud
members, to analyze currently available user information to determine
whether to modify points or related benefits for the user based on user
activities or other information, to analyze currently available user
activity information and/or user cloud membership information to
determine particular patterns, to determine to perform one or more types
of notifications to cloud members based on the received information
and/or on other automated actions that are performed, etc.).

[0049] If it is instead determined in step 410 that a request is received,
the routine continues to step 425 to automatically determine whether to
approve the request. For example, some types of requests may always be
approved, such as a request from a user for information about clouds
available to the user and/or about prior cloud-related interactions by
the user. In addition, if the request is from a user to join a cloud, the
routine may automatically determine whether to approve the request based
on whether the user location and other user attributes satisfy any
admission criteria for the cloud. Alternatively, if the cloud
configuration indicates that a decision to allow a user to join a cloud
is based on a vote by other members of the cloud, the routine may
automatically determine whether to approve the request by soliciting such
votes from the other cloud members and analyzing them once received. If
it is determined in step 430 that the request is not approved, the
routine continues to step 435 to send a non-approval or error response
message to the requester. Otherwise, after step 430 the routine continues
to step 440 to optionally obtain a fee related to the request, if such a
fee exists. If a fee exists and is obtained, or if no such fee is needed,
the routine continues to step 445 to respond to the request as
appropriate (e.g., to add a user to a group as requested, to provide
search results or query results related to clouds to a user in response
to a request for the information, to provide cloud-related information to
a user who is a member of the cloud, to add information for a user such
as a bookmark to another user, to forward a communication to another
group member or to perform other user interactions for users in a cloud,
etc.). While not illustrated in this embodiment, if a fee exists but is
not obtained, the routine may in some embodiments proceed to step 435 to
send an error message, or may instead perform the request without the
fee.

[0050] After steps 420, 435 and 445, the routine continues to step 485 to
optionally perform other operations as appropriate, such as to perform
periodic housekeeping operations. For example, matches between user
locations and clouds' geographic areas may be occasionally checked, such
as to identify new ad hoc or other clouds that have become available for
a user, previously available clouds that are no longer available, etc.
After step 435, the routine continues to step 495 to determine whether to
continue. If so, the routine returns to step 405, and if not continues to
step 499 and ends.

[0051] FIG. 5 is a flow diagram of an example embodiment of a Cloud
Participation routine 500. The routine may be provided by, for example,
execution of a program on a client device to enable participation by a
user of the device in various cloud-related functionality, such as a
program 353 of FIG. 3.

[0052] The routine begins in step 505, where it receives information from
an external system or device (e.g., a cloud management system on a
central server, a communication-capable device of another user in a
cloud, etc.), information from a user, or an indication to perform
periodic processing (e.g., based on expiration of a timer). If it is
determined in step 510 that information from a user was received in step
505 (e.g., a request from the user for cloud-related search information
or other cloud information, a request to join a cloud, a request to
perform an indicated interaction with one or more other users who are
cloud participants, a request to provide a vote response to the cloud
management system, content or other information to be posted to one or
more clouds for which the user is member, etc.), the routine continues to
step 515 to store the received information and/or to send the received
information to a cloud management system and/or device of another cloud
participant. If it is instead determined in step 510 that external
information was received in step 505 (e.g., previously requested
information received from a cloud management system, a notification of
availability to join a cloud or of other information of possible
interest, information about an offer for cloud members, an indication
from the cloud management system of points and/or related benefits that
have been modified for the user for one or more clouds, a communication
or other interaction request from another cloud participant, etc.), the
routine continues to step 525 to process the received information, and in
step 530 to optionally take one or more actions based on the received
information (e.g., to display some or all of the received information to
the user, such as if previously requested information is received).

[0053] If it is instead determined in step 510 to perform periodic
processing, the routine continues to step 540 to gather and/or process
information (e.g., current location information for a user or device, to
determine whether any ad hoc clouds are available with other devices and
users, etc.). The routine then continues to step 545 to store the
resulting information and/or to send the resulting information to a cloud
management system, such as to send information regarding a determined
current location to the cloud management system. After step 545, the
routine continues to step 550 to optionally present the resulting
information to one or more users, such as to present information about an
available determined ad hoc cloud. After steps 515, 530, or 550, the
routine continues to step 585 to optionally perform other operations as
appropriate, such as to perform housekeeping operations. After step 585,
the routine continues to step 595 to determine whether to continue. If
so, the routine returns to step 505, and if not continues to step 599 and
ends.

[0054] While not illustrated here, a program on a device used by a cloud
administrator may similarly perform a routine to provide various
functionality to the cloud administrator, including to obtain information
about new or modified cloud definitions from the administrator and to
interact with a cloud management system to apply the cloud definitions.

[0055] As previously noted, in at least some embodiments, a user who is a
member of a cloud may in some embodiments earn points for performing
various activities, with such points then providing various types of
benefits for the user (e.g., achieving various enhanced levels within
that cloud or more generally within any clouds to which the user belongs,
which may have corresponding benefits). For example, a user may earn
points for checking in to a particular location associated with a cloud
or for checking in to the cloud, for performing particular activities
within or related to a cloud (e.g., engaging in a transaction at a cloud
having an associated commercial location), etc. Awarding of points to a
user may provide various benefits to the user, including in some
embodiments providing one or more enhanced levels to the user within one
or more clouds when a specified number of points is reached and/or one or
more other specified criteria are achieved, with such enhanced levels
having various associated benefits (e.g., to provide functionality or
capabilities to the user that are not available to users who do not have
that enhanced level, such as to remove others' content posted to the
cloud, to direct particular types of messages to some or all members of
the cloud, etc.; to provide functionality or capabilities to the user
that other users who do not have that enhanced level can only access by
paying a fee higher than that (if any) charged to the users with the
enhanced levels; etc.). In addition, in some embodiments a user may also
lose points and/or associated benefits for various reasons, including for
not performing desired point-earning activities for a sufficient period
of time and/or for performing undesired activities--the loss of
associated benefits may in some embodiments including losing an enhanced
level previously awarded to the user, ending a membership of a user
within a cloud (e.g., based on the user not checking-in or otherwise
participating in the cloud for a sufficient period of time, with the user
optionally able to later rejoin the cloud if so desired in at least some
such situations), etc.

[0056] As previously noted, in at least some embodiments, the cloud
management system may analyze information about users and clouds in order
to determine patterns of interest. For example, such analysis may
determine that users who are members of a first cloud are also frequently
members of a second cloud, that users who are members of the first cloud
frequently visit a particular location that is not part of the first
cloud, that users who are members of the first cloud frequently perform a
specified type of activity outside of the first cloud, etc. Various types
of data mining, recommendation generation (e.g., collaborative filtering)
and other pattern analysis techniques may be used in various embodiments.
In addition, such determined information may be used to provide various
benefits, such as to recommend clouds to join, locations to visit,
activities to perform, etc. to users based on their current cloud
memberships and information about other related users. In addition, such
determined information may be made available to users in various manners,
including upon request by the users and/or by sending proactive
notifications to users that are not in response to explicit corresponding
user requests.

[0057] As previously noted, in at least some embodiments, the cloud
management system may perform various notifications to users based on
their current or potential future cloud membership, such as to
proactively sent information to users that is not in response to explicit
corresponding user requests. Such notifications to a user may include,
for example, information about clouds for which the user is eligible to
join (e.g., based on the user's current location and/or other attributes
or characteristics of the user), information about activities of other
users who are members of a common cloud (e.g., that one or more such
cloud members are currently checked in to a particular location or are
planning on going to a particular location), information about a new
offer that is made for a cloud for which the user is a member,
information about a new member joining a cloud for which the user is a
member, information about a specified type of activity happening for a
cloud for which the user is a member (e.g., a "trending event" involving
several members checking in at a particular location within the cloud),
information about a new recommendation or rating entered by a member of a
cloud for which the user is a member, information about a current
physical location of a member of a cloud for which the user is a member
that is nearing a specified location of interest for the cloud,
information about a pattern of interest determined for a cloud for which
the user is a member, etc. As discussed in greater detail elsewhere, the
users to notify for a particular type of information may be determined in
various manners (e.g., based on cloud membership, for member users and/or
non-member users within a specified distance of the cloud, etc.), and
various types of mechanisms may be used to perform the notification.

[0058] Those skilled in the art will also appreciate that in some
embodiments the functionality provided by the routines discussed above
may be provided in alternative ways, such as being split among more
routines or consolidated into fewer routines. Similarly, in some
embodiments illustrated routines may provide more or less functionality
than is described, such as when other illustrated routines instead lack
or include such functionality respectively, or when the amount of
functionality that is provided is altered. In addition, while various
operations may be illustrated as being performed in a particular manner
(e.g., in serial or in parallel) and/or in a particular order, those
skilled in the art will appreciate that in other embodiments the
operations may be performed in other orders and in other manners. Those
skilled in the art will also appreciate that the data structures
discussed above may be structured in different manners, such as by having
a single data structure split into multiple data structures or by having
multiple data structures consolidated into a single data structure.
Similarly, in some embodiments illustrated data structures may store more
or less information than is described, such as when other illustrated
data structures instead lack or include such information respectively, or
when the amount or types of information that is stored is altered.

[0059] From the foregoing it will be appreciated that, although specific
embodiments have been described herein for purposes of illustration,
various modifications may be made without deviating from the spirit and
scope of the invention. Accordingly, the invention is not limited except
as by specified claims and the elements recited therein. In addition,
while certain aspects of the invention are discussed in certain claim
forms at certain times, the inventors contemplate the various aspects of
the invention in any available claim form. For example, while only some
aspects of the invention may be recited as being embodied in a
computer-readable medium, other aspects may likewise be so embodied.