U.S. patent application number 11/106001 was filed with the patent office on 2006-11-02 for generating unique virtual identifiers.
This patent application is currently assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION. Invention is credited to Michael John Branson, Gregory Richard Hintermeister.
Application Number | 20060247054 11/106001 |
Document ID | / |
Family ID | 37235167 |
Filed Date | 2006-11-02 |
United States Patent
Application |
20060247054 |
Kind Code |
A1 |
Branson; Michael John ; et
al. |
November 2, 2006 |
Generating unique virtual identifiers
Abstract
A method, apparatus, system, and signal-bearing medium that, in
an embodiment, generate virtual user identifiers that represents
users, where the virtual user identifiers are unique to their
viewers. Further, virtual event identifiers that represent events
are generated, where the virtual event identifiers are unique to
their viewers. The virtual user identifiers representing the users
and the virtual event identifiers representing the events are
presented to viewers. In various embodiments, the event may be a
game or an auction. In this way, in an embodiment, collaboration
between users is more difficult.
Inventors: |
Branson; Michael John;
(Rochester, MN) ; Hintermeister; Gregory Richard;
(Rochester, MN) |
Correspondence
Address: |
IBM CORPORATION;ROCHESTER IP LAW DEPT. 917
3605 HIGHWAY 52 NORTH
ROCHESTER
MN
55901-7829
US
|
Assignee: |
INTERNATIONAL BUSINESS MACHINES
CORPORATION
ARMONK
NY
|
Family ID: |
37235167 |
Appl. No.: |
11/106001 |
Filed: |
April 14, 2005 |
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
A63F 13/79 20140902;
G06F 21/6254 20130101; A63F 2300/5533 20130101; A63F 2300/5553
20130101 |
Class at
Publication: |
463/042 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method comprising: generating a first plurality of virtual
user identifiers for a user, wherein the user participates in a
first event, and wherein each of the first plurality of virtual
user identifiers is unique to each of a first plurality of
respective viewers of the virtual user identifiers.
2. The method of claim 1, further comprising: generating a first
plurality of virtual event identifiers for the first event, wherein
each of the first plurality of virtual event identifiers is unique
to the first plurality of viewers of the first plurality of virtual
event identifiers.
3. The method of claim 2, further comprising: generating a second
plurality of virtual user identifiers for the user, wherein the
user participates in a second event, and wherein each of the second
plurality of virtual user identifiers is unique to each of a second
plurality of viewers of the virtual user identifiers, and wherein
each of the second plurality of virtual user identifiers is
different from each of the first plurality of virtual user
identifiers.
4. The method of claim 3, further comprising: generating a second
plurality of virtual event identifiers for -the second event,
wherein each of the second plurality of virtual event identifiers
is unique to the second plurality of viewers of the second
plurality of virtual event identifiers, and wherein each of the
second plurality of virtual event identifiers is different from
each of the first plurality of virtual event identifiers.
5. The method of claim 1, wherein the first event comprises a
game.
6. The method of claim 1, wherein the first event comprises an
auction.
7. The method of claim 2, further comprising: presenting the first
plurality of virtual user identifiers to the first plurality of
respective viewers.
8. A signal-bearing medium encoded with instructions, wherein the
instructions when executed comprise: generating a first plurality
of virtual user identifiers for a user, wherein the user
participates in a first event, and wherein each of the first
plurality of virtual user identifiers is unique to each of a first
plurality of viewers of the virtual user identifiers; and
generating a first plurality of virtual event identifiers for the
first event, wherein each of the first plurality of virtual event
identifiers is unique to the first plurality of viewers of the
first plurality of virtual event identifiers.
9. The signal-bearing medium of claim 8, further comprising:
generating a second plurality of virtual user identifiers for the
user, wherein the user participates in a second event, and wherein
each of the second plurality of virtual user identifiers is unique
to each of a second plurality of viewers of the virtual user
identifiers, and wherein each of the second plurality of virtual
user identifiers is different from each of the first plurality of
virtual user identifiers.
10. The signal-bearing medium of claim 9, further comprising:
generating a second plurality of virtual event identifiers for the
second event, wherein each of the second plurality of virtual event
identifiers is unique to the second plurality of viewers of the
second plurality of virtual event identifiers, and wherein each of
the second plurality of virtual event identifiers is different from
each of the first plurality of virtual event identifiers.
11. The signal-bearing medium of claim 8, wherein the first event
comprises a game.
12. The signal-bearing medium of claim 8, wherein the first event
comprises an auction.
13. The signal-bearing medium of claim 8, further comprising:
presenting the first plurality of virtual user identifiers to the
first plurality of respective viewers.
14. The signal-bearing medium of claim 9, further comprising:
presenting the second plurality of virtual user identifiers to the
second plurality of respective viewers.
15. A method for configuring a computer, comprising: configuring
the computer to generate a first plurality of virtual user
identifiers for a user, wherein the user participates in a first
event, and wherein each of the first plurality of virtual user
identifiers is unique to each of a first plurality of viewers of
the virtual user identifiers; configuring the computer to generate
a first plurality of virtual event identifiers for the first event,
wherein each of the first plurality of virtual event identifiers is
unique to the first plurality of viewers of the first plurality of
virtual event identifiers; and configuring the computer to generate
a second plurality of virtual user identifiers for the user,
wherein the user participates in a second event, and wherein each
of the second plurality of virtual user identifiers is unique to
each of a second plurality of viewers of the virtual user
identifiers, and wherein each of the second plurality of virtual
user identifiers is different from each of the first plurality of
virtual user identifiers.
16. The method of claim 15, further comprising: configuring the
computer to generate a second plurality of virtual event
identifiers for the second event, wherein each of the second
plurality of virtual event identifiers is unique to the second
plurality of viewers of the second plurality of virtual event
identifiers, and wherein each of the second plurality of virtual
event identifiers is different from each of the first plurality of
virtual event identifiers.
17. The method of claim 15, wherein the first event comprises a
game.
18. The method of claim 15, wherein the first event comprises an
auction.
19. The method of claim 15, further comprising: configuring the
computer to present the first plurality of virtual user identifiers
to the first plurality of respective viewers.
20. The method of claim 15, further comprising: configuring the
computer to present the second plurality of virtual user
identifiers to the second plurality of respective viewers.
Description
FIELD
[0001] This invention generally relates to computers and more
specifically relates generating unique virtual event and user
identifiers.
BACKGROUND
[0002] The development of the EDVAC computer system of 1948 is
often cited as the beginning of the computer era. Since that time,
computer systems have evolved into extremely sophisticated devices,
and computer systems may be found in many different settings.
Computer systems typically include a combination of hardware, such
as semiconductors and circuit boards, and software, also known as
computer programs.
[0003] Years ago, computer systems were stand-alone devices that
did not communicate with each other. But, today, computer systems
are increasingly connected to each other via networks, and one
computer system, often called a client, may request operations or
functions from another computer, which is often called a server.
Some uses of networked systems are online services that clients may
use to participate in game tournaments or auctions. Two problems
that these services can suffer from are unauthorized collaboration
between participants and loss confidentiality. The possibility of
collaboration and loss of confidentiality undermines the confidence
that the participants have in the online service, and therefore
limits customer participation.
[0004] One example of collaboration is when participants
communicate with each other outside of the game unbeknownst to the
other participants, for example via telephone or instant messaging.
This communication may share information regarding game strategy,
position, or knowledge learned from playing the game, which enables
the collaborators to coordinate their actions, essentially allowing
the collaborators to secretly act as a team against other
participants and gain an unfair advantage.
[0005] Another example of collaboration is when a seller in an
auction and a false bidder coordinate. The false bidder has no
intention of actually purchasing the item for sale; instead, the
bidder enters the false bids to generate competition with other
bidders, in order to raise the eventual selling price.
[0006] An example of loss of confidentiality in an auction occurs
when a seller notices a pattern of buying from a particular buyer.
For example, sellers may notice that one buyer is attempting to buy
a complete set of items (e.g., all nine baseball cards of a
championship team), or a series of adjoining lots of land. A buyer
who is only missing one item from a complete set is probably highly
motivated to purchase the last item, and knowledge of this fact
gives potential sellers valuable information regarding the price
that the buyer might be willing to pay. The buyer, of course, does
not want potential sellers to know this information. Thus, buyers
may be reluctant to join auctions where their confidentiality is
not preserved.
[0007] Hence, without a better way to thwart collaboration and loss
of confidentiality, users will suffer from a lack of confidence in
online services.
SUMMARY
[0008] A method, apparatus, system, and signal-bearing medium are
provided that, in an embodiment, generate virtual user identifiers
that represents users, where the virtual user identifiers are
unique to their viewers. Further, virtual event identifiers that
represent events are generated, where the virtual event identifiers
are unique to their viewers. The virtual user identifiers
representing the users and the virtual event identifiers
representing the events are presented to viewers. In various
embodiments, the event may be a game or an auction. In this way, in
an embodiment, collaboration between users is more difficult.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Various embodiments of the present invention are hereinafter
described in conjunction with the appended drawings:
[0010] FIG. 1 depicts a high-level block diagram of an example
system for implementing an embodiment of the invention.
[0011] FIG. 2 depicts a block diagram of an example data structure
for event data, according to an embodiment of the invention.
[0012] FIG. 3 depicts a block diagram of an example data structure
for user data, according to an embodiment of the invention.
[0013] FIG. 4A depicts a block diagram of an example user interface
for events viewed by a viewer, according to an embodiment of the
invention.
[0014] FIG. 4B depicts a block diagram of an example user interface
for events viewed by another viewer, according to an embodiment of
the invention.
[0015] FIG. 4C depicts a block diagram of an example user interface
for events viewed by yet another viewer, according to an embodiment
of the invention.
[0016] FIG. 5 depicts a flowchart of example processing for adding
events to the event data, according to an embodiment of the
invention.
[0017] FIG. 6 depicts a flowchart of further example processing for
adding a user to an event, according to an embodiment of the
invention.
[0018] It is to be noted, however, that the appended drawings
illustrate only example embodiments of the invention, and are
therefore not considered limiting of its scope, for the invention
may admit to other equally effective embodiments.
DETAILED DESCRIPTION
[0019] In an embodiment, an event controller generates virtual user
identifiers that represents users, where the virtual user
identifiers are unique to their viewers. The event controller
further generates virtual event identifiers that represent events,
where the virtual event identifiers are unique to their viewers.
The event controller presents the virtual user identifiers
representing the users and the virtual event identifiers
representing the events to viewers. Thus, viewers are users who
participate in the events and are capable of viewing the virtual
user identifiers and the virtual event identifiers. In various
embodiments, the event may be a game or an auction.
[0020] In this way, the virtual event identifiers and the virtual
user identifiers are unique values that only one viewer receives.
Further, the virtual event identifiers remain consistent for the
viewer throughout that viewer's session, allowing users to move
from event to event, and return to events where they have
participated earlier in the session. Multiple users viewing the
same events view different set of virtual event identifiers and
different sets of virtual user identifiers. Thus, users are
hampered from making arrangements to participate in the same event
or searching all events for each other's virtual user identifiers
because different users view the same event by different virtual
event identifiers, and the virtual user identifier that they know
themselves by is not displayed to other viewers.
[0021] Referring to the Drawings, wherein like numbers denote like
parts throughout the several views, FIG. 1 depicts a high-level
block diagram representation of a computer system 100 connected to
a client 132 via a network 130, according to an embodiment of the
present invention. In an embodiment, the hardware components of the
computer system 100 may be implemented by an eServer iSeries
computer system available from International Business Machines of
Armonk, N.Y. However, those skilled in the art will appreciate that
the mechanisms and apparatus of embodiments of the present
invention apply equally to any appropriate computing system.
[0022] The major components of the computer system 100 include one
or more processors 101, a main memory 102, a terminal interface
111, a storage interface 112, an I/O (Input/Output) device
interface 113, and communications/network interfaces 114, all of
which are coupled for inter-component communication via a memory
bus 103, an I/O bus 104, and an I/O bus interface unit 105.
[0023] The computer system 100 contains one or more general-purpose
programmable central processing units (CPUs) 101A, 101B, 101C, and
101D, herein generically referred to as the processor 101. In an
embodiment, the computer system 100 contains multiple processors
typical of a relatively large system; however, in another
embodiment the computer system 100 may alternatively be a single
CPU system. Each processor 101 executes instructions stored in the
main memory 102 and may include one or more levels of on-board
cache.
[0024] The main memory 102 is a random-access semiconductor memory
for storing data and programs. In another embodiment, the main
memory 102 represents the entire virtual memory of the computer
system 100, and may also include the virtual memory of other
computer systems coupled to the computer system 100 or connected
via the network 130. The main memory 102 is conceptually a single
monolithic entity, but in other embodiments the main memory 102 is
a more complex arrangement, such as a hierarchy of caches and other
memory devices. For example, memory may exist in multiple levels of
caches, and these caches may be further divided by function, so
that one cache holds instructions while another holds
non-instruction data, which is used by the processor or processors.
Memory may be further distributed and associated with different
CPUs or sets of CPUs, as is known in any of various so-called
non-uniform memory access (NUMA) computer architectures.
[0025] The memory 102 includes an event controller 136, event data
144, user data 146, and a page 148. Although the event controller
136, the event data 144, the user data 146, and the page 148 are
illustrated as being contained within the memory 102 in the
computer system 100, in other embodiments some or all of them may
be on different computer systems and may be accessed remotely,
e.g., via the network 130. The computer system 100 may use virtual
addressing mechanisms that allow the programs of the computer
system 100 to behave as if they only have access to a large, single
storage entity instead of access to multiple, smaller storage
entities. Thus, while the event controller 136, the event data 144,
the user data 146, and the page 148 are illustrated as being
contained within the main memory 102, these elements are not
necessarily all completely contained in the same storage device at
the same time. Further, although the event controller 136, the
event data 144, the user data 146, and the page 148 are illustrated
as being separate entities, in other embodiments some of them, or
portions of some of them, may be packaged together.
[0026] The event data 144 represents an event or events. In an
embodiment, an event may be a game or a station or table for a
game. Examples of games include card games, video games, or any
other type of game or competition. In another embodiment, an event
may be an auction, sale, license, rent, or lease of real estate,
goods, commodities, services, intellectual property, or intangible
property, regardless of whether users bid or whether the price is
fixed. In another embodiment, an event may be any type of event in
which users participate, regardless of whether the event is
competitive, non-competitive, or whether money, a prize, or nothing
of value is involved. In various embodiments, participation by a
user may be active or passive and may involve viewing, playing,
bidding, buying, selling, receiving information, inputting
information, or any other appropriate type of participation. The
event data 144 is further described below with reference to FIG.
2.
[0027] The user data 146 represents users at the clients 132 who
participate in the event. The user data 146 is further described
below with reference to FIG. 3. A user may be a player, a viewer, a
bidder, a buyer, a seller, an agent, or any other appropriate type
of user.
[0028] The page 148 represents the status of the event and the
status of the user's participation in the event. The page 148 may
include data, data and control tags, statements, interpretable
code, and/or executable code, and may be implemented via HTML, XML,
style sheets, JavaScript, or any other appropriate technology. The
page 148, as interpreted, executed, and/or presented at the client
132, is further described below with reference to FIGS. 4A, 4B, and
4C.
[0029] The event controller 136 processes the event data 144 and
the user data 146 to create the page 148, which represents the
status of the participation of the users in the event. The event
controller 136 may further receive input from the clients 132,
which represents the participation of the users and update the page
148 to reflect the status of the participation. In an embodiment,
the event controller 136 includes instructions capable of executing
on the processor 101 or statements capable of being interpreted by
instructions executing on the processor 101 to perform the
functions as further described below with reference to FIGS. 5 and
6. In another embodiment, the event controller 136 may be
implemented in microcode. In another embodiment, the event
controller 136 may be implemented in hardware via logic gates
and/or other appropriate hardware techniques.
[0030] The memory bus 103 provides a data communication path for
transferring data among the processor 101, the main memory 102, and
the I/O bus interface unit 105. The I/O bus interface unit 105 is
further coupled to the system I/O bus 104 for transferring data to
and from the various I/O units. The I/O bus interface unit 105
communicates with multiple I/O interface units 111, 112, 113, and
114, which are also known as I/O processors (IOPs) or I/O adapters
(IOAs), through the system I/O bus 104. The system I/O bus 104 may
be, e.g., an industry standard PCI bus, or any other appropriate
bus technology.
[0031] The I/O interface units support communication with a variety
of storage and I/O devices. For example, the terminal interface
unit 111 supports the attachment of one or more user terminals 121,
122, 123, and 124. The storage interface unit 112 supports the
attachment of one or more direct access storage devices (DASD) 125,
126, and 127 (which are typically rotating magnetic disk drive
storage devices, although they could alternatively be other
devices, including arrays of disk drives configured to appear as a
single large storage device to a host). The contents of the main
memory 102 may be stored to and retrieved from the direct access
storage devices 125, 126, and 127, as needed.
[0032] The I/O and other device interface 113 provides an interface
to any of various other input/output devices or devices of other
types. Two such devices, the printer 128 and the fax machine 129,
are shown in the exemplary embodiment of FIG. 1, but in other
embodiment many other such devices may exist, which may be of
differing types. The network interface 114 provides one or more
communications paths from the computer system 100 to other digital
devices and computer systems; such paths may include, e.g., one or
more networks 130.
[0033] Although the memory bus 103 is shown in FIG. 1 as a
relatively simple, single bus structure providing a direct
communication path among the processors 101, the main memory 102,
and the I/O bus interface 105, in fact the memory bus 103 may
comprise multiple different buses or communication paths, which may
be arranged in any of various forms, such as point-to-point links
in hierarchical, star or web configurations, multiple hierarchical
buses, parallel and redundant paths, or any other appropriate type
of configuration. Furthermore, while the I/O bus interface 105 and
the I/O bus 104 are shown as single respective units, the computer
system 100 may in fact contain multiple I/O bus interface units 105
and/or multiple I/O buses 104. While multiple I/O interface units
are shown, which separate the system I/O bus 104 from various
communications paths running to the various I/O devices, in other
embodiments some or all of the I/O devices are connected directly
to one or more system I/O buses.
[0034] The computer system 100 depicted in FIG. 1 has multiple
attached terminals 121, 122, 123, and 124, such as might be typical
of a multi-user "mainframe" computer system. Typically, in such a
case the actual number of attached devices is greater than those
shown in FIG. 1, although the present invention is not limited to
systems of any particular size. The computer system 100 may
alternatively be a single-user system, typically containing only a
single user display and keyboard input, or might be a server or
similar device which has little or no direct user interface, but
receives requests from other computer systems (clients). In other
embodiments, the computer system 100 may be implemented as a
personal computer, portable computer, laptop or notebook computer,
PDA (Personal Digital Assistant), tablet computer, pocket computer,
telephone, pager, automobile, teleconferencing system, appliance,
or any other appropriate type of electronic device.
[0035] The network 130 may be any suitable network or combination
of networks and may support any appropriate protocol suitable for
communication of data and/or code to/from the computer system 100.
In various embodiments, the network 130 may represent a storage
device or a combination of storage devices, either connected
directly or indirectly to the computer system 100. In an
embodiment, the network 130 may support Infiniband. In another
embodiment, the network 130 may support wireless communications. In
another embodiment, the network 130 may support hard-wired
communications, such as a telephone line or cable. In another
embodiment, the network 130 may support the Ethernet IEEE
(Institute of Electrical and Electronics Engineers) 802.3x
specification. In another embodiment, the network 130 may be the
Internet and may support IP (Internet Protocol).
[0036] In another embodiment, the network 130 may be a local area
network (LAN) or a wide area network (WAN). In another embodiment,
the network 130 may be a hotspot service provider network. In
another embodiment, the network 130 may be an intranet. In another
embodiment, the network 130 may be a GPRS (General Packet Radio
Service) network. In another embodiment, the network 130 may be a
FRS (Family Radio Service) network. In another embodiment, the
network 130 may be any appropriate cellular data network or
cell-based radio network technology. In another embodiment, the
network 130 may be an IEEE 802.11B wireless network. In still
another embodiment, the network 130 may be any suitable network or
combination of networks. Although one network 130 is shown, in
other embodiments any number (including zero) of networks (of the
same or different types) may be present.
[0037] The client 132 includes a browser 133, which the client uses
to participate in or view the event. In another embodiment, the
browser 133 is not present or not used, and the client 132 may use
any appropriate mechanism to participate in the event. The client
132 may further include some or all of the hardware and/or software
mechanisms previously described for the computer system 100.
Although the client 132 is illustrated as being separate from the
computer system 100 and connected via the network 132, in other
embodiments the client 132 may be connected directly to the
computer system 132 or may be a part of the computer system
132.
[0038] It should be understood that FIG. 1 is intended to depict
the representative major components of the computer system 100, the
network 130, and the client 132 at a high level, that individual
components may have greater complexity than represented in FIG. 1,
that components other than or in addition to those shown in FIG. 1
may be present, and that the number, type, and configuration of
such components may vary. Several particular examples of such
additional complexity or additional variations are disclosed
herein; it being understood that these are by way of example only
and are not necessarily the only such variations.
[0039] The various software components illustrated in FIG. 1 and
implementing various embodiments of the invention may be
implemented in a number of manners, including using various
computer software applications, routines, components, programs,
objects, modules, data structures, etc., referred to hereinafter as
"computer programs," or simply "programs." The computer programs
typically comprise one or more instructions that are resident at
various times in various memory and storage devices in the computer
system 100, and that, when read and executed by one or more
processors 101 in the computer system 100, cause the computer
system 100 to perform the steps necessary to execute steps or
elements comprising the various aspects of an embodiment of the
invention.
[0040] Moreover, while embodiments of the invention have and
hereinafter will be described in the context of fully-functioning
computer systems, the various embodiments of the invention are
capable of being distributed as a program product in a variety of
forms, and the invention applies equally regardless of the
particular type of signal-bearing medium used to actually carry out
the distribution. The programs defining the functions of this
embodiment may be delivered to the computer system 100 via a
variety of signal-bearing media, which include, but are not limited
to:
[0041] (1) information permanently stored on a non-rewriteable
storage medium, e.g., a read-only memory device attached to or
within a computer system, such as a CD-ROM, DVD-R, or DVD+R;
[0042] (2) alterable information stored on a rewriteable storage
medium, e.g., a hard disk drive (e.g., the DASD 125, 126, or 127),
CD-RW, DVD-RW, DVD+RW, DVD-RAM, or diskette; or
[0043] (3) information conveyed by a communications medium, such as
through a computer or a telephone network, e.g., the network 130,
including wireless communications.
[0044] Such signal-bearing media, when carrying machine-readable
instructions that direct the functions of the present invention,
represent embodiments of the present invention.
[0045] Embodiments of the present invention may also be delivered
as part of a service engagement with a client corporation,
nonprofit organization, government entity, internal organizational
structure, or the like. Aspects of these embodiments may include
configuring a computer system to perform, and deploying software
systems and web services that implement, some or all of the methods
described herein. Aspects of these embodiments may also include
analyzing the client company, creating recommendations responsive
to the analysis, generating software to implement portions of the
recommendations, integrating the software into existing processes
and infrastructure, metering use of the methods and systems
described herein, allocating expenses to users, and billing users
for their use of these methods and systems.
[0046] In addition, various programs described hereinafter may be
identified based upon the application for which they are
implemented in a specific embodiment of the invention. But, any
particular program nomenclature that follows is used merely for
convenience, and thus embodiments of the invention should not be
limited to use solely in any specific application identified and/or
implied by such nomenclature.
[0047] The exemplary environments illustrated in FIG. 1 are not
intended to limit the present invention. Indeed, other alternative
hardware and/or software environments may be used without departing
from the scope of the invention.
[0048] FIG. 2 depicts a block diagram of an example data structure
for the event data 144, according to an embodiment of the
invention. The event data 144 includes records 205, 210, 215, 220,
225, and 230, but in other embodiments any number of records with
any appropriate data may be present. Each of the records includes
an event identifier field 235, a virtual event identifier field
240, and a viewer field 245. The event identifier field 235
identifies an event in which users may participate. In an
embodiment, an event may be a game or a station or table for a
game. Examples of games include card games, video games, or any
other type of game or competition. In another embodiment, an event
may be an auction or sale of goods or services, regardless of
whether users bid on the goods or services or whether the price is
fixed. In another embodiment, an event may be any type of event in
which users participate, regardless of whether the event is
competitive or whether money or prizes are involved. In various
embodiments, participation by a user may be active or passive and
may involve viewing, playing, bidding, buying, selling, receiving
information, inputting information, or any other appropriate type
of participation.
[0049] The virtual event identifier field 240 identifies the event
235 to the viewer 245, who does not receive the event identifier
235. In an embodiment, the event controller 136 may generate the
virtual event identifier 240 randomly via any appropriate
technique. The virtual event identifiers 240 are different for each
viewer 245. A viewer 245 is a user who participates in the event
235 and who may view the virtual event identifier 240, which
represents the event 235. In various embodiments, the viewer 245
may view identifiers via any appropriate mechanism, including
visual, audio, tactile, or any other appropriate identifier
presentation mechanism.
[0050] Thus, each of the records 205, 210, 215, 220, 225, and 230
represents the virtual event identifier 240 that the event
controller 136 presents to the viewer 245 to represent the event
identifier 235 when the viewer 245 participates in the event 235.
For example, record 205 illustrates that if "user C" participates
in "event A," then "event A" is presented to "user C" as "vevent
U." Similarly, record 210 illustrates that if "user D" participates
in "event A," then "event A" is presented to "user D" as "vevent
V." Similarly, record 215 illustrates that if "user E" participates
in "event A," then "event A" is presented to "user E" as "vevent
W." Similarly, record 220 illustrates that if "user C" participates
in "event B," then "event B" is presented to "user C" as "vevent
X." Similarly, record 225 illustrates that if "user D" participates
in "event B," then "event B" is presented to "user E" as "vevent
Y." Similarly, record 230 illustrates that if "user E" participates
in "event B," then "event B" is presented to "user E" as "vevent
Z."
[0051] FIG. 3 depicts a block diagram of an example data structure
for the user data 146, according to an embodiment of the invention.
The user data 146 includes records 305, 310, 315, 320, 325, 330,
335, 340, 345, and 350, but in other embodiments any number of
records with any appropriate data may be present. Each of the
records includes an event identifier field 360, a user identifier
field 365, a virtual user identifier field 370, and a viewer field
375.
[0052] The event identifier field 360 identifies an event in which
users may participate. The user identifier field 365 identifies a
user who participates in the event 360. The virtual user identifier
field 370 identifies the user 365 to the viewer 375, who does not
receive the user identifier 365. The virtual user identifiers 370
are unique to the viewers 375 and are also unique to the events
360. Thus, the user 365 has a different virtual user identifier 370
when viewed by each viewer 375 and also has a different virtual
user identifier 370 when the user 365 participates in a different
event 360, for each viewer 375. The viewer 375 is a user who
participates in the event 360 and may be the same or different from
the user 365.
[0053] Thus, each of the records 305, 310, 315, 320, 325, 330, 335,
340, 345, and 350 represents the virtual user identifier 370 that
is to be presented to the viewer 375 to represent the user
identifier 365 when participating in the event 360. For example,
the record 305 illustrates that if "user C" participates in "event
A," then "user C" is presented to "user C" as "vuser L." Similarly,
record 310 illustrates that if "user C" participates in "event A,"
then "user C" is presented to "user D" as "vuser M." Similarly,
record 315 illustrates that if "user C" participates in "event A,"
then "user C" is presented to "user E" as "vuser N." Similarly,
record 320 illustrates that if "user D" participates in "event A,"
then "user D" is presented to "user C" as "vuser R." Similarly,
record 325 illustrates that if "user D" participates in "event A,"
then "user D" is presented to "user D" as "vuser S." Similarly,
record 330 illustrates that if "user D" participates in "event A,"
then "user D" is presented to "user E" as "vuser T." Similarly,
record 335 illustrates that if "user E" participates in "event A,"
then "user E" is presented to "user C" as "vuser W." Similarly,
record 340 illustrates that if "user E" participates in "event A,"
then "user E" is presented to "user D" as "vuser X." Similarly,
record 345 illustrates that if "user E" participates in "event A,"
then "user E" is presented to "user E" as "vuser Y." Similarly,
record 350 illustrates that if "user C" participates in "event B,"
then "user C" is presented to "user C" as "vuser Z."
[0054] FIGS. 4A, 4B, and 4C depict blocks diagrams of example user
interfaces 401, 402, and 403, respectively, for the same event
("event A" of FIGS. 2 and 3) in which "user C," "user D," and "user
E" participate, as viewed by different viewers: "user C," "user D,"
and "user E," respectively, as illustrated in the examples of FIGS.
2 and 3.
[0055] FIG. 4A depicts a block diagram of an example user interface
401 for "Event A," in which "user C," "user D," and "user E"
participate, where "user C" is the viewer 375 of the user interface
401, according to an embodiment of the invention. In the example
user interface 401, the event 235 of "event A" is presented to the
viewer 375 ("user C") as virtual event "vevent U" 412, as
represented in record 205 of the event data 144. The user 365 of
"user C" is presented to the viewer 375 ("user C") as the virtual
user vuser L 410, as represented in record 305 of the user data
146. The user 365 of "user D" is presented to the viewer 375 ("user
C") as the virtual user vuser R 415, as represented in record 320
of the user data 146. The user 365 of "user E" is presented to the
viewer 375 ("user C") as the virtual user vuser W 420, as
represented in record 335 of the user data 146. The event
identifier 235 ("event A") and the user identifiers 365 ("user C,"
"user D," and "user E") are not presented in the user interface
401; instead, the virtual event identifiers 240 (FIG. 2) and
virtual user identifiers 370 (FIG. 3) are presented to the viewer
375 ("user C").
[0056] FIG. 4B depicts a block diagram of an example user interface
402 for "Event A," in which "user C," "user D," and "user E"
participate, where "user D" is the viewer 375 of the user interface
402, according to an embodiment of the invention. In the example
user interface 402, the event 235 of "event A" is presented to the
viewer "user D" as virtual event "vevent V" 422, as represented in
record 210 of the event data 144. The user 365 of "user C" is
presented to the viewer "user D" as the virtual user vuser M 425,
as represented in record 310 of the user data 146. The user 365 of
"user D" is presented to the viewer "user D" as the virtual user
vuser S 430, as represented in record 325 of the user data 146. The
user 365 of "user E" is presented to the viewer "user D" as the
virtual user vuser X 435, as represented in record 340 of the user
data 146. The event identifier 235 ("event A") and the user
identifiers 365 ("user C," "user D," and "user E") are not
presented in the user interface 402; instead, the virtual event
identifiers 240 (FIG. 2) and virtual user identifiers 370 (FIG. 3)
are presented to the viewer 375 ("user D").
[0057] FIG. 4C depicts a block diagram of an example user interface
403 for "Event A," in which "user C," "user D," and "user E"
participate, where "user E" is the viewer 375 of the user interface
403, according to an embodiment of the invention. In the example
user interface 403, the event 235 of "event A" is presented to the
viewer "user E" as virtual event "vevent W" 432, as represented in
record 215 of the event data 144. The user 365 of "user C" is
presented to the viewer "user E" as the virtual user vuser N 440,
as represented in record 315 of the user data 146. The user 365 of
"user D" is presented to the viewer "user E" as the virtual user
vuser T 445, as represented in record 330 of the user data 146. The
user 365 of "user E" is presented to the viewer "user E" as the
virtual user vuser Y 450, as represented in record 345 of the user
data 146. The event identifier 235 ("event A") and the user
identifiers 365 ("user C," "user D," and "user E") are not
presented in the user interface 403; instead, the virtual event
identifiers 240 (FIG. 2) and virtual user identifiers 370 (FIG. 3)
are presented to the viewer 375 ("user E").
[0058] In this way, the virtual event identifiers 240 and the
virtual user identifiers 370 are unique values that only one viewer
sees. Further, the virtual event identifiers 240 remain consistent
for the viewer 245 throughout that user's session, allowing users
to move from event to event, and return to events where they have
participated earlier in the session. Another user views the same
events, but with a different set of virtual event identifiers 240.
Thus, users are hampered from making arrangements to both join the
same event 235, since they know the same event by different virtual
event identifiers 240. For example, if "user C" and "user D" both
wish to join "event A" and collaborate, doing so is difficult
because "user C" knows "event A" only as "vevent U" (FIG. 4A) while
"user D" knows "event A" only as "vevent V" (FIG. 4B). Thus, if
"user C" instructs "user D" to join "vevent U," this information
does not allow "user D" to find the event 235 in which "user C"
participates.
[0059] In addition, "user C" and "user D" cannot search all events
for each other's user identifiers 365 since "user C" is presented
to "user C" as "vuser L" in "event A," but "user C" is presented to
"user D" as "vuser M" in "event A." Thus, if "user C" instructs
"user D" to join the event where "vuser L" is participating, "user
D" will not find such a virtual user identifier 370.
[0060] FIG. 5 depicts a flowchart of example processing for adding
events to the event data 144, according to an embodiment of the
invention. Control begins at block 500. Control then continues to
block 505 where the event controller 136 decides to add more events
to the event data 144. The event controller 136 may make the
determination at block 505 based on a request from a system
administrator, based on a threshold being reached, based on a
request from another program, or based on any other stimulus or
criteria. Control then continues to block 505 where the event
controller 136 generates additional records in the event data 144
for the new events 235 and virtual event identifiers 240 for users
who may be potential viewers 245 of the new events 235. Thus, the
event controller 136 generates virtual event identifiers 240 for
the new event 235, where each of the virtual event identifiers 240
is unique to its associated viewer 245. Control then continues to
block 599 where the logic of FIG. 5 returns.
[0061] FIG. 6 depicts a flowchart of further example processing for
adding a user to an event, according to an embodiment of the
invention. Control begins at block 600. Control then continues to
block 605 where a user views or begins participating in an event
360. Control then continues to block 610 where the event controller
136 generates a virtual event identifier 240 for the viewer 245 and
a new record in the event data 144 if the virtual event identifier
240 associated with the user does not already exist. The event
controller 136 further generates a virtual user identifier 370 that
represents the user 365 for all the viewers 375 participating in or
viewing the event 360. Thus, the event controller 136 generates
virtual user identifiers 370 associated with a user 365, each of
the virtual user identifiers 370 identifies the user 365 (who is
joining the event), and each of the virtual user identifiers 370 is
unique both to its user 365 and to its viewer 375. In various
embodiments, the event controller 136 may generate the virtual user
identifiers 370 based on a function of the user identifier 365,
based on generating a unique random number used as an index into a
table of nicknames (which may be any type of name or other
identifier), or based on any other appropriate technique.
[0062] Control then continues to block 615 where the event
controller 136 presents selected virtual event identifiers 240 and
selected virtual user identifiers 370 to selected viewers 375 of
the event. In an embodiment, the event controller 136 performs the
presentation by creating the page 148 and sending the page 148 to
the client 132. Control then continues to block 699 where the logic
of FIG. 6 returns.
[0063] In the previous detailed description of exemplary
embodiments of the invention, reference was made to the
accompanying drawings (where like numbers represent like elements),
which form a part hereof, and in which is shown by way of
illustration specific exemplary embodiments in which the invention
may be practiced. These embodiments were described in sufficient
detail to enable those skilled in the art to practice the
invention, but other embodiments may be utilized and logical,
mechanical, electrical, and other changes may be made without
departing from the scope of the present invention. Different
instances of the word "embodiment" as used within this
specification do not necessarily refer to the same embodiment, but
they may. The previous detailed description is, therefore, not to
be taken in a limiting sense, and the scope of the present
invention is defined only by the appended claims.
[0064] In the previous description, numerous specific details were
set forth to provide a thorough understanding of embodiments of the
invention. But, the invention may be practiced without these
specific details. In other instances, well-known circuits,
structures, and techniques have not been shown in detail in order
not to obscure the invention.
* * * * *