WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client    
United States Patent5835724   
Link to this pagehttp://www.wikipatents.com/5835724.html
Inventor(s)Smith; John D. (Frisco, TX)
AbstractIn a system (10) for communicating information using the Internet, a client (12) establishes a first connection with a session server (24) using the Internet (18) to initiate a communications session. The session server (24) receives information from a data source (26) in response to the first connection, generates session data (32) using the received information, and conveys the session data (32) to the client (12). The session server (24) maintains the session data (32) after termination of the first connection to convey the session data (32) to the client (12) in response to the client (12) establishing a second connection with the session server (24) during the communications session.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5835724
System and method for communication information using the internet that

     receives and maintains information concerning the client and generates

     and conveys the session data to the client - US Patent 5835724 Drawing
System and method for communication information using the internet that receives and maintains information concerning the client and generates and conveys the session data to the client
Inventor     Smith; John D. (Frisco, TX)
Owner/Assignee     Electronic Data Systems Corporation (Plano, TX)
Patent assignment
All assignments
Publication Date     November 10, 1998
Application Number     08/674,954
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 3, 1996
US Classification     709/227 709/202 709/203 709/206 709/217 715/501.1
Int'l Classification     G06F 017/30 G06F 013/14 8
Examiner     Lall; Parshotam S.
Assistant Examiner     Barot; Bharat
Attorney/Law Firm     Kennerly; Christopher W. Griebenow; L. Joy ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200 395/200.01 395/200.03 395/200.09 395/610 395/200.32 395/200.33 395/200.47 395/200.48 395/200.57 395/200.58 395/200. 380/23 380/24 380/25 707/1 707/2 707/3 707/4 707/5 707/10 707/501 707/513 707/515 705/14
Patent Tags     communication information internet that receives maintains information concerning client generates conveys session data client
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5721908
Lagarde
707/10
Feb,1998

[0 after 0 votes]
5717816
Boyce
386/111
Feb,1998

[0 after 0 votes]
5642515
Jones
710/220
Jun,1997

[0 after 0 votes]
5630135
Orimo
718/106
May,1997

[0 after 0 votes]
5594921
Pettus
710/11
Jan,1997

[0 after 0 votes]
5590197
Chen
705/65
Dec,1996

[0 after 0 votes]
5544320
Konrad
709/203
Aug,1996

[0 after 0 votes]
5530852
Meske, Jr.
709/206
Jun,1996

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


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.
 Description Submit all comments and votes
 


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