U.S. patent application number 12/455797 was filed with the patent office on 2010-12-09 for system, method and apparatus for creating and using a virtual layer within a web browsing environment.
Invention is credited to Erie Trouw.
Application Number | 20100313252 12/455797 |
Document ID | / |
Family ID | 43301719 |
Filed Date | 2010-12-09 |
United States Patent
Application |
20100313252 |
Kind Code |
A1 |
Trouw; Erie |
December 9, 2010 |
System, method and apparatus for creating and using a virtual layer
within a web browsing environment
Abstract
A system and a method for configuring a user-editable layer
within a network are disclosed. The system includes a client
computing system including a web browser. The web browser further
includes a loaded webpage configured to obtain web content from a
universal network server through a web address. The system further
includes an application object model to collect objects from the
client computing system and the universal network server. The
system for configuring the user-editable layer within the network
further includes a plug-in unit coupled to a layer definition
server and an authenticating server for authenticating user
credential information. The user-editable layer may include at
least one of a virtual layer, an emulating layer, an upgradable
layer and the like.
Inventors: |
Trouw; Erie; (Fallbrook,
CA) |
Correspondence
Address: |
Horizon Patent Group
924 Strathorn Drive
Cary
NC
27519
US
|
Family ID: |
43301719 |
Appl. No.: |
12/455797 |
Filed: |
June 8, 2009 |
Current U.S.
Class: |
726/7 ;
715/760 |
Current CPC
Class: |
G06Q 30/0222 20130101;
G06F 2221/2145 20130101; G06F 16/958 20190101; G06F 9/44526
20130101; G06F 21/33 20130101; G06F 2221/2141 20130101; G06F
2221/2147 20130101; G06F 21/6227 20130101; G06Q 30/0641 20130101;
G06Q 30/0629 20130101 |
Class at
Publication: |
726/7 ;
715/760 |
International
Class: |
H04L 9/32 20060101
H04L009/32; G06F 3/00 20060101 G06F003/00 |
Claims
1. A method for configuring an editable virtual layer in an
internet browsing environment, the method comprising: transferring
URL information to a server unit configured to store a plurality of
layer extensions; selecting a layer extension based on the
transferred URL information; and providing display data to arrange
the display of the selected layer extension on a virtual layer
superimposed over a selected web-page.
2. The method of claim 1, wherein the method further comprises:
aggregating objects corresponding to the selected layer extension
and the URL information using a layer markup language; wherein, the
aggregation is executed through a layer definition server unit
adaptable to the layer markup language including a plurality of
built-in logical nodes.
3. The method of claim 1, wherein the method further comprises:
aggregating objects corresponding to the selected layer extension
and URL information using a layer markup language; wherein the
layer markup language contains native executable logic tags.
4. The method of claim 1, wherein the display data includes Peg
mapping data.
5. A system for configuring a user-editable layer for display, the
system comprising: a content server comprising an application
object model to collect objects from a client computing system and
a universal network server; a processing element for comparing
objects of the application object model and a web address; a data
element for providing display data for a user-editable layer
responsive to the comparison of the processing element, wherein the
display data may be used to create a superimposed image to be
displayed over a selected web page.
6. The system of claim 5, wherein the user-editable layer is
generated using a layer markup language included in a layer
definition server.
7. The system of claim 6 wherein the system further includes: a
plug-in unit coupled to the layer definition server and an
authentication server, wherein the system is configured to:
authenticate user credential information; transfer web content
pertaining to the user-editable layer to the plug-in unit
responsive to the authentication; and render the transferred web
content on the client computing system.
8. The system of claim 7, wherein the authentication server is
coupled to the layer definition, and wherein the system is further
configured to: verify a need for authenticating a user; transfer
web content pertaining to at least one user-editable layer to the
plug-in unit from the layer definition server; and render the
transferred web content.
9. The system of claim 8, wherein authentication is granted based
on the establishment of a relationship between the poster of the
content and the viewer of the content within a proprietary social
graph.
10. The system of claim 6, wherein the layer markup language
comprises built-in logical nodes.
11. A method for configuring an editable virtual layer in an
internet browsing environment having at least one client computer,
the method comprising: storing virtual layer data paired with URL
information; selecting virtual layer data for display based on
selected URL information; and aggregating objects corresponding to
the virtual layer data and corresponding to the selected URL
information.
12. The method of claim 11, wherein the step of aggregating objects
is executed through a layer definition server unit adaptable to a
layer markup language including a plurality of built-in logical
nodes.
13. The method of claim 12, wherein the step of aggregating objects
comprises: rendering a menu user interface at a predetermined
location relative to a displayed web-page; executing an event in
the layer markup language following a user triggered signal through
a client computing system.
14. One or more computer-readable storage media having
computer-executable instructions for performing a method, wherein
the method comprises configuring a content server comprising an
application object model for collecting objects from a client
computing system; enabling a comparison between objects of the
application object model and a web address; and displaying web
content on the user-editable layer responsive to a match generated
following the comparison, wherein the display is comprised of a
superimposed form of the web content on the user-editable layer
adaptable to visual environment of the loaded web page, the
user-editable layer generated using a layer markup language
included in a layer definition server; authenticating user
credential information; transferring the web content pertaining to
the user-editable layer to the plug-in unit responsive to the
authentication; and rendering the transferred web content on the
client computing system.
Description
PRIORITY CLAIM
[0001] This application claims priority to U.S. Provisional
Application No. 61/058,792 filed on Jun. 4, 2008.
BACKGROUND AND FIELD OF THE INVENTION
[0002] The present invention generally relates to a technique for
enabling interactive capabilities between users of the World Wide
Web and content providers of the World Wide Web. More particularly,
the present invention relates to a system and a method for
configuring a user interface comprised of an editable layer within
a network.
Description of Related Art
[0003] Typically, users interact with the internet through World
Wide Web (WWW) servers and World Wide Web (WWW) pages which offer
hypertext capabilities. Hyper Text Markup Language (HTML) is a
scripting or programming language which enables the content
providers or developers of World Wide Web pages to place hyperlinks
within World Wide Web pages which then link to related content or
data present in other World Wide Web pages. The content or data
present in each web page can be navigated by the end users of World
Wide Web using a Graphical User Interface (GUI).
[0004] Conventionally, the end users of the World Wide Web are able
to read and gather the content or data present in World Wide Web
pages placed by the content providers. Furthermore, the end users
of the World Wide Web are able to interact with the web page, as
well as other end users, based on the type of functionality offered
by the content providers of the World Wide Web.
[0005] In general, the conventional technologies as described above
have not advanced significantly relative to the growth of internet.
Moreover, the conventional techniques lack the ability of editing
or modifying existing World Wide Web pages virtually by the end.
The conventional techniques also lack the ability of retrieving and
accumulating data from multiple web pages that the end user is not
currently viewing. Further, they do not allow for simultaneously
manipulating and reposting the retrieved data on to a layer present
over another World Wide Web page. The World Wide Web pages that can
be manipulated or interacted by the end users are the pages that
have been created by the World Wide Web content providers.
[0006] Hence, there is need for an application or a program running
on the end users network device that enables the end user to
virtually edit the appearance or functionality of an existing World
Wide Web page by making the modifications on a virtual layer that
is superimposed onto the World Wide Web page.
SUMMARY
[0007] A system and a method are disclosed for configuring a
user-editable layer within a network. In accordance with exemplary
embodiments of the present invention, according to a first aspect
of the invention, a system for configuring a user-editable layer
within a network includes a client computing system further
including a web browser including a loaded web page configured to
obtain web content from a universal network server through a web
address. The user-editable layer may include at least one of a
virtual layer, an emulating layer, an upgradable layer and the
like. A Graphical User Interface (GUI) is adaptable to a domain of
the web browser for enabling a visual access to the loaded web page
and the user-editable layer.
[0008] According to the first aspect, the system for configuring a
user-editable layer within a network includes a layer definition
server including an application object model to collect objects
from the client computing system and the universal network server
to enable a comparison between the objects of the application
object model and the web address and displaying the web content on
the user-editable layer responsive to a match generated following
the comparison.
[0009] According to the first aspect, the system for configuring a
user-editable layer within a network includes a layer definition
server including an application object model for displaying a
visual resolution enabled superimposed form of the web content on
the user-editable layer adaptable to the loaded web page. Once
generated, the user-editable layer generated using a layer markup
language may be included in the layer definition server. The layer
markup language includes built-in logical nodes for avoiding a need
of writing scripts for enabling objects for executing events.
[0010] According to the first aspect, the system for configuring a
user-editable layer within a network includes a plug-in unit
coupled to the layer definition server and an authentication server
for: 1) authenticating user credential information, 2) transferring
the web content pertaining to the user-editable layer to the
plug-in unit responsive to the authentication and 3) rendering the
transferred web content on the client computing system while
enabling an edit feature for the user-editable layer. The plug-in
unit includes a logical simulator sub-unit further including a
license key for enabling a user-editable layer configuration in the
client computing system. The plug-in unit includes a client
software sub-unit further including a license key for enabling a
user-editable layer configuration in the client computing system.
The application object model includes a document object model unit
for posting to the plug-in unit information, indexes and references
pertaining to downloaded object in the client computing system
further pertaining to markup languages.
[0011] According to the first aspect, the system for configuring a
user-editable layer within a network includes the authentication
server coupled to the layer definition server for verifying a need
for authenticating a user credential information, transferring the
web content pertaining to at least one user-editable layer to the
plug-in unit from the layer definition server if minimal
authentication is needed for the user credential information and
rendering the transferred web content to the client computing
system through the plug-in unit including a client software
module.
[0012] According to the first aspect, the system for configuring a
user-editable layer within a network includes the authentication
server coupled to the layer definition server for verifying a need
for authenticating a user credential information, transferring the
web content pertaining to at least one user-editable layer to the
plug-in unit from the layer definition server if minimal
authentication is needed for the user credential information and
rendering the transferred web content to the client computing
system through the web browser. The layer definition server sends
an authentication request to the plug-in unit including the client
software sub-unit, wherein an authentication is required for user
credentials, wherein a user enters credentials into a message box
in the client software sub-unit, wherein the entered credentials
are sent to the server for verification, wherein the authentication
server sends an authentication verified signal to the client
software sub-unit further sending the authentication verified
signal to the layer definition server, and wherein the layer
definition server sends an authenticated version of the web content
to the client software sub-unit for loading onto the client
computing system.
[0013] According to a second aspect, a method for configuring an
editable virtual layer in an internet browsing environment is
disclosed. The method includes a user opening a predetermined web
browser through a client computing system to reach a universal
network server including a World Wide Web domain.
[0014] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes triggering a virtual layer software sub-unit responsive to
the user opening the web browser for enabling a visual access
permission for the editable virtual layer through the predetermined
web browser.
[0015] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes navigating to a uniform resource locator (URL) through the
predetermined web browser responsive to triggering the virtual
layer software sub-unit. The virtual layer software sub-unit
includes a license key for enabling an editable virtual layer
configuration in the client computing system.
[0016] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes transferring the URL information to a server unit
configured to store a plurality of layer extensions and configured
to render the plurality of layer extensions while collecting
objects from the client computing system and universal network
server through an application object model for enabling a
comparison between objects of the application object model and the
URL, displaying a plurality of layer extensions on the editable
virtual layer in an overlying manner while maintaining visual
resolution between a web page loaded through the URL and the
plurality of layer extensions, the rendering being responsive to a
match generated following the comparison. The server unit includes
a content server unit adaptable to the application object
model.
[0017] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes aggregating objects corresponding to the plurality of
layer extensions and corresponding to the URL using a layer markup
language. The step of aggregating the objects is executed through a
layer definition server unit adaptable to the layer markup language
including a plurality of built-in logical tags for avoiding a need
of writing scripts for enabling objects for executing events. The
step of aggregating objects includes rendering a menu user
interface (UI) at a predetermined location in a page for the
predetermined web browser, executing an event in the layer markup
language following a user triggered signal through the client
computing system and enabling a series of editing modules on to the
editable virtual layer responsive to the execution of the event. In
absence of a user triggered signal asking the user whether the user
has triggered any signal and returning to the page after a
predetermined delay in absence of further response.
[0018] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
further includes loading a pre-rendered layer markup language
module, returning the layer markup language to the virtual layer
software sub-unit including a plurality of layer extensions present
on the URL and having the virtual layer software sub-unit executing
initialization routines in the layer markup language.
[0019] According to a third aspect, a computer readable medium
including a plurality of computer readable instructions is
disclosed. The computer readable medium including a plurality of
computer readable instructions which when executed by at least one
computer causes configuring a client computing system further
includes a web browser including a loaded web page for obtaining a
web content from a universal network server through a web
address.
[0020] According to the third aspect, the computer readable medium
including a plurality of computer readable instructions which when
executed by at least one computer causes: 1) configuring a layer
definition server including an application object model for
collecting objects from the client computing system and the
universal network server to enable a comparison between objects of
the application object model and the web address; 2) displaying the
web content on the user-editable layer responsive to a match
generated following the comparison; 3) displaying a visual
resolution enabled superimposed form of the web content on the
user-editable layer adaptable to visual environment of the loaded
web page, wherein the user-editable layer is generated using a
layer markup language included in a layer definition server.
[0021] According to the third aspect, the computer readable medium
may include a plurality of computer readable instructions which
when executed by at least one computer causes: 1) authenticating
user credential information, 2) transferring the web content
pertaining to the user-editable layer to the plug-in unit
responsive to the authentication; and 3) rendering the transferred
web content on the client computing system while enabling an edit
feature for the user-editable layer.
BRIEF DESCRIPTION OF THE FIGURES
[0022] Other objects and advantages of the present invention will
become apparent to those skilled in the art upon reading the
following detailed description of the preferred embodiments, in
conjunction with the accompanying drawings, wherein like reference
numerals have been used to designate like elements, and
wherein:
[0023] FIG. 1 is a diagram depicting a high level view of the basic
components used to make a virtual layer and how they interact.
[0024] FIG. 2 is a flowchart illustrating a process for displaying
the content on the virtual layer over web pages once the client
software is already running on the user's computer.
[0025] FIG. 3 is a flow chart illustrating a process of aggregating
the extension YLML.
[0026] FIG. 4 is flowchart illustrating a process of executing
events and routines described in the YLML.
[0027] FIG. 5 is a flowchart illustrating a process of extension
discovery.
[0028] FIG. 6 is a flowchart illustrating a process of loading the
extensions that have been associated with the current web page.
[0029] FIG. 7 is a flowchart illustrating a process of a client
rendering the extensions on the virtual layer.
[0030] FIG. 8 is a flowchart illustrating a process of security
methods adapted that keep users from seeing content that they do
not want to, or is not intended for them to see.
[0031] FIG. 9 is a flowchart illustrating a process of posting or
editing the content with in the virtual layer.
[0032] FIG. 10 is a diagram depicting a web page without the
addition of anything on the virtual layer and a web page with the
addition of content added to the virtual layer.
DETAILED DESCRIPTION
[0033] Exemplary embodiments of the present invention are directed
to a system and a method for configuring a user-editable layer
within a network. The present technique describes a method for
enabling interactive capabilities between users of the World Wide
Web as well as between content providers and users of World Wide
Web.
[0034] In accordance with exemplary embodiments of the present
invention, according to a first aspect of the invention, a system
for configuring a user-editable layer within a network includes a
client computing system further including a web browser including a
loaded web page configured to obtain web content from a universal
network server through a web address. The user-editable layer may
include at least one of a virtual layer, an emulating layer, an
upgradable layer and the like. A Graphical User Interface (GUI) is
adaptable to a domain of the web browser for enabling a visual
access to the loaded web page and the user-editable layer.
[0035] According to the first aspect, the system for configuring a
user-editable layer within a network includes a layer definition
server including an application object model to collect objects
from the client computing system and the universal network server
to enable a comparison between the objects of the application
object model and the web address and displaying the web content on
the user-editable layer responsive to a match generated following
the comparison.
[0036] According to the first aspect, the system for configuring a
user-editable layer within a network includes a layer definition
server including an application object model for displaying a
visual resolution enabled superimposed form of the web content on
the user-editable layer adaptable to the loaded web page, the
user-editable layer generated using a layer markup language
included in a layer definition server. The layer markup language
includes built-in logical tags for avoiding a need of writing
scripts for enabling objects for executing events.
[0037] According to the first aspect, the system for configuring a
user-editable layer within a network includes a plug-in unit
coupled to the layer definition server and an authentication server
for authenticating user credential information, transferring the
web content pertaining to the user-editable layer to the plug-in
unit responsive to the authentication and rendering the transferred
web content on the client computing system while enabling an edit
feature for the user-editable layer. The plug-in unit includes a
logical simulator sub-unit further including a license key for
enabling a user-editable layer configuration in the client
computing system. The plug-in unit includes a client software
sub-unit further including a license key for enabling a
user-editable layer configuration in the client computing system.
The application object model includes a document object model unit
for posting to the plug-in unit information, indexes and references
pertaining to downloaded object in the client computing system
further pertaining to markup languages.
[0038] According to the first aspect, the system for configuring a
user-editable layer within a network includes the authentication
server coupled to the layer definition server for verifying a need
for authenticating a user credential information, transferring the
web content pertaining to at least one user-editable layer to the
plug-in unit from the layer definition server if minimal
authentication is needed for the user credential information and
rendering the transferred web content to the client computing
system through the plug-in unit including a client software
module.
[0039] According to the first aspect, the system for configuring a
user-editable layer within a network includes the authentication
server coupled to the layer definition server for verifying a need
for authenticating a user credential information, transferring the
web content pertaining to at least one user-editable layer to the
plug-in unit from the layer definition server if minimal
authentication is needed for the user credential information and
rendering the transferred web content to the client computing
system through the web browser. The layer definition server sends
an authentication request to the plug-in unit including the client
software sub-unit, wherein an authentication is required for user
credentials, wherein a user enters credentials into a message box
in the client software sub-unit, wherein the entered credentials
are sent to the server for verification, wherein the authentication
server sends an authentication verified signal to the client
software sub-unit further sending the authentication verified
signal to the layer definition server, and wherein the layer
definition server sends an authenticated version of the web content
to the client software sub-unit for loading on to the client
computing system.
[0040] According to a second aspect, a method for configuring an
editable virtual layer in an internet browsing environment is
disclosed. The method includes a user opening a predetermined web
browser through a client computing system to reach a universal
network server including a World Wide Web domain.
[0041] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes triggering a virtual layer software sub-unit responsive to
the user opening the web browser for enabling a visual access
permission for the editable virtual layer through the predetermined
web browser.
[0042] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes navigating to a uniform resource locator (URL) through the
predetermined web browser responsive to triggering the virtual
layer software sub-unit. The virtual layer software sub-unit
includes a license key for enabling an editable virtual layer
configuration in the client computing system.
[0043] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes transferring the URL information to a server unit
configured to store a plurality of layer extensions and configured
to render the plurality of layer extensions while collecting
objects from the client computing system and universal network
server through an application object model for enabling a
comparison between objects of the application object model and the
URL, displaying a plurality of layer extensions on the editable
virtual layer in an overlying manner while maintaining visual
resolution between a web page loaded through the URL and the
plurality of layer extensions, the rendering being responsive to a
match generated following the comparison. The server unit includes
a content server unit adaptable to the application object
model.
[0044] According to the second aspect, the method for configuring
an editable virtual layer in an internet browsing environment
includes aggregating objects corresponding to the plurality of
layer extensions and corresponding to the URL using a layer markup
language. The step aggregating objects is executed through a layer
definition server unit adaptable to the layer markup language
including a plurality of built-in logical nodes for avoiding a need
of writing scripts for enabling objects for executing events. The
step of aggregating objects includes rendering a menu user
interface (UI) at a predetermined location in a page for the
predetermined web browser for no layer applications present for the
page, executing an event in the layer markup language following a
user triggered signal through the client computing system and
enabling a series of editing modules on to the editable virtual
layer responsive to the execution of the event. In absence of a
user triggered signal asking the user whether the user has
triggered any signal and returning to the page after a
predetermined delay in absence of further response from the user
and in presence of a true signal to a page unloading query
returning to the page immediately. According to the second aspect,
the method for configuring an editable virtual layer in an internet
browsing environment further includes loading a pre-rendered layer
markup language module, returning the layer markup language to the
virtual layer software sub-unit including a plurality of layer
extensions present on the URL and the virtual layer software
sub-unit executing initialization routines in the layer markup
language.
[0045] According to a third aspect, a computer readable medium
including a plurality of computer readable instructions is
disclosed. The computer readable medium includes computer readable
instructions which when executed by at least one computer causes
configuring a client computing system and web browser to obtain web
content from a universal network server through a web address.
[0046] According to the third aspect, the computer readable medium
including a plurality of computer readable instructions which when
executed by at least one computer causes configuring a layer
definition server comprising an application object model for
collecting objects from the client computing system and the
universal network server to enable a comparison between objects of
the application object model and the web address and displaying the
web content on the user-editable layer responsive to a match
generated following the comparison, for displaying a visual
resolution enabled superimposed form of the web content on the
user-editable layer adaptable to visual environment of the loaded
web page, the user-editable layer generated using a layer markup
language included in a layer definition server.
[0047] According to the third aspect, the computer readable medium
including a plurality of computer readable instructions which when
executed by at least one computer causes: 1) authenticating user
credential information, 2) transferring the web content pertaining
to the user-editable layer to the plug-in unit responsive to the
authentication and 3) rendering the transferred web content on the
client computing system while enabling an edit feature for the
user-editable layer.
[0048] According to an exemplary embodiment of the present
invention, the virtual layer is superimposed onto web sites within
the client's web browser and includes functionality that can be
added to a user's interactive capabilities with and within the
World Wide Web. In accordance with an example of the invention, the
system is preferably implemented through a new XML schema called
YLML (Yontoo Layer Markup Language). This new language contains
executable programming tags, referenceable data tags, renderable UI
tags and the like. Unlike HTML, which is a document markup language
that is sometimes used as an application markup language simply
because it is widely supported and the industry norm, YLML is a
true application markup language that is different from HTML in
that it has executable nodes and does not follow the same DOM
structure that HTML does. YLML is also different from other XML
languages in that it does not use code-behind. YLML does not
require a separate file with logic source code, nor does it have
imbedded logic using external languages. While other dynamic
versions of XML require the use of code-behind or require the
addition of external languages such as JavaScript and VBScript to
be imbedded into script tags, YLML has native executable logic tags
that eliminate the requirement for other languages to be imbedded
into tags or used for code-behind.
[0049] According to an exemplary embodiment of the present
invention, a new object model that works in conjunction with YLML
is disclosed. This object model is called a YOM (Yontoo Object
Model). A DOM can use only the information that exists in the
document it is referencing to create a set of objects that are used
to access the data within the HTML. The YOM on the other hand, is a
single template that has an established structure that enables
access to any information, data or content accessible through a
computer system, including, but not restricted to the World Wide
Web, databases, data stores, a client's computer or other content
sources. This implies that unlike a DOM, which only creates objects
for tags for content that exists in whole within the HTML document
that it references, the YOM's established structure enables it to
access specific content that exists on the World Wide Web, a
database, a data store or any other location connected to a
networked computer system without requiring content beyond the
scope of exactly what is needed to be loaded. This enables the YOM
to create objects within the model using a JIT (just in time)
method, as opposed to creating the entirety of the model when the
incoming file is parsed as is the case with the use of a DOM. The
advantage of using the YOM over the DOM is that it gives access to
a much broader range of content, including the World Wide Web,
databases, data stores, a client's computer or other sources of
content, according to an example of the present invention. For a
DOM to provide this access, it would need to first load the
entirety of the content that exists within these sources which is
performance prohibitive.
[0050] In accordance with an exemplary embodiment of the present
invention, the combination of the YLML, the YOM and the layer
system makes it possible to provide users with the ability to add
content from many different sources to the virtual layer. It will
also enable users to use specific functionalities of web pages,
applications and services without having to load the entirety of
these web pages, applications, services and the like, according to
an example of the present invention. In accordance with an
exemplary embodiment of the present invention, the users create new
web sites with YLML and YOM structure as used in the layer
system.
[0051] With reference now to FIG. 1, a diagram is provided which
depicts a high level view of the basic components used to make a
virtual layer and how they interact. The display of the client's
computer 114 will show a combination of information coming from the
client's Web Browser 110 and the client side software portion of
the invention i.e. Client Software 112, according to an example of
the present invention. The Web Browser 110 may be Firefox, Internet
Explorer, Netscape Navigator and the like browsers that would
enable the users to perform internet browsing. The content being
displayed on the web browser comes from third-party web servers 102
from all over the world (World Wide Web). According to an exemplary
embodiment of the present invention, once a web page is loaded into
the client's web browser, the Client Software 112 sends the URL
information from the web browser to the Layer Definition Server
106. According to an exemplary embodiment of the present invention,
the Layer Definition Server 106 contains the YOM which contains all
of the information, indexes and references needed for the content
that will be posted to the Client Software 112. Accordingly, the
server checks the YOM to see if there is any content that needs to
be displayed on the virtual layer of the user's Client Software
112, based on the URL of the user's Web Browser 110. If the Layer
Definition Server 106 decides that there is content to be placed on
the user's Client Software 112, it then checks to see if
authentication is needed. If the content, found by the Layer
Definition Server 106 to be shown, does not require authentication
then the a file containing the data needed to display or load the
content is sent from the Layer Definition Server 106 to the Client
Software 112, according to an exemplary embodiment of the present
invention. The Client Software 112 will then either render the
content itself or have the user's Web Browser 110 render the
content. This content will either come from the invention's Content
Server 104 or any other computer that is connected through a
network or the Internet.
[0052] According to an exemplary embodiment of the present
invention, if authentication is required to display the content
listed in the Layer Definition Server 106 then the Layer Definition
Server 106 will send an authentication request back to the Client
Software 112. The user will type credentials into a message box in
the Client Software 112 and the login information will be sent to
the Authentication Server 108 for verification. If the credentials
are correct, the Authentication Server 108 sends the authentication
back to the Client Software 112 which then sends it back to the
Layer Definition Server 106, according to an exemplary embodiment
of the present invention. Once the Layer Definition Server 106
receives the authentication, it will send a file containing the
data needed to display or load the content for the Client Software
112, according to an exemplary embodiment of the present
invention.
[0053] In accordance with an exemplary embodiment of the present
invention, many different tools and functionalities that work
through the technology of the present invention are provided. These
different tools will be extensions (Layer Apps) that users can
choose to avail themselves the desired functionality. A menu for
the separate layer apps as well as other functionalities available
for each website will be accessible through a clickable icon in the
bottom corner of the browser, according to an example of the
present invention. When the icon is clicked, it will bring up the
menu for the user to choose the desired tool or functionality. This
Menu User Interface (UI) resembles existing menus such as the Start
Menu for the Microsoft Windows OS, according to an example of the
present invention.
[0054] According to an exemplary embodiment of the present
invention, the users are enabled to place images, text, widgets,
applications and like content onto the virtual layer such that they
will appear to be within the web page itself. The content that has
been placed on the virtual layer can be viewed by anyone running
the software needed to display the virtual layer and its content.
This will be possible when the web page that is being overlaid,
with additional content from the user, is one that the user has the
right and permission to edit, for instance, on a user's
personalized social network page, personal home page, personal blog
page and the like according to an example of the present invention.
Information about the edits placed on the virtual layer are
preferably stored on servers that will interact with client
computers. When users running the software needed to view the
virtual layer's content browse to a web page that has content
placed on a designated virtual layer, the software will receive
information from the servers where the edits or augmentations are
stored and display the edits or augmentations that have been made
to that specific web page. According to an example of the present
invention, every user running the client software can access the
content within the virtual layer simultaneously while viewing a
given designated web page.
[0055] In accordance with an exemplary embodiment of the present
invention, the system may provide restricted access to the content
placed on the virtual layer. In this regard, the content placed on
to the virtual layer may be viewed only by a predefined user who
has placed the content on the virtual layer. This would enable the
user to put widgets, applications, text, pictures and the like onto
the virtual layer for their own personal use without allowing
access to other parties. In this way, the virtual layer could be
personalized for each user that might be on the same web site at
the same time running the software. An example of this would be a
user adding a stock ticker widget to the virtual layer superimposed
over The Washington Post homepage on their computer. The stock
ticker widget would appear only on the virtual layer of the
specific user that placed the content on the virtual layer.
[0056] According to an exemplary embodiment of the present
invention, users can place the content onto the virtual layer of
every web site they view. This would provide the users with the
ability to place content on the virtual layer that does not change
as they navigate from one web site to another. In accordance with
an example of the present invention, users can place a stock ticker
widget onto the virtual layer of a web site and the stock ticker
widget remains on the virtual layer as the user browses from one
web site to another. Further, this functionality would have no
effect or impact on any users running the software on any other
computer.
[0057] Referring now to FIG. 2, there is a flowchart 200
illustrating a process for displaying content on a virtual layer
once the client software is already running on the user's computer.
According to an exemplary embodiment of the present invention, a
user opens a web browser 202 in order to get connected to the World
Wide Web. Opening the browser will trigger the client software to
run as a Plug-In or Add-On in the web browser 204. Accordingly, the
user will navigate to a URL 206 through the web browser. The client
software will then send the URL information to the server side
software of the invention 208. Now at step 210, the server scans
its data (the YOM) to determine whether there are any extensions
(Layer Apps) for the web page based on the URL, according to an
exemplary embodiment of the present invention. If there are layer
apps for the web page currently being viewed, the server aggregates
the extension YLML 218 (see a detailed description of this process
in FIG. 3). Accordingly, at step 220 the extension YLML is then
sent to the client software and is rendered on the user's browser
(see a detailed description of this process in FIG. 7). After
rendering the extension content, the client software then renders
the Menu UI in the bottom corner of the browser 212. The step of
rendering the Menu UI is the step that the system would have gone
directly to if there had not been any extensions for the current
web page, according to an example of the present invention. After
the extensions, if any, have been rendered and the Menu UI has been
rendered, the client software waits for any changes to the system
through user interaction by waiting for the user to trigger an
event 214. An example of a user triggered event would be if the
user clicked on the Menu UI 214. This would execute an event in the
YLML at step 222 (see a detailed description of this process in
FIG. 4). After the event has been executed in the YLML, it is sent
back to the client to be rendered 220 and the process goes on
indefinitely. If the answer is no when the software asks if the
user has triggered an event 214, it will then ask if the page is
unloading at step 216 i.e. whether the user browsed to a new web
page. If the answer is no, then it goes back to asking if the user
has triggered an event 214 and continues in the pattern until
something else changes. If the answer to the question at 216 ("Is
page unloading?") is yes, then the system goes back up to the point
in the process where the URL is loaded i.e. to step 206 and
continues the cycle through the same process as before, in
accordance with an exemplary embodiment of the present
invention.
[0058] Referring to FIG. 3 is a flow chart 300 illustrating a
process of aggregating the extension YLML. First, at step 302 the
server builds the extension list for the URL currently being viewed
(see a detailed description of this process in FIG. 5). Next, at
step 304 the server loads the pre-rendered YLML (see a detailed
description of this process in FIG. 6). The server then returns the
YLML to the client software with all of the extensions on the list
for the current URL at step 306, in accordance with an exemplary
embodiment of the present invention. Finally, at step 308 the
client software executes the initialization routines in the YLML
(see a detailed description of this process in FIG. 4).
[0059] Referring to FIG. 4 is flowchart 400 illustrating a process
of executing events and routines described in the YLML. According
to an exemplary embodiment of the present invention, at step 402
the YLML to be rendered is received to the client software
("Client") from the server. Next, at step 404 the Client parses the
YLML and then looks to find the first node that is pending
execution and sets the instruction pointer to that node. The
instruction pointer provides reference to the client as to which
functionality is to be executed next. The Client then executes the
functionality that is referenced by the instruction pointer at step
404. The Client then checks the YLML to see if there is another
node requiring execution at step 408. Accordingly, if there is no
another node requiring execution, the event execution process is
over until the Client receives new YLML data 412. If there is
another node requiring execution, the instruction pointer is
advanced to the next node requiring execution at step 410 and then
the Client executes the necessary functionality i.e. the client
executes the step 406 and continues the process, according to an
exemplary embodiment of the present invention.
[0060] Referring to FIG. 5, the flowchart 500 illustrates a process
of extension discovery. In accordance with an exemplary embodiment
of the present invention, at step 502 the server receives the
current URL information from the Client. The Server then searches
the YOM to find any extensions that are associated with the URL and
adds the extensions to a "found list" at step 504. Then the Server
looks deeper to find additional extensions to be added. It searches
for and adds to the found list, any extensions that are associated
with the URL and file path at step 506, according to an example of
the present invention. Now at step 508 the server further looks
even deeper by searching for and adding to the found list any
extensions that are associated with the URL, the file path and the
query string. The Server then removes any extensions that have been
disabled by the user at step 510 and sends the extension list on to
the extension loading process at step 512.
[0061] Referring now to FIG. 6, a flowchart 600 is provided which
illustrates a process of loading the extensions that have been
associated with the current web page. According to an exemplary
embodiment of the present invention, first at step 602 the list of
extensions is received from the Extension Discovery process. The
process continues through step 604 wherein the loop counter used to
index the extensions on the list is set to zero. Next at step 606,
the process starts to add the extensions indexed by the loop
counter by copying the first one on the list from the YOM and
putting it into the YLML that will be rendered (see a detailed
description of this process in FIG. 8). Now at a step 608 the user
data for the first extension on the list is copied from the YOM and
put into the YLML that will be rendered (see a detailed description
of this process in FIG. 8). Both the extension data and the user
data will contain Peg mapping data to tell the Client where the
extensions and the content belong on the virtual layer. Once these
two pieces have been added to the YLML the loop counter is
incremented at step 610. Further at step 612, the process checks to
see if the loop counter is greater than or equal to the extension
list count, according to an example of the present invention. If
the answer is no, then there are more extensions to be loaded and
the process goes back to the step 606 and copies the next extension
from the YOM to the YLML to be rendered and continues this process
until the loop counter is greater than or equal to the extension
list count. When there are no new extensions on the list to be
loaded, the process retrieves the Peg Data Block from the YOM at
step 614. The Peg Data Block is based on the URL and it will
provide the locations needed to properly place the content
correctly on the virtual layer of the Client. Once the Peg Data
Block is loaded onto the YLML, the process is finished and the YLML
is sent to the Client to be rendered at step 616, according to an
exemplary embodiment of the present invention.
[0062] Referring now to FIG. 7, a flowchart 700 is provided which
illustrates a process of a client rendering the extensions on the
virtual layer. According to an exemplary embodiment of the present
invention, first step 702 is the Client receiving the renderable
YLML from the server. The Client then finds the first block of
data, content and executable nodes in the YLML to be rendered at
step 704. The Client then finds the first component within the
first block at step 706. Next, at step 708 the Client finds the Peg
Data that corresponds with the first component to be rendered. Then
the Client renders the component onto the virtual layer at step
710. The Client then goes back to the YLML at step 712 to find the
next component in the block to be rendered. If another component is
found within the block, the Client finds the corresponding Peg Data
for the component at step 708 and renders the new component at step
710. This cycle continues until there are no more components to be
rendered within the first block in the YLML, according to an
example of the present invention. When a new component cannot be
found, the Client looks in the YLML for the next block of data,
content and executable nodes to be rendered at step 714. If a new
block is found, the Client finds the first component to be rendered
at step 706 and continues through the process the same as before
until there are no new blocks to be rendered, according to an
exemplary embodiment of the present invention. Once the Client
cannot find a new block to be rendered, the rendering process is
finished at step 716 until the Client receives new YLML with new or
additional blocks to be rendered.
[0063] According to an exemplary embodiment of the present
invention, the users are provided with the ability to add content
to a virtual layer having restricted access. In accordance with an
exemplary embodiment of the present invention, one way that
permission may be granted is the establishment of a relationship
between the poster of the content and the viewer of the content
within a proprietary social graph. Another way that permission can
be granted may be through the establishment of a relationship
between the poster of the content and the viewer of the content
within a social graph outside the system of the invention, but the
system outside of the invention has access to the system of the
present invention. An example of this would be two people that have
a connection through the social graph of an existing social network
site or an email address contacts list. Preferably, this
relationship would not be established by default or simply by the
existence of a connection within a social graph but would need to
be opted into by both the content poster and the content
viewer.
[0064] In accordance with an exemplary embodiment of the present
invention, another way that permission could be granted would be
through the use of a shared key or password technique. In this
situation, a poster could add or change content within the virtual
layer over a web site and then create a shared key or password that
would enable any viewer running the software to view content on the
virtual layer.
[0065] According to an exemplary embodiment of the present
invention, another way that permission can be granted is through
the establishment of a relationship between the poster of the
content and the viewer of the content by embedding the permission
needed to view the poster's content into a hyperlink. These
hyperlinks could be placed in an email, instant message, onto a web
site that the poster has the ability and permission to edit or
anywhere else that a hyperlink can be placed.
[0066] In accordance with an exemplary embodiment of the present
invention, the users may be provided with an ability to save shared
keys or passwords that provide access to content on the virtual
layer within the system. This technique would prevent the need for
a viewer to type in the shared key or password each time they view
a page. An example of this would be a viewer being able to see
daily updated comments or editorials on the virtual layers over web
pages without having to remember and re-enter the shared key or
password every day.
[0067] According to an exemplary embodiment of the present
invention, users may set a password or a shared key to expire
between one and thirty days. The user could renew the password or
shared key for an additional one to thirty days, for example, at
any point before it has expired. The user can renew the password or
shared key as many times as desired, in accordance with an
exemplary embodiment of the present invention.
[0068] According to an exemplary embodiment of the present
invention, the users may create a social graph within the system
that can be used to tie users together or connect users in
different ways. One example of this would be a friends list that
existed within the invention's software system. This will allow
users to have pre-set lists where the content placed on the virtual
layer by specific people can be viewed simply by the association
between the poster and the viewer on the social graph.
[0069] Referring now to FIG. 8, a flowchart 800 is provided which
illustrates a process of security methods adapted that keep users
from seeing content that they do not want to or is not intended for
them to see. The flow chart 800 also describes the methods designed
to keep users from editing or adding content that they do not have
permission or rights to write on to the virtual layer. The process
begins at step 802 wherein the system receives a user request to
read or write a node within the YOM. It is important to remember
that the process begins with a specific request. According to an
exemplary embodiment of the present invention, the request may be
either for a user to read something specific or write (add/edit)
something specific. It will not be a request to grant the user full
read and write access to the entirety of node in question. After
the request has been received, at step 804 the process checks to
see if the node that the user is looking for access to has a
security requirement. If the answer is no, then the read or write
access is granted at step 812 and the security check for that
specific node is finished at step 816. If the node for which
read/write access is being requested does have a security
requirement, the requirement is loaded at step 806. Then the
process checks the user's credentials at step 808 to see if the
user is the owner of the security requirement. If the user is the
security requirement owner, then read or write access to the YOM
node is granted at step 812 and the security check for that
specific node is finished at step 816, according to an example of
the present invention. If the user is not the owner of the security
requirement, the process checks at step 812 to see if the user is a
member of a group that has rights to read or write the node in
question. If the user is a member of a group with the right to read
and write then the request to read and write the node is granted at
step 812 and the security check for that specific node is finished
at step 816. If the user is not a member of a group that provides
him authority to read or write the node in question, the process
generates an error at step 814 and the security check for that
specific node is finished at step 816.
[0070] In accordance with an exemplary embodiment of the present
invention, the users can collect desired content from one web page
and put it onto the virtual layer over another web page. This would
enable the users with an ability to create "MashUps". The ability
to use content from other web pages will provide users with many
more customization choices.
[0071] Further in accordance with an exemplary embodiment of the
present invention, the system and the method may allow users to
drag the content present on the virtual layer onto the desktop of
the client computing system. This would involve a "tear off"
function that will place the content being removed from the virtual
layer onto a separate application window.
[0072] According to an exemplary embodiment of the present
invention, the system and the method may enable users to
conglomerate the content onto the invention's servers, create and
use new applications that pull content from multiple web sites and
compile the multi-source data into one application. In this way,
users could use a single application to view email and receive
instant messages from multiple sources. Further, users could
simultaneously be able to view and interact with multiple social
network web sites and the like.
[0073] In accordance with an exemplary embodiment of the present
invention, the users can post the content that is tied to a
specific object on the underlying web page on the virtual layer.
The content posted onto the virtual layer may appear as though it
is actually attached to the underlying web page i.e. when the user
scrolls down on the web page, the content on the virtual layer will
scroll as well. This placement method will involve "Pegs" that show
the location of where different objects within the underlying web
page are placed and attaching the content on the virtual layer to
the same "pegged" location. Because the "Pegs" will be attached to
existing objects within a web page, if a user has placed content on
the virtual layer that is associated with an underlying object that
can be moved within the web site itself, as in some personal home
pages where the placement of objects can be changed by the user,
the content on the virtual layer will move with it. Users will also
be able to place content on the virtual layer that is placed in
relation to the browser window so that it does not scroll when the
users scrolls up or down on the underlying web page, in accordance
with an exemplary embodiment of the present invention.
[0074] Referring now to FIG. 9, a flowchart 900 is provided which
illustrates a process of posting or editing the content within the
virtual layer. First the user enters the edit mode through one of
the tools brought up by the Menu UI at step 902, in accordance with
an exemplary embodiment of the present invention. The Client at
step 904 checks the user's security information to verify what
edits the user has rights to and then enables available edits based
on user's rights at step 906. Next at step 908 the user can make
the desired edits by adding, removing or moving components on to
the virtual layer. The user then selects the "save" option at step
910 and in responsive to the step 910 the Client sends the amended
YLML to the Server in order to update the YOM at step 912. Before
the YOM is updated, the Server again checks the user's rights to
verify that the user still has the authority to save the changes
that have been made at step 914, according to an example of the
present invention. If the security settings have changed since edit
rights were granted and the user is trying to save edits to a node
that no longer has right to access, the Client will generate an
error message at step 918 and the current editing process ends
finally at step 920. If the user's security settings have not
changed and they are still authorized to edit the nodes, the YOM is
updated with the user's edits at step 916 and the current editing
process ends at step 920.
[0075] Referring now to FIG. 10, a diagram 1000 is provided which
depicts a web page without the addition of anything on the virtual
layer 1002 and a web page with the addition of content added to the
virtual layer 1012. The pre existing objects 1004 in the web page
are depicted in the FIG. 1000. The components 1006 i.e. text,
images and the like that make up the content on a web page are
pieced together to create the web page as a whole, according to an
example of the present invention. Additional content ("objects")
1010 can be added to the virtual layer over an existing webpage to
change the appearance and functionality of the webpage provided the
user is running the invention's client software i.e. client
software developed in accordance with an exemplary embodiment of
the present invention. The object 1010 on the virtual layer of the
browser window that is running the client software 1008 illustrates
that the appearance of the web page can be edited to contain
additional images or content.
[0076] According to an exemplary embodiment of the present
invention, the system and the methods described above may enable
users to log into their account from any computer so that the
modifications they have made to the virtual layer over web sites
and the tools that they have added to their accounts for use are
available from any computer.
[0077] In accordance with an exemplary embodiment of the present
invention, additional tools and functionalities may be added. The
additional tools or functionalities may include, but are not
limited to, the following: a switch that can enable users to appear
to turn off edits that have been made to MySpace.com pages and the
like; tools to quickly and easily add images, widgets, and links to
a social networking page and the like; tools for bloggers or
editorialists that would enable them to post comments or editorials
directly onto a web page, such as an article from another
publication that they were discussing, these tools could also be
used by teachers or professors that could have students view
articles with teacher's notes or highlights added.
[0078] According to an exemplary embodiment of the present
invention, additional tools may also include a "sniper" tool that
places a last second bid on an online auction site that would
actually be integrated into the auction site; a video grabber tool
that will download and save streaming video from web sites such as
YouTube.com; and a hyperlink integrator that would overlay existing
text with text that was hyperlinked and tied to a different web
site. An example of this tool would be overlaying the title of a
book within an article with hyperlinked text that when clicked on
would take the user to an online merchant where the book could be
purchased. This may involve a search aggregator tool that would be
integrated with existing search engines, but will augment the
return results by adding the return results of other search engines
or queries. An example of this would be a tool that was integrated
with Google such that when a search was done, the content returned
would be not only the Google search results, but also any
information on the terms searched from Wikipedia.org,
Dictionary.com and the like.
[0079] In accordance with an exemplary embodiment of the present
invention, the additional tools and functionalities further may
include a communication aggregation tool that will allow users to
communicate through whatever means they choose from one
application. This application will enable users to use different
instant message accounts, different email accounts, different
social network accounts, text messaging to telephones and the like.
The additional tools may further include a virtual pet that can
roam around on the browser window is also provided. The virtual pet
will create the appearance of depth on the browser window by its
z-order changing so that it walks around in front of some images,
objects and text while walking behind others, according to an
example of the present invention. The tools may further include:
[0080] a tool that would keep track of a user's credentials and
hook into the API of sites so that the user is automatically logged
into sites they visit without having to log in manually each time
they visit; [0081] a virtual gift tool that will enable users to
send content such as images or applications to other users; [0082]
an alert tool that will alert a user when an update of a web site
has been made or when a new article on a specific topic has been
found based on specific terms or key words that the user has saved
into the tool; [0083] a tool that will be integrated into existing
web sites that will enable businesses such as restaurants to have
real time updates of waiting times for tables, or movie theaters to
show real time information about how many seats are currently
available for a specific movie showing; [0084] a scheduling tool
that a company can have integrated into their web site that
employees can log into to see when they are scheduled to work;
[0085] a tool that will show "pop-ups" letting the user know when a
new email has come into an online mail account, this tool will work
like the new mail pop-ups currently work for Microsoft Outlook, but
for online email accounts such as G-Mail, Yahoo Mail, Hotmail and
the like; [0086] a tool that will search the contents of a user's
computer and use algorithms to detect what information the user is
interested in and alert the user when there is new information or
content on the World Wide Web that matches topics, people or key
words that the algorithm has deemed important to the user; [0087] a
tool that integrates web sites such as travel sites with sites such
as Craigslist.org or Yelp.com and the like to give travelers more
information about the area they will be traveling to; [0088] a tool
that will enable users to highlight text on a web page and then
click on integrated buttons to bring up search results from
different sites such as Dictionary.com, Wikipedia.org, Google.com
and the like.
[0089] In accordance with an exemplary embodiment of the present
invention, the additional tools may further includes a tool that
will enable users to search for specific words or text within a web
page, a tool that will enable users to do "smart searches" where
the user could search for quotes from specific people in an article
and the like, a tool that will enable users a kind of picture in
picture functionality where they can leave one window or
application "on top" while they click on or interact with a window
or application that is actually behind the top one and a tool that
will take an existing web page and put a copy of it onto the
virtual layer so that the components of the site can be rearranged
and organized the way that the user wants them.
[0090] While the present invention has been described in
conjunction with preferred embodiments thereof, many modifications
and variations will be apparent to those of ordinary skill in the
art. While the present invention has been described in particular
embodiments, it should be appreciated that the present invention
should not be construed as limited by such embodiments, but rather
construed according to the following claims.
* * * * *