U.S. patent application number 12/234975 was filed with the patent office on 2010-03-25 for system, method and computer program product for a robotic game.
Invention is credited to Philip Edward Baratti, Richard Elliott Brookshire, Alan Brian Rupert.
Application Number | 20100075744 12/234975 |
Document ID | / |
Family ID | 42038230 |
Filed Date | 2010-03-25 |
United States Patent
Application |
20100075744 |
Kind Code |
A1 |
Baratti; Philip Edward ; et
al. |
March 25, 2010 |
System, Method And Computer Program Product For A Robotic Game
Abstract
Disclosed are methods, systems and computer program products for
playing a game, such as craps, with the assistance of a robotic
mechanism. One example method includes receiving a bet from a
player. The robotic mechanism may then perform a gaming event and a
result of the gaming event may be visually detected with a vision
system. A result specific to the player may be determined based at
least in part on the detected gaming event result. Also disclosed
are computer program products having computer executable
instructions for performing the game.
Inventors: |
Baratti; Philip Edward;
(Yorba Linda, CA) ; Brookshire; Richard Elliott;
(Torrance, CA) ; Rupert; Alan Brian; (Carson,
CA) |
Correspondence
Address: |
EPSON RESEARCH AND DEVELOPMENT INC;INTELLECTUAL PROPERTY DEPT
2580 ORCHARD PARKWAY, SUITE 225
SAN JOSE
CA
95131
US
|
Family ID: |
42038230 |
Appl. No.: |
12/234975 |
Filed: |
September 22, 2008 |
Current U.S.
Class: |
463/22 ; 463/31;
463/37 |
Current CPC
Class: |
A63F 2009/2488 20130101;
G07F 17/3216 20130101; G07F 17/3286 20130101; G07F 17/3213
20130101; A63F 3/00157 20130101 |
Class at
Publication: |
463/22 ; 463/31;
463/37 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method of playing a game comprising: receiving a wager from a
player; controlling a robotic arm to perform a gaming event;
detecting a result of the gaming event with a vision system; and
determining a result specific to the player based at least in part
on the detected gaming event result.
2. The method of claim 1, wherein the wager is received via a user
interface device.
3. The method of claim 2, further comprising reporting the
player-specific result to the player via the user interface
device.
4. The method of claim 2, wherein the user interface device
comprises a touch screen.
5. The method of claim 1, further comprising controlling the
robotic arm to move a game piece in accordance with the wager
and/or the player-specific result.
6. The method of claim 5, wherein the game piece is a chip.
7. The method of claim 5, wherein the robotic arm is adapted to
move the game piece to a location on a game board in accordance
with the received wager.
8. The method of claim 1, wherein the gaming event utilizes a game
tool.
9. The method of claim 8, wherein the game tool is one or more dice
and wherein controlling the robotic arm to carry out the random
event includes controlling the robotic arm to roll the one or more
dice.
10. The method of claim 1, wherein receiving the wager includes
receiving a wager and a prediction of a characteristic of the
gaming event result.
11. A computing system comprising: a processor; and memory storing
executable instructions which, when executed by the computing
system, implement the method recited in claim 1.
12. A game system comprising: a user interface device to receive a
wager from a player; a robotic arm; a controller configured to
control the robotic arm in performing a gaming event; a vision
system operably connected to the controller and configured to
visually detect a result of the gaming event; and wherein the
controller or the user interface device is adapted to determine a
result specific to the player based at least in part on the
visually detected gaming event result.
13. The game system of claim 12, wherein the user interface device
is communicatively connected to the controller and is adapted to
report the player-specific result to the player.
14. The game system of claim 12, wherein the user interface device
comprises a touch screen.
15. The game system of claim 12, wherein the robotic arm is adapted
to move a game piece in accordance with the bet and/or the
player-specific result.
16. The game system of claim 15, wherein the game piece is a
chip.
17. The game system of claim 15, wherein the robotic arm is adapted
to move the game piece to a location on a game board in accordance
with the received bet.
18. The game system of claim 12, wherein the gaming event utilizes
a game tool selected from the group consisting of: one or more
dice, one or more cards, a ball, a roulette wheel, a spinner, a
random number generating device, or any combination thereof.
19. The game system of claim 12, wherein the received bet includes
a wager and a prediction of a characteristic of the gaming event
result.
20. The game system of claim 12, further comprising: a
point-of-sale terminal to process financial transactions made in
connection with the player's bet; and a printer to print an award
amount on a cash-redeemable ticket based at least in part on the
player-specific result.
21. A computer-readable storage medium having computer-executable
instructions that, when executed, cause a computing device to:
receive a bet from a player; control a robotic arm to perform a
gaming event; detect a result of the gaming event with a vision
system; and determine a result specific to the player based at
least in part on the detected gaming event result.
Description
BACKGROUND
[0001] 1. The Field of the Invention
[0002] Embodiments of the present invention relate to methods and
systems for a game using robotics. In particular, disclosed
embodiments related to methods, computer program products and
systems that operate to conduct a game, such as a craps game, using
a robotic mechanism.
[0003] 2. The Relevant Technology
[0004] Many games, particularly gambling or casino games, can be
difficult to learn. If a game is too difficult or complex the
game's popularity may wane or new players may choose simpler or
more familiar games. Trust in fairness of the game may also be
difficult to maintain. For example, players may suspect that a
dealer, by virtue of being more familiar with the game, could
surreptitiously adjust winning odds in favor of the casino while
the players are distracted by the game's complexity.
[0005] One approach to solving problems such as these has been to
simulate games with computer software. New players may feel more
comfortable learning how to play a new game without an audience.
Thus, a broader market of players might be reached. Video poker,
for example, is a popular simulated casino game. However, many
players find simulations such as video poker to be inferior because
of the lack of interaction with other people and/or the lack of
realism. For example, some players prefer the feel of real cards.
In addition, trust in the game's fairness may suffer because
winning odds could be easily manipulated through software
parameters. Even if the odds are in fact fair, the perception of
unfair odds can develop after a series of losses and there is no
way for a player to verify fairness. Therefore, player confidence
in the fairness of a software simulation can often be as low as or
lower than player confidence in a real game.
BRIEF SUMMARY
[0006] Embodiments of the present invention provide systems,
methods and computer program products that provide both aspects of
a computer simulated game, and of a real game experience. For
example, certain disclosed embodiments pertain to a method of
playing a game of chance, such as craps, using robotics to perform
selected aspects of the game. The method may include receiving a
bet from a player, controlling a robotic mechanism to perform a
gaming event--such as rolling dice, dealing cards and the
like--detecting a result of the gaming event with a vision system,
and determining a result specific to the player based at least in
part on the detected gaming event result. In certain embodiments, a
cash-redeemable winning receipt may be printed for a player after
one or more gaming events or rounds. Thus, although the game is
conducted in a manner similar to a real game (e.g., the use of
physical dice, cards, etc.), the use of a computer controlled
robotic mechanism to perform a gaming event, among other things,
lends the game certain qualities found in a computer
simulation.
[0007] In other disclosed embodiments, aspects of the invention can
be implemented via a series of computer executable instructions
stored on one or more computer-readable media, which, when
executed, implement or otherwise carry out aspects of the game
method described above.
[0008] Another embodiment of the invention relates to a game
system. For example, one disclosed embodiment comprises one or more
user interface devices or stations, a robotic mechanism, a
controller, a vision system, and a game table. The user interface
may be adapted to receive bets from a player and relay bet
information to the controller. The controller may control the
robotic mechanism in carrying out a gaming event, such as the
rolling of physical dice on the game table. Using the vision
system, a result of the gaming event may be detected and a result
specific to the player may thereby be determined. A player-specific
result may be combined with player-specific results corresponding
to a previous gaming event result and a cash-redeemable ticket or
receipt may be printed after one or more rounds of play.
[0009] This Summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detailed Description. This Summary is not intended to identify
key features or essential characteristics of the claimed subject
matter, nor is it intended to be used as an aid in determining the
scope of the claimed subject matter.
[0010] Additional features will be set forth in the description
which follows, and in part will be obvious from the description, or
may be learned by the practice of the teachings herein. Features of
the invention may be realized and obtained by means of the
instruments and combinations particularly pointed out in the
appended claims. Features of the present invention will become more
fully apparent from the following description and appended claims,
or may be learned by the practice of the invention as set forth
hereinafter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] To further clarify the features of the present invention, a
more particular description of the invention will be rendered by
reference to example embodiments thereof which are illustrated in
the appended drawings. It is appreciated that these drawings depict
only example embodiments of the invention and are therefore not to
be considered limiting of its scope. The invention will be
described and explained with additional specificity and detail
through the use of the accompanying drawings in which:
[0012] FIG. 1 illustrates a first exemplary game system for playing
a game;
[0013] FIG. 2 illustrates a second exemplary game system for
playing a game;
[0014] FIG. 3 illustrates an exemplary screen shot displayed by a
user interface device in an exemplary game system; and
[0015] FIG. 4 illustrates an exemplary method of playing a
game.
DETAILED DESCRIPTION
[0016] In the following detailed description of the embodiments,
reference is made to the accompanying drawings that show, by way of
illustration, example embodiments of the invention. In the
drawings, like numerals describe substantially similar components
throughout the several views. These embodiments are described in
sufficient detail to enable those skilled in the art to practice
the invention. Other embodiments may be utilized and structural,
logical and electrical changes may be made without departing from
the scope of the present invention. Moreover, it is to be
understood that the various embodiments of the invention, although
different, are not necessarily mutually exclusive. For example, a
particular feature, structure, or characteristic described in one
embodiment may be included within other embodiments. The following
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, along with the full scope of equivalents to
which such claims are entitled.
[0017] In the following description, example embodiments of
methods, computer program products and systems for playing a game,
such as craps, are presented. It will be appreciated that while a
craps game is used for purposes of illustration, the present
invention is not limited to a particular type of game, and that
aspects of the described embodiments could also be used in
connection with many types of games.
[0018] In an exemplary system, a programmable controller (such as a
general purpose computer or a specialized computing device) is
operably attached to a robotic mechanism, sometimes referred to
herein as a "robotic arm," or simply "arm." The controller receives
bets or wagers from one or more players, via, for example, a user
interface device. Depending on, for example, the nature of the
game, bets placed, etc., the controller functions to control the
robotic arm to perform certain actions that might otherwise be
performed by a human dealer, such as moving chips to various
locations on a craps table that correspond to the players' bets.
The robotic arm can also be programmably operated to roll the dice,
and move the wagered chips in correspondence to a determined roll
outcome and corresponding score for each player. A vision system,
such as a camera device, may be used to detect a particular
outcome, and the controller can then manipulate the robotic arm
accordingly and update game status on the user interface
device(s).
[0019] Also disclosed are embodiments relating to methods for
conducting a game using, for example, aspects of the
above-described system, as well as computer program products having
computer executable instructions, which, when executed, carry out
steps of the game methods.
1. Exemplary Systems for Playing a Game
[0020] FIG. 1 depicts an exemplary system 100, which includes a
controller 102 operably connected to multiple user interface
devices (i.e., stations) 104. The interconnection can made by way
of dedicated connections or by way of a network-type interconnect,
as will be described further below. The controller 102 may be
programmable in a manner so as to operate and control a robotic
mechanism, such as arm 106, that is located proximate to a game
table 108. In the illustrated example, the game table is a craps
table, such as would be found in a typical casino environment.
Controller 102 is also operably connected to a vision system,
denoted at 110.
[0021] In an exemplary round of play, each station 104 may receive
wagers from a player. Typically, the player would place wagers and
otherwise interact with the game by way of an appropriate interface
on the station 104, such as a touch screen, keyboard, pointing
device and the like, or combinations thereof. Controller 102 may
receive and validate each player's wager, and control robotic arm
106 to, for example, move chips on the craps table in accordance
with the wagers placed by each player. In the illustrated
embodiment, robotic arm 106 is programmably controlled by
controller 102 to perform predefined gaming events. For example,
robotic arm 106 and controller 102 may use vision system 110 to
detect and pick up and roll dice.
[0022] Although dice are frequently used to perform a gaming event
in a game involving a game of chance, other gaming events may be
carried out by robotic arm 106, such as spinning a spinner/roulette
wheel, drawing one or more cards from a deck, dealing cards, among
other things. Moreover, the gaming event may involve the use of
physical game tools such as dice and/or may be simulated by a
software process in a device, such as a computer, to generate one
or more random or pseudorandom numbers.
[0023] Vision system 110 may be used to detect a result of the
gaming event, e.g., by reading a dice roll outcome, and can
transmit the result to controller 102. Controller 102 may then
calculate results specific to each player (e.g., a score, tally,
winnings, and/or losses) based on the detected roll outcome and the
bet placed by each player and report each player-specific result or
score via stations 104. Alternatively, each station 104 may
determine a player-specific result or score based on the roll
outcome as reported by controller 102. Robotic arm 106 may, under
operation of controller 102, move chips on game table 108 in
accordance with each player's winnings or losses. For example,
robotic arm 106 may move a winning player's chips to an area of the
game table designated for that player's bankroll and may clear all
losing player's chips to a separate predetermined area.
[0024] System 100 of FIG. 1 is one embodiment in which a game can
be played. The embodiment of FIG. 1 may be used, for example, to
draw attention to a gambling establishment, to provide an
alternative for non-gamblers, to introduce new players to the game,
and/or to train new dealers in conducting a conventional version of
the game.
[0025] FIG. 2 depicts another exemplary system 200, which may
include all the elements of system 100, but may additionally
include a point-of-sale (POS) terminal 202 whereby a player may
exchange actual money (e.g., via a credit card reader) for betting
chips and print a winning amount on a cash-redeemable ticket. POS
terminal 202 may include a printer integrated therewith or the
printer may be implemented separately. In addition, POS terminal
202 and the printer, if implemented separately from the POS
terminal, may be communicatively connected to controller 102 to
receive and transmit data, such as winning amounts, chip purchase
amounts, transaction details, etc.
[0026] Systems 100 and 200 may have various modes of operation
including, for example, a play mode, a demonstration mode, and a
sleep mode. For example, controller 102 may control robotic arm 106
and/or stations 104 to transition from a sleep mode to a play or
demonstration mode if the presence of a new player is detected. A
new player may be detected via one or more sensors including, e.g.,
motion or pressure sensors, or by interaction with the display
screen of a station 104 by a new player. In addition, systems 100
and 200 may be adapted to allow one player or any number of
multiple players to simultaneously play. When one or more stations
104 are unmanned during a round of play, controller 102 may
optionally be configured to simulate player selections for one or
more of the unmanned devices. The simulated player(s) may have
manually or adaptively adjustable levels of skill.
[0027] Robotic arm 106 may be stationary or mobile and may include,
among other things, one or more manipulating devices at an end
thereof, such as selectively-powered vacuums, pinchers, scoops,
pistons, etc. Moreover, although robotic arm 106 is described and
illustrated as a single robotic arm, systems 100 and 200 may
include a plurality of robotic arms 106, each of the same or of
different types. For example, robotic arms 106 may include a six
axis robotic arm (e.g., an EPSON.RTM. Pro Six robotic arm), a
linear axis robotic arm (e.g., a 1, 2, 3 or 4 axis EPSON.RTM. EZ
module robotic arm), and/or a SCARA robotic arm (e.g., an
EPSON.RTM. E2 SCARA or G-Series SCARA robotic arm). Each robotic
arm may be configured to carry out a separate function. For
example, one robotic arm may be dedicated for picking up and
rolling dice or manipulating some other game tool, while another
robotic arm may be dedicated for moving game pieces, such as chips.
Alternatively or in addition, a different robotic arm 106 may be
dedicated for each of a plurality of game areas on game table
108.
[0028] Controller 102 may include a personal computer (PC) based
controller, such as an EPSON.RTM. RC420 or RC520 PC based
controller or a non-PC based controller, such as an EPSON.RTM.
Micro PowerDrive RC170 controller. Controller 102 may include a
plurality of ports, processors, and storage devices (i.e., memory)
sufficient to receive, store, and process multiple variables,
including station numbers, bet amounts for each station, locations
of chips corresponding to each station's bets, etc., in addition to
other data and instructions, e.g., vision system coordinates and
calibration information, robotic arm coordinates and calibration
information, image processing applications, game rules and
routines, etc. Controller 102 may be adapted to control robotic arm
106 based on a combination of the variables stored and tracked
within its memory. As will be appreciated, controller 102 can be
programmable, and designed to carry out a process as defined by
computer executable instructions stored on a suitable computer
storage medium (computer program product).
[0029] Vision system 110, used to track locations of game tools and
pieces (e.g., chips and dice), may comprise, for example, an
EPSON.RTM. Vision Guide 4.0 vision system, including one or more
cameras that are mobile, mounted to robotic arm(s) 106, fixed in
place, or some combination thereof. Vision system 110 and/or
controller 102 may be integrated with robotic arm 106 in a single
integral apparatus.
[0030] Stations 104 may be dedicated PCs running an application
communicatively linked to controller 102 to communicate data, such
as identification information (e.g., a unique station
identification), bet amounts or wagers, bet locations, roll
outcomes, scores, errors, etc. A communicative link between
stations 104 and controller 102 may be implemented with any
suitable network equipment, such as switches, routers, multi-port
hubs, and/or point-to-point links, and may include wired and/or
wireless links. The network equipment may also include
communication links from the optionally present printer and
point-of-sale terminal to controller 102 and stations 104.
Alternatively, a printer and/or point-of-sale terminal may be
integrated with each station 104.
2. Exemplary Screen Shot for a Craps Game
[0031] FIG. 3 depicts an exemplary screen shot 300 displayed by one
of stations 104. In one embodiment, each station 104 includes a
dedicated computer and a touch screen (e.g., a 3M or ELO touch
screen), on which a representation of a game table 108 is
displayed. Although screen shot 300 corresponds to a craps game,
systems 100 and 200 may be adapted to play other games and thus
screen shot 300 may be adapted accordingly to provide inputs and
outputs appropriate for other games. Also, it will be appreciated
that stations 104 could have different configurations and
implementations than what is shown.
[0032] As depicted in the example screen shot 300, each station 104
displays a graphic including a bankroll 302, betting chips 304, a
betting field 306 (i.e., an image representing an overhead view of
game table 108), an action box 308, a hint box 310, and action
buttons 312. Bankroll 302 may inform the player, for example, how
much money is available for the player to bet, how much money is on
the table, and how much time is left to place a bet, among other
things. A timer for placing bets may be included as on option in
order to increase game speed and thereby maintain interest and
excitement in the game. If a particular station is unmanned, a bet
may be automatically placed using the house's chips. If an unmanned
station is designated as the shooter, the station may automatically
issue a roll dice command when the betting timer expires.
[0033] Betting chips 304 may be selected by a player's finger on
the touch screen and dragged to a bet location on betting field
306. As a player loses money, the displayed betting chips 304 may
reflect the loss. For example, if the player's bankroll is below
$100, then no $100 chips would be displayed as being available to
use for betting.
[0034] Action box 308 may include various types of data. For
example, action box 308 may inform the player of game status, e.g.,
what amount the player bet, a score (e.g., a payout for a bet or a
loss), the outcome of a dice roll including the specific numbers
rolled, and/or other interesting or useful information, such as
what a current return is for a given bankroll.
[0035] Hint box 310 may inform the player of an input that station
104 is waiting for, what the best odds are for a given number, what
are the best pay bets and the lowest pay bets, etc. Stations 104
may be adapted to automatically speak information displayed in hint
box 310 using, e.g., a speech synthesis application.
[0036] Action buttons 312 may include a "Finished Betting" button
and a "Roll Dice" button. For example, when a player presses the
"Finished Betting" button, controller 102 and/or the corresponding
station 104 may validate the bet under the rules of the game and,
if the bet is valid, the robotic arm may move the player's chips to
locations on the craps table corresponding to the player's bet
selections. Systems 100 and 200 may be configured such that any
station 104 can send data at any time to controller 102 and thus
players need not take turns in any specific order. The "Roll Dice"
button may be enabled for one player designated as the shooter
after all the other non-shooter players have finished betting.
[0037] After all bets are placed and the shooter selects "Roll
Dice," robotic arm 106 may be controlled to pick up and roll the
dice. Controller 102 may detect, via vision system 110, the roll
outcome and may determine player scores (e.g., wins/losses) based
on the outcome of the roll. Alternatively, the roll outcome may be
reported to each station 104 and corresponding scores may be
determined at each station 104. The display at each station 104 may
be adjusted/updated to reflect each player's determined score and
the betting process may repeat with a new player designated as
shooter.
[0038] Note that the screen might display additional "non-game"
related information as well. In the example graphic for example, a
portion of the screen might be used for advertising or other
promotional purposes. The content of the advertisement might vary
over time and/or might be adapted to the amount that the player is
betting.
3. Exemplary Method for Playing a Game
[0039] FIG. 4 depicts an exemplary method 400 of playing a game
with a robotic arm, which may be implemented in systems 100 and 200
using software, hardware, or some combination thereof. In method
400 a bet may first be received from one or more players (stage
402). Each bet may be received via a touch screen at a station 104.
Each bet may include a wager (i.e., bet amount) and a prediction of
a characteristic of the gaming event result. In a craps game,
various different types of bets can be made. For example, a player
can bet that a dice roll outcome will be a certain number or set of
numbers (e.g., 7 or 11), will correspond in some way to a previous
roll outcome, e.g., repeating a previous roll outcome, or will be a
unique combination of numbers such as doubles, etc.
[0040] After a bet is submitted by a player, robotic arm 106 may be
controlled to move one or more game pieces, e.g., chips, to a
location on a game board in accordance with the bet (stage 404).
For example, if a player bets $20 on a roll outcome of 2, robotic
arm 106 may pick up a $20 chip (or two $10 chips) from a bankroll
area near or on game table 108 that is designated for that player's
chips and may move the chip (or chips) to an area of table 108
marked with the number "2". Chips may be moved after each player
submits a bet or, alternatively, after all players' bets have been
submitted.
[0041] Robotic arm 106, operating under control of controller 102,
may then perform a gaming event using a game tool, e.g., taking and
rolling one or more dice (stage 406). A result or outcome of the
roll may be detected using a vision system 110 (stage 408).
Controller 102 or stations 104 may receive the detected result and
may determine scores based at least in part on the detected gaming
event result (stage 410). A player's determined score may
correspond to winnings and/or losses, depending on the detected
outcome and the player's bet or bets.
[0042] Scores may be sent to or calculated by each player's
stations 104 and reported to each player via a station display
(stage 412). Robotic arm 106 may also move the chips in accordance
with the determined scores (stage 414). Thus, continuing the
example above of a player who bets on a roll outcome of 2, if the
roll outcome is 2, robotic arm 106 may pick up the chips on table
108, including those corresponding to losing bets, and move the
chips to the bankroll of the player (or players) who bet on a roll
outcome of 2. Method 400 may then begin anew at stage 402 to
receive of bets in another round of play. In the next round of play
a new player may be designated as shooter in accordance with the
conventional game of craps.
[0043] In addition to the various alternatives described above,
various other versions of the method in FIG. 4 may be implemented
including versions in which various stages are omitted or added or
in which the order of the depicted stages differ. For example, in a
version of the game where real money is not used, use of chips may
be foregone and thus stages 404 and 414 may be omitted. In other
versions, the roll of dice (stage 406) may be replaced with a
different random gaming event such as spinning a spinner, drawing
one or more cards, spinning a ball on a roulette wheel, generating
a random or pseudorandom number, etc. Moreover, in certain games
multiple rounds of bets may be received (stage 402) and random
gaming events carried out (stage 406) before a score is determined
for each player (stage 410). Thus stages 402 through 408 (or
analogous stages for non-dice games) may be repeated a number of
times before proceeding to stage 410.
[0044] Note also that the participation by the robotic mechanism
doesn't necessarily preclude human involvement. For example, in an
alternative embodiment, a human dealer may participate in
conducting the game in conjunction with the robotic controller.
While any one of a different number of permutations might apply, in
one approach, a human dealer may roll the dice for example, and the
vision system then detects the result and the robotic mechanism
retrieves the dice, manipulates the chips, etc.
[0045] In certain embodiments, aspects of the method of FIG. 4
might be implemented by way of computer executable instructions
stored on one or more appropriate computer-readable media.
4. Computer Hardware and/or Software Implementations
[0046] Embodiments described herein may comprise or utilize a
special purpose or general-purpose computer including computer
hardware, as discussed in greater detail below. Embodiments within
the scope of the present invention also include physical and other
computer-readable media for carrying or storing computer-executable
instructions and/or data structures. Such computer-readable media
can be any available media that can be accessed by a general
purpose or special purpose computer system. Computer-readable media
that store computer-executable instructions are physical storage
media including recordable-type storage media. Computer-readable
media that carry computer-executable instructions are transmission
media. Thus, by way of example, and not limitation, embodiments of
the invention can comprise at least two distinctly different kinds
of computer-readable media: physical storage media and transmission
media.
[0047] Physical storage media includes RAM, ROM, EEPROM, CD-ROM or
other optical disk storage, magnetic disk storage or other magnetic
storage devices, or any other medium which can be used to store
desired program code means in the form of computer-executable
instructions or data structures and which can be accessed by a
general purpose or special purpose computer.
[0048] A "network" is defined as one or more data links that enable
the transport of electronic data between computer systems and/or
modules and/or other electronic devices. When information is
transferred or provided over a network or another communications
connection (either hardwired, wireless, or a combination of
hardwired or wireless) to a computer, the computer properly views
the connection as a transmission medium. Transmission media can
include a network and/or data links which can be used to carry or
transport desired program code means in the form of
computer-executable instructions or data structures and which can
be accessed by a general purpose or special purpose computer.
Combinations of the above should also be included within the scope
of computer-readable media.
[0049] However, it should be understood, that upon reaching various
computer system components, program code means in the form of
computer-executable instructions or data structures can be
transferred automatically from transmission media to physical
storage media. For example, computer-executable instructions or
data structures received over a network or data link can be
buffered in RAM within a network interface card, and then
eventually transferred to computer system RAM and/or to less
volatile physical storage media at a computer system. Thus, it
should be understood that physical storage media can be included in
computer system components that also (or even primarily) utilize
transmission media.
[0050] Computer-executable instructions comprise, for example,
instructions and data which cause a general purpose computer,
special purpose computer, or special purpose processing device to
perform a certain function or group of functions. The computer
executable instructions may be, for example, binaries, intermediate
format instructions such as assembly language, or even source code.
Although the subject matter has been described in language specific
to structural features and/or methodological acts, it is to be
understood that the subject matter defined in the appended claims
is not necessarily limited to the described features or acts
described above. Rather, the described features and acts are
disclosed as example forms of implementing the claims.
[0051] Those skilled in the art will appreciate that the invention
may be practiced in network computing environments with many types
of computer system configurations, including, personal computers,
desktop computers, laptop computers, message processors, hand-held
devices, multi-processor systems, microprocessor-based or
programmable consumer electronics, network PCs, minicomputers,
mainframe computers, mobile telephones, PDAs, pagers, routers,
switches, and the like. The invention may also be practiced in
distributed system environments where local and remote computer
systems, which are linked (either by hardwired data links, wireless
data links, or by a combination of hardwired and wireless data
links) through a network, both perform tasks. In a distributed
system environment, program modules may be located in both local
and remote memory storage devices.
[0052] The present invention may be embodied in other specific
forms without departing from its spirit or essential
characteristics. The described embodiments are to be considered in
all respects only as illustrative and not restrictive. The scope of
the invention is, therefore, indicated by the appended claims
rather than by the foregoing description. All changes which come
within the meaning and range of equivalency of the claims are to be
embraced within their scope.
* * * * *