U.S. patent application number 15/711983 was filed with the patent office on 2018-01-11 for embedding non-blocking help components in a display page using discovery drawer feature cues.
This patent application is currently assigned to Excalibur IP, LLC. The applicant listed for this patent is Excalibur IP, LLC. Invention is credited to John Lindal, Dave Owen, Carol Steinberg.
Application Number | 20180011720 15/711983 |
Document ID | / |
Family ID | 48086837 |
Filed Date | 2018-01-11 |
United States Patent
Application |
20180011720 |
Kind Code |
A1 |
Steinberg; Carol ; et
al. |
January 11, 2018 |
EMBEDDING NON-BLOCKING HELP COMPONENTS IN A DISPLAY PAGE USING
DISCOVERY DRAWER FEATURE CUES
Abstract
A method, system, and non-transitory computer readable medium to
provide trigger-sensitive application help content to a user using
a digital application. The method commences upon receiving an input
application user interface, the input application user interface
being encoded for display within a digital application context
(e.g. on a computer screen or on a mobile device). Then, recoding
the input application user interface to produce an output
application user interface comprising one or more expandable screen
devices added to the input application user interface. The user's
progress (or lack thereof) is detected based on the user's
interaction with the output application user interface page (e.g.
on a computer screen or on a mobile device). At least one aspect of
the method includes executing or otherwise interacting with a
display protocol, the display protocol comprising detecting a
trigger event, and revealing the expandable screen device to
display an expanded screen device.
Inventors: |
Steinberg; Carol; (Sierra
Madre, CA) ; Lindal; John; (La Canada, CA) ;
Owen; Dave; (Burbank, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Excalibur IP, LLC |
New York |
NY |
US |
|
|
Assignee: |
Excalibur IP, LLC
New York
NY
|
Family ID: |
48086837 |
Appl. No.: |
15/711983 |
Filed: |
September 21, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13271655 |
Oct 12, 2011 |
9811350 |
|
|
15711983 |
|
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06F 3/0482 20130101;
G06F 9/451 20180201; G06F 3/04895 20130101 |
International
Class: |
G06F 9/44 20060101
G06F009/44; G06F 3/0489 20130101 G06F003/0489 |
Claims
1-20. (canceled)
21. A computer-implemented method for providing trigger-sensitive
application help content relating to new application features to a
user using a digital application page, the method comprising:
receiving under-development code comprising an input application
user interface, the input application user interface being encoded
for display within a digital application context and with encoded
intent for application help content relating to new application
features; executing program code that complies and records the
under-development code based on the encoded intent to produce an
output application user interface, wherein the recoding includes
adding code to the under-development code for at least one
expandable screen device that reveals application help content
relating to the new application features based on the encoded
intent and at least one determined device format for display,
adding code to the under-development code for a display protocol
comprising detecting a trigger event based on the encoded intent,
and adding code to the under-development code for expandable screen
device timers that apply uniquely for particular users based on the
encoded intent such that the expandable screen device timers assess
newness of a particular user relating to the new application
features, assess the particular user's learning progress relating
to the new application features, and determine when to provide to
the particular user additional previously unrevealed application
help content relating to the new application features; and
executing the display protocol, the display protocol comprising
setting the expandable screen device timers to apply in accordance
with the user in particular, detecting the trigger event, and
revealing the expandable screen device to display the expanded
screen device embedded within a display of an application work area
of the output application user interface, wherein detecting the
trigger event includes a detection of one of an unexpected or
inefficient user interaction with the new application page feature
to trigger the insertion of the expandable screen device.
22. The method of claim 21, wherein the expandable screen device
comprises at least one of a help text area and a user control.
23. The method of claim 21, further comprising: detecting
expiration of an expandable screen device timer; and minimizing the
expandable screen device.
24. The method of claim 21, wherein detecting the trigger event is
based on one or more previous states.
25. The method of claim 21, wherein detecting the trigger event is
based on one or more states restored from a persistent storage
location.
26. The method of claim 21, wherein the detecting the trigger event
includes calculating a state progression of user interactions with
the digital application page.
27. The method of claim 21, wherein the encoded intent is at least
one of an indication or tag relating to new application features
identified in the under-development code.
28. The method of claim 21, wherein determining when to provide to
the particular user additional previously unrevealed application
help content relating to the new application features is based on
one or more progressive revelation techniques.
29. The method of claim 21, wherein detecting the trigger event
includes a prediction of the user's readiness for the application
help content.
30. The method of claim 21, wherein the expanded screen device is
displayed without substantially occluding the display of the
application work area.
31. An advertising server computer for running one or more server
applications, the advertising server computer comprising: one or
more processors; a memory; and one or more modules executable on
the one or more processors according to software instructions
stored in the memory such that for received under-development code
comprising an input application user interface, the input
application user interface being encoded for display within a
digital application context and with encoded intent for application
help content relating to new application features, the one or more
processors are configured to: execute program code that complies
and records the under-development code based on the encoded intent
to produce an output application user interface, wherein the
recoding includes adding code to the under-development code for at
least one expandable screen device that reveals application help
content relating to the new application features based on the
encoded intent and at least one determined device format for
display, adding code to the under-development code for a display
protocol comprising detecting a trigger event based on the encoded
intent, and adding code to the under-development code for
expandable screen device timers that apply uniquely for particular
users based on the encoded intent such that the expandable screen
device timers assess newness of a particular user relating to the
new application features, assess the particular user's learning
progress relating to the new application features, and determine
when to provide to the particular user additional previously
unrevealed application help content relating to the new application
features; and execute the display protocol, the display protocol
comprising setting the expandable screen device timers to apply in
accordance with the user in particular, detecting the trigger
event, and revealing the expandable screen device to display the
expanded screen device embedded within a display of an application
work area of the output application user interface, wherein
detecting the trigger event includes a detection of one of an
unexpected or inefficient user interaction with the new application
page feature to trigger the insertion of the expandable screen
device.
32. The advertising server computer of claim 31, wherein the
expandable screen device comprises at least one of a help text area
and a user control.
33. The advertising server computer of claim 31, further
comprising: detecting expiration of an expandable screen device
timer; and minimizing the expandable screen device.
34. The advertising server computer of claim 31, wherein detecting
the trigger event is based on one or more previous states.
35. The advertising server computer of claim 31, wherein detecting
the trigger event is based on one or more states restored from a
persistent storage location.
36. The advertising server computer of claim 31, wherein the
detecting the trigger event includes calculating a state
progression of user interactions with the digital application
page.
37. The advertising server computer of claim 31, wherein the
encoded intent is at least one of an indication or tag relating to
new application features identified in the under-development
code.
38. The advertising server computer of claim 31, wherein
determining when to provide to the particular user additional
previously unrevealed application help content relating to the new
application features is based on one or more progressive revelation
techniques.
39. The advertising server computer of claim 31, wherein detecting
the trigger event includes a prediction of the user's readiness for
the application help content.
40. The advertising server computer of claim 31, wherein the
expanded screen device is displayed without substantially occluding
the display of the application work area.
41. A non-transitory computer readable medium comprising a set of
instructions which, when executed by a computer, cause the computer
to provide trigger-sensitive application help content relating to
new application features to a user using a digital application
page, the set of instructions for executing a method comprising:
receiving under-development code comprising an input application
user interface, the input application user interface being encoded
for display within a digital application context and with encoded
intent for application help content relating to new application
features; executing program code that complies and records the
under-development code based on the encoded intent to produce an
output application user interface, wherein the recoding includes
adding code to the under-development code for at least one
expandable screen device that reveals application help content
relating to the new application features based on the encoded
intent and at least one determined device format for display,
adding code to the under-development code for a display protocol
comprising detecting a trigger event based on the encoded intent,
and adding code to the under-development code for expandable screen
device timers that apply uniquely for particular users based on the
encoded intent such that the expandable screen device timers assess
newness of a particular user relating to the new application
features, assess the particular user's learning progress relating
to the new application features, and determine when to provide to
the particular user additional previously unrevealed application
help content relating to the new application features; and
executing the display protocol, the display protocol comprising
setting the expandable screen device timers to apply in accordance
with the user in particular, detecting the trigger event, and
revealing the expandable screen device to display the expanded
screen device embedded within a display of an application work area
of the output application user interface, wherein detecting the
trigger event includes a detection of one of an unexpected or
inefficient user interaction with the new application page feature
to trigger the insertion of the expandable screen device.
42. The non-transitory computer readable medium of claim 41,
wherein the expandable screen device comprises at least one of a
help text area and a user control.
43. The non-transitory computer readable medium of claim 41,
further comprising: detecting expiration of an expandable screen
device timer; and minimizing the expandable screen device.
44. The non-transitory computer readable medium of claim 41,
wherein detecting the trigger event is based on one or more
previous states.
45. The non-transitory computer readable medium of claim 41,
wherein detecting the trigger event is based on one or more states
restored from a persistent storage location.
46. The non-transitory computer readable medium of claim 41,
wherein the encoded intent is at least one of an indication or tag
relating to new application features identified in the
under-development code.
47. The non-transitory computer readable medium of claim 41,
wherein determining when to provide to the particular user
additional previously unrevealed application help content relating
to the new application features is based on one or more progressive
revelation techniques.
48. The non-transitory computer readable medium of claim 41,
wherein detecting the trigger event includes a prediction of the
user's readiness for the application help content.
49. The non-transitory computer readable medium of claim 41,
wherein the expanded screen device is displayed without
substantially occluding the display of the application work area.
Description
FIELD
[0001] The present disclosure is directed towards graphical user
interfaces in digital applications, and more particularly to
improving the usability of such graphical user interfaces.
BACKGROUND
[0002] With the explosion of the Internet has come a corresponding
explosion of user applications. Formerly, web pages were used
primarily for display of information, and user interaction was
nearly limited to simple operations such as clicking a link. As the
Internet has matured, so have the capabilities of web pages, and so
have the techniques used by web page designers to support
interaction of users with web pages. Today many web pages rely on
user navigation and controls far more sophisticated than merely
clicking links. In fact some web pages serve as sophisticated web
applications, and in some cases, web page designers use embedded
applets or other user interface techniques to support interaction
of users with web pages of a web application. As the level of
sophistication of web applications increases, so also do the
demands on users to learn how to effectively operate new
applications. Further, as the degree of mobile computing increases,
legacy techniques for providing application help (e.g. a printed
manual, a help manual stored in an online repository, etc) become
deficient in providing the user with meaningful assistance,
guidance, and knowledge as to how to operate the application.
[0003] Some deficiencies in legacy techniques are manifested when a
user engages in a task using inefficient methods. This situation
motivates the present disclosures, and is especially motivating
when better alternatives are available, but are new, and/or unknown
to the user. In some motivational cases, a user engages in a task
within a digital application (e.g. an online application) without
having foundational knowledge of how to achieve the best results
when using the application. Further, and especially as relates to
on-the-go mobile computing, legacy techniques fail when a user
encounters a problem or has a question, but is unwilling to
interrupt their activity long enough to go to an external help
system and search for an answer. As a result, using legacy
techniques, users may exert energy in a trial-and-error approach,
and may lose momentum for completing the tasks at hand, and may
build up frustration. Especially in the context of mobile
computing, unsolicited guidance (e.g. unsolicited pop-ups) often
substantially occludes the work area of the online application, and
often leaves a user feeling irritated. Further, legacy techniques
often interrupt the natural flow of completing a task, and in some
cases actually block a user from proceeding with completion of
their tasks.
[0004] Even the so-called context sensitive help components are
deficient since these legacy techniques block progress or otherwise
impede the flow of user's progression to complete the tasks
pertinent to the application. And, legacy techniques do not account
for the user's selection of a particular task completion approach,
or account for the user's use (or lack of use) of particular
features of the application. Thus, for these and other reasons,
there exists a need for embedding non-blocking help components in a
displayed page of an application.
SUMMARY
[0005] A method, system, and non-transitory computer readable
medium to provide trigger-sensitive application help content to a
user using a digital application in a digital application context
(e.g. on a computer screen or using a mobile device). One technique
as is disclosed herein implements one or more screen display
devices (termed "discovery drawers") with a view to promote new
features, and/or new techniques for exploiting tool efficiencies,
and to promote experimentation of task processing alternatives.
Further, an expanding (e.g. showable/hideable, or
minimizable/maximizable) discovery drawer aids the user by
highlighting various getting-started essentials. Users can avail
themselves of highlighted knowledge (e.g. prerequisite knowledge)
that underpins effective use of the application. Some embodiments
can provide proactive resolution to predicted pain-points by
answering questions at the moment in time that the user needs the
answers. Moreover, a discovery drawer can do so without obscuring
the application work area.
[0006] In some embodiments, a display protocol (e.g. a set of
rules, possibly embedded in the application logic) can detect user
readiness for receiving proactively provided information and
automatically display an appropriate screen device (e.g. a widget,
an expandable area, a notification, a feature cue, a hint, etc). In
this manner, a discovery drawer can be displayed (e.g. by use of an
expandable screen device) when trigger conditions are satisfied.
The protocol supports user-directed control of the overall
experience and supports user-directed queries for additional
guidance.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The novel features of the disclosures are set forth in the
appended claims. However, for purpose of explanation, several
embodiments of the disclosure are set forth in the following
figures.
[0008] FIG. 1A depicts an application user interface comprising a
single digital context, according to one embodiment.
[0009] FIG. 1B depicts another application user interface
comprising a single digital context, according to one
embodiment.
[0010] FIG. 2 is a flowchart of a method for developing an
application user interface having new features, according to one
embodiment.
[0011] FIG. 3 depicts a digital application delivery network
environment including a discovery drawer application processing
module, according to one embodiment.
[0012] FIG. 4 is a diagram of a use model for processing a display
protocol, according to one embodiment.
[0013] FIG. 5A depicts a discovery drawer in expanded form,
according to one embodiment.
[0014] FIG. 5B depicts a populated discovery drawer in expanded
form, according to one embodiment.
[0015] FIG. 5C depicts a notification in the context of a populated
discovery drawer, according to one embodiment.
[0016] FIG. 5D depicts an expanded discovery drawer and showing
levels of callouts for the selected anatomical parts visible in
expanded form, according to one embodiment.
[0017] FIG. 6 is a diagram of a use model of a system for embedding
discovery drawer help components in a display page of a digital
application, according to one embodiment.
[0018] FIG. 7 depicts a block diagram of a system for providing
trigger-sensitive application help content to a user using a
digital application page, according to one embodiment.
[0019] FIG. 8 is a diagrammatic representation of a network
including nodes for client computer systems, nodes for server
computer systems, and nodes for network infrastructure, according
to one embodiment.
DETAILED DESCRIPTION
[0020] In the following description, numerous details are set forth
for purpose of explanation. However, one of ordinary skill in the
art will realize that the advances may be practiced without the use
of these specific details. In other instances, well-known
structures and devices are shown in block diagram form in order to
not obscure the description of the disclosure with unnecessary
detail.
Definitions
[0021] Some of the terms used in this description are defined below
(in alphabetical order) for easy reference. These terms are not
rigidly restricted to these definitions. A term may be further
defined by the term's use in other sections of this
description.
[0022] "Ad" (e.g. ad, item and/or message) means a paid
announcement, as of goods or services for sale, preferably on a
network such as the internet. An ad may also be referred to as an
item and/or a message.
[0023] "Ad call" means a message sent by a computer to an ad server
for requesting a digital advertisement to be displayed.
[0024] "Ad click-through rate" (e.g. click-through rate) means a
measurement of ad clicks per a period of time.
[0025] "Ad server" is a server that is configured for serving one
or more ads to user devices. An ad server is preferably controlled
by a publisher of a website and/or an advertiser of online ads. A
server is defined below.
[0026] "Advertiser" (e.g. messenger and/or messaging customer, etc)
means an entity that is in the business of marketing a product
and/or a service to users. An advertiser may include, without
limitation, a seller and/or a third-party agent for the seller. An
advertiser may also be referred to as a messenger and/or a
messaging customer. Advertising may also be referred to as
messaging.
[0027] "Advertising" means marketing a product and/or service to
one or more potential consumers by using an ad. One example of
advertising is publishing a sponsored search ad on a web site.
[0028] "Application server" is a server that is configured for
running one or more devices loaded on the application server. For
example, an application server may run a device configured for
deducing shadow profiles.
[0029] "Click" (e.g. ad click) means a selection of an ad
impression by using a selection device such as, for example, a
computer mouse or a touch-sensitive display.
[0030] "Client" means the client part of a client-server
architecture. A client is typically a user device and/or an
application that runs on a user device. A client typically relies
on a server to perform some operations. For example, an email
client is an application that enables a user to send and receive
email via an email server. In this example, the computer running
such an email client may also be referred to as a client.
[0031] "Conversion" (e.g. ad conversion) means a purchase of a
product/service that happens as a result of a user responding to an
ad and/or a coupon.
[0032] "Database" (e.g. database system, etc) means a collection of
data organized in such a way that a computer program may quickly
select desired pieces of the data. A database is an electronic
filing system. In some instances, the term "database" is used as
shorthand for a "database management system". A database may be
implemented as any type of data storage structure capable of
providing for the retrieval and storage of a variety of data types.
For instance, a database may include one or more accessible memory
structures such as a CD-ROM, tape, digital storage library, flash
drive, floppy disk, optical disk, magnetic-optical disk, erasable
programmable read-only memory (EPROM), random access memory (RAM),
magnetic or optical cards, etc.
[0033] "Device" means hardware, software or a combination thereof.
A device may sometimes be referred to as an apparatus. Examples of
a device include, without limitation, a software application such
as Microsoft Word.TM. or a database; or hardware such as a laptop
computer, a server, a display; or a computer mouse and/or a hard
disk.
[0034] "Digital Context" means a web page or a display of digital
content using a downloadable application.
[0035] "Impression" (e.g. ad impression) means a delivery of an ad
to a user device for viewing by a user.
[0036] "Item" means an ad, which is defined above.
[0037] "Message" means an ad, which is defined above.
[0038] "Messaging" means advertising, which is defined above.
[0039] "Network" means a connection, between any two or more
computers, that permits the transmission of data. A network may be
any combination of networks including, without limitation, the
internet, a local area network, a wide area network, a wireless
network, and/or a cellular network.
[0040] "Publisher" means an entity that publishes, on a network, a
web page, a downloadable application and/or other digital context
having digital content and/or digital ads, etc.
[0041] "Server" means a software application that provides services
to other computer programs (and their users) on the same computer
or on another computer or computers. A server may also refer to the
physical computer that has been set aside to run a specific server
application. For example, when the software Apache HTTP Server is
used as the web server for a company's website, the computer
running Apache may also be called the web server. Server
applications may be divided among server computers over an extreme
range, depending upon the workload.
[0042] "Social graph" means the relationships between individuals
communicating in an online environment and relative to all
connections involved.
[0043] "Software" means a computer program that is written in a
programming language that may be used by one of ordinary skill in
the art. The programming language chosen should be compatible with
the computer on which the software application is to be executed
and, in particular, with the operating system of that computer.
Examples of suitable programming languages include, without
limitation, Object Pascal, C, C++ and/or Java. Further, the
functions of some embodiments, when described as a series of steps
for a method, could be implemented as a series of software
instructions for being operated by a processor such that the
embodiments could be implemented as software, hardware, or a
combination thereof. Computer-readable media are discussed in more
detail in a separate section below.
[0044] "System" means a device or multiple coupled devices. A
device is defined above.
[0045] "User" (e.g. consumer, etc) means an operator of a user
device. A user is typically a person who seeks to acquire a product
and/or service. For example, a user may be a woman who is browsing
Yahoo!.TM. Shopping for a new cell phone to replace her current
cell phone. The term "user" may also refer to a user device,
depending on the context.
[0046] "User device" (e.g. computer, user computer, client and/or
server, etc) means a single computer or a network of interacting
computers. A user device is a computer that a user may use to
communicate with other devices over a network, such as the
internet. A user device is a combination of a hardware system, a
software operating system, and perhaps one or more software
application programs. Examples of a user device include, without
limitation, a laptop computer, a palmtop computer, a smart phone, a
cell phone, a mobile phone, an IBM-type personal computer (PC)
having an operating system such as Microsoft Windows.TM., an
Apple.TM. computer having an operating system such as MAC-OS,
hardware having a JAVA-OS operating system, and/or a Sun
Microsystems.TM. workstation having a UNIX operating system.
[0047] "Web browser" means a software program that may display text
or graphics or both, from digital contexts. Examples of a web
browser include, without limitation, Mozilla Firefox.TM. and
Microsoft Internet Explorer.TM..
[0048] "Web page" means documents written in a mark-up language
including, without limitation, HTML (hypertext mark-up language),
VRML (virtual reality modeling language), dynamic HTML, XML
(extensible mark-up language), and/or other related computer
languages. A web page may also refer to a collection of such
documents reachable through one specific internet address and/or
through one specific website. A web page may also refer to any
document obtainable through a particular URL (uniform resource
locator). "Web portal" (e.g. public portal) means a web site or
service that offers a broad array of resources and services such
as, for example, email, forums, search engines, and online shopping
malls. The first web portals were online services, such as AOL,
that provided access to the web. However, now, most of the
traditional search engines (e.g. Yahoo!.TM.) have transformed
themselves into web portals to attract and keep a larger
audience.
[0049] "Web server" is a server configured for serving at least one
digital context to a display device. An example of a web server is
a Yahoo!.TM. web server. A server is defined above.
[0050] "Web site" means one or more digital contexts. A web site
preferably includes a plurality of digital contexts virtually
connected by links or URL addresses to form a coherent group.
Motivation for Embedding Non-Blocking Help Components in a Display
Page Using Discovery Drawer Feature Cues
[0051] As earlier indicated, as the level of sophistication of web
applications increases, so also do the demands on users to learn
how to effectively operate these new applications. Scores or
hundreds or more new applications are deployed daily. Some
applications use legacy techniques for user interaction, however as
innovations are brought to bear in computing (e.g. in the context
of the mobile computing explosion), a user who is operating the new
application for the first time is likely unaware of new features or
capabilities. For supporting new features or capabilities,
designers are often motivated to change the user interface in order
to add new capabilities. Yet, in some cases the changed user
interface can be disorienting to a user. In fact, numerous
usability tests suggest that users resist navigating out of the
application in order to access an external help system. The
disclosure herein addresses such usability by delivering
contextually-relevant teaching points for the page at hand. Thus,
users can move freely between teaching points in the drawer and
between the fully-functional work area of the application.
[0052] One technique as is disclosed herein dedicates one or more
areas (heretofore termed "discovery drawers" or a "drawer" or
"drawers") with a view to promote new features, new techniques for
exploiting tool efficiencies, and to promote experimentation of
task processing alternatives. Further, an expandable (e.g.
showable/hideable, or minimizable/maximizable) discovery drawer can
aid the user by highlighting various getting-started essentials,
can aid the user by highlighting prerequisite knowledge
underpinning effective use of the application, and can proactively
provide resolution to predicted pain-points by answering questions
at the time that the user needs the answers. Moreover, a discovery
drawer can do so without suffering the deficiencies of legacy
solutions and, more particularly, without obscuring the application
work area.
[0053] Following some embodiments (further described below), a
display protocol (e.g. a set of rules, possibly embedded in the
application logic) can detect user readiness for receiving
proactively provided information and automatically display an
appropriate screen device (e.g. a widget, an expandable area, a
notification, a feature cue, a hint, etc). In this manner, a
discovery drawer can be displayed (e.g. by use of an expandable
screen device) when trigger conditions are satisfied. The display
protocol supports user-directed control of the overall experience
and supports user-directed queries for additional guidance. In some
embodiments, a user can direct such requests on demand by clicking
links in or near a discovery drawer that reveals feature cues or
other educational support. This way, the user can immediately apply
the learning without leaving the application page. The user can
explicitly control the reveal and minimize actions of a discovery
drawer. Or the application can automatically operate on a drawer
(e.g. minimize or maximize a drawer) based on certain types of
trigger events such as a timeout of a certain period of time.
[0054] Thus, by addressing questions, problems, and knowledge gaps
at the point of need, users can stay on task and minimize loss of
momentum by avoiding undue interruption and time spent searching
for answers. And, using a discovery drawer, users can try out
features and techniques as they are learned. As is now understood,
using a discovery drawer in an application makes learning about the
application seamless with the actual use of the application. And,
access to teaching points is not interrupted by passing the user
off to information or options contained in external databases, new
pages, new overlays, new browser tabs, or new browser windows. This
eliminates unnecessary cognitive load cross-correlating between the
application page and content or options delivered out-of-page.
Users are more likely to enjoy and have a successful application
usage experience when the application is attuned to user readiness
for the information (e.g. attuned to when the user has met
appropriate conditions for operating the drawer).
[0055] In addition to the above capabilities, including elimination
of hindrances for correlating assistance with specific page
functionality, a discovery drawer serves as a repository for
high-density content.
[0056] FIG. 1A depicts an application user interface 100. As shown
the application user interface 100 comprises a single digital
context (e.g. a digital application page 102), which context has a
title bar 104, a feature bar 106, and user interface screen devices
(e.g. button 1081, and button 1082), and other areas. The context
shown can be displayed as a web page on a desktop computer screen,
or a laptop computer screen, or a tablet computer screen, or a
mobile device screen. The digital context is encoded for display on
such as the aforementioned devices. For example, the page can be
encoded as an HTML page, or an HTML page with an applet, or even
encoded in a non-HTML native format such as Javascript, or
Adobe.TM. Flash.TM. or Silverlight.TM..
[0057] As earlier indicated, as new capabilities are brought to
bear in computing, a user who is operating the new application for
the first time is likely to be initially unaware of new features or
capabilities. Strictly as an example, if the user were seeing for
the first time the application user interface 100, and specifically
the interface screen device for "New Package" (e.g. button 1081),
then the user might not know precisely what to do, or how to use
the "New Package" features. Designers often have no choice but to
add features to an application, and often elect to change the user
interface in order to add the new features. Yet, in some cases the
changed user interface can be disorienting to a user. Such a
situation can be addressed through use of one or more discovery
drawers as is depicted in the following figures.
[0058] FIG. 1B depicts another application user interface 100. As
shown the application user interface 100 comprises a single digital
context. A single digital context comprises images and text
displayed on a single display screen, such as is composited for
rendering into a digital application page 102. A digital
application page 102 can include user controls (e.g. scroll bars,
hovering, user control screen devices, etc) that may be operated at
will by a user. The embodiment of FIG. 1B also depicts one instance
of a discovery drawer screen device 110. Following the
characteristics of this exemplary embodiment, the discovery drawer
screen device 110 comprises an area within application user
interface 100 for aiding the user to learn about the new feature,
in this case the "New Package" feature. The appearance of a
discovery drawer area within application user interface 100 does
not occlude the underlying page; rather, the appearance of an
exemplary discovery drawer area within application user interface
100 operates by revealing itself without occluding the user work
spaces of the page.
[0059] Following the embodiment of FIG. 1B, the application user
interface 100 has a title bar 104, a feature bar 106, and user
interface screen devices (e.g. button 1081, and button 1082). In
the context shown, the discovery drawer screen device 110 can be
displayed as a web page on a desktop computer screen, or a laptop
computer screen, or a tablet computer screen, or a mobile device
screen. In such an environment, the digital context is encoded for
display on the aforementioned devices. For example, the page can be
encoded as an HTML page, or an HTML page with an applet, or even
encoded in a non-HTML native format such as Adobe.TM. Flash.TM. or
Silverlight.TM..
[0060] The discovery drawer screen device 110 can be displayed
explicitly by user election, or it can be displayed on the basis of
one or more triggers. For example, if the user had hovered a mouse
over the "New Package" screen device for some few seconds, yet
without clicking the button, that sequence of events could be
interpreted by a display protocol processor as an indication that
the user was tentative about proceeding, and an application
processor might reveal the discovery drawer screen device 110. As
another example, if the user had aborted a multi-touch gesture over
the "New Package" screen device after some few seconds, yet without
touching the button, that sequence of events could be interpreted
by a display protocol processor as an indication that the user was
tentative about proceeding, and an application processor might
reveal the discovery drawer screen device 110.
[0061] In such a fashion the application user interface 100 with a
discovery drawer screen device 110, and in combination with a
display protocol processor, serves to aid the user to discover
information about application features.
[0062] FIG. 2 depicts a method 200 for developing an application
user interface having new features. As shown, the designer
commences to design a user interface using any available techniques
(see operation 210). The designer proceeds to identify new features
and/or use models (see operation 220), which new features and/or
use models might be explained using a discovery drawer (e.g. a
discovery drawer screen device in combination with a display
protocol processor to identify triggers).
[0063] Then, the designer might indicate any need-to-know
information pertaining to the new features and/or use models (see
operation 230). Given an application user interface design (e.g. in
the form of HTML or XHTML, or other digital code), and an
indication (e.g. a tag in HTML, or a tag in XHTML, etc) of any
need-to-know information pertaining to the new features and/or use
models, the application user interface design is then provided as
input to a processor (see operation 240), which processor (e.g. a
discovery drawer application processing module) for processing to
include discovery drawer components (e.g. any instances of the
aforementioned expandable screen devices). A network for
implementing a digital application delivery system, including a
discovery drawer application processing module, is described
below.
Networked Systems for Hosting a Discovery Drawer Application
Processing Module
[0064] FIG. 3 depicts a digital application delivery network
environment 300 including a discovery drawer application processing
module 310. Such a digital application delivery network environment
implements a system whereby when an internet user, via a client
device 305, renders a digital application page 102 (e.g. a web
page) within a digital application context 301, which digital
application page is composited in part by an application server
308. In some cases a base content server 309 serves as a repository
for base content 318. Strictly as an example, a digital application
page might be composited using some portion of base content (e.g. a
logo, a banner, a look-and-feel specification, etc), to which can
be added additional content (e.g. news, tweets, discovery drawer
screen devices, etc), and such composition can be performed in an
application serving module 313 and/or in a discovery drawer
application processing module 310. As for compositing a digital
application page using discovery drawer screen devices, such
composition can be performed using a screen device gallery 320,
which screen device gallery can comprise any number of discovery
drawer screen devices (see FIG. 4A and infra).
[0065] Returning momentarily to the discussion of FIG. 2, an
application user interface design is provided as input to a
processor, which processor (e.g. a discovery drawer application
processing module 310) for processing to include discovery drawer
components (e.g. any instances of the aforementioned expandable
screen devices). In the embodiment of a digital application
delivery network environment 300, the discovery drawer application
processing module 310 serves to process an application user
interface design, and uses the screen device gallery 320 from which
it obtains discovery drawer components including any number of
instances of an expandable screen device 328, as shown.
[0066] The application server 308 further operates to serve digital
application pages over a network 330 to a user operating a client
device 305. Exemplary embodiments of the client device 305
comprises devices with a screen for display, and such a screen can
be used to display digital application pages 102, possibly
including any number of instances of an expandable screen device
328. In some cases a client device (e.g. a desk-side computer or
workstation) can be used as a development station. In such a use,
the development station can be substantially self-contained within
a development platform 306, or the development station can use
facilities provided by a development platform 306. Such a
development platform 306 manages a development database 316, and
the development database 316 contains a digital application under
development including the aforementioned application user interface
100 including under-development code (e.g. in the form of an input
application user interface 324). In an exemplary flow the
under-development code including an input application user
interface 324 is provided to the discovery drawer application
processing module 310 for compiling, recoding, or other processing
(see operation 240 of FIG. 2) in order to produce an output
application user interface 329 where the output application user
interface 329 includes an expandable screen device added to the
input application user interface 324. A copy of the output
application user interface 329 can be stored in a deployment
database 331, which copy is served to a client device 305 on
demand.
[0067] As mentioned in the discussion of FIG. 1B, a discovery
drawer screen device 110 (e.g. a discovery drawer screen device
added into output application user interface 329) can include an
expandable screen device which can be displayed explicitly by user
election, or it can be displayed on the basis of a sequence of
events interpreted by a display protocol processor 315. The display
protocol processor 315 shown within application serving module 313
is such a display protocol processor that serves to capture user
states, and transitions, and that serves to process (e.g. detect,
raise, store, etc.) one or more instances of a trigger event 317
(see operation 417) based on previous states and current events. In
other embodiments a display protocol processor can comprise
instructions for protocol processing, and can reside in modules
other than the application serving module 313. For example,
instructions for display protocol processing can reside and be
executed within or on client device 305, or can reside within the
code of the application user interface design (e.g. in Javascript
or other interpreted or executable code). Furthermore, various
state conditions, including the occurrence of one or more trigger
events can raise a user readiness indication 319, and such a user
readiness indication can be declared by a display protocol
processor 315 (or other module), and the user readiness indication
319 can be used in rendering the output application user interface,
and/or can be used as a state or timer event or other event, which
states or events are used in subsequent operations. In some cases a
user readiness indication is calculated periodically, based on a
state progression (e.g. progression through a plurality of states
and/or events). In particular, a timer event can be raised by a
display protocol processor 315, and the status of the timer event
can be saved. Strictly as an example, a timeout period can be
managed for an expandable screen device in the form of an
expandable screen device timer 321, and the expiration of such a
timer can raise an event.
[0068] In some embodiments, the digital application delivery
network environment 300 might host a variety of modules to provide
digital application delivery network management and control
operations (e.g. a data gathering and statistics module 312)
pertinent to serving digital applications to users. In particular,
the modules, network links, algorithms, protocols, serving
policies, and data structures embodied within the digital
application delivery network environment 300 might be specialized
so as to perform a particular function or group of functions
reliably while observing latency, capacity and performance
requirements.
Trigger Processing in a Discovery Drawer Application
[0069] FIG. 4 is a protocol diagram for a display protocol 400. As
earlier indicated, instructions for a display protocol 400 can
reside and be executed within or on client device 305 (see protocol
participant 402). Instructions for display protocol processing can
reside within the code of the application user interface design, or
instructions for display protocol processing can reside within an
application server 308 (see protocol participant 402). Regardless
of the specific location of the instructions for display protocol
processing, a protocol can be observed. As shown, a protocol
commences when a client device sends an occurrence of an event (see
event 410) to the user interface protocol processor 404. Upon
receipt of the contents of a message or call corresponding to event
410, the user interface protocol processor classifies the event
(see operation 412) and sets a timer (see operation 414), for
example an expandable screen device timer 321. In this scenario,
the user interface protocol processor 404 processes the trigger
event (see operation 417), based on the results of operation 412,
and sends an instruction to expand (e.g. maximize) an expandable
screen device. In other scenarios the user interface protocol
processor 404 can send an instruction to collapse (e.g. minimize)
an expandable screen device.
[0070] The client device, upon receipt of the contents of a message
or call corresponding to event 418, expands (e.g. reveals) one or
more expandable screen devices to reveal the applicable
need-to-know information (see operation 420). Continuing the
protocol example, the display continues when a user creates a UI
event (see UI event 421), which in turn causes the client device to
send the occurrence of the event (see message 422) to the user
interface protocol processor 404. Upon receipt of the contents of,
or upon execution of a call corresponding to message 422, the user
interface protocol processor classifies the event (see operation
424) and sets a timer (see operation 414). The timer might expire,
and if so (as shown) the user interface protocol processor 404
processes the timer expiration (see operation 416) and process one
or more trigger events 317, which in turn might cause the user
interface protocol processor 404 (e.g. display protocol processor
315) to send a collapse display instruction (see event 426). The
client device, upon receipt of the contents of a message or call
corresponding to event 426 collapses one or more expandable screen
devices (see operation 428).
[0071] A trigger event 317 can result from a multitude of states,
changes to states, timeout events, user events, UI events,
asynchronous events, or other events. In some embodiments, states
and associated state information is managed per page (e.g. per each
digital application page) and per user by means of a state manager
(e.g. a user interface protocol processor 404 or other protocol
processor). A given instance of a state manager serves to manage
events for a particular user, and for a particular page. For
example, if a particular user (e.g. "User A") is interacting with a
particular digital application page (e.g. "Page X"), then the state
manager can record (e.g. in some temporary and/or persistent
storage location) the drawer's initial state or states (e.g. the
drawer's initial expand/collapse/minimize/maximize states). Upon
any rendering of the Page X, the specific states of the drawer's
states can be used to render the drawer screen devices based on the
User A's last interaction with Page X. Additionally, any last
actions (whether or not the last actions caused a trigger event)
can be saved. Furthermore, any last actions can be stored in a
preferences area (e.g. in a cookie or other persistent storage
location) and can be restored (e.g. from the cookie or other
persistent storage location) in order to implement the user's
preferences for that particular digital application page, including
the states of the drawer and/or its constituent screen devices. In
some cases the preferences are automatically restored (e.g. to
implement sticky user preferences). Initially (e.g. before any user
display of a particular digital application page), a set of
defaults can be implemented. For example, a default setting might
prescribe that a drawer is expanded upon first rendering.
Alternatively, a default setting might prescribe that a drawer is
collapsed upon first rendering. In still another embodiment, a
default setting might prescribe that a drawer is expanded or
collapsed based upon aspects of the user's client device
environment or previous states (e.g. the explore button's
enable-disable state). In these and other embodiments, the
re-rendering of a particular digital application page can be tuned
to provide a comfortable interaction experience.
User Interface Screen Devices in a Discovery Drawer Application
[0072] FIG. 5A depicts a discovery drawer 5A00 in expanded form,
and shows callouts for selected anatomical parts visible in the
expanded form. As shown, the discovery drawer comprises a drawer
title bar 5A04, a drawer body 5A06, and view later user control
5A08. Any of the aforementioned anatomical parts are customizable
by the designer. For example, a designer may make the text of the
drawer title bar be any string of characters, or even an
appropriately sized image. Similarly, a designer may make the text
of the drawer body contain any sort of arrangement of characters,
words, paragraphs, or even an array of appropriately sized images.
Embodiments of a discovery drawer comprise user controls (further
discussed below). In this example of FIG. 5A, a "view later" user
control 5A08 suggests to the user that the user control (e.g. the
"x" screen device) can be selected to hide the discovery drawer to
possibly reveal at a later time.
[0073] FIG. 5B depicts a populated discovery drawer 5B00 in
expanded form, and shows callouts for the selected anatomical parts
visible in the expanded form. As shown, the populated discovery
drawer comprises a drawer title bar, a drawer body, and view later
user control 5A08. Also shown is an explore user control 5B06, a
collapse-expand user control 5B02, and a feature cue 5B04. The
collapse-expand user control 5B02 serves to allow a user to
explicitly control the minimizing or maximizing of the discovery
drawer. In some cases the explicit user control is processed as an
asynchronous event, and the user interface protocol processor 404
might receive the asynchronous event and (for example) cancel a
timer.
[0074] In exemplary embodiments, collapse-expand user control 5B02
serves to allow the user to explicitly expand-collapse the
discovery drawer by clicking or touching the drawer title bar.
Alternatively, the "view later" user control 5A08 serves to allow
the user to explicitly hide the discovery drawer by clicking or
touching the "view later" user control 5A08. Doing so, such that
the discovery drawer is hidden, also serves to enable the "explore"
user control 5B06. Various embodiments observe user interface
closure policies such that disabled user controls are hidden or
grayed out or dimmed and, as an exemplary embodiment, offer further
aid the user by offering hints or instructions to the new user. For
example, on the first explicit use of the "view later" user control
5A08 to hide the discovery drawer, a hint is provided to the user
that explains how to use the "explore" user control 5B06 for later
uses of the drawer. The determination of a "new" user can be coded
into the behavior of the user interface protocol processor 404.
And, in some cases, the display protocol 400 sets timers to keep
track of the newness of the user, which timers can be used to
assess user learning progress and provide additional hints. The
state or states of a particular user is captured by a user
interface protocol processor 404 and the state or states persist
across uses of the application.
[0075] Still other embodiments of populated discovery drawer 5B00
comprise a scroll bar for controlling the view port of a scrollable
region.
[0076] FIG. 5C depicts a notification 5C02 in the context of a
populated discovery drawer 5B00. As shown, the notification offers
the user a suggestion to schedule a revisitation (e.g. in 30 days),
and an offers the user a suggestion to avoid a re-display of the
notification in the future (e.g. using the check box next to "Got
it. Don't show again.").
[0077] The example of FIG. 5C is merely one embodiment, and many
other application customizations are possible, following the
embodiments disclosed herein. For example, an application designer
can establish a particular expiration period to define the elapsed
time the drawer is available in the application. And a display
protocol 400 can be implemented such that any of the aforementioned
timers and expiration periods apply uniquely to each unique user.
Moreover, the explore user control 5B06 can include a tooltip
having text that explains what the user will learn when they open
the drawer. The tooltip display characteristics can be coded into
the instructions for the display protocol processor.
[0078] FIG. 5D depicts an expanded discovery drawer 5D00, and shows
two levels of callouts for the selected anatomical parts visible in
expanded form. As shown, the discovery drawer 5D00 includes two
levels of need-to-know information for the user, namely "Reveal 1:
Awareness", "Reveal 2: Essential Intel". A third level of
need-to-know information can be retrieved using third-level
techniques.
TABLE-US-00001 TABLE 1 Progressive revelation techniques Technique
Description Example Grab the user's attention and direct focus
Discovery drawer title and text within the drawer to
need-to-know-now information for the body. page and task at hand.
Deliver topical information given Discovery drawer title and text
within the drawer intelligence about user activity. Deliver the
body. Display drawer when user interaction (e.g. right information
at the right time based on clicks, multi-touch gestures) with the
application trigger conditions for the current user. suggests lack
of confidence (e.g. timer timeouts). Address predicted questions
and pain Provide concise hints and instructions in the points a
user might encounter on a page. discovery drawer. Convey multiple
key messages about the Provide concise hints and instructions about
page. nearby user controls and application features in the
discovery drawer. Define trigger conditions that reflect user
Detect when user interacts with a feature in an readiness (or lack
or readiness) for the unexpected or inefficient manner and predict
the information. user's readiness. Set an expiration period for the
drawer. For example, 30 days: Knowing that the information won't be
readily available forever might motivate a user to develop an
application interaction skill sooner rather than later.
[0079] Any one or more of the progressive revelation techniques of
Table 1 can be used during the course of development of an
application. Moreover, a designer, during the course of an
application user interface design, can encode an indication (e.g. a
tag in HTML, or a tag in XHTML, etc) or instructions (e.g.
instructions in the form of a tag, or in the form of a scripting
language) to direct an application processing module to include the
hints and/or need-to-know information pertaining to the new
features. In turn, the application processing module adds discovery
drawer components (e.g. any instances of the aforementioned
expandable screen devices) to the input application user interface,
and outputs the result for an application serving module to deliver
(e.g. on demand) to a user.
[0080] FIG. 6 is a diagram of a use model 600 of a system for
embedding discovery drawer help components in a display page of a
digital application using a display protocol. As shown, the use
model shows the interaction between various actors in the system
for embedding discovery drawer help components, namely an
application processing module 602, an application developer 604, a
client device 305, and an application server 308. Any of the
aforementioned actors can be implemented in any one or more of the
systems described in the figures discussed supra. Or, any of the
application processing module, the client device, and/or the
application server can be implemented using one or more processors
and memory. The use model 600 commences when a designer designs a
digital application and its application user interface (see
operation 610), and proceeds to encode an indication (e.g. a tag in
HTML, or a tag in XHTML, etc) or instructions (e.g. instructions in
the form of a tag, or in the form of a scripting language) to
direct the application processing module 602 to include the hints
and/or the need-to-know information pertaining to the new features.
Having encoded such an indication (see operation 612), the
application is sent to the application processing module (see event
614), which is received as an input application user interface (see
operation 618), and to which is added discovery drawer screen
devices (see operation 620), which is then sent to an application
server 308 (see operation 624) to be stored in one or more
locations (see operation 622), for example, in a persistent storage
location such as deployment database 331. The application
processing module 602 can perform the storing operation of the
output application user interface and/or the application server can
perform the storing of the output application user interface. In
certain cases, the digital application code is stored in its
entirety, including the output application user interface, in a
persistent storage location accessible to the application server
308.
[0081] At some point in time, a user, operating a client device
305, receives an output application user interface (see operation
626), launches the digital application, and begins to interact with
the output application user interface (see operation 628), for
example, using the discovery drawer screen devices embedded within
the output application user interface. Such user interaction
precipitates events (see event 630), which event or events may be
processed by a display protocol processor 315, to detect a trigger
event (see operation 632). In exemplary uses, the occurrence of the
trigger event in turn reveals an expandable screen device to
display discovery drawer screen device in accordance with the
designer's instructions embedded in the application and/or
instructions embedded in the application during processing (e.g.
during processing after event 630).
[0082] Of course the use model 600 is merely one use model, and
many other use models are possible and envisioned. For example some
aspects of use model 600 can be observed for carrying out a
computer-implemented method for providing discovery drawer
capabilities (e.g. including trigger-sensitive application help) to
a user using a user interface page of a digital application.
Specifically, an application server 308 can execute program code
for receiving an input application user interface from a designer
after the designer has encoded intent or instruction for discovery
drawer components within one (or more) of the digital application
pages, and having received it, can perform recoding of the input
application user interface to produce an output application user
interface (e.g. by adding discovery drawer expandable screen
devices added to the input user interface description). A client
device and/or an application server operating cooperatively can
execute a display protocol to detect a trigger event 317, and cause
the user interface code running on the client device to expand the
expandable screen device to display a notification (e.g.
notification 5C02) or other help facilities.
[0083] FIG. 7 depicts a block diagram of a system for providing
trigger-sensitive application help content to a user using a
digital application page. As an option, the present system 700 may
be implemented in the context of the architecture and functionality
of the embodiments described herein. Of course, however, the system
700 or any operation therein may be carried out in any desired
environment. As shown, system 700 comprises a plurality of modules,
a module comprising at least one processor and a memory, each
connected to a communication link 705, and any module can
communicate with other modules over communication link 705. The
modules of the system can, individually or in combination, perform
method steps within system 700. Any method steps performed within
system 700 may be performed in any order unless as may be specified
in the claims. As shown, system 700 implements a method for
providing trigger-sensitive application help content to a user
using a digital application page, the system 700 comprising one or
more modules for: receiving an input application user interface,
the input application user interface being encoded for display
within a digital application context (see module 710); recoding the
input application user interface to produce an output application
user interface, the output application user interface comprising at
least one expandable screen device added to the input application
user interface (see module 720); executing a display protocol, the
display protocol comprising detecting a trigger event (see module
730); revealing the expandable screen device to display an expanded
screen device, and setting an expandable screen device timer (see
module 740).
[0084] FIG. 8 is a diagrammatic representation of a network 800,
including nodes for client computer systems 8021 through 802N,
nodes for server computer systems 8041 through 804N, and nodes for
network infrastructure 8061 through 806N, any of which nodes may
comprise a machine (e.g. computer 850) within which a set of
instructions for causing the machine to perform any one of the
techniques discussed above may be executed. The embodiment shown is
purely exemplary, and might be implemented in the context of one or
more of the figures herein.
[0085] Any node of the network 800 may comprise a general-purpose
processor, a digital signal processor (DSP), an application
specific integrated circuit (ASIC), a field programmable gate array
(FPGA) or other programmable logic device, a discrete gate or
transistor logic, discrete hardware components, or any combination
thereof capable to perform the functions described herein. A
general-purpose processor may be a microprocessor, but in the
alternative, the processor may be any conventional processor,
controller, microcontroller, or state machine. A processor may also
be implemented as a combination of computing devices (e.g. a
combination of a DSP and a microprocessor, a plurality of
microprocessors, one or more microprocessors in conjunction with a
DSP core, or any other such configuration, etc).
[0086] In alternative embodiments, a node may comprise a machine in
the form of a virtual machine (VM), a virtual server, a virtual
client, a virtual desktop, a virtual volume, a network router, a
network switch, a network bridge, a personal digital assistant
(PDA), a cellular telephone, a web appliance, or any machine
capable of executing a sequence of instructions that specify
actions to be taken by that machine. Any node of the network may
communicate cooperatively with another node on the network. In some
embodiments, any node of the network may communicate cooperatively
with every other node of the network. Further, any node or group of
nodes on the network may comprise one or more computer systems
(e.g. a client computer system, a server computer system) and/or
may comprise one or more embedded computer systems, a massively
parallel computer system, and/or a cloud computer system.
[0087] The computer system (e.g. computer 850) includes a processor
808 (e.g. a processor core, a microprocessor, a computing device,
etc), a main memory (e.g. computer memory 810), and a static memory
812, which communicate with each other via a bus 814. The computer
850 may further include a display unit (e.g. computer display 816)
that may comprise a touch-screen, or a liquid crystal display
(LCD), or a light emitting diode (LED) display, or a cathode ray
tube (CRT). As shown, the computer system also includes a human
input/output (I/O) device 818 (e.g. a keyboard, an alphanumeric
keypad, etc), a pointing device 820 (e.g. a mouse, a touch screen,
etc), a drive unit 822 (e.g. a disk drive unit, a CD/DVD drive, a
tangible computer readable removable media drive, an SSD storage
device, etc), a signal generation device 828 (e.g. a speaker, an
audio output, etc), and a network interface device 830 (e.g. an
Ethernet interface, a wired network interface, a wireless network
interface, a propagated signal interface, etc).
[0088] The drive unit 822 includes a machine-readable medium 824 on
which is stored a set of instructions (i.e. software, firmware,
middleware, etc) 826 embodying any one, or all, of the
methodologies described above. The set of instructions 826 is also
shown to reside, completely or at least partially, within the main
memory and/or within the processor 808. The set of instructions 826
may further be transmitted or received via the network interface
device 830 over the bus 814.
[0089] It is to be understood that embodiments of this disclosure
may be used as, or to support, a set of instructions executed upon
some form of processing core (such as the CPU of a computer) or
otherwise implemented or realized upon or within a machine- or
computer-readable medium. A machine-readable medium includes any
mechanism for storing or transmitting information in a form
readable by a machine (e.g. a computer). For example, a
machine-readable medium includes read-only memory (ROM); random
access memory (RAM); magnetic disk storage media; optical storage
media; flash memory devices; and electrical, optical or acoustical
or any other type of media suitable for storing information.
[0090] While the disclosure has been described with reference to
numerous specific details, one of ordinary skill in the art will
recognize that the advances can be embodied in other specific forms
without departing from the spirit of the disclosure. Thus, one of
ordinary skill in the art would understand that the advances are
not to be limited by the foregoing illustrative details, but rather
is to be defined by the appended claims.
* * * * *