U.S. patent application number 15/856317 was filed with the patent office on 2018-11-01 for boundary-specific electronic offers.
The applicant listed for this patent is International Business Machines Corporation. Invention is credited to Jeremy A. Greenberger, Zachary M. Greenberger, Jana H. Jenkins.
Application Number | 20180315090 15/856317 |
Document ID | / |
Family ID | 63916224 |
Filed Date | 2018-11-01 |
United States Patent
Application |
20180315090 |
Kind Code |
A1 |
Greenberger; Jeremy A. ; et
al. |
November 1, 2018 |
BOUNDARY-SPECIFIC ELECTRONIC OFFERS
Abstract
In an approach to determining a boundary-specific offer, one or
more computer processors determine a user of a mobile device is
within a pre-defined physical boundary. The one or more computer
processors determine a first notification of an offer corresponding
to the pre-defined physical boundary. The one or more computer
processors send the first notification of the offer to the mobile
device. The one or more computer processors determine whether the
user of the mobile device moved outside of the pre-defined physical
boundary. In response to determining the user of the mobile device
moved outside of the pre-defined physical boundary, the one or more
computer processors invalidate the offer.
Inventors: |
Greenberger; Jeremy A.;
(Raleigh, NC) ; Greenberger; Zachary M.; (Raleigh,
NC) ; Jenkins; Jana H.; (Raleigh, NC) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
International Business Machines Corporation |
Armonk |
NY |
US |
|
|
Family ID: |
63916224 |
Appl. No.: |
15/856317 |
Filed: |
December 28, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
15498007 |
Apr 26, 2017 |
|
|
|
15856317 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 30/0261 20130101;
G06Q 30/0267 20130101; H04W 4/02 20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02; H04W 4/02 20060101 H04W004/02 |
Claims
1. A method for determining a boundary-specific electronic offer,
the method comprising: determining, by one or more computer
processors, a mobile device of a user is within a pre-defined
physical boundary, wherein the pre-defined physical boundary is
defined by at least one of a location within a radius of a specific
distance of one or more transceiver devices that transmit a beacon
signal in a venue and GPS coordinates, and wherein determining the
user of a mobile device is within a pre-defined physical boundary
further comprises detecting, by the one or more computer
processors, the mobile device resides in a pre-defined location for
a pre-defined period of time; determining, by the one or more
computer processors, a first notification of a first offer
corresponding to the pre-defined physical boundary; sending, by the
one or more computer processors, the first notification of the
first offer to the mobile device, wherein the first offer includes
an expiratory location; determining, by the one or more computer
processors, the mobile device is within a pre-defined threshold
distance of the pre-defined physical boundary; responsive to
determining the mobile device is within a pre-defined threshold
distance of the pre-defined physical boundary, determining, by the
one or more computer processors, the first offer is not redeemed;
sending, by the one or more computer processors, a second
notification to the mobile device, wherein the second notification
alerts the user that the first offer included in the first
notification expires when the mobile device leaves the pre-defined
physical boundary, and wherein the second notification includes a
second offer for a discount reduced from the first offer after the
mobile device leaves the pre-defined physical boundary;
determining, by the one or more computer processors, whether the
mobile device moved outside of the pre-defined physical boundary;
and responsive to determining the mobile device moved outside of
the pre-defined physical boundary, invalidating, by the one or more
computer processors, the first offer.
Description
BACKGROUND OF THE INVENTION
[0001] The present invention relates generally to the field of
electronic coupon transmission, and more particularly to
boundary-specific electronic offers.
[0002] Product manufacturers and retailers have long offered
coupons as incentives for purchasing particular products.
Typically, coupons offer consumers a discount or other reward for
purchasing a particular product and have been distributed by
manufacturers and retailers in a paper format. A consumer may
redeem a paper coupon by taking the paper coupon to a retailer and
purchasing products that satisfy the terms of the paper coupon.
Additionally, techniques have been developed to enable exchange
and/or redemption of coupons electronically.
[0003] Proximity marketing is the offering of specially selected
information, products, or services to customers, based on their
current location--often in a retail environment, arena, public
building, or space. Offers are most often made on a mobile device,
when the user has "opted in" for offers. The customer's location
may be determined by a plurality of techniques, including
utilization of indoor or outdoor sensors and location tracking of
the customer's mobile device. That location is shared with an
integrated database, which sends an offer--a form of "push
notification"--based on that customer's profile. This targeting
precision has tremendous potential for marketers and venue
operators.
SUMMARY
[0004] Embodiments of the present invention disclose a method, a
computer program product, and a system for determining a
boundary-specific offer. The method may include one or more
computer processors determining a user of a mobile device is within
a pre-defined physical boundary. The one or more computer
processors determine a first notification of an offer corresponding
to the pre-defined physical boundary. The one or more computer
processors send the first notification of the offer to the mobile
device. The one or more computer processors determine whether the
user of the mobile device moved outside of the pre-defined physical
boundary. In response to determining the user of the mobile device
moved outside of the pre-defined physical boundary, the one or more
computer processors invalidate the offer.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a functional block diagram illustrating a
distributed data processing environment, in accordance with an
embodiment of the present invention;
[0006] FIG. 2 is a flowchart depicting operational steps of a
coupon notification program, on a server computer within the
distributed data processing environment of FIG. 1, for notifying a
user of a boundary-specific coupon, in accordance with an
embodiment of the present invention;
[0007] FIGS. 3A, 3B, and 3C illustrate an example of a user
interface, on a mobile device within the distributed data
processing environment of FIG. 1, in accordance with an embodiment
of the present invention;
[0008] FIG. 4 depicts a block diagram of components of the server
computer executing the coupon notification program within the
distributed data processing environment of FIG. 1, in accordance
with an embodiment of the present invention;
[0009] FIG. 5 depicts a cloud computing environment in accordance
with an embodiment of the present invention; and
[0010] FIG. 6 depicts abstraction model layers in accordance with
an embodiment of the present invention.
DETAILED DESCRIPTION
[0011] Data analytics and machine learning have enabled marketers
and retailers to provide a personalized approach to selling
products to consumers. If consumers know that by entering a store,
the retailer may offer additional savings above and beyond current
advertised sales, the consumers may be more likely to patronize the
store over other options. Additionally, many retailers prefer to
capture sales as soon as possible and may want to promote on-demand
purchasing to increase total sales. Embodiments of the present
invention recognize that efficiency of retails sales may be gained
and revenue may be increased by promoting on-demand purchasing by
consumers in a retail environment. Embodiments of the present
invention enable retailers and venue operators to create coupons or
promotions which are specific to a boundary location and expire
when the consumer exits the boundary. Implementation of embodiments
of the invention may take a variety of forms, and exemplary
implementation details are discussed subsequently with reference to
the Figures.
[0012] FIG. 1 is a functional block diagram illustrating a
distributed data processing environment, generally designated 100,
in accordance with one embodiment of the present invention. The
term "distributed" as used herein describes a computer system that
includes multiple, physically distinct devices that operate
together as a single computer system. FIG. 1 provides only an
illustration of one implementation and does not imply any
limitations with regard to the environments in which different
embodiments may be implemented. Many modifications to the depicted
environment may be made by those skilled in the art without
departing from the scope of the invention as recited by the
claims.
[0013] Distributed data processing environment 100 includes server
computer 104 and mobile device 110, interconnected over network
102. Network 102 can be, for example, a telecommunications network,
a local area network (LAN), a wide area network (WAN), such as the
Internet, or a combination of the three, and can include wired,
wireless, or fiber optic connections. Network 102 can include one
or more wired and/or wireless networks that are capable of
receiving and transmitting data, voice, and/or video signals,
including multimedia signals that include voice, data, and video
information. In general, network 102 can be any combination of
connections and protocols that will support communications between
server computer 104, mobile device 110, and other computing devices
(not shown) within distributed data processing environment 100.
[0014] Server computer 104 can be a standalone computing device, a
management server, a web server, a mobile computing device, or any
other electronic device or computing system capable of receiving,
sending, and processing data. In other embodiments, server computer
104 can represent a server computing system utilizing multiple
computers as a server system, such as in a cloud computing
environment. In another embodiment, server computer 104 can be a
laptop computer, a tablet computer, a netbook computer, a personal
computer (PC), a desktop computer, a personal digital assistant
(PDA), a smart phone, or any programmable electronic device capable
of communicating with mobile device 110 and other computing devices
(not shown) within distributed data processing environment 100 via
network 102. In another embodiment, server computer 104 represents
a computing system utilizing clustered computers and components
(e.g., database server computers, application server computers,
etc.) that act as a single pool of seamless resources when accessed
within distributed data processing environment 100. Server computer
104 includes coupon notification program 106 and database 108.
Server computer 104 may include internal and external hardware
components, as depicted and described in further detail with
respect to FIG. 4.
[0015] Coupon notification program 106 enables retailers and venue
operators to create coupons or promotions which are specific to a
boundary location and expire when the consumer exits the boundary.
The boundary specified by the retailer or venue operator may be a
location such as a store or an area within a store. Coupon
notification program 106 establishes the boundary using geolocation
information. As used herein, geolocation information may also be
referred to as location information, positioning information,
position information, global positioning information, network
location, or the like. Geolocation information associated with a
user refers to geographical or network information associated with
a location of a mobile device. Coupon notification program 106
detects the presence of a user's mobile device, such as mobile
device 110, within a specified location or boundary. Coupon
notification program 106 determines a notification of a coupon or
promotion, which may be based on a stored user profile. Coupon
notification program 106 sends the notification to mobile device
110. If coupon notification program 106 detects mobile device 110
moves to within a threshold distance of the boundary prior to the
user redeeming the coupon, then coupon notification program 106 may
send an additional notification. In response to detecting mobile
device 110 is outside of the boundary, coupon notification program
106 invalidates the coupon such that the user can no longer take
advantage of the promotion. In the depicted embodiment, coupon
notification program 106 is a standalone program. In another
embodiment, coupon notification program 106 may be integrated into
one or more of a plurality of existing cloud-based services for
notifications and alerts, as would be recognized by one skilled in
the art. Coupon notification program 106 is depicted and described
in further detail with respect to FIG. 2.
[0016] Database 108 is a repository for data used by coupon
notification program 106. In the depicted embodiment, database 108
resides on server computer 104. In another embodiment, database 108
may reside elsewhere within distributed data processing environment
100 provided coupon notification program 106 has access to database
108. A database is an organized collection of data. Database 108
can be implemented with any type of storage device capable of
storing data and configuration files that can be accessed and
utilized by server computer 104, such as a database server, a hard
disk drive, or a flash memory. Database 108 stores metadata
associated with a user of user interface 112, such as a history of
use of user interface 112 with a client computing device, such as
mobile device 110. Database 108 may also store a user profile with
shopping preferences in a particular store or venue. Database 108
may also store a history of purchases made by the user of mobile
device 110 in one or more stores or venues. In addition to the
history of purchases made, database 108 may also store data
associated with the use of coupons or promotions with previous
purchases.
[0017] Mobile device 110 can be one or more of a laptop computer, a
tablet computer, a smart phone, or any programmable electronic
device capable of communicating with various components and devices
within distributed data processing environment 100, via network
102. Mobile device 110 can be a wearable computer. Wearable
computers are miniature electronic devices that may be worn by the
bearer under, with or on top of clothing, as well as in glasses,
hats, or other accessories. Wearable computers can be especially
useful for applications that require more complex computational
support than just hardware coded logics. In general, mobile device
110 represents any programmable electronic device or combination of
programmable electronic devices capable of executing machine
readable program instructions and communicating with other
computing devices (not shown) within distributed data processing
environment 100 via a network, such as network 102. Mobile device
110 includes user interface 112.
[0018] User interface 112 provides an interface for a user of
mobile device 110 with coupon notification program 106. In one
embodiment, user interface 112 may be a graphical user interface
(GUI) or a web user interface (WUI) and can display text,
documents, web browser windows, user options, application
interfaces, and instructions for operation, and include the
information (such as graphic, text, and sound) that a program
presents to a user and the control sequences the user employs to
control the program. In another embodiment, user interface 112 may
also be mobile application software that provides an interface
between a user of mobile device 110 and server computer 104. Mobile
application software, or an "app," is a computer program designed
to run on smart phones, tablet computers and other mobile devices.
User interface 112 enables mobile device 110 to receive
notifications from coupon notification program 106. In one
embodiment, user interface 112 is a venue-specific app, downloaded
to mobile device 110 by a user, which enables communication between
mobile device 110 and coupon notification program 106. In the
embodiment, a user can set up preferences, via the app, associated
with coupon notifications, and whether to allow coupon notification
program 106 to detect the device location.
[0019] FIG. 2 is a flowchart depicting operational steps of coupon
notification program 106, on server computer 104 within distributed
data processing environment 100 of FIG. 1, for notifying a user of
a boundary-specific coupon, in accordance with an embodiment of the
present invention.
[0020] Coupon notification program 106 detects a mobile device
within a physical boundary (step 202). In one embodiment, a venue
operator defines a physical boundary for where a coupon or
promotion is valid within the venue. The physical boundary may be,
for example, a retail store, a restaurant, or a sports stadium. In
another example, the physical boundary may be a specified area
within a venue, such as an aisle in a grocery store. Coupon
notification program 106 uses one or more of a plurality of
techniques known in the art to detect the presence of a mobile
device, such as mobile device 110, as the device enters a
pre-defined physical boundary, location, or zone. For example,
coupon notification program 106 may use a global positioning system
(GPS), Wi-Fi.RTM., Bluetooth.RTM., RFID, etc. In one embodiment,
the boundary is location-based. For example, a boundary may be
defined as a location within a radius of a specific distance of one
or more transceiver devices that transmit a beacon signal in a
venue. In another example, a boundary may be defined by GPS
coordinates. In another embodiment, the boundary may also include a
time requirement, where coupon notification program 106 detects the
location of a mobile device within a pre-defined period of time.
For example, the device enters a particular location of a venue
during a specific time period, such as between 3:00 pm and 4:00 pm.
In a further embodiment, coupon notification program 106 may
require that the target device reside in the pre-defined location
for a specified period of time. For example, the mobile device
enters a particular location of a retail store and stays in the
location for at least 30 seconds. In one embodiment, upon detection
of the mobile device, coupon notification program 106 determines
whether the mobile device includes user interface 112.
[0021] Coupon notification program 106 determines a notification of
an offer (step 204). Coupon notification program 106 determines a
notification that includes an offer for an appropriate coupon,
promotion, discount, etc. for the user of mobile device 110. In one
embodiment, coupon notification program 106 determines the
notification based on the venue. For example, the same discount may
be offered to any user entering the physical boundary. In another
embodiment, coupon notification program 106 may determine the
notification based on a user profile of the user of mobile device
110, stored in database 108. For example, coupon notification
program 106 may determine the notification based on user
preferences registered in a user profile, via user interface 112,
such as particular styles or types of products the user buys in the
venue. In another embodiment, coupon notification program 106 may
determine the notification based on a history of purchases the user
has made in the venue. For example, if the venue has a shopper
loyalty program, and the user shops in the venue every week, coupon
notification program 106 may determine a more significant discount
than coupon notification program 106 may offer to an occasional
shopper. In a further embodiment, coupon notification program 106
may determine the offer in response to receiving a promotion or
coupon from a venue operator or another third party.
[0022] Coupon notification program 106 sends the notification (step
206). In response to determining a notification, coupon
notification program 106 sends the notification to the user of
mobile device 110, via user interface 112. In an embodiment where
coupon notification program 106 is integrated into an existing
cloud-based service for notifications and alerts, the cloud-based
service sends the notification. The notification may include an
expiratory location to indicate to the user the location of the
physical boundary of the coupon. For example, if the physical
boundary is a shoe store, the notification may be "Buy one, get one
free shoes this visit only!" In another example, if the physical
boundary is a location within a store, the notification may be "Put
a box of cereal in your basket before you leave the cereal aisle
and get 20% off!"
[0023] Coupon notification program 106 detects the mobile device
within a threshold distance of the physical boundary (step 208). As
discussed with respect to step 202, coupon notification program 106
detects the location of mobile device 110 moving within the
pre-defined physical boundary of a venue using one or more of a
plurality of techniques known in the art. Coupon notification
program 106 determines when mobile device 110 is within a
pre-defined threshold distance of the physical boundary, which may
indicate that the user of mobile device 110 may be considering
leaving the boundary. For example, coupon notification program 106
may detect when the user of mobile device 110 is within two feet of
the door of the store.
[0024] Coupon notification program 106 determines whether the offer
has been redeemed (decision block 210). Coupon notification program
106 determines whether the user of mobile device 110 has made a
purchase using the previously sent coupon or promotion notification
using one or more techniques known in the art. In one embodiment,
coupon notification program 106 may be integrated into the point of
sale system of the venue, and is aware when the coupon is redeemed
during a purchase using, for example, a bar code or a quick
response (QR) code via user interface 112. In another embodiment,
coupon notification program 106 may receive a confirmation from the
point of sale system of the venue to determine whether the user
redeemed the coupon. In an embodiment where the physical boundary
is a specified area within a venue, coupon notification program 106
may determine whether a user redeemed the coupon prior to the
actual purchase of an item. For example, if the physical boundary
is an aisle in a grocery store, then coupon notification program
106 may determine the coupon is redeemed when the user snaps the QR
code on the item via user interface 112. In another example, if the
venue employs smart shelf technology, as would be recognized by one
of skill in the art, then coupon notification program 106 may
determine the coupon is redeemed when the user removes an item from
a shelf and the item is not returned to the shelf within a
pre-defined duration of time. In yet another example, coupon
notification program 106 may determine the coupon is redeemed when
the user accepts the discount, via user interface 112, prior to
leaving the physical boundary.
[0025] If coupon notification program 106 determines the offer has
not been redeemed ("no" branch, decision block 210), then coupon
notification program 106 sends an additional notification (step
212). Coupon notification program 106 may send an additional
notification in order to incent the user to make a purchase before
leaving the venue. In one embodiment, when coupon notification
program 106 determines a user is leaving the physical boundary
before redeeming the coupon, coupon notification program 106 sends
the user an additional notification to alert the user that the
coupon expires when the user leaves the physical boundary. For
example, the additional notification may be "Don't forget--the
special offer expires when you leave the store!" In another
embodiment, coupon notification program 106 may modify the offer
such that the offer remains valid after the user leaves the
physical boundary, i.e., extending the expiration of the promotion.
For example, the additional notification may be "Tap the screen to
extend the coupon for an additional 24 hours." In a further
embodiment, coupon notification program 106 may offer a reduced
discount if the user leaves the venue prior to redeeming the
original coupon. For example, the additional notification may be
"The 20% off coupon will expire when you leave the store. Would you
like to accept an offer of 10% off when you return next time?"
[0026] Coupon notification program 106 detects the mobile device is
outside of the physical boundary (step 214). As discussed with
respect to step 202, coupon notification program 106 detects when
mobile device 110 leaves the physical boundary using one or more of
a plurality of techniques known in the art.
[0027] Responsive to detecting the mobile device is outside of the
physical boundary, or if coupon notification program 106 determines
the coupon has been redeemed ("yes" branch, decision block 210),
then coupon notification program 106 invalidates the coupon (step
216). Coupon notification program 106 renders the coupon or
promotion as invalid so the user cannot redeem the coupon in the
future.
[0028] FIGS. 3A, 3B, and 3C illustrate example 300 of user
interface 112, on mobile device 110 within distributed data
processing environment 100 of FIG. 1, in accordance with an
embodiment of the present invention.
[0029] FIG. 3A depicts notification 302, which coupon notification
program 106 sent to mobile device 110, via user interface 112. As
discussed with respect to step 206 of FIG. 2, coupon notification
program 106 sends a notification to mobile device 110 upon
detecting the presence of mobile device 110 within a pre-defined
physical boundary. In the depicted example, coupon notification
program 106 sends the notification "Welcome to MyGrocery! Enjoy 20%
off all candy bars this shop only!" The notification includes both
a discount ("20% off") and a physical boundary ("this shop
only").
[0030] FIG. 3B depicts notification 304, which coupon notification
program 106 sent to mobile device 110, via user interface 112. As
discussed with respect to step 212 of FIG. 2, coupon notification
program 106 may send a second notification to mobile device 110
upon detecting mobile device 110 within a threshold distance of the
pre-defined physical boundary. In the depicted example, coupon
notification program 106 sends the notification "Reminder! Your
coupon for 20% off all candy bars will expire when you leave!" The
notification is a reminder to the user that the coupon expires
outside of the pre-defined physical boundary.
[0031] FIG. 3C depicts notification 306, which coupon notification
program 106 sent to mobile device 110, via user interface 112. As
discussed with respect to step 212 of FIG. 2, coupon notification
program 106 may send an additional notification to mobile device
110 upon detecting mobile device 110 within a threshold distance of
the pre-defined physical boundary. In the depicted example, coupon
notification program 106 sends the notification "You are about to
leave the store and the 20% coupon is about to expire. Would you
like to extend a 10% discount for the next 24 hours?" In addition,
the notification includes a display of a "yes" and a "no" button
for the user to reply to the query. The notification enables the
user to keep the coupon outside of the physical boundary, but only
for 24 hours and at a reduced rate.
[0032] FIG. 4 depicts a block diagram of components of server
computer 104 within distributed data processing environment 100 of
FIG. 1, in accordance with an embodiment of the present invention.
It should be appreciated that FIG. 4 provides only an illustration
of one implementation and does not imply any limitations with
regard to the environments in which different embodiments can be
implemented. Many modifications to the depicted environment can be
made.
[0033] Server computer 104 can include processor(s) 404, cache 414,
memory 406, persistent storage 408, communications unit 410,
input/output (I/O) interface(s) 412 and communications fabric 402.
Communications fabric 402 provides communications between cache
414, memory 406, persistent storage 408, communications unit 410,
and input/output (I/O) interface(s) 412. Communications fabric 402
can be implemented with any architecture designed for passing data
and/or control information between processors (such as
microprocessors, communications and network processors, etc.),
system memory, peripheral devices, and any other hardware
components within a system. For example, communications fabric 402
can be implemented with one or more buses.
[0034] Memory 406 and persistent storage 408 are computer readable
storage media. In this embodiment, memory 406 includes random
access memory (RAM). In general, memory 406 can include any
suitable volatile or non-volatile computer readable storage media.
Cache 414 is a fast memory that enhances the performance of
processor(s) 404 by holding recently accessed data, and data near
recently accessed data, from memory 406.
[0035] Program instructions and data used to practice embodiments
of the present invention, e.g., coupon notification program 106 and
database 108, can be stored in persistent storage 408 for execution
and/or access by one or more of the respective processor(s) 404 of
server computer 104 via memory 406. In this embodiment, persistent
storage 408 includes a magnetic hard disk drive. Alternatively, or
in addition to a magnetic hard disk drive, persistent storage 408
can include a solid-state hard drive, a semiconductor storage
device, a read-only memory (ROM), an erasable programmable
read-only memory (EPROM), a flash memory, or any other computer
readable storage media that is capable of storing program
instructions or digital information.
[0036] The media used by persistent storage 408 may also be
removable. For example, a removable hard drive may be used for
persistent storage 408. Other examples include optical and magnetic
disks, thumb drives, and smart cards that are inserted into a drive
for transfer onto another computer readable storage medium that is
also part of persistent storage 408.
[0037] Communications unit 410, in these examples, provides for
communications with other data processing systems or devices,
including resources of mobile device 110. In these examples,
communications unit 410 includes one or more network interface
cards. Communications unit 410 may provide communications through
the use of either or both physical and wireless communications
links. Coupon notification program 106 and database 108 may be
downloaded to persistent storage 408 of server computer 104 through
communications unit 410.
[0038] I/O interface(s) 412 allows for input and output of data
with other devices that may be connected to server computer 104.
For example, I/O interface(s) 412 may provide a connection to
external device(s) 416 such as a keyboard, a keypad, a touch
screen, a microphone, a digital camera, and/or some other suitable
input device. External device(s) 416 can also include portable
computer readable storage media such as, for example, thumb drives,
portable optical or magnetic disks, and memory cards. Software and
data used to practice embodiments of the present invention, e.g.,
coupon notification program 106 and database 108 on server computer
104, can be stored on such portable computer readable storage media
and can be loaded onto persistent storage 408 via I/O interface(s)
412. I/O interface(s) 412 also connect to a display 418.
[0039] Display 418 provides a mechanism to display data to a user
and may be, for example, a computer monitor or the lenses of a head
mounted display. Display 418 can also function as a touchscreen,
such as a display of a tablet computer.
[0040] It is to be understood that although this disclosure
includes a detailed description on cloud computing, implementation
of the teachings recited herein are not limited to a cloud
computing environment. Rather, embodiments of the present invention
are capable of being implemented in conjunction with any other type
of computing environment now known or later developed.
[0041] Cloud computing is a model of service delivery for enabling
convenient, on-demand network access to a shared pool of
configurable computing resources (e.g., networks, network
bandwidth, servers, processing, memory, storage, applications,
virtual machines, and services) that can be rapidly provisioned and
released with minimal management effort or interaction with a
provider of the service. This cloud model may include at least five
characteristics, at least three service models, and at least four
deployment models.
[0042] Characteristics are as follows:
[0043] On-demand self-service: a cloud consumer can unilaterally
provision computing capabilities, such as server time and network
storage, as needed automatically without requiring human
interaction with the service's provider.
[0044] Broad network access: capabilities are available over a
network and accessed through standard mechanisms that promote use
by heterogeneous thin or thick client platforms (e.g., mobile
phones, laptops, and PDAs).
[0045] Resource pooling: the provider's computing resources are
pooled to serve multiple consumers using a multi-tenant model, with
different physical and virtual resources dynamically assigned and
reassigned according to demand. There is a sense of location
independence in that the consumer generally has no control or
knowledge over the exact location of the provided resources but may
be able to specify location at a higher level of abstraction (e.g.,
country, state, or datacenter).
[0046] Rapid elasticity: capabilities can be rapidly and
elastically provisioned, in some cases automatically, to quickly
scale out and rapidly released to quickly scale in. To the
consumer, the capabilities available for provisioning often appear
to be unlimited and can be purchased in any quantity at any
time.
[0047] Measured service: cloud systems automatically control and
optimize resource use by leveraging a metering capability at some
level of abstraction appropriate to the type of service (e.g.,
storage, processing, bandwidth, and active user accounts). Resource
usage can be monitored, controlled, and reported, providing
transparency for both the provider and consumer of the utilized
service.
[0048] Service Models are as follows:
[0049] Software as a Service (SaaS): the capability provided to the
consumer is to use the provider's applications running on a cloud
infrastructure. The applications are accessible from various client
devices through a thin client interface such as a web browser
(e.g., web-based e-mail). The consumer does not manage or control
the underlying cloud infrastructure including network, servers,
operating systems, storage, or even individual application
capabilities, with the possible exception of limited user-specific
application configuration settings.
[0050] Platform as a Service (PaaS): the capability provided to the
consumer is to deploy onto the cloud infrastructure
consumer-created or acquired applications created using programming
languages and tools supported by the provider. The consumer does
not manage or control the underlying cloud infrastructure including
networks, servers, operating systems, or storage, but has control
over the deployed applications and possibly application hosting
environment configurations.
[0051] Infrastructure as a Service (IaaS): the capability provided
to the consumer is to provision processing, storage, networks, and
other fundamental computing resources where the consumer is able to
deploy and run arbitrary software, which can include operating
systems and applications. The consumer does not manage or control
the underlying cloud infrastructure but has control over operating
systems, storage, deployed applications, and possibly limited
control of select networking components (e.g., host firewalls).
[0052] Deployment Models are as follows:
[0053] Private cloud: the cloud infrastructure is operated solely
for an organization. It may be managed by the organization or a
third party and may exist on-premises or off-premises.
[0054] Community cloud: the cloud infrastructure is shared by
several organizations and supports a specific community that has
shared concerns (e.g., mission, security requirements, policy, and
compliance considerations). It may be managed by the organizations
or a third party and may exist on-premises or off-premises.
[0055] Public cloud: the cloud infrastructure is made available to
the general public or a large industry group and is owned by an
organization selling cloud services.
[0056] Hybrid cloud: the cloud infrastructure is a composition of
two or more clouds (private, community, or public) that remain
unique entities but are bound together by standardized or
proprietary technology that enables data and application
portability (e.g., cloud bursting for load-balancing between
clouds).
[0057] A cloud computing environment is service oriented with a
focus on statelessness, low coupling, modularity, and semantic
interoperability. At the heart of cloud computing is an
infrastructure that includes a network of interconnected nodes.
[0058] Referring now to FIG. 5, illustrative cloud computing
environment 50 is depicted. As shown, cloud computing environment
50 includes one or more cloud computing nodes 10 with which local
computing devices used by cloud consumers, such as, for example,
personal digital assistant (PDA) or cellular telephone 54A, desktop
computer 54B, laptop computer 54C, and/or automobile computer
system 54N may communicate. Nodes 10 may communicate with one
another. They may be grouped (not shown) physically or virtually,
in one or more networks, such as Private, Community, Public, or
Hybrid clouds as described hereinabove, or a combination thereof.
This allows cloud computing environment 50 to offer infrastructure,
platforms and/or software as services for which a cloud consumer
does not need to maintain resources on a local computing device. It
is understood that the types of computing devices 54A-N shown in
FIG. 4 are intended to be illustrative only and that computing
nodes 10 and cloud computing environment 50 can communicate with
any type of computerized device over any type of network and/or
network addressable connection (e.g., using a web browser).
[0059] Referring now to FIG. 6, a set of functional abstraction
layers provided by cloud computing environment 50 (FIG. 4) is
shown. It should be understood in advance that the components,
layers, and functions shown in FIG. 5 are intended to be
illustrative only and embodiments of the invention are not limited
thereto. As depicted, the following layers and corresponding
functions are provided:
[0060] Hardware and software layer 60 includes hardware and
software components. Examples of hardware components include:
mainframes 61; RISC (Reduced Instruction Set Computer) architecture
based servers 62; servers 63; blade servers 64; storage devices 65;
and networks and networking components 66. In some embodiments,
software components include network application server software 67
and database software 68.
[0061] Virtualization layer 70 provides an abstraction layer from
which the following examples of virtual entities may be provided:
virtual servers 71; virtual storage 72; virtual networks 73,
including virtual private networks; virtual applications and
operating systems 74; and virtual clients 75.
[0062] In one example, management layer 80 may provide the
functions described below. Resource provisioning 81 provides
dynamic procurement of computing resources and other resources that
are utilized to perform tasks within the cloud computing
environment. Metering and Pricing 82 provide cost tracking as
resources are utilized within the cloud computing environment, and
billing or invoicing for consumption of these resources. In one
example, these resources may include application software licenses.
Security provides identity verification for cloud consumers and
tasks, as well as protection for data and other resources. User
portal 83 provides access to the cloud computing environment for
consumers and system administrators. Service level management 84
provides cloud computing resource allocation and management such
that required service levels are met. Service Level Agreement (SLA)
planning and fulfillment 85 provide pre-arrangement for, and
procurement of, cloud computing resources for which a future
requirement is anticipated in accordance with an SLA.
[0063] Workloads layer 90 provides examples of functionality for
which the cloud computing environment may be utilized. Examples of
workloads and functions which may be provided from this layer
include: mapping and navigation 91; software development and
lifecycle management 92; virtual classroom education delivery 93;
data analytics processing 94; transaction processing 95; and coupon
notification program 106.
[0064] The programs described herein are identified based upon the
application for which they are implemented in a specific embodiment
of the invention. However, it should be appreciated that any
particular program nomenclature herein is used merely for
convenience, and thus the invention should not be limited to use
solely in any specific application identified and/or implied by
such nomenclature.
[0065] The present invention may be a system, a method, and/or a
computer program product. The computer program product may include
a computer readable storage medium (or media) having computer
readable program instructions thereon for causing a processor to
carry out aspects of the present invention.
[0066] The computer readable storage medium can be any tangible
device that can retain and store instructions for use by an
instruction execution device. The computer readable storage medium
may be, for example, but is not limited to, an electronic storage
device, a magnetic storage device, an optical storage device, an
electromagnetic storage device, a semiconductor storage device, or
any suitable combination of the foregoing. A non-exhaustive list of
more specific examples of the computer readable storage medium
includes the following: a portable computer diskette, a hard disk,
a random access memory (RAM), a read-only memory (ROM), an erasable
programmable read-only memory (EPROM or Flash memory), a static
random access memory (SRAM), a portable compact disc read-only
memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a
floppy disk, a mechanically encoded device such as punch-cards or
raised structures in a groove having instructions recorded thereon,
and any suitable combination of the foregoing. A computer readable
storage medium, as used herein, is not to be construed as being
transitory signals per se, such as radio waves or other freely
propagating electromagnetic waves, electromagnetic waves
propagating through a waveguide or other transmission media (e.g.,
light pulses passing through a fiber-optic cable), or electrical
signals transmitted through a wire.
[0067] Computer readable program instructions described herein can
be downloaded to respective computing/processing devices from a
computer readable storage medium or to an external computer or
external storage device via a network, for example, the Internet, a
local area network, a wide area network and/or a wireless network.
The network may comprise copper transmission cables, optical
transmission fibers, wireless transmission, routers, firewalls,
switches, gateway computers and/or edge servers. A network adapter
card or network interface in each computing/processing device
receives computer readable program instructions from the network
and forwards the computer readable program instructions for storage
in a computer readable storage medium within the respective
computing/processing device.
[0068] Computer readable program instructions for carrying out
operations of the present invention may be assembler instructions,
instruction-set-architecture (ISA) instructions, machine
instructions, machine dependent instructions, microcode, firmware
instructions, state-setting data, or either source code or object
code written in any combination of one or more programming
languages, including an object oriented programming language such
as Smalltalk, C++ or the like, and conventional procedural
programming languages, such as the "C" programming language or
similar programming languages. The computer readable program
instructions may execute entirely on the user's computer, partly on
the user's computer, as a stand-alone software package, partly on
the user's computer and partly on a remote computer or entirely on
the remote computer or server. In the latter scenario, the remote
computer may be connected to the user's computer through any type
of network, including a local area network (LAN) or a wide area
network (WAN), or the connection may be made to an external
computer (for example, through the Internet using an Internet
Service Provider). In some embodiments, electronic circuitry
including, for example, programmable logic circuitry,
field-programmable gate arrays (FPGA), or programmable logic arrays
(PLA) may execute the computer readable program instructions by
utilizing state information of the computer readable program
instructions to personalize the electronic circuitry, in order to
perform aspects of the present invention.
[0069] Aspects of the present invention are described herein with
reference to flowchart illustrations and/or block diagrams of
methods, apparatus (systems), and computer program products
according to embodiments of the invention. It will be understood
that each block of the flowchart illustrations and/or block
diagrams, and combinations of blocks in the flowchart illustrations
and/or block diagrams, can be implemented by computer readable
program instructions.
[0070] These computer readable program instructions may be provided
to a processor of a general purpose computer, a special purpose
computer, or other programmable data processing apparatus to
produce a machine, such that the instructions, which execute via
the processor of the computer or other programmable data processing
apparatus, create means for implementing the functions/acts
specified in the flowchart and/or block diagram block or blocks.
These computer readable program instructions may also be stored in
a computer readable storage medium that can direct a computer, a
programmable data processing apparatus, and/or other devices to
function in a particular manner, such that the computer readable
storage medium having instructions stored therein comprises an
article of manufacture including instructions which implement
aspects of the function/act specified in the flowchart and/or block
diagram block or blocks.
[0071] The computer readable program instructions may also be
loaded onto a computer, other programmable data processing
apparatus, or other device to cause a series of operational steps
to be performed on the computer, other programmable apparatus or
other device to produce a computer implemented process, such that
the instructions which execute on the computer, other programmable
apparatus, or other device implement the functions/acts specified
in the flowchart and/or block diagram block or blocks.
[0072] The flowchart and block diagrams in the Figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods, and computer program products
according to various embodiments of the present invention. In this
regard, each block in the flowchart or block diagrams may represent
a module, a segment, or a portion of instructions, which comprises
one or more executable instructions for implementing the specified
logical function(s). In some alternative implementations, the
functions noted in the blocks may occur out of the order noted in
the Figures. For example, two blocks shown in succession may, in
fact, be executed substantially concurrently, or the blocks may
sometimes be executed in the reverse order, depending upon the
functionality involved. It will also be noted that each block of
the block diagrams and/or flowchart illustration, and combinations
of blocks in the block diagrams and/or flowchart illustration, can
be implemented by special purpose hardware-based systems that
perform the specified functions or acts or carry out combinations
of special purpose hardware and computer instructions.
[0073] The descriptions of the various embodiments of the present
invention have been presented for purposes of illustration, but are
not intended to be exhaustive or limited to the embodiments
disclosed. Many modifications and variations will be apparent to
those of ordinary skill in the art without departing from the scope
and spirit of the invention. The terminology used herein was chosen
to best explain the principles of the embodiment, the practical
application or technical improvement over technologies found in the
marketplace, or to enable others of ordinary skill in the art to
understand the embodiments disclosed herein.
* * * * *