|
|
|
| United States Patent | 5701451 |
| Link to this page | http://www.wikipatents.com/5701451.html |
| Inventor(s) | Rogers; Richard Michael (Beacon, NY);
Lagarde; Konrad Charles (Milford, CT) |
| Abstract | A World Wide Web browser makes requests to web servers on a network which
receive and fulfill requests as an agent of the browser client, organizing
distributed sub-agents as distributed integration solution (DIS) servers
on an intranet network supporting the web server which also has an access
agent servers accessible over the Internet. DIS servers execute selected
capsule objects which perform programmable functions upon a received
command from a web server control program agent for retrieving, from a
database gateway coupled to a plurality of database resources upon a
single request made from a Hypertext document, requested information from
multiple data bases located at different types of databases geograhically
dispersed, performing calculations, formatting, and other services prior
to reporting to the web browser or to other locations, in a selected
format, as in a display, fax, printer, and to customer installations or to
TV video subscribers, with account tracking. |
|
|
|
Title Information  |
|
|
|
|
|
|
| Publication Date |
December 23, 1997 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5455948 Poole
Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5404534 Foss 719/315 Apr,1995 |      Your vote accepted [0 after 0 votes] | | 5355472 Lewis 707/101 Oct,1994 |      Your vote accepted [0 after 0 votes] | | 5347632 Filepp 709/202 Sep,1994 |      Your vote accepted [0 after 0 votes] | | 5329519 I'Anson
Jul,1994 |      Your vote accepted [0 after 0 votes] | | 5297249 Bernstein
Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5278978 Demers 707/101 Jan,1994 |      Your vote accepted [0 after 0 votes] | | 5241625 Epard 345/502 Aug,1993 |      Your vote accepted [0 after 0 votes] | | 5224098 Bird 709/233 Jun,1993 |      Your vote accepted [0 after 0 votes] | | 5204947 Bernstein 715/854 Apr,1993 |      Your vote accepted [0 after 0 votes] | | 5187787 Skeen 719/314 Feb,1993 |      Your vote accepted [0 after 0 votes] | | 5181017 Frey, Jr. 709/239 Jan,1993 |      Your vote accepted [0 after 0 votes] | | 5179652 Rozmanith 715/747 Jan,1993 |      Your vote accepted [0 after 0 votes] | | 5093911 Parks 707/104.1 Mar,1992 |      Your vote accepted [0 after 0 votes] | | 4774655 Kollin 707/4 Sep,1988 |      Your vote accepted [0 after 0 votes] | | 4714995 Materna 707/201 Dec,1987 |      Your vote accepted [0 after 0 votes] | | 4714989 Billings 707/10 Dec,1987 |      Your vote accepted [0 after 0 votes] | | 4604710 Amezcua 703/27 Aug,1986 |      Your vote accepted [0 after 0 votes] | | 4468728 Wang 707/1 Aug,1984 |      Your vote accepted [0 after 0 votes] | | 4274139 Hodgkinson 709/203 Jun,1981 |      Your vote accepted [0 after 0 votes] | | 5307456 MacKay 715/782 Dec,1969 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
What is claimed is:
1. A method of fulfilling requests of a web browser client, comprising:
displaying an HTML document to said web browser;
invoking a control program agent;
receiving data entered by the user from the HTML document and passing said
user entered data to said control program agent upon invocation as input
parameters to said control program agent that were returned from said HTML
document;
using an API set for invoking executable command files accessible via an
associated command file object, provided as user entered data for
supplying to said control program agent values selected by a user to
control the processes of fulfilling a Web request and for determining the
nature of a resultant fulfillment of the request from information
resources supplied from the World Wide Web.
2. A method of fulfilling requests according to claim 1 wherein
said input parameters contain path environment data from the HTML document
that referred to said control program agent.
3. A method of fulfilling requests according to claim 1 wherein said step
of receiving data entered by the user from the HTML document and passing
said user entered data to said control program agent upon invocation as
input parameters to said control program agent that were returned from
said HTML document includes environment variables comprising an
identification of a command file to call, the name of the file containing
the HTML statements to use when building an HTML document that reports
results requested by the request, and the type of report file that is
requested, as well as query data from the HTML document that referred to
said control program agent.
4. A method of fulfilling requests according to claim 1 wherein said step
of passing data from the HTML document that referred to said control
program agent, includes passing variable information data which contains
values selected by the user and/or default values selected by a HTML
document designer set in said command file prior to its execution, all of
which variable information data is stored in a buffer environment, and
accessible by said command file and/or said control program agent and used
by said control program agent to set variables for said command file.
5. A method of fulfilling requests according to claim 4 wherein the steps
further comprise:
with the variable information now stored in a buffer, retrieving, with the
control program agent from a store, command files and environment
variables comprising an identification of a command file to call, the name
of the file containing the HTML statements to use when building an HTML
document that reports results requested by the request, and the type of
report file that is requested, as well as query data from the HTML
document that referred to said control program agent which a request has
specified as associated with each command file for the Web request and
loading from said buffer environment into memory associated with the
control program agent the command file names available and the environment
variables associated with each command file.
6. A method of fulfilling requests according to claim 5 wherein the steps
further comprise: subsequent to the step of claim 5 initiating with the
control program agent a connection between said control program agent and
said API.
7. A method of fulfilling requests according to claim 6 wherein the steps
further comprise after the performance of the step of claim 6:
if required for control by a decision support system environment for said
command file, logging onto a port or desktop for the assigned user by said
control program agent.
8. A method of fulfilling requests according to claim 7 wherein the steps
further comprise: once a command file is loaded into memory for said
control program agent, the control program agent retrieves from its memory
the command file environment variables associated with a command file
passed to the control program agent once the control program agent is
invoked.
9. A method of fulfilling requests according to claim 8 wherein the steps
further comprise: subsequently, creating with said control program agent a
data array stored in the control program memory containing the command
file environment variables and said variable information data for them
that were passed to the control program agent during initial data
retrieval steps in order to match command file variable names of said
environment variables with the data that was passed to the control program
agent as variable information data values.
10. A method of fulfilling requests according to claim 9 wherein the steps
further comprise: subsequently, in preparation for a report, said program
command agent creating creates a unique filename which may include data
originated by the HTML document's variables stored in said buffer as a
data array to pass to the command file as a command file environment
variable for use in naming the report which will be created by the command
file, which as a result the command file will create that file with the
unique file name during its process.
11. A method of fulfilling requests according to claim 10 wherein the steps
further comprise: subsequently, for a user query using the API to set the
command file variable values in anticipation of command file execution,
the values of environment variables used by the command file are obtained
from said data array in the control program memory containing command file
variable names of said environment variables as well as user defined
values of said information variable data for said user query that were
passed to the control program agent as parameters for query data from the
HTML document that referred to said control program agent which contains
values selected by the user and/or default values selected by a HTML
document designer set in a command file program prior to its execution.
12. A method of fulfilling requests according to claim 11 wherein the steps
further comprise: subsequently, using an API to query and determine the
size of a queue of jobs being requested, and comparing whether the size
has exceeded a predetermined threshold number of jobs being requested, and
if so, then entering a wait state loop to wait and reiteratively comparing
whether the size still has exceeded said predetermined threshold number of
jobs being requested until the queue size is reduced to below said
threshold level, and then at that point using said API submit a command
file having said command file variable values for execution by a
sub-agent.
13. A method of fulfilling requests according to claim 12, wherein the
steps further comprise: after the API has submitted said command file
having said command file variable values for execution by a sub-agent,
said control program agent enters a state of awaiting execution of said
command file by said sub-agent.
14. A method of fulfilling requests according to claim 13, wherein the
steps further comprise: during a state of awaiting execution of said
command file, processing other requests by the control program agent as a
pipe so that the control program agent continually advances requests
through the system.
15. A method of fulfilling requests according to claim 14 wherein the steps
further comprise: during the state awaiting execution of a command file,
using said API to looks for a completion signal of execution of said
command file, and when that completion signal is received, said control
program agent reads the file identified by the name passed to the control
program agent in the preceding step that contains the HTML statements
which are to be presented with the command file report of results.
16. A method of fulfilling requests according to claim 15 wherein the steps
further comprise: while the control program agent reads the file
identified by the name passed to the control program agent in the
preceding step that contains the HTML statements which are to be presented
with the command file report of results, it dynamically creates new HTHL
statements for a report of results according to a request of the web
browser.
17. A method of fulfilling requests according to claim 16 wherein the steps
further comprise: retrieving with said new HTML statement information
retrieved from the file identified by the name passed to the control
program agent so that it can be provided with the results of a command
file report.
18. A method of fulfilling requests according to claim 17 wherein the steps
further comprise: retrieving with said new HTML statement information
retrieved from said identified file so that it can be displayed as a
header accompanying the requested report to be displayed according to the
user defined report type, along with the filename of said unique filename.
19. A method of fulfilling requests according to claim 1 wherein the steps
further comprise:
during processing by said control program agent providing setups for API
calls which occur.
20. A method of fulfilling requests according to claim 1 wherein the steps
further comprise:
during processing by said control program agent providing a result
according to the request command, which in default is a return to the Web
browser home page.
21. A method of fulfilling requests according to claim 1 wherein the input
parameters include data entered by said user including variables
identifing the type of file to create as a report to be created as a
result of said web request and user identified applicable output
parameters as to where a result is to be directed, and said steps further
comprise: testing with said control program agent for the type of report
file to be created by obtaining information from stored variables and said
testing further identifies said user identified applicable output
parameters, and branching to the sequence applicable to the type of report
file to be created.
22. A method of fulfilling requests according to claim 1 wherein the input
parameters include data entered by said user including variables
identifying the type of file to create as a report to be created as a
result of said web request and user identified applicable output
parameters identifying where a result is to be routed, and said steps
further comprise: if the output is to be routed user identified Web
server, then routing said output to the user identified Web server.
23. A method of fulfilling requests according to claim 1 wherein the said
associated command file object is a DIS capsule for creating a text file
report, and said steps further comprise: when a text file report is
created by the DIS capsule, that determines that a text display is to be
reported and the the control program agent reads the file created by the
DIS capsule and dynamically creates HTML statements to display the data
lines to the Web browser as a text display according to a user desired
form of presentation.
24. A method of fulfilling requests according to claim 1 wherein the said
associated command file object is a DIS capsule for creating a graphics
file report, and said steps further comprise: when a graphics file is
created by the DIS capsule, that determines that a graphics display is to
be reported and the control program dynamically creates the HTML statement
to display the graphics file to the Web browser as a display with graphics
included, as a presentation of results according to a user specified form
of presentation.
25. A method of fulfilling requests according to claim 1 wherein the steps
further comprise:
wherein the control program agent allows alternative output direction, and
said input parameters include data entered by said user including
variables identifying the type of file to create as a report to be created
as a result of said web request and user identified applicable alternative
output direction output parameters identifying where a result is to be
routed as a requestor user selected alternative output destination, and
upon receipt of said alternative output direction and a command file
completion signal, the result is routed to said alternative output
destination.
26. A method of fulfilling requests according to claim 25 wherein the steps
further comprise:
wherein an output is routed to a requestor user selected alternative output
destination selected from a group of possible output units, comprising
facsimile, printer, retail and banking installations, or provided as a
series of full motion videos or still frames which are transmitted to
display devices, including television units under control of end users
with a set-top box cable control.
27. A method of fulfilling requests according to claim 25 wherein the steps
further comprise:
wherein an output is routed to a requestor user selected alternative output
destination via a server having a CPU, network I/F bus, disks, modems, and
data switching controls providing hardware to route the output to a user
selected alternative output destination selection from a variety of output
devices, including a facsimile, printer, retail terminal, banking
machines, TV or cable customers via the server, with full motion and still
video supplied with MPEG 2 and MPEG 1 protocol images respectively to
subscribers.
28. A method of fulfilling requests according to claim 1 wherein the
process of fulfilling said Web request creates an output, including a
result file with a file name entered by the user from said HTML document,
and said steps further comprise:
coupling the output to an auxiliary function including back-up storage and
accounting processes which allow for charging for system utilization and
service charges for services and items requested.
29. A method of fulfilling requests according to claim 28 wherein the
process of fulfilling said Web request creates an output making use of
user entered data, and of hidden variables associated with the request
including authorization charge variables, including credit card numbers
and passwords, and of a file name entered by the user from said HTML
document, and said steps further comprise:
passing said output and said hidden variables to auxiliary functions which
make use of hidden variables associated with the request including
authorization charge variables, including credit card numbers and
passwords.
30. A method of fulfilling requests according to claim 29 wherein the
credit card number is encrypted with an encryption utility, and this
encrypted credit card number along with access authorization variables,
allows access to sensitive databases which reside behind firewalls.
31. A method of fulfilling requests according to claim 1 wherein the steps
further comprise:
if selected data according to the Web broswer request is permitted to be
accessed by the request as an authorized user access at the location of
said selected data inside or outside the Internet, the said selected data
can be included in a combined report of results of said Web browser
request including a combination of data selected for said user by said
system as a result of data entered by said user as a combined report
reported by the system to the Web browser user.
32. A method for fulfilling requests of a web browser client; comprising
the steps of:
displaying an HTNL document to said web browser;
invoking a control program agent;
receiving data entered by the user from the HTNL document and passing said
user entered data to said control program agent upon invocation as input
parameters to said control program agent that were returned from said HTML
document; and storing said input parameters in a buffer;
retrieving with the control program agent from a store command files and
the variable names associated with each command files and loading into
memory associated with the control program the command file names
available and the variable names associated with each command file;
initiating with the control program agent a connection between said control
program agent and an API;
once a command file is loaded into memory for said control program agent,
retrieving with said control program agent from its memory the command
file variable names associated with a command file name passed to the
control program agent once the control program agent is invoked;
subsequently, creating with said control program agent a a data array
stored in the control program memory containing the command file variable
names and the values for them that were passed to the control program
agent during initial data retrieval steps in order to match command file
variable names with the data that was passed to the control program agent
with said environment variables step;
subsequently, in preparation for a command file report, creating with said
program command agent a unique filename which may include data originated
by the HTML document's variables stored in said buffer to pass to the
command file as a command file variable for use in naming the report which
will be created by the command file, which as a result the command file
will create that file with the unique file name during its process;
subsequently, using the API to set the command file variable values; in
anticipation of command file execution, obtaining the values of variables
used by the command file from the data array in the control program memory
containing the command file variable names and the values for them that
were passed to the control program agent as input parameters to said
control program agent as query data from the HTML document that referred
to said control program agent which contains values selected by the user
and/or default values selected by a HTML document designer set in a
command file program prior to its execution;
subsequently, using an API to query and determine the size of a queue of
jobs being requested, and comparing whether the size has exceeded a
predetermined threshold number of jobs being requested, and if so, then
entering a wait state loop to wait and reiteratively comparing whether the
size still has exceeded said predetermined threshold number of jobs being
requested until the queue size is reduced to below said threshold level,
and then at that point using said API to submit a command file for
execution by a sub-agent to create a resulting file identified by said
unique filename;
after the API has submitted said command file for execution by a sub-agent,
said control program agent enters a state of awaiting execution of said
command file by said sub-agent;
and wherein after execution by said sub-agent, thereafter the control
program agent reads the resulting file identified by said unique filename
and dynamically creates new HTHL statements to report results according to
a request of the web browser with said unique filename identified.
33. A method of fulfilling requests according to claim 32 wherein the steps
further comprise: retrieving with said new HTML statement information user
requested data contained in said resulting file identified by said unique
filename so that said user requested data can be provided with the results
as a completed command file report.
34. A method of fulfilling requests according to claim 33 wherein the steps
further comprise: testing with said control program agent for the kind of
report to be created by obtaining information from stored variables and
identifies output parameters, and branching to the sequence applicable to
the type of report to be created in the process of completing said command
file report. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
COPYRIGHT AUTHORIZATION
A portion of the disclosure of this patent document contains material which
is subject to copyright protection. The owner, International Business
Machines Corporation, has no objection to the facsimile reproduction by
any one of the patent disclosure, as it appears in the Patent and
Trademark Office patent files or records of any country, but otherwise
reserves all rights whatsoever.
FIELD OF THE INVENTION
This invention is related to computers and computer systems and
particularly to a method and system for use of the World Wide Web and
other sources of information and for utilization of existing equipment
advantageously for web server data access over networks and the Internet.
RELATED APPLICATIONS
This application entitled "A Method for Fulfilling Requests of a Web
Browser" is related to other United States of America Patent applications
filed concurrently herewith, and specifically to the applications entitled
"Computer Network for WWW Server Data Access over Internet", U.S. Ser. No.
08/474,571, filed Jun. 7, 1995; and "A Service Agent for Fulfilling
requests of a Web Browser", U.S. Ser. No. 08/474,576, filed Jun. 7, 1995;
and "A Sub-Agent Service Agent for Fulfilling Requests of a Web Browser",
U.S. Ser. No. 08/474,575, filed Jun. 7, 1995; and "A Web Browser System",
U.S. Ser. No. 08/479,481, filed Jun. 7, 1995; and "A Method for
Distributed Task Fulfillment of Web Browser Requests", U.S. Ser. No.
08/474,572, filed Jun. 7, 1995.
These applications have a common assignee, International Business Machines
Corporation, Armonk, N.Y.
GLOSSARY OF TERMS
While dictionary meanings are also implied by certain terms used here, the
following glossary of some terms may be useful.
World Wide Web (WWW)
The Internet's application that lets people seeking information on the
Internet switch from server to server and database to database by clinking
on highlighted words or phrases of interest. An Internet WWW server
supports clients and provides information.
Home page
A multi-media table of contents that guides a web user to stored
information about an organization on the Internet.
Gopher
A menu-based search scheme, which as developed at the University of
Minnesota, lets a user reach a destination on the Internet by selecting
items from a series of text menus.
Access Agent
A logical component that provides support for different access protocols
and data streams--Frame Relay, HDLC (High Data Link Control) CBO
(Continuous bit Operations, ATM (Asynchronous Transfer Mode), or TCP/IP.
Application Processing Agent
A data processing agent running in a server data processing system which
performs tasks based on received requests from a client in a distributed
environment. In our preferred embodiment, our application processing agent
for database retrieval is our DIS server, a data interpretation system
server and database gateway which is coupled to our web server HTTPD via a
network. In our preferred embodiment an application processing agent
employs executable object programs as command file objects, which in the
preferred embodiment are capsule objects.
Client
A client is a computer serviced by the server which provides commands to
the server.
Data Interpretation System (DIS).
IBM's object oriented decision support tool.
Capsule
A DIS capsule is a program created by a DIS programmer and executed in the
DIS environment. A DIS capsule is a preferred example of a capsule object.
A capsule object is a specialized form of a command file (which is a list
of commands to be executed, as in an EXEC or *.BAT batch file. The capsule
object is created with an object environment, as is supplied by IBM's DIS.
Other object environments are IBM's SOM and DSOM, and Microsoft's COM
environment.
Internet
The connection system that links computers worldwide in a web.
Server
A machine which supports one or more clients and is part of the web. Any
computer that performs a task at the command of another computer is a
server.
Slip or PPP connection.
Serial-line Internet protocol and point-to-point protocol, respectively,
for providing a full access connection for a computer to the Internet.
TCP/IP
Transmission control protocol/Internet protocol. A packet switching scheme
the Internet uses to chop, route, and reconstruct the data it handles,
from e-mail to video.
InterNetwork Routing (INR)
The link between systems which routes data from one physical unit to
another according to the applicable protocol. The protocol will employ a
URL address for Internet locations.
URL
Universal resource locater, a Web document version of an e-mail address.
URLs are very cumbersome if they belong to documents buried deep within
others. They can be accessed with a Hypelink.
Web browser
An program running on a computer that acts as an Internet tour guide,
complete with pictorial desktops, directories and search tools used when a
user "surfs" the Internet. In this application the Web browser is a client
service which communicates with the World Wide Web.
HTTPD
An IBM OS/2 Web Server or other server having Hypertext Markup Language and
Common Gateway Interface. In our preferred embodiment, the HTTPD
incorporates our control program agent and is supported by an access agent
which provides the hardware connections to machines on the intranet and
access to the Internet, such as TCP/IP couplings.
HTTP Hypertext transfer protocol
Hypertext transfer protocol. At the beginning of a URL "http:" indicates
the file contains hypedinks.
Hyperlink
A network address embedded in a word, phrase, icon or picture that is
activated when you select the highlighted tidbit. Information about that
item is currently retrieved to the client supporting a Web browser.
HyperText Markup Language (HTML)
HTML is the language used by Web servers to create and connect documents
that are viewed by Web clients. HTML uses Hypertext documents. Other uses
of Hypertext documents are described in U.S. Pat. No. 5,204,947, granted
Apr. 20, 1993 to Bernstein et al.; U.S. Pat. No. 5,297,249, granted Mar.
22, 1994 to Bernstein et al.; U.S. Pat. No. 5,355,472, granted Oct. 11,
1994 to Lewis; all of which are assigned to International Business
Machines Corporation, and which are referenced herein.
BACKGROUND OF THE INVENTION
The Internet is not a single network, it has no owner or controller, but is
an unruly network of networks, a confederation of many different nets,
public and private, big and small, that have agreed to connect to one
another. An intranet is a network which is restricted and while it may
follow the Internet protocol, none or only part of the network available
from outside a "firewall" surrounding the intranet is part of the agreed
connection to the Internet. The composite network represented by these
networks relies on no single transmission medium, bi-directional
communication can occur via satellite links, fiber-optic trunk lines,
phone lines, cable TV wires and local radio links. When your client
computer logs onto the Internet at a university, a corporate office or
from home, everything looks local, but the access to the network does cost
time and line charges. Until recently, "cruising or surfing" the Internet
was a disorienting, even infuriating experience, something like trying to
navigate without charts. The World Wide Web, a sub-network of the
Internet, introduced about two years ago, made it easier by letting people
jump from one server to another simply by selecting a highlighted word,
picture or icon (a program object representation) about which they want
more information--a maneuver known as a "hyperlink". In order to explore
the WWW today, the user loads a special navigation program, called a "Web
browser" onto his computer. While there are several versions of Web
browsers, IBM's example is the new WebExplorer which offers users of IBM's
OS/2 Warp system software a consistent, easy to use desktop of pictorial
icons and pull down menus. As part of a group of integrated applications
available from IBM for OS/2 Warp called the IBM Internet Connection, lets
users log onto the Internet.
To this point the World Wide Web (Web) provided by Internet has been used
in industry predominately as a means of communication, advedisement, and
placement of orders. As background for | | |