|
Description  |
|
|
BACKGROUND OF THE INVENTION
The Internet is a vast computer network, consisting of many smaller
networks and individual computers that, when connected, span the entire
globe.
The Internet began as a U.S. Defense Department network, ARPAnet, and later
included the National Science Foundation network, NSFNET, to connect
research and educational Institutions. Since the early form of the
Internet was primarily supported by the government funding, commercial
traffic on the network had been initially restricted. Beginning in the
early 1990's, however, private, commercial networks have joined the
Internet and the restrictions on commercial activity have been largely
lifted. Today, the Internet connects many millions of computers world-wide
and is joined by a large number of new users every day.
A protocol defines the method with which stored data are transferred from
one computer to another though a network. TCP/IP (Transmission Control
Protocol/Internet Protocol) is the networking protocol used primarily on
the Internet. Each computer connected through a TCP/IP network is given a
unique identification code and address.
The Internet, unlike a centralized network, is completely distributed. No
one owns or manages the Internet other than the organization assigning the
Internet Protocol (IP) numbers to identify each computer joining the
Internet. An individual user may join the Internet by obtaining an account
from one of many Internet service providers. An Internet account includes
an IP number, and a personal computer or a private network on the account
is given immediate access to millions of computers on the Internet.
Because of the Internet's distributed or completely open network
architecture, once a computer becomes a part of the Internet, it is
possible to transfer data from one computer to any other computer of any
distance apart. Although the data transfers spanning great distances are
routine on the Internet, each can involve relay accesses to many other
computers on the network by means of a complex routing topology.
The Internet literally holds unlimited volumes of information which are
continuously accessed by its users around the globe. The exchange of
information on the Internet follows the traditional network rule based on
the client-server architecture. On the Internet, a server is a system
running a program that manages access to stored information, and a client
is a system that makes a request for certain information stored and
controlled by the server. One key aspect of client-server design is that
multiple clients can interact with a single server or with many different
servers. An Internet server, however, typically does not have means for
identifying each client with which it interacts.
The Internet has long been ridiculed for its old-fashioned access methods
which are often difficult to master. A new form of interface for
navigating the Internet, known as the World-Wide Web (Web or WWW),
however, has revolutionized the way the information is managed and
distributed through the Internet. The information servers which provide
formatted documents defined by the WWW are called the Web sites. The
electronic documents provided by the Web sites are commonly referred to as
Web pages or files. A client software which navigates through the Internet
sites and displays Web pages is referred to as the Web "browser." A
browser allows access not only to Web pages, but all the other existing
information resources on the Internet.
The WWW dispenses with often complex command-line utilities to search, view
or transfer documents used by various other resources on the Internet.
Instead, the transfer method used on the WWW is HTTP (Hypertext Transfer
Protocol) which complies with the TCP/IP. The HTTP comprises a relatively
simple set of messages and replies, which is primarily designed to promote
flexible movement from one site to another on the Internet. The HTTP works
using the standard Internet setup where a server issues the data, and a
client displays or processes it. The information to be transferred on the
WWW is drafted with the HTML (Hypertext Markup Language). The HTML
documents are made up of standard text formatted with a special set of
codes which indicate how the document should be displayed. Upon receiving
a request for a Web page, a server typically returns an HTML document
which is decoded and displayed on a Web browser running on the client's
system.
One important aspect of an HTML document is the connectors or "hypertext
links" to connect to other parts of the text or even to other documents on
the same or remote servers. On a Web browser the links are part of
ordinary text but are distinctively displayed. Each link is associated
with a corresponding URL. Hence, a user may "jump" to other portions of
the same document or to another document by selecting a link and causing
the browser to transmit a request for a new Web page through the
associated URL. In the WWW environment, the HTML documents very often add
multimedia elements, such as graphics, sound, and video files in addition
to text files. The links are easily applicable to any of these elements.
The hypertext or, more properly, "hypermedia" links serve as the backbone
to how WWW operates.
While the WWW does present a navigational standard that has significantly
eased the user-interface to the Internet, there are inherent limitations
particularly from the perspective of the information providers. For
example, the WWW requires information providers to author each Webpage in
the HTML format. Creating and updating HTML pages can be labor intensive,
error-prone and expensive. Further, depending on the information, the
content providers often find it necessary to incorporate and merge data
from multiple sources into Web pages, further adding to the updating
chores.
Additionally, the HTTP is a stateless, object-oriented protocol in which
much of the Web transactions involve transferring a series of static HTML
pages. When a Web server returns a requested Web page to the client, the
link between the client and server is no longer maintained. The client may
of course choose to forward a new request to the same server so as to
re-establish a link. As a result, however, a critical limitation of the
WWW is that the information contained in a Web page, regardless of how
relevant it is to the pages following, cannot be maintained from page to
page within a WWW session.
SUMMARY OF THE INVENTION
The present invention is a design, development, maintenance, and deployment
systems and methods in a client-server hypertext environment, particularly
World Wide Web applications and others running in an HTTP network
environment. On the Internet, the methods of the present invention provide
a dynamic client/server environment without the complexities associated
with CGI programming, and significantly removes the laborious task of
updating Web pages on the WWW. In a preferred embodiment, the present
invention provides a framework for rapidly deploying new applications
based on HTTP protocol with security and remote access capabilities to all
elements of each application.
In a preferred embodiment, the method of deploying client-server
applications involves inserting executable tags in an HTML source to a
displayable page. These executable tags refer to HTML "tag extensions"
defined by the present invention where each tag identifies, from a
database, a field name having a value such that executing the tags
replaces each tag with the corresponding value. In the preferred
embodiment, a Web server, in response to a request for the Web page from a
client, processes such a source by executing the tag extensions to expand.
Preferably, a source defined by the present invention embeds the tag
extensions within HTML tags, such that when the extensions are processed
and replaced by the corresponding values, the source is left only with
HTML tags with static values as arguments therein which a browser can read
and interpret In a preferred embodiment, a tag extension is often directed
to a field name corresponding to a static value, such as a number or text.
A tag extension can, however, be directed to a field name which
corresponds to a value representing another tag extension or a URL
(Uniform Resource Locator). A value, therefore, has a dynamic property. A
full execution of a tag extension requires exhaustively expanding all
related values or commands until a value is static and can no longer be
expanded.
In a preferred embodiment, the present invention provides a processor which
interfaces with an HTTP server to execute tag extensions. The present
invention further provides instructions which are a type of tag
extensions. The instructions cause the processor to perform predefined
functions. The instructions include a control-loop function to collect
data from a group of data sources in a predefined manner. Such function
generates data sets which are collections of data for use in a particular
application. As mentioned, a tag extension in a source to a Web page is
associated with a value in a database. Such a value can be static data or
a variable, such as another tag extension. A value can also be an
instruction or a group of instructions.
In a preferred embodiment, the instructions can be nested and grouped to
form a script which performs predefined tasks, such as mathematical
computations or complex data arrangements. Preferably, a script is
embedded in a tag extension such that executing the extension causes the
script to expand and further execute other tag extensions or instructions
defined by the script. Similarly, in a hypertext source of the present
invention, a value associated with a tag extension can be a script such
that processing the source executes the tag extension and further causes
the script to expand and execute a string of tags and instructions. Upon
exhaustion of the extensions and/or instructions, the resulting static
value replaces the original tag extension in the source.
The present invention can provide one or more databases controlled by the
processor for storing the data values. In a preferred embodiment, each
value is identified by a field name and is stored as a field name/value
pair in a database.
The present invention further includes templates as a platform for
implementing client-server transactions. In a preferred embodiment, a
template is a hypertext form which includes a text area for entering
source text such that the source can be edited and updated by accessing
the template through any browser. Alternatively, the source can be
inserted into a template through an electronic mail transfer. Each
template further includes input fields for entering access control lists
for specifying authorized users to read, write or execute the source in
the template. Each template also includes an identification field for
entering the template name. In a preferred embodiment, the templates are
stored in a template database. The field names and corresponding contents
of a template are stored in a content database. Both the template and
content databases are controlled by the server of the present invention.
Preferably, sources to all Web pages controlled by the processor of the
present invention are constructed using templates. As previously
mentioned, a source contains HTML tags and tag extensions of the present
invention. The extensions are directed to field names and corresponding
field values. These values can be static but more often, they are
variables, such as instructions, other tag extensions, URL's, or scripts.
The values further can point to other templates.
A preferred method of implementing a client-server application, therefore
begins with preparing a source template to a displayable page for
processing by a server having a processor of the present invention. The
template comprises a text area for entering a source code which includes
hypertext codes embedded with tag extensions executable by the processor.
Each tag specifies, in a data record, a field name having a value such
that executing the tag extensions replaces each tag with the corresponding
value. The template further includes an identification field for entering
a template identification and an input field for entering an access
control list to specify authorized users of the template.
A template prepared as above is retrieved for processing by the processor
when a client makes a request for the corresponding displayable page. The
source code defined within the template is then processed by the
processor. Such process includes executing the tag extensions in the
source to replace each extension with the corresponding value so as to
configure the page with the remaining hypertext codes. The resulting
source to the displayable page is, therefore, a pure HTML document which
can be interpreted by the client browser.
Another aspect of the present invention relates to a method of controlling
user access to a record in a database defined by the present invention. A
preferred method begins with processing an access request from a client to
a protected record in a database where the record includes an access
control list to specify authorized user identifications. Such a request is
redirected to a verification directory which causes the server to issue an
input query to the client to input a user identification and password. The
verification directory provides a profile listing of user identifications
and matching passwords. The user identification and password from the
client are verified against the profile listing, and upon a proper
verification, are given a pass to enter the database. The user is then
further verified against the access control list to determine whether the
client has a valid access to the record.
Another aspect of the invention relates to a method of implementing a state
environment within a HTTP client-server session. A "stateful" Web
transaction allows a Web server to retain and pass a series of information
exchanges between the client and server to the client through each
displayable page so that any any inputs made by the user are maintained
throughout the session. A preferred method begins by receiving user inputs
in a hypertext form from a client in a session. The form further provides
a state variable and a call button to a script run by the server. When the
user transmits the input selections by pressing the call button, the
server processes the script and generates a new state based on the old
state, inputs and script. The new state is then embedded into a subsequent
form passed to the client through a known protocol or in a hidden field.
The above and other features of the invention including various novel
details of construction and combination of parts will now be more
particularly described with reference to the accompanying drawings and
pointed out in the claims. It will be understood that the particular
devices and methods embodying the invention is shown by way of
illustration only and not as limitations of the invention. The principles
and features of this invention may be employed in varied and numerous
embodiments without departing from the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a graphical illustration of the Internet environment.
FIG. 2 illustrates the directory structure of a Web server.
FIG. 3A and 3B describe the HTML source codes and how they are interpreted
for display on a Web browser.
FIG. 4 generally describes how a CGI program operates when activated by a
hypertext link.
FIG. 5 describes how an HTML form relates to a CGI program running on an
HTTP server.
FIG. 6 illustrates a preferred embodiment of the operation principle of the
present invention.
FIG. 7 illustrates a preferred structure of the application databases
controlled by the server system of the present invention.
FIG. 8 illustrates a preferred structure for indexing the elements of an
application database controlled by the methods of the present invention.
FIGS. 9A and 9B describe a preferred structure of a template and the
corresponding database structure.
FIGS. 10A through 10C describe a preferred method of constructing and
editing a template and the associated URL syntax.
FIGS. 11A through 11E describe a preferred method of constructing a globals
template.
FIGS. 12A through 12C describe a preferred method of constructing a
database template.
FIG. 13 describes a preferred method of constructing a script template.
FIG. 14 is a flowchart description of a preferred client-server operation
defined by the methods of the present invention.
FIG. 15 illustrates how an HTML tag extension of the present invention
works to insert a globals file within a Web page.
FIG. 16 is a flowchart description of a preferred security method of the
present invention.
FIG. 17 illustrates a preferred method of constructing a state environment
in a Web session in accordance with the methods of the present invention.
FIG. 18 illustrates a preferred state transfer method.
DETAILED DESCRIPTION OF THE INVENTION
The preferred embodiments of the invention herein are generally described
within the Internet context as a typical HTTP environment. The methods and
systems of the present invention are, however, equally applicable to an
intranet or other networks based on HTTP. Referring now to the figures,
FIG. 1 is a graphical illustration of the Internet 10. The Internet is a
network of millions of computers and other local networks. The computers
on the Internet are largely classified as either servers 13, 14, 18, or
clients 11, 12, 17, 19. Typically, the Internet servers 13, 18, are part
of smaller networks 15, 16. Similarly, many clients 17, 19 are part of
local area networks 15, 16, but, today, great many others are personal
computers connected on the Internet as stand-alone members.
As previously discussed, the clients make requests through the Internet for
information which are stored in the systems controlled by the servers. The
term "server" often refers to both the system and the software that
manages the system. Of particular interest among the various types of
Internet servers and clients are Web servers which provide information
formatted with the HTML codes, and Web clients, such as Web browsers,
which interpret HTML documents for display. The HTML provides rules for
displaying ordinary text and graphics, and means for specifying connectors
to allow users to traverse through the Internet to other files held by
other Web servers.
FIG. 2 illustrates the manner in which a Web server 20 manages information
stored under its control. The Web server 20 refers to a machine on the
Internet which runs a program to manage HTML files 23 which may be located
locally or at a remote site. The files 23 are stored in a tree structure
in directories 21 and subdirectories 22. The server 20 may also support a
remote directory 24 through a local network link 25. When a client makes a
request for a particular Web page controlled by the Web server 20, the
server processes the request by locating the source page from a directory
21 or a subdirectory 22, and returns the page to the client for display.
As previously described, the HTML performs two main tasks: defining
hypertext links, and describing the document format with which the client
browser interprets the source pages transmitted by the content servers.
Formatting is defined in rather general often relative terms in order to
maintain general compatibility with clients using a variety of Web
browsers.
FIG. 3A and 3B illustrate a sample HTML source page and the corresponding
page as displayed by a Web browser on a client system. The most basic
element in an HTML document is a tag, which is enclosed by the angle
brackets, "<" and ">". The HTML tags typically are used in pairs to wrap
text, much like the quotation marks, with one tag 33 starting the action
and the other tag 34 ending it. The ending tags look just like the
starting tags except for a slash mark preceding the tag name within the
brackets, as in the following syntax:
<tag>text</tag>
As illustrated in FIG. 3A and 3B, tags are used to format the text by type
and attribute for displaying the page in a certain manner, and
constructing links to other files. For display formatting, the HTML
includes identifier tags. The identifier tags define a portion of the text
as the title of the document 33, 34, another portion as the document
headers 44, 45, another portion as the document body 46, 47, etc. The HTML
also includes tags to break paragraphs 36 and sentences 48 and horizontal
rules 41 to separate portions of the text in a page. Text attributes 49,
such as <EM> for "emphasis," provide emphasis to words in a Web page in
different ways. HTML also provides list and glossary tags. Lists are
simply paragraphs, sentences, phrases or single words presented in an
itemized format. There are several kinds of lists. The most commonly used
ones are ordered lists and unordered lists. Glossaries have a structure in
which each item is a term followed by a definition. The terms are usually
short items, while the definitions can be several paragraphs in length.
Both glossaries and lists can be nested.
An important aspect of the HTML is creating hypertext links to connect one
Web page to another. Like the formatting mechanism, the hypertext links
are also created using tags. The tags for constructing links are appended
with attributes. Attributes in a tag define exactly how the action will
work. The syntax for using a hypertext tag with an attribute is generally
as follows:
<tag attribute="value">hypertext</tag>
The tag for setting up a hypertext link is "<A>" and the attribute is
"HREF". An "HREF" is a code for directing the browser to a certain file
specified by the "value" string above. The tag is followed by a text and
an end tag "</A>". The text is typically highlighted and underlined when
shown on a browser to tell the user that it is a hypertext. In FIG. 3A, in
the sample HTML source document 30, note that there are four hypertext
links 37, 38, 39, 40, specified as ITEMS A to D. Taking ITEM D as an
example, the syntax used is:
<A HREF="http://New.com/Dir/Subdir/ITEM-D.html">ITEM D</A>
Note that the value given to the HREF attribute is a full directory path,
or a URL (Uniform Resource Locator) locating the file associated with the
hypertext, "ITEM D". Here, "http" indicates the file transfer protocol,
"New.com" is the server name, "Dir" is a directory controlled by New.com,
"subdir" is a subdirectory which stores the HTML file, "ITEM-D.html". In
some situations, such as ITEMs A, B and C, where a linked page resides
within the same server, only the document name need be specified without
the full server/directory path.
FIG. 3B illustrates a source page 30 in FIG. 3A being displayed by a Web
browser. The browser reads and translates the HTML codes from the source
page 31 and displays the processed page 30 on the client system. A typical
browser includes guide features, such as the URL field 50 to indicate the
source address of the current page, and the status bar 42 to indicate the
URL of a pointed hypertext link 40. The remaining portion of the screen
shows the contents of the source code 30, which include the title 33, the
header 35, and the hypertext links 37, 38, 39, 40, which are shown as
underlined. Typically, the linked items are highlighted with different
colors as well as underlined to show their distinction. Other display
items include a horizontal rule 41 for separating text, and an emphasized
text 49 which is larger and bolder relative to the remaining text in the
same sentence.
Web browsers can receive as well as send information through HTML forms
transmitted by Internet servers. HTML forms provide input fields in which
a user enters appropriate information through a Web browser. When user
inputs are collected on a Web form page, the browser forwards the input
values to a Web server specified by the form. Upon receiving the form, the
server starts a program to process the information transmitted. Such
programs are known as the "common gateway interface" programs, or the "CGI
scripts".
The CGI is a standard for interfacing external applications with content
servers, such as Web servers. A non-form-based HTML document that a Web
browser displays is static. A CGI script, on the other hand, is executed
in real time to output dynamic information which is put into displayed on
a Web page. A CGI script is executed when a user activates an HTTP URL
that is directed to a file containing a CGI program or script rather than
an HTML document.
FIG. 4 is a simplified model illustrating how a CGI program works. Client
181 requests and receives an HTML document 183, "Doc1.html," from Server A
184 of Computer A 182. Doc1.html contains a link 185 to a file in Computer
B 186 controlled by Server B 188. The link 185 is directed to a CGI
program which can be executed if the user from Client 181 activates the
link. The link is a normal HTTP link, but the file is stored in such a way
that the HTTP server on Server B can determine that the file contains a
program that is to be run, rather than a document that is to be sent to
the client as usual. When the user selects the link the CGI program 187 is
executed to prepare an HTML document on the fly, and sends that document
to Client 181, which displays the document as it would any other HTML
documents.
The ability to process fill-out forms within the Web environment required
modifications to HTML, Web clients, and Web servers (and eventually to
HTTP, as well). A set of tags was added to HTML to direct a Web client to
display a form to be filled out by a user and then forward the collected
data to an HTTP server specified in the form. Servers were modified so
that they could then start the CGI program specified in the form and pass
the collected data to that program, which could, in turn, prepare a
response (possibly by consulting a pre-existing database) and return a Web
document to the user.
FIG. 5 shows the various components of the CGI process. In FIG. 5, the Web
client 190 acquires a form from Server A 192 running on Computer A 193.
The client 190 displays the form, the user enters data thereon, and the
client sends the entered data to the HTTP server 194, Server B, running on
Computer B 196. There, the data is handed off to a CGI program 195 which
prepares an HTML document and sends it to the client 190 for display.
CGI scripts, however, are complex and difficult to program. Each script
requires customization to implement a particular Web application in a
particular way. CGI scripts, therefore, lack standardization and
adaptability from one application to another, and content providers
running Web servers are often faced with writing multiple CGI scripts to
accommodate a variety of HTML forms carried by different Web applications.
The present invention provides improved methods for deploying and
maintaining World Wide Web applications. In a preferred embodiment, the
present invention provides dynamic Web environment without the
complexities associated with the CGI programming, and significantly
removes the laborious task of updating Web pages on the WWW. In a
preferred embodiment, the present invention provides methods for passing
information from one Web page to another within a Web session. Such
methods overcome limitations of the Internet browsing in which each Web
page is unrelated to the others.
General Framework of the Invention
In a preferred embodiment, the server system of the present invention
implements a basic set of components which includes templates, HTML tag
extensions, and a structured database system. A template is an HTML form
to define contents of a display Web page requested by a client. It is
through the use of templates, the server system of the present invention
communicates with clients and its own databases. A template includes HTML
tags and tag extensions to define and build a Web page. In a preferred
embodiment, the extensions are executable codes embedded within
conventional HTML tags as arguments. When executed, such a tag extension
is replaced with a value to yield a displayable HTML tag. The preferred
system of the present invention defines a unique database structure to
index data values for retrieval by the server.
FIG. 6 illustrates the general framework of the present invention and how
it operates through the Internet. An Internet transaction typically
involves a Web client 61, an HTTP server in 63 and a storage 64 for
storing content source. FIG. 6, shows a traditional HTTP server 63
controlled by a preferred processor 63a of the present invention. In
response to service requests from a client 61, the processor prepares a
Web page for display at the client browser. Unlike the traditional HTTP
process, in which a Web server merely serves up a static Web page from a
storage directory, the processor 63a constructs a Web page by
incorporating database records on the fly.
The present invention includes a main/local database 64 which stores a set
of data elements that are particularly defined and indexed by the
processor 63a. The data elements include program parameters as well as
structured data records. The processor 63a of the present invention can
further access data from external sources 65.
In a preferred process, each service request by the client 61 invokes a
template 62 containing both static HTML and executable codes in an input
field. Additionally, each template in a preferred form provides
identification and access control fields to identify and secure itself.
The template 62 also includes "scripts" to perform various functions. The
template is processed by the processor 63a and each code is replaced by a
stored data value or executed to perform certain task. This process
produces an output HTML page 66 which is displayable on the client
browser. For certain client requests, the processor 63a can additionally
retrieve data from external resources 65.
In FIG. 7, it can b | | |