|
Claims  |
|
|
What is claimed is:
1. A system for communicating information using the Internet, comprising:
a data source;
a session server coupled to the data source;
a client operable to establish a first connection with the session server
using the Internet to initiate an interactive communications session with
the session server;
the session server operable to receive information from the data source in
response to the first connection, the session server operable to assign a
unique session identifier to the interactive communications session
corresponding to the client, the session server operable to generate
session data using the received information and to convey at least some of
the session data to the client, the session server operable to store
session data for the interactive communications session according to the
unique session identifier, the session data being arranged in a state
hierarchy comprising a plurality of states, each state associated with a
particular page that has been conveyed to the client during the
interactive communications session, the plurality of states comprising an
ancestor state associated with a first page and a child state associated
with a second page and generated according to inputs from the ancestor
state, the session server operable to maintain the session data for the
ancestor state and the child state after termination of the first
connection and for the duration of the interactive communications session,
the session server operable to convey at least some of the session data
maintained after termination of the first connection to the client using
the Internet in response to the client establishing a second connection
with the session server using the Internet during the interactive
communications session and in response to the session server identifying
the stored session data for the client's interactive communications
session using the unique session identifier, the session data conveyed in
response to the second connection comprising the session data for the
child state, the session data for the child state being conveyed to the
client in response to the second connection independent of whether the
session data for the ancestor state is conveyed to the client in response
to the second connection.
2. The system of claim 1, wherein the session server accesses the data
source only once during the interactive communications session.
3. The system of claim 1, wherein the plurality of states compries:
an ancestor state associated with a first page conveyed to the client in
response to the first connection;
a child state associated with a second page conveyed to the client in
response to the first connection and also conveyed to the client in
response to the second connection independent of whether the first page is
conveyed to the client in response to the second connection; and
a grandchild state associated with a third page conveyed to the client in
response to the second connection, the session data for the grandchild
state being generated according to inputs received from the child state in
response to the second connection.
4. The system of claim 3, wherein the system is further operable to convey
the second page to the client in response to the client providing inputs
to the ancestor state.
5. The system of claim 1, wherein the inputs received from the ancestor
sate comprise:
inputs the ancestor state received from the client; and
information the ancestor state received from the data source.
6. The system of claim 1, wherein the session server comprises a timer
process operable to cause deletion of session data if a time interval
between the first connection and the second connection exceeds a
predetermined threshold.
7. The system of claim 1, wherein, in response to the second connection,
the session server identifies the session data that was last conveyed to
the client in response to the first connection according to a unique state
identifier corresponding to the last conveyed session data, the last
conveyed session data corresponding to the child state.
8. A session server for communicating information with a client using the
Internet, comprising:
a common gateway interface operable to receive a data request from the
client during an interactive communications session, the interactive
communications session initiated in response to a first connection to the
session server using the Internet, the session server operable to assign a
unique session identifier to the interactive communications session
corresponding to the client, the common gateway interface further operable
to communicate the data request;
a session manager coupled to the common gateway interface and operable to
receive the data request from the common gateway interface, the session
manager further operable to receive information from a data source and to
generate session data using the received information, the session data
generated according to the data request, the session manager operable to
store session data for the interactive communications session according to
the unique session identifier, the session data being arranged in a state
hierarchy comprising a plurality of states, each state associated with a
particular page that has been conveyed to the client associated with the
data request during the interactive communications session, the plurality
of states comprising an ancestor state associated with a first page and a
child state associated with a second page and generated according to
inputs from the ancestor states, the session manager operable to maintain
the session data for the ancestor state and the child state after
termination of the first connection and for the duration of the
interactive communications session, the session manager operable to convey
at least some of the session data maintained after termination of the
first connection to the client using the Internet in response to the
client establishing a second connection to the session server using the
Internet during the interactive communications session and in response to
the session manager identifying the stored session data for the client's
interactive communications session using the unique session identifier,
the session data conveyed in response to the second connection comprising
the session data for the child state, the session data for the child state
being conveyed to the client in response to the second connection
independent of whether the session data for the ancestor state is conveyed
to the client in response to the second connection.
9. The server of claim 8, wherein the session manager receives information
from the data source only once during the interactive communications
session.
10. The server of claim 8, wherein the plurality of states comprises:
an ancestor state associated with a first page conveyed to the client in
response to the first connection;
a child state associated with a second page conveyed to the client in
response to the first connection and also conveyed to the client in
response to the second connection independent of whether the first page is
conveyed to the client in response to the second connection; and
a grandchild state associated with a third page conveyed to the client in
response to the second connection, the session data for the grandchild
state being generated according to inputs received from the child state in
response to the second connection.
11. The system of claim 10, wherein the server is further operable to
convey the second page to the client in response to the client providing
inputs to the ancestor state.
12. The server of claim 8, wherein the inputs received from the ancestor
state comprise:
inputs the ancestor state received from the client; and
information the ancestor state received from the data source.
13. The server of claim 8, further comprising a timer process operable to
cause deletion of session data if a time interval between the first
connection and the second connection exceeds a predetermined threshold.
14. The server of claim 8, further comprising a timer process operable to
cause the session manager to cease handling the interactive communications
session.
15. The system of claim 8, wherein, in response to the second connection
the session manager identifies the session data last conveyed to the
client in response to the first connection according to a unique state
identifier corresponding to the last conveyed session data, the last
conveyed session data corresponding to the child state.
16. A method for communicating information using the Internet, the method
comprising:
establishing a first connection with a client using the Internet to
initiate an interactive communications session;
assigning a unique session identifier to the interactive communications
session corresponding to the client;
receiving information associated with the client from a data source;
generating session data according to the received information;
conveying at least some of the session data to the client in response to
the first connection;
storing the session data for the interactive communications session
according to the unique session identifier, the session data being
arranged in a state hierarchy comprising a plurality of states, each state
associated with a particular page that has been conveyed to the client
associated with the request during the interactive communication session,
the plurality of states comprising an ancestor state associated with a
first page and a child state associated with a second page and generated
according to inputs from the ancestor state;
terminating the first connection;
maintaining the session data for the ancestor state and the child state
after termination of the first connection and for the duration of the
interactive communications session;
establishing a second connection with the client during the interactive
communications session;
identifying the stored session data for the client's interactive
communications session using the unique session identifier; and
conveying to the client, after termination of the first connection and
during the interactive communications session for the client in response
to the second connection, at least some of the session data maintained
after termination of the first connection, the session data conveyed in
response to the second connection comprising the session data for the
child state, the session data for the child state being conveyed to the
client in response to the second connection independent of whether the
session data for the ancestor state is conveyed to the client in responses
to the second connection.
17. The method of claim 16, wherein information is received from the data
source only once during the first interactive communications session.
18. The method of claim 16, wherein the plurality of states comprises:
an ancestor state associated with a first page conveyed to the client in
response to the first connection;
a child state associated with a second page conveyed to the client in
response to the first connection and also conveyed to the client in
response to the second connection independent of whether the first page is
conveyed to the client in response to the second connection; and
a grandchild state associated with a third page conveyed to the client in
response to the second connection, the session data for the grandchild
state being generated according to inputs received from the child state in
response to the second connection.
19. The method of claim 16, wherein the inputs received from the ancestor
state comprise:
inputs the ancestor state received from the first client; and
information the ancestor state received from the data source.
20. The method of claim 16, further comprising:
establishing a first connection with a second client to initiate a second
interactive communications session; and
maintaining second session data for the second client separately from the
first session data.
21. The method of claim 16, further comprising:
terminating the first interactive communications session if a time interval
between the first connection and the second connection exceeds a
predetermined threshold; and
deleting the first session data.
22. The method of claim 16, further comprising the step of conveying the
second page to the client in response to the client providing inputs to
the ancestor state.
23. The method of claim 16, further comprising the step of identifying, in
response to the second connection, the session data last conveyed to the
client in response to the first connection according to a unique state
identifier corresponding to the last conveyed session data, the last
conveyed session data corresponding to the child state. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
TECHNICAL FIELD OF THE INVENTION
This invention relates in general to the field of data communications and
processing, and more particularly to a system and method for communicating
information using the Internet.
BACKGROUND OF THE INVENTION
Many clients use computer networks such as the Internet to receive selected
information from a variety of information sources or sites. It is often
desirable for clients to establish connections and interact in some manner
with servers associated with these sites to receive selected information
from the sites. For example, a client might establish a connection and
interact with a server associated with a site supported by a banking
institution to access banking information concerning the client.
As computer networks and information sources become larger and more complex
to serve a variety of information requirements, clients may establish
connections and interact with servers associated with any number of sites
to receive selected information according to particular needs. A known
technique for providing selected information in a client-server
environment requires the client to download large volumes of information
from the server, including computer programs and other processes, that the
client must support and maintain to interactively access particular
information. In addition, such techniques require a client whose
connection with the server has terminated to establish another connection
with the server and again download the entire volume of previously
received information to reaccess particular information. Such techniques
may also require the client to navigate the entire volume of received
information each time the client establishes a connection with the server
to access particular information. Furthermore, in addition to sacrificing
efficiency and possibly accuracy, such techniques may provide inadequate
security for the needs of many clients.
SUMMARY OF THE INVENTION
In accordance with the present invention, the disadvantages and problems
associated with systems and methods for communicating information using
the Internet have been substantially reduced or eliminated.
In accordance with one embodiment of the present invention, a system for
communicating information using the Internet includes a data source, a
session server coupled to the data source, and a client that establishes a
first connection with the session server using the Internet to initiate a
communications session. The session server receives information from the
data source in response to the first connection, generates session data
using the received information, and conveys the session data to the
client. The session server maintains the session data after termination of
the first connection to convey the session data to the client in response
to the client establishing a second connection with the session server
during the communications session.
In a particular embodiment, the session data is arranged in a state
hierarchy that includes a number of states, each state associated with a
page conveyed to the client. In a more particular embodiment, the states
include an ancestor state associated with a first page conveyed to the
client in response to the first connection, and a child state associated
with a second page conveyed to the client in response to the second
connection, the child state generated according to inputs received from
the ancestor state.
Important technical advantages of the present invention include providing a
system and method for communicating information using the Internet that
receives and maintains information concerning the client, including
computer programs or processes for interacting with the client, remotely
from the client. As a result, the client need only receive a relatively
small volume of information in accessing selected information associated
with an Internet site or other information source. The present invention
also provides a technique for maintaining information previously conveyed
to the client between connections with the server, which reduces or
eliminates the need for a client whose connection with the server has
terminated and who has established another connection with the server to
again navigate through the entire volume of previously conveyed
information to reaccess particular information. Furthermore, the present
invention provides increased efficiency and accuracy without sacrificing
security, an advantage of critical importance to many clients.
BRIEF DESCRIPTION OF THE DRAWINGS
For a complete understanding of the present invention and for further
features and advantages thereof, reference is now made to the following
description taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an exemplary system for communicating information using
the Internet according to the teachings of the present invention;
FIG. 2 illustrates an exemplary state hierarchy according to the present
invention;
FIG. 3 illustrates an exemplary state data stack according to the present
invention;
FIG. 4 illustrates an exemplary session manager according to the present
invention;
FIG. 5 illustrate an exemplary method for communicating information using
the Internet according to the present invention;
FIG. 6 illustrates a method of operation of an exemplary control process
according to the present invention;
FIG. 7 illustrates a method of operation of an exemplary common gateway
interface according to the present invention;
FIGS. 8A-8C illustrate a method of operation of an exemplary session
manager according to the present invention; and
FIG. 9 illustrates a method of operation of an exemplary timer process
according to the present invention.
DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 illustrates an exemplary system 10 that includes one or more clients
12, 14, and 16, referred to generally as client 12, a communications
network (N/W) 18, an interface (I/F) 20, a communications server (COMM)
22, a session server (SESS) 24, a data source 26, a memory 28, and a
programmer 30. System 10 interacts with client 12 to provide selected
information concerning client 12 that session server 24 maintains during a
particular communications session that corresponds to client 12.
In client-server environments such as the Internet, a client establishes a
connection with a server associated with an Internet site, the client
interacts with the server to obtain selected information, and the
connection with the server is terminated after the client obtains the
selected information. In interacting with the server to obtain
information, the client navigates a hierarchy of documents or pages
written or otherwise generated using HyperText Markup Language (HTML),
JAVA, or any other suitable content development language that conveys
text, images, sounds, actions, or other information to the client. The
connection between the client and the server may be terminated after the
client progresses forward and backward through any number of these pages.
In existing systems, if the connection between the client and the server is
terminated at a particular page, and the client later establishes another
connection with the server to obtain additional information associated
with the page or another previously accessed page, the client is often
forced to again navigate the hierarchy of pages to reach the desired page
because the server does not maintain information to allow the client to
access the desired page directly upon establishing the second connection
with the server. This problem may be exacerbated if the creation and
presentation of lower level pages depends on information retrieved by,
included in, received from, or otherwise associated with higher level
pages.
In the present invention, when client 12 establishes a connection with
session server 24, system 10 initiates a communications session to service
client 12 and receives selected information concerning client 12 from data
source 26. System 10 generates session data 32 for client 12 according to
information received from data source 26, inputs received from client 12,
and a hierarchy of states defined and maintained at session server 24 that
client 12 navigates during the session to interactively access session
data 32. System 10 maintains session data 32 in memory 28 during the
session to allow client 12 to access, after the connection between client
12 and session server 24 terminates and client 12 establishes another
connection with server 24 during the session, session data 32 associated
with one or more states client 12 progressed through after establishing a
previous connection with session server 24. Client 12 need not again
navigate the entire hierarchy of states to reaccess session data 32 or
generate new session data 32 associated with a desired state after client
12 establishes the later connection with session server 24.
Data source 26 may be any source of information concerning one or more
persons, groups, businesses or other organizations, industries,
applications or contexts, or any other information clients 12 may seek to
access according to system 10. For example, data source 26 associated with
a banking institution might contain banking information concerning
persons, organizations, or other customers. Data source 26 may include one
or more databases, files, or other data repositories at a single or
multiple locations local to or remote from session server 24. Data source
26 may be more or less permanent or may include one or more temporary
databases, files, or other data repositories created by extracting
information from more permanent databases, files, or other repositories.
Session server 24 is coupled to and interacts with data source 26 using
link 25 to retrieve, receive, or otherwise obtain information from data
source 26 according to needs of the persons or organizations that support
data source 26 and clients 12. Link 25 may include any dedicated or
switched communications network, local area network (LAN), metropolitan
area network (MAN), wide area network (WAN), a network operating according
to the X.25 recommendation, a global computer network such as the
Internet, or any other network or mechanism for providing and distributing
information.
For each client 12 that establishes a connection with session server 24 to
obtain information from data source 26, session server 24 initiates a
communications session, assigns a unique session identifier to the
session, generates session data 32 for the session, stores session data 32
in memory 28 according to the session identifier, and maintains session
data 32 in memory 28 during the session. Session data 32 may include any
information for generating, processing, manipulating, reproducing,
communicating, or conveying information received from data source 26 to
client 12. For example, session data 32 may include, without limitation:
information received from data source 26; information received from client
12; pages to convey information received from data source 26 to client 12;
routines, programs, functions, function calls, processes, and other
information used to generate pages or new session data 32; and other
information suitable for generating, maintaining, and conveying
information received from data source 26 to client 12 during the
communications session for client 12. If the connection between client 12
and session server 24 terminates and client 12 establishes another
connection with session server 24 during the session, session server 24
accesses session data 32 in memory 28 to interactively convey session data
32 to client 12, in the form of pages or otherwise, rather than again
accessing data source 26 to retrieve, receive, or otherwise obtain
information from data source 26.
Memory 28 may include one or more databases, files, or other data
repositories at a single or multiple locations local to or remote from
session server 24. Memory 28 may include fixed or removable storage media,
such as magnetic computer disks, CD-ROM, or other suitable volatile or
non-volatile memory. Memory 28 supports a database management system
(DBMS) 34 integral to or separate from session server 24 that manages
access to session data 32 and other resources of memory 28.
Programmer 30 may program, design, modify, configure, or otherwise
customize session server 24 to allow session server 24 to operate in
accordance with the type, nature, or context of information received from
data source 26, needs of persons or organizations associated with data
source 26 and clients 12, or other suitable factors. For example, and not
by way of limitation, data source 26 may contain banking information
concerning clients 12, and programmer 30 may program, configure, or
customize session server 24 to interactively generate session data 32 and
convey session data 32 to clients 12 in pages containing selected banking
information.
In one embodiment, programmer 30 programs, configures, or customizes
session server 24 using an application programming interface (API)
integral to session server 24. The API is a collection of routines,
commands, data structures, virtual and other functions, virtual and other
function calls, data definitions, and other variables that control one or
more operations of session server 24. In general, the API allows overlying
software to become part of session server 24 to suit a particular context
or application. Using the API to control the operation of session server
24, system 10 dynamically generates session data 32 according to
interactions with clients 12 and a state hierarchy to convey pages to
clients 12 associated with states in the state hierarchy.
Programmer 30 may use any suitable programming technique, structure,
paradigm, or language to customize session server 24. For example,
programmer 30 may customize session server 24 using an object-oriented
programming language, in which a program may be viewed as a collection of
discrete objects or instances that are self-contained collections of data
structures and routines that interact with other objects. In
object-oriented programming, a class defines attributes, services, data
structures, routines, or other information characterizing objects in or
instances of the class. In one embodiment, the classes correspond to
particular states or associated pages through which client 12 progresses
in navigating the state hierarchy wholly or partially defined by the API.
Programmer 30 may use C++ or another suitable programming language to
program, configure, or customize session server 24 using an API or other
suitable programming tool.
Communications server 22 is coupled to and interacts with session server 24
to communicate information between session server 24 and clients 12 using
interface 20 and network 18. In one embodiment, communications server 22
may encrypt session data 32 and other information received from session
server 24 to provide secure communications between session server 24 and
clients 12. Communications server 22 may encrypt information or make
information undecipherable using the Data Encryption Standard (DES)
algorithm, the Pretty Good Privacy (PGP) standard, the public key or other
asymmetric encryption scheme, or any other suitable encryption standard or
technique. In one embodiment, communications server 22 spawns, creates, or
otherwise generates processes that allow session server 24 to communicate
with client 12 during the session.
Clients 12 may be any logical entities in hardware and/or software, such as
mainframes, miniframes, or personal computers, that send and receive
information using network 18 and interface 20 to access the resources of
session server 24. Clients 12 may be autonomous or operated by one or more
persons that seek access to selected information provided by data source
26. Although clients 12, 14, and 16 are discussed, the present invention
contemplates more or fewer clients according to the information provided
by data source 26, the needs of persons or organizations that support data
source 26 and clients 12, or other suitable factors. Programmer 30 may be
similar in construction and operation to clients 12, and may be a client
12 having particular administrative, security, or other access privileges
or credentials that connects to session server 24 using network 18.
Clients 12 interact with communications server 22 using network 18 and
interface 20. Network 18 may include any suitable wireline or wireless
links to facilitate communications between clients 12 and interface 20.
For example, network 18 may include a public switched telephone network
(PSTN), an Integrated Services Digital Network (ISDN), a LAN, MAN, WAN, a
global computer network such as the Internet, or other dedicated or
switched network or other communications mechanism at one or more
locations. Interface 20 may include the appropriate hardware and software,
including protocol conversion and data processing capabilities, to
communicate using a direct connection to a PSTN or ISDN, a connection
through a LAN, MAN, WAN, a global computer network such as the Internet,
or any other suitable communications connection that allows clients 12 to
communicate information with communications server 22 using network 18.
In operation, client 12 establishes a connection with session server 24
using network 18, interface 20, and communications server 22. Session
server 24 initiates a communications session for client 12, assigns a
unique session identifier to the session, receives selected information
concerning client 12 from data source 26, generates session data 32
according to the received information, inputs from client 12, and a state
hierarchy, and stores session data 32 in memory 28 according to the
session identifier. In response to communications from client 12,
including the communications that established the initial connection or
communications that establish subsequent connections, session server 24
interacts with client 12 using communications server 22, interface 20, and
network 18 to convey session data 32 to client 12. Session server 24 may
convey session data 32 in the form of pages or other arrangement of
information, which may include HTML, JAVA, or other content development
language.
Session server 24 maintains session data 32 in memory 28 during the session
to allow client 12 to establish another connection with session server 24
during the session, after previous connections with session server 24 have
terminated, to access session data 32 that corresponds to one or more
states or associated pages client 12 has progressed through in response to
previous connections with session server 24 during the session. The
retention of session data 32 may be particularly important when session
server 24 is an Internet server, since typical Internet browsing involves
establishing and terminating a series of connections. Client 12 need not
again navigate the entire hierarchy of states or pages to reach a desired
state after establishing another connection with session server 24.
Moreover, session server 24 retains information retrieved from data source
26 and can use this information throughout the communications session
without ever reaccessing data source 26, without reaccessing data source
26 more than a minimal number of times during the session, or without
reaccessing data source 26 as frequently during the session as if session
server 24 did not maintain information retrieved from data source 26
during the session. As a result, system 10 reduces the volume of
information communicated among client 12, session server 24, and data
source 26 to provide increased efficiency, accuracy, and security.
FIG. 2 illustrates an exemplary state hierarchy 50 that specifies a logical
relationship between states 52, 54, 56, 58, 60, 62, 64, and 66. Each state
in state hierarchy 50 is related to one or more other states and is either
the ancestor state of a child state that is below the ancestor state in
state hierarchy 50, or the child state of an ancestor state that is above
the child state in state hierarchy 50. For example, state 52 is an
ancestor state of all the other states in state hierarchy 50; state 54 is
a child state of state 52 and an ancestor state of states 56, 58, 60, 62,
64, and 66; state 56 is a child state of states 52 and 54, and an ancestor
state of states 62 and 64; and state 64 is a child state of states 52, 54,
and 56, and an ancestor state of no other state in state hierarchy 50.
Each state in state hierarchy 50 is coupled to another state by one or
more branches 68, depending on the respective positions of the two states
within state hierarchy 50.
In one embodiment, each state corresponds to session data 32 for a
particular communications session of client 12 that is generated using
information received from data source 26, inputs from client 12, inputs
from an ancestor state, and other appropriate information. Each state is
associated with a page written in HTML, JAVA, or another suitable content
development language that conveys session data 32 to client 12 as text,
images, sounds, actions, and other information. Interacting with session
server 24, client 12 navigates state hierarchy 50 to enter and progress
through various states to receive session data 32 for these states. As
client 12 progresses forward and backward through the various states,
session server 24 conveys session data 32 to client 12 in the form of
pages that correspond to the states. From the perspective of client 12,
the pages that convey session data 32 may be organized according to a
windowing hierarchy or environment common to many software applications.
The arrangement of session data 32 within memory 28 is discussed more
fully below with reference to FIG. 3.
For example, upon establishing a connection with session server 24, client
12 may reside in state 52 and session server 24 may convey a page to
client 12 that is the Internet home page for a person or organization that
supports data source 26, for example, a banking or other institution.
State 52 may represent a page conveyed to client 12 that prompts client 12
to provide customer identification information. Client 12 may provide this
information, and session server 24 accesses data source 26 to retrieve all
available banking information associated with client 12. In one
embodiment, session server 24 retrieves information from data source 26
only one time during the communications session for client 12, and can use
this retrieved information to generate all states in state hierarchy 50.
If client 12 progresses from state 52 to state 54, which is a child state
of state 52, session server 24 may present client 12 with a page that
provides a main menu for selecting a particular child state of state 54.
For example, where session server 24 receives banking information from
data source 26, a particular client 12 that resides in state 54 may be
conveyed a page that displays a list of available accounts from which
client 12 may obtain account information. Similarly, child states 56, 58,
and 60 of state 54 might have associated pages to convey checking account,
savings account, and money market account information, respectively, to
client 12. Further, child states 62 and 64 of state 56 might have
associated pages to convey checking deposit and checking withdrawal
information, respectively, to client 12. Each child state is generated
according to inputs from the ancestor of the child state, in addition to
any information received from data source 26 or inputs from client 12 that
are used to generate the new state. State hierarchy 50 may include more or
fewer states, depending on the information received from data source 26,
the needs of persons or organizations that support data source 26 and
clients 12, and other suitable factors.
An important technical advantage of the present invention is that | | |