<<

USOO5961601A United States Patent (19) 11 Patent Number: 5,961,601 Iyengar (45) Date of Patent: Oct. 5, 1999

54 PRESERVING STATE INFORMATION INA Bertrand Ibrahim, “World-wide algorithm animation”, CONTINUING CONVERSATION BETWEEN Computer Networks and ISDN Systems, Elsevier Science A CLIENT AND SERVER NETWORKED WIA B.V., pp. 255–265, (1994). A STATELESS PROTOCOL Alan Falconer Slater, “Extending W3 clients”, Computer Networks and ISDN Systems, Elsevier Science B.V., pp. 75 Inventor: Arun K. Iyengar, Yorktown Heights, 61–68, (1995). 73 Assignee: International Business Machines (List continued on next page.) Corporation, Armonk, N.Y. Primary Examiner Mark H. Rinehart Attorney, Agent, or Firm Kevin M. Jordan 21 Appl. No.: 08/660,633 57 ABSTRACT 22 Filed: Jun. 7, 1996 A method and System for preserving State in computers 51 Int. Cl...... G06F 13/38; G06F 15/17 communicating over networks, such as the 52 U.S. Cl...... 709/229; 709/228; 709/218; (WWW) using stateless protocols, e.g., HTTP State is 709/203 preserved in a conversation between a client requesting 58 Field of Search ...... 395/200.32, 200.48, Services from a Served by performing the Service and 395/200.53, 200.59, 182.02, 182.03, 182.05; identifying all continuations (hyperlinks) in an output from 709/202, 218, 223, 229, 228, 203; 714/4, the Service; recursively embedding the State information in 5, 7 all identified continuations in the output Sent to the client. The State information may be embedded and communicated 56) References Cited by the server to the client. Alternatively, dynamically down U.S. PATENT DOCUMENTS loadable program code may be used to embed the State information at the client. Additional features enable the 5,218,695 6/1993 Novecket al.. filtering and/or addition of hyperlinks and data output from 5,623,656 4/1997 Lyons ...... 395/200.49 5,668,943 9/1997 Attanasio et al...... 395/182.05 the Services according to predetermined criteria. State infor 5,701,451 12/1997 Rogers et al...... 395/200.32 mation may be embedded by modifying an identified con 5,708,780 1/1998 Levergood et al...... 395/200.12 tinuation which is a request for an HTML file, to invoke a 5,710,918 1/1998 Lagarde et al...... 395/200.32 CGI converter program with the identified continuation and 5,774,670 6/1998 Montulli ...... 395/200.57 the State information passed as arguments. State information may also be embedded by modifying an identified continu FOREIGN PATENT DOCUMENTS ation which is an invocation to a CGI program with the 0604010 10/1993 European Pat. Off.. identified continuation and the State information passed as 0625750 11/1994 European Pat. Off.. arguments, and the embedding Step is performed by the CGI program. Alternatively, an identified continuation which is OTHER PUBLICATIONS an invocation of a CGI program may be modified to invoke “Haht Software Premiers HahtSite at Demo 96', PR News a CGI converter program with the identified continuation, an wire, Jan. 29, 1996. argument counter which indicates a number of arguments “Proposed HTTP State Management Mechanism”, Montulli asSociated with the CGI program, and the State information et al., HTTP Working Group, Feb. 16, 1996. passed as arguments. Here, the embedding is performed by Louis Perrochon et al., “IDLE: Unified W3-access to inter the converter program. active information servers', Computer Networks and ISDN Systems, Elsevier Science B.V., pp. 927–938, (1995). 68 Claims, 10 Drawing Sheets

CLENT

WEB BROWSER 450

CONNECTION MANAGER DATABASE (OPTIONAL) HTML FIES

CGI PROGRAMS 5,961,601 Page 2

OTHER PUBLICATIONS “Hypertext Transfer Protocol-HTTP/1.0” http://www.ic “Behind The Scenes of The Adventure Web”, http://tww S.uci.edu/pub/ietf/http/draft-ietf-http-v10-spec-03.html, w.stanford.edu/adventure/impl.html Feb. 23, 1996. by T. Berners-Lee, R. Fielding, and H. Frystyk, Sep. 4, “Aug. 1995 Web Watch”, http:www.netgen.com/corpinfo/ 1995. press/webwtchv6n8.html Feb. 2, 1996. “Zebrafish Database', http://zfish.uoregon.edu/Zf info/ “Network News Transfer Protocol: A Proposed Standard for dbase/arch.html Oct. 24, 1995. the Stream-Based Transmission of News”, RFC 977, B. “Porting Interactive Applications to the Web”, http://ksi.cp Kantor and P. Lapsley, UC San Diego and UC Berkeley, Feb. sc.ucalgary.ca/articles/WWW/PortWeb/PortWeb.html Dec. 1986, http://ds.internic.net/rfc/rfc977.txt. 7, 1995. “MBA/MBARI Live Link to The Technology Museum of “Simple Mail Transfer Protocol", RFC 821, J.B. Postel, Innovation in San Jose' http://rockfish.mbari.org/BayLink/ Information Sciences http://ds.internic.net/std/std 10.txt. http prb.html Aug. 2, 1995. “Persistent Client State HTTP Cookies”, Netscape Commu J. Postel and J.K. Reynolds, “ (FTP)”, nications Corporation, 1996 http://home.netscape.com/ RFC 959, Information Sciences Institute, USC, Oct. 1985 newsref/std/cookie Spec.html. http://ds.internic.net/std/std9.txt. U.S. Patent Oct. 5, 1999 Sheet 1 of 10 5,961,601

T.J. Watson Research Center. Yorktown (left) and Hawthorne. O Welcome O Local Education Outreach O Visitor info and local site directions O Local hotels O IBM home page -- IBM Research home page

G Click on icon to send your comments. Or, contact webmaster(awatson.ibm.com

IBM home page Order Search Contact IBM | Help (C) (TM) FG. PRIOR ART U.S. Patent Oct. 5, 1999 Sheet 2 of 10 5,961,601

FG.2 PRIOR ART

SKYLINE SUPPLIERS REGISTRATION FORM

USERID PASSWORD PASSWORD (FOR VERIFICATION) ACTUAL NAME COMPANY E-MAIL ADDRESS PHONE NUMBER (RESET FORM) U.S. Patent Oct. 5, 1999 Sheet 3 of 10 5,961,601

FG.3 PRIOR ART

450

CLENT

SERVER COMPLETED

GENERATED FORM

FORM

HIDDEN HIDDEN STATE STATE WARIABLES WARIABLES

SERVER

A.10 U.S. Patent Oct. 5, 1999 Sheet 4 of 10 5,961,601

FG.4 CLIENT SERVER

CLIENT REQUESTS A SERVICE

FROM THE SERVER STATELESS

PROTOCOL CALL TO 505

YES 500 CONVERT 2.

NO TO STEP 510 530

PRESERVATION 525 515 p.

EXECUTE SERVICE YES

CENT RECEIVES STATELESS PROTOCOL SEND TO CENT 520

SERVICE OUTPUT WITH CONTINUATIONS YCONVERT LOGIC MODIFIES AL CONTINUATIONS STATELESS PRODUCED BY THE SERVICE TO PROTOCOL EMBED STATE AND EXPLCT 540 CALL TO CONVERT 2' YES CONTINUATION

SELECTED 530 CONVERT 2. INVOKES SERVICE WITH ARGUMENTS NO AND STATE WARIABLES END CONVERSATION 535 PASS OUTPUT AND STATE WARIABLES TO CONVERT 1 U.S. Patent Oct. 5, 1999 Sheet 5 of 10 5,961,601

ROUTING AND CONTROL INFO SERVICE 1 SERVICE ARGUMENTS

FG.5

601 650 605 610 685 670

ROUTING AND STATE CONTROL INFO CONVERT 2 SERVICE 1 SERVICE ARGUMENTS WARIABLES

680 F.G. 6 U.S. Patent Oct. 5, 1999 Sheet 6 of 10 5,961,601

FG.7d

SERVER 410

CLIENT CONVERTER

- INTERNET OTHER BROWSER CG 414 PROGRAMS 460

413 HTML/CG

DBMS

470 CONNECTION 475 MANAGER DATABASE 427 (OPTIONAL) 429 CGI PROGRAMS U.S. Patent Oct. 5, 1999 Sheet 7 of 10 5,961,601 FIG.7b CLIENT ACCESSES HOME PAGE

700 (STATELESS)

CLENT BEGINS BROWSNG PRODUCT CATALOG 710 (STATELESS)

CLIENT BROWSES NEW 720 CATALOG PAGE (STATELESS)

CLIENT DESIRES TO 730 PURCHASE AN TEM (STATELESS)

740 CLIENT ENTERS USER-ID, PASSWORD

745 STATE WARIABLES EMBEDDED; USER-ID, SESSION-ID

CLIENT BROWSES ADDITIONAL CATALOG PAGES (CONTINUATION SELECTED). 750 STATE WARIABLES PRESERVED FOR REMAINDER OF CONVERSATION U.S. Patent Oct. 5, 1999 Sheet 8 of 10 5,961,601

FG.8

INTERNET CLENT SERVER

CLENT SELECTS HYPERLINK CGI PROGRAM BEGINS 810

PRESERVING STATE By 740' CALLING CONVERT 1

811 CONVERT 1 MODIFIES 81 3 LINKS TO HTML FILES CLIENT RECEIVES

MODIFIED HTML TEXT Y CONVERT 17 MODIFIES LINKS TO CGI PROGRAMS

CLIENT SELECTS HYPERTEXT LINK CALL TO Y CONVERT 2. '

PROCESS REQUEST

FILE OR PROGRAM PASSED TO CONVERT 2. '

FETCH FILE AND PASS WITH STATE ARGS TOY CONVERT 1 7

EXECUTE PROGRAM & PASS OUTPUT WITH STATE ARGS TO 818 Y CONVERT 11

5,961,601 1 2 PRESERVING STATE INFORMATION IN A to use, separated from the rest of the locator by a “:”. Next CONTINUING CONVERSATION BETWEEN is the hostname or IP address of the target host; this is A CLIENT AND SERVER NETWORKED WIA delimited by the “//” on the left and on the right by a "/" or A STATELESS PROTOCOL optionally a “:”. The port number is optional, and is delim ited on the left from the hostname by a “:” and on the right FIELD OF THE INVENTION by a "/". The fourth component is the actual file name or program name. In this example, the ".html” extension means This invention is related to computers and computer that this is an HTML file. networks. In particular, the invention is related to computers Hyperlink (or Hypertext Link) preserving State while communicating over networkS via A network address embedded in a word, phrase, icon or StateleSS protocols. Even more particularly, the invention is picture that is activated when you Select it. Information related to a method and System for preserving State in about that item is returned to the client and displayed using computers communicating over the Internet, Specifically the a Web browser. World Wide Web, using the HyperText Transfer Protocol HyperText Markup Language (HTML) (HTTP). 15 HTML is the language used by Web servers to create and connect documents that are viewed by Web clients. HTML CROSS-REFERENCE TO RELATED PATENTS uses Hypertext documents. Other uses of Hypertext docu The present invention is related to the following United ments are described in U.S. Pat. No. 5,204,947, granted Apr. States of America Patents: 20, 1993 to Bernstein et al.; U.S. Pat. No. 5,297.249, granted U.S. Pat. No. 5,752,022, issued May 12, 1998, entitled: Mar. 22, 1994 to Bernstein et al., U.S. Pat. No. 5,355,472, “A Method for Creating a Hypertext Language for a granted Oct. 11, 1994 to Lewis; all of which are assigned to Distributed ,” by Chiu et al.; and International BusineSS Machines Corporation, and which are U.S. Pat. No. 5,710,918, issued Jan. 20, 1998, entitled incorporated by reference herein. “Method for Distributed Task Fulfillment of Web Hypertext Transfer Protocol (HTTP) 25 HTTP is an example of a stateless protocol, which means Browser Requests,” by Lagarde et al. These patents, that every request from a client to a server is treated which have a common assignee, International Business independently. The Server has no record of previous con Machines Corporation, Armonk, N.Y., are hereby nections. At the beginning of a URL, “http:” indicates the incorporated by reference in their entirety. file contains hyperlinkS. GLOSSARY OF TERMS Home Page A multi-media table of contents that guides a web user to While dictionary meanings are also implied by certain Stored information, e.g., about an organization, on the Inter terms used here, the following glossary of Some terms may net. be useful. Web Browser Internet 35 A program running on a computer that acts as an Internet The network of networks and gateways that use the tour guide, complete with pictorial desktops, directories and TCP/IP suite of protocols. search tools used when a user "Surfs' the Internet. In this TCP/IP application the Web browser is a client service which Transmission Control Protocol/. A packet communicates with the World Wide Web. Switching Scheme the Internet uses to chop, route, and 40 HTTP Daemon (HTTPD) reconstruct the data it handles, from e-mail to Video. An IBM OS/2 Web Server or other server having Hyper Client text Markup Language and Common Gateway Interface A client is a computer which issues commands to the capability. The HTTPD is typically supported by an access Server which performs the task associated with the com agent which provides the hardware connections to machines mand. 45 on the intranet and access to the Internet, Such as TCP/IP Server couplings. Any computer that performs a task at the command of Continuations another computer is a Server. A Web Server typically Sup Hypertext links (or hyperlinks) are examples of continu ports one or more clients. ations in client-Server communications. A continuation is a World Wide Web (WWW or Web) 50 new request which a client may send to a Server. Whenever The Internet's application that lets people Seeking infor a client requests Something from a server, the Server may mation on the Internet Switch from server to server and include one or more continuations in its response. When a database to database by clicking on highlighted words or Server responds to a request, it may include one or more phrases of interest (hyperlinks). An Internet WWW server continuations which could be any valid requests. However, supports clients and provides information. The Web can be 55 useful continuations are generally logically related to the considered as the Internet with all of the resources addressed original request. as URLs and which uses HTML to display the information Conversation corresponding to URLS and provide a point-and-click inter A Sequence of communications between a client and face to other URLs. Server in which the Server responds to each request with a Set Universal Resource Locator (URL) 60 of continuations and the client always picks the next request A way to uniquely identify or address information on the from the set of continuations. On the Web, hypertext links Internet. Can be considered to be a Web document version represent continuations and a client engages in a conversa of an e-mail address. URLs can be cumbersome if they tion whenever it follows hypertext links. belong to documents buried deep within others. They can be BACKGROUND accessed with a Hyperlink. An example of a URL is “http:// 65 www.arun.com:80/table.html. A URL has four compo Networks have transformed the way people do comput nents. Starting from the left, the first Specifies the protocol ing. Someone with access to a personal computer or work 5,961,601 3 4 Station can connect to the Internet and communicate with Server is treated independently. The Server has no record of systems and people all over the world. The World Wide Web previous connections. HTTP is an example of a stateless (WWW or Web) is a way of using the Internet that provides protocol. Two advantages of using StateleSS protocols are the user with access via linked documents to a wealth of efficiency and Simplicity. However, there are situations information distributed throughout the globe. The WWW also allows users to execute programs running on remote where it is desirable for maintaining State information during Servers. This capability enables users to obtain the results communications between the client and Server. For these from programs which the user cannot run locally due to types of interactions, the Statelessness of protocols can hardware and/or Software limitations. It is also possible to present problems. download and run programs stored remotely on the World Wide Web. This has the potential to greatly increase the The HTTP Protocol and the World Wide Web amount of Software which is available to a computer con nected to the World Wide Web. The most compelling application of the present invention Network Protocols is for browsing the World Wide Web via the HTTP protocol, Network protocols provide standard methods for 15 machines to communicate with one another. The protocols see, e.g., “Hypertext Transfer Protocol-HTTP/1.0', http:// indicate how data should be formatted for receipt and www.ics.uci.edu/pub/ietf/http/draft-ietf-http-V 10-spec transmission acroSS networks. Heterogeneous machines can 03.html, by T. Berners-Lee, R. Fielding, and H. Frystyk, communicate Seamlessly over a network via Standard pro Sep. 4, 1995, which is hereby incorporated by reference in tocols. Examples of Standard Internet protocols include: its entirety. Those skilled in the art will understand, however, HTTP, see, e.g., “Hypertext Transfer Protocol-HTTP/1.0", that the present invention is not limited to HTTP. The http://www.ics.uci.edu/pub/ietf/http/draft-ietf-http-V 10 relevant aspects of the Web and the limitations imposed by spec-03.html, by T. Berners-Lee, R. Fielding, and H. the statelessness of protocols, such as HTTP, will now be Frystyk, Sep. 4, 1995; SMTP, see, e.g., “Simple Mail Trans discussed. fer Protocol'. RFC 821, J. B. Postel, Information Sciences 25 Institute, USC, August 1982, http://ds.internic.net/std/ std 10.txt.; NNTP, see, e.g., “Network News Transfer Proto The World Wide Web consists of multiple servers net col: A Proposed Standard for the Stream-Based Transmis worked together. Clients typically communicate with Servers sion of News”, RFC 977, B. Kantor and P. Lapsley, UC San using a Standard browser Such as are Sold under the trade Diego and UC Berkeley, February 1986, http:// marks “NETSCAPE NAVIGATOR” by Netscape, ds.internic.net/rfc/rfc977.txt.; FTP, see e.g., J. Postel and J. “MOSAIC” from NCSA, or “WEB EXPLORER” by IBM. K. Reynolds. “File Transfer Protocol (FTP)", RFC 959, The most common method of communicating between cli Information Sciences Institute, USC, October 1985, http:// ents and servers is via the HTTP protocol. HTTP allows the dS.internic.net/Std./Std9.txt., Gopher, See, e.g., F. Anklesaria, client to obtain data from the Server either by requesting a M. McCahill, P. Lindner, D. Johnson, D. Torrey, and B. 35 file or invoking a program known as a Common Gateway Alberti. “The Internet Gopher Protocol: A distributed docu ment search and retrieval protocol, RFC 1436, University Interface (CGI) program which executes on the server. CGI of Minnesota, March 1993, http://ds.internic.net/rfc/ programming is well known in the art. See, e.g., "HTML and rfc1436.txt.; and WAIS, see, e.g., F. Davis, B. Kahle, H. CGI Unleashed” by John December and Mark Ginsburg, Morris, J. Salem, T. Shen, R. Wang, J. Sui, and M. Grin 40 Sams.net Publishing, Indianapolis, Ind. (1995). The server baum. “WAIS Interface Protocol Prototype Functional then sends file or the output from the CGI program to the Specification” (v. 1.5), Thinking Machines Corporation, client. Servers typically restrict the files and programs which April 1990. a client has the ability to access. The client-server model constitutes one of the dominant paradigms in network programming, See, e.g., W. R. 45 Stevens, “Unix Network Programming", Prentice Hall PTR, The Server Sends information to the client using the Englewood Cliffs, N.J., 1990; and D. E. Comer, “Internet HyperText Markup Language (HTML), see, e.g., “The working with TCP/IP" vol 1., Prentice Hall, Englewood HTML Sourcebook” by Ian S. Graham, John Wiley & Sons, Cliffs, N.J., 1991 which is hereby incorporated by reference Inc., New York, 1995, which is hereby incorporated by in its entirety. A Server program offers a Service which can 50 reference in its entirety. HTML documents consist of con be accessed by multiple users over the network. A program ventional ASCII text in which the information to be dis becomes a client when it sends a message to a server and played is interspersed with HTML markup tags. These tags waits for a response from the Server. The client process, are Surrounded by greater than and less than Signs (< . . . >) which is typically optimized for user interaction, uses the and instruct the browser how to interpret different parts of requested Service without having to know any of the detailed 55 documents. Browsers use Uniform Resource Locators workings of the requested service or server. On the World (URLs) to uniquely identify or address information on the Wide Web, “browsers' constitute client programs while the Internet. Browsers read HTML documents corresponding to programs Sending back information to the browser constitute the URLs and display them by following the instructions Server programs. Stored in the markup tags. A client and Server may communicate either Synchro 60 nously or asynchronously. In a Synchronous communication, a client waits for a response from a server before issuing the The HTML code sequence below (Table 1) shows the next request. In an asynchronous communication, the client HTML text corresponding to the Web home page of the IBM may issue a request to a server before one or more responses T.J. Watson Research Center on Jun. 3, 1996. This Web page from previous requests to the Server have been received. 65 corresponds to the URL “http://www.watson.ibm.com/. Many network protocols between a client and Server are The corresponding output that would be displayed on a StateleSS. This means that every request from a client to a Standard browser accessing this page is shown in FIG. 1. 5,961,601

TABLE 1. The HTML source code corresponding to the IBM T.J Watson Research Center home page. &HTML-HEADs hl-IBM T.J. Watson Research Center IMG SRC="?watson/night.gif > IBM Research home page.

3.ul > > > A HREF="?watson/mail.html>IBM home page.Search.Contact IBM&?as (C)(TM)

Many Web browsers allow users to view the HTML 50 by the browser, a new HTML file, “menu.html”, is fetched Source code of any document being viewed. The HTML text from the server and displayed by the browser. Hypertext in Table 1 is stored in a file accessible to a Web server at the links to documents on both local and remote Servers can be IBM T. J. Watson Research Center. When this Web server placed in an HTML file. The ability to incorporate hyper receives a re quest for the URL “ http:// links within an HTML file to link documents on servers all www.watson.ibm.com/, it sends the appropriate file to the 55 over the world is one of the key features of the World Wide client's browser. The client's browser will then read and Web. In other words, a Web browser can be used to access display the HTML file. (Table 1 contains a number of information from servers all over the world by simply relative linkS. The hypertext links and image files are only pointing and clicking on hypertext linkS. valid if the file is stored in a specific directory. If, for Recall that Hypertext links are examples of “continua example the “night.gif file in Table 1 is stored at an 60 tions” in client-Server communication. A continuation is a arbitrary location, the hypertext links will be invalid and the new request which a client may send to a Server. Whenever associated images will not appear.) a client requests Something from a server, the Server may The line in Table 1 reading “Visitor info and local site include one or more continuations in its response. The directions” is an example of a hypertext link (also called a continuations could represent any valid requests. However, hyperlink). The corresponding output as it would be dis 65 useful continuations are generally logically related to the played by a standard browser is depicted in FIG.1. When the original request. A good Set of continuations makes it easy user clicks on this link as depicted in FIG. 1 when displayed for a client to communicate Synchronously with a server. 5,961,601 7 8 After each request, the Server responds with a set of con Forms allow the client to pass state variables to the server. tinuations. The client chooses one of the continuations for Servers can also use forms to pass variables to the client. the next request. A “conversation' is a Sequence of commu Forms may include hidden variables which are not displayed nications between a client and Server in which the Server to clients and which are passed back to a server when the responds to each request with a set of continuations and the client submits the form. Web servers typically preserve state client always picks the next request from the Set of continu by passing State variables as hidden variables within forms. ations. When the client submits the form, the server receiving the On the Web, hypertext links represent continuations and form can obtain the state variables from the hidden fields. a client engages in a conversation whenever it follows hypertext linkS. A conversation is interrupted whenever the For example, Suppose that a busineSS transaction Server is client obtains a new page by explicitly requesting a new communicating with a client. The transaction Server needs to URL instead of following hypertext links. It is possible to obtain a client user ID and a session ID for the remainder of continue an interrupted conversation if a page corresponding the conversation with the client. The server can obtain the to the interrupted conversation is still available to the client, clients user ID from a form submitted by the client. The e.g., in the browser cache or in disk memory. If So, the form invokes a CGI program which then generates a Session conversation may be continued by reloading the page and 15 ID. Each Subsequent response from the server is a form. The continuing to follow hyperlinks. A client may communicate form is generated dynamically and contains the user and with multiple Servers during the same conversation. session ID's embedded as hidden variables. Clients respond More formally, a Series of HTML pages p1, p2, ..., pn by completing and Submitting the forms generated by the constitutes a conversation if SCWC. 1. p1, p2, . . . , pn were all viewed by a client, and FIG. 3 depicts an example of a current method for 2. for all i, Such that 1. re-authentication is not required. The State information, i.e., 40 the user-ID and session-ID will be preserved and made would be modified by the convert1 logic to the form available to every CGI program which is invoked during the depicted in FIG. 9a': remainder of the conversation. Recall that using current “forms' technology, the user an action requiring authentication Such as adding a new item to the purchase list was attempted. The session-ID would In step 812, the convert1 module of the converter program present even greater difficulties in that the Server would have modifies all the hypertext links to CGI programs. Note that to tell the client to remember the session-ID and enter it hypertext links which are calls to CGI programs may have whenever authentication is needed. 50 the state variables preserved two different ways: Recall also that using “cookies' limits the range of URL's (a) As depicted in FIG.9b', pass the state variables 930 for which State is preserved. Using cookies further lacks the to the CGI program 940 but don’t embed the state ability to correlate State information with Specific conver Variables within any hypertext links generated by the sations which may cause outdated State information to be CGI program, i.e., don’t embed a call to convert2. provided a server. Lastly, cookies require the use of a 55 Using this approach, the CGI program is responsible Specific browser and may require Specialized and/or non for propagating State within hypertext links it gener Standard features on the client or Server. ates, or FIG. 8 depicts a more detailed example of a method (b) Preferably, as depicted in FIG. 9c, pass the state according to the present invention for preserving State in the variables 930" to the CGI program 950 and embed the system shown in FIG. 7a, and method step 745 of FIG. 7b. 60 state variables (by an embedded call to the converter ASSume that server 410' is a conventional Web server 920) within hypertext links generated by the CGI including typical Internet connections and access Such as program. TCP/IP couplings and further has HTML and Common In order to take advantage of both approaches (a) and (b), Gateway Interface (CGI) capabilities 413. the converter may determine how to distinguish CGI pro As depicted, in step 740, assume a client 450 running 65 grams based on any one of a variety of techniques within the Web browser 460 selected a hyperlink to request a service scope of the present invention. As depicted in FIG. 9b, for via (stateless protocol) HTTP to a Web server 410'. In step example, a naming convention could be used whereby any 5,961,601 15 16 CGI program whose name begins with the SubString “type' This method of the present invention advantageously may be considered a type I CGI program and is processed preserves State information by embedding the State in all using the first method (a). Any Substring whose name does hyperlinks passed back and forth between the client 450 and not begin with the SubString “type' may be considered a type server 410. Those skilled in the art will appreciate that, the II CCI program and is processed using the Second method level of detail which is communicated between the client (b). and Server may be reduced by Storing most of the State For example, consider (with reference to FIG. 9b) the information in a file system or a database 425 coupled to the following example of a type 1 CGI call: Server 410'. In this case, it is only necessary to pass an index client and Server. The present invention is designed to work for a Standard Suppose that the state variables are x=32 and y=45. The browser 460 which doesn’t necessarily support downloading converter 416 would append the state variables 930" to the of programs from the Server which can then execute on the hypertext link to the following form (as depicted in FIG. client. For a browser which supports downloadable server 9b): 15 programs such as those written using Java (“applets”), or any other Such language, additional features are possible. The Java programming environment is well known in the art. See for example, P. Tyma, G. Torok, and T. Downing. Now consider, with reference to FIG. 9c, an example of “Java Primer Plus”, Waite Group Press, 1996, which is a hypertext link to a type 2 CGI program: hereby incorporated by reference in its entirety. See also Patrick Naughton, “The Java Handbook” Osborne Mcgraw the state to be retrieved from the client. where the “numargs=1' argument 970 indicates to convert2 Another application of downloadable Server code to the that the CGI program 950 initially only had 1 argument present invention would be to allow the converter 416 to passed to it and the remaining arguments are State variables run on the client. Here, clients would download all or part of 930" passed by the converter. The modified output is then the 'converter logic 416 from the server 410' to the client for returned to the requesting client. In step 813, the client 450 execution. This would allow the full functionality of the receives HTML file h from the server 410'. Every hypertext 35 present invention with all (or part of) the processing taking link (with the exception of hypertext links resulting from place locally on the client 450. The client no longer has to type 1 CGI programs) returned to the client is now a call to go through a remote Server to filter HTML pages during a the convert2 routine of the converter. In step 814 the client conversation; all of the filtering takes place locally. An 450 running browser 460 selects one of the hypertext links. advantage here is that the load on the Server is reduced. In In step 815, the server determines if the selected hypertext 40 addition, the client will be able to continue conversations link is a call to convert2. If yes, the proceSS continues at Step even if the server from which the client obtains the applet 817. In step 817, there are two possibilities: goes down or becomes unavailable due to a network failure. (1) The URL passed to convert2 references an HTML file. Other Embodiments Here, the process continues at step 819. Suppose, for Preserving State on Multiple Communicating Servers example, the client had Selected the following link: 45 Those skilled in the art will appreciate that within the Scope of the present invention multiple converters may be an airline reservation system over the Web might have a In step 819, convert2 fetches the HTML page contained in converter (converter A) for maintaining State. One of the the file “mail.html. It then passes the HTML page and the 50 hypertext links might be to a hotel booking System on a state arguments x=32 y=45 to the convert1 module of the remote server with its own converter (converter H). A client converter and the proceSS returns to Step 811, as described might begin using the airline reservation System. At Some previously, or, point, State information is attached to the conversation. The (2) The hypertext link is a call to a CGI program. In this client then follows a hypertext link to the hotel booking case, the proceSS continues to Step 818. Suppose, for 55 System. Converter A continues to maintain State information example, the client had Selected the following link: while the client is using the hotel booking System. All State variables are propagated to the hotel booking System's CGI programs. These remote Server CGI programs might simply ignore these state variables. On the other hand, if the hotel 60 booking System understands the State variables from the Here, the Second argument to convert2, numargS=1, indi airline reservation Systems, these variables could be used by cates that the initial hypertext link only passed one argument the hotel booking system (converter H). to “prog”, i.e., “arg1=55'. The other two arguments, “x=32” At Some point, the hotel reservation System server may and “y=45”, are state variables which were embedded by the invoke its converter (converter H) to embed additional state converter 416. Convert2 passes all three arguments to prog, 65 variables. When this happens, the call to converter H may be including the State variables. The process then returns to Step nested within the call to converter A. This will not present 811, as described previously. problems. CGI programs will now be passed arguments 5,961,601 17 18 from both converter A and converter H. If converter A has Services from one or more Servers which are networked via the ability to recognize a CGI function representing a call to a StateleSS protocol to the client, Said Services including one converter H, additional things are possible: or more of data and programs which the client may request, (1) Converter A could treat converter H as a type I CGI wherein the conversation is a Sequence of communications program as discussed previously. In this case, converter A 5 between the client and one or more Servers for Said Services can Stop monitoring future hypertext links in the conversa wherein each response from the Server includes one or more tion. continuations which enable another request for Said Services (2) Converter A could treat converter H as a type II CCI and wherein the client must invoke one of the continuations program and continue to modify hypertext linkS. In addition, to continue the conversation, the method comprising the converter A could add special links to future HTML pages Steps of which would allow the user to escape from the control of the client initiating the conversation with the Server using either converter. the StateleSS protocol; Other Examples of Dynamic Page Modification detecting when the request for a Service requires preser The present invention also has features which provide a Vation of the State information; system and method for filtering all HTML text viewed by a performing Said Service and identifying all continuations client while the client is browsing HTML files in a conver 15 in an output from Said Service, in response to Said Step sation. For example, Suppose that a client has contacted a of detecting, server and started a conversation. The server wishes to filter all HTML text and leave out phrases and hypertext links recursively embedding the State information in all iden which have been determined to be objectionable. The tified continuations, and present invention provides a method for filtering and/or communicating the output to the client, in response to Said modifying HTML text while a client accesses files and Step of embedding, wherein the State information is programs which may be remote to the Server doing the preserved and provided to all Services for the duration filtering. of the conversation. The present invention can be applied to a wide variety of 2. The method of claim 1, wherein said step of embedding applications where HTML pages need to be modified during 25 is performed by the Server and Said Step of communicating a conversation. For example, Suppose that a Server applica is in response to Said Step of embedding. 3. The method of claim 2, further comprising the step of tion wishes to filter all HTML pages which are passed to a Storing at least part of the State information in a memory client in a conversation. The converter could modify and/or coupled to the Server and wherein Said Step of embedding remove undesirable parts of HTML pages before sending includes embedding an indeX representing Said part of the them to the client. The converter would merely have to be State information in Said all identified continuations. modified to search text for different substrings. Note that the 4. The method of claim 1, further comprising the step of converter can censor pages and output from CCI programs dynamically downloading computer program code to the which reside on remote Servers. If the client can download client to perform said Step of embedding which is responsive programs from the Server written in a language Such as Java, to Said Step of communicating the output to the client. the converter doing the censoring can execute on the client. 35 5. The method of claim 4, further comprising the step of AS another example, Suppose that a client 450 is in a Storing at least part of the State information in a memory conversation where the names of major corporations appear coupled to the client and wherein Said Step of embedding frequently in the text. A server 410' running a converter 416 includes embedding an indeX representing Said part of the has access to a database 475 of home page URL's for major State information. corporations. The Server wishes to add hypertext links each 40 time the name of a company in the database appears in an 6. The method of claim 1, further comprising the steps of: HTML page. For example, each time the name IBM or the client Selecting a Second continuation from Said all International BusineSS Machines appears in an HTML page, identified continuations with embedded state informa the server would like to convert the reference to a hypertext tion; and link to IBM's home page. By doing this, the client would be 45 restoring the State information from Said Second continu able to obtain useful information about companies appearing ation and invoking an associated Second Service with in the conversation by pointing and clicking. This can be restored State information; accomplished by modifying the converter 416 to search recursively identifying and embedding the State informa HTML pages for all company names which appear in the tion in all continuations associated with an output from database. Whenever Such a name is found, a hypertext link 50 Said Second Service. to the company's home page would be inserted into the 7. The method of claim 1, further comprising the step of HTML text returned to the client. The converter 416 can correlating the State information to a specific conversation. continue to monitor the conversation in the event that 8. The method of claim 1, wherein the client and the hypertext links are followed to remote Servers. AS noted server are networked via the World Wide Web, the stateless above, if the client can download programs from the Server 55 protocol is hypertext transfer protocol, and the continuations written in a language Such as Java, the converter can execute are hyperlinks to one of hypertext markup language files and on the client. common gateway interface programs. Now that the present invention has been described by way 9. The method of claim 8, further comprising the step of of a preferred embodiment, with alternatives, various filtering one of Said hyperlinks and data output from Said improvements will occur to those of skill in the art. Thus, it 60 Services according to a predetermined criteria. should be understood that the preferred embodiment has 10. The method of claim 8, further comprising the step of been provided as an example and not as a limitation. The adding one of Said hyperlinks and data to Said output from Scope of the invention is properly defined by the appended Said Services according to a predetermined criteria. claims. 11. The method of claim 8, wherein said step of embed What is claimed is: 65 ding further comprises the Step of: 1. A computerized method for preserving State informa modifying an identified continuation which is a request tion in a conversation between a client adapted to request for an HTML file to invoke a CGI converter program 5,961,601 19 20 with the identified continuation and the State informa 18. A program Storage device readable by a computer, tion passed as arguments. tangibly embodying a program of instructions executable by 12. The method of claim 8, wherein said step of embed the computer to perform method steps as claimed in claim ding further comprises the Step of: 14, further comprising the Step of Storing at least part of the modifying an identified continuation which is an invoca State information in a memory coupled to the client and tion to a CGI program with the identified continuation wherein Said Step of embedding includes embedding an and the State information passed as arguments, wherein indeX representing Said part of the State information. said step of embedding is performed by the CGI 19. A program Storage device readable by a computer, program. tangibly embodying a program of instructions executable by 13. The method of claim 8, wherein said step of embed 1O the computer to perform method steps as claimed in claim ding further comprises the Step of: 14, further comprising the Steps of: modifying an identified continuation which is an invoca the client Selecting a Second continuation from Said all tion to a CGI program to invoke a CGI converter identified continuations with embedded state informa program with the identified continuation, an argument tion; and counter which indicates a number of arguments asso 15 restoring the State information from Said Second continu ciated with the CGI program, and the State information ation and invoking an associated Second Service with passed as arguments, wherein Said Step of embedding is restored State information; performed by the converter program. recursively identifying and embedding the State informa 14. A program Storage device readable by a computer, tion in all continuations associated with an output from tangibly embodying a program of instructions executable by Said Second Service. the computer to provide a method for preserving State 20. A program Storage device readable by a computer, information in a conversation between a client adapted to tangibly embodying a program of instructions executable by request Services from one or more Servers which are net the computer to perform method steps as claimed in claim worked via a StateleSS protocol to the client, Said Services 14, further comprising the Step of correlating the State including one or more of data and programs which the client 25 information to a specific conversation. may request, wherein the conversation is a Sequence of 21. A program Storage device readable by a computer, communications between the client and one or more Servers tangibly embodying a program of instructions executable by for Said Services wherein each response from the Server the computer to perform method steps as claimed in claim includes one or more continuations which enable another 14, wherein the client and the server are networked via the request for Said Services and wherein the client must invoke World WideWeb, the stateless protocol is hypertext transfer one of the continuations to continue the conversation, the protocol, and the continuations are hyperlinks to one of method comprising the Steps of hypertext markup language files and common gateway inter the client initiating the conversation with the server using face programs. the StateleSS protocol; 22. A program Storage device readable by a computer, detecting when the request for a Service requires preser 35 tangibly embodying a program of instructions executable by Vation of the State information; the computer to perform method steps as claimed in claim performing Said Service and identifying all continuations 21, further comprising the Step of filtering one of Said in an output from Said Service, in response to Said Step hyperlinkS and data output from Said Services according to of detecting, 40 a predetermined criteria. recursively embedding the State information in all iden 23. A program Storage device readable by a computer, tified continuation; and tangibly embodying a program of instructions executable by communicating the output to the client, in response to Said the computer to perform method steps as claimed in claim Step of embedding, wherein the State information is 21, further comprising the Step of adding one of Said preserved and provided to all Services for the duration 45 hyperlinkS and data to Said output from Said Services accord of the conversation. ing to a predetermined criteria. 15. A program Storage device readable by a computer, 24. The program Storage device readable by a computer, tangibly embodying a program of instructions executable by tangibly embodying a program of instructions executable by the computer to perform method steps as claimed in claim the computer to perform method steps as claimed in claim 14, wherein said step of embedding is performed by the 50 21, wherein Said Step of embedding further comprises the Server and Said Step of communicating is in response to Said Step of: Step of embedding. modifying an identified continuation which is a request 16. A program Storage device readable by a computer, for an HTML file to invoke a CGI converter program tangibly embodying a program of instructions executable by with the identified continuation and the State informa the computer to perform method steps as claimed in claim 55 tion passed as arguments. 15, further comprising the Step of Storing at least part of the 25. The program Storage device readable by a computer, State information in a memory coupled to the Server and tangibly embodying a program of instructions executable by wherein Said Step of embedding includes embedding an the computer to perform method steps as claimed in claim indeX representing Said part of the State information in Said 21, wherein Said Step of embedding further comprises the all identified continuations. 60 Step of: 17. A program Storage device readable by a computer, modifying an identified continuation which is an invoca tangibly embodying a program of instructions executable by tion to a CGI program with the identified continuation the computer to perform method steps as claimed in claim and the State information passed as arguments, wherein 14, further comprising the Step of dynamically downloading said step of embedding is performed by the CGI computer program code to the client to perform Said Step of 65 program. embedding which is responsive to Said Step of communi 26. The program Storage device readable by a computer, cating the output to the client. tangibly embodying a program of instructions executable by 5,961,601 21 22 the computer to perform method steps as claimed in claim StateleSS protocol is hypertext transfer protocol, and the 21, wherein Said Step of embedding further comprises the continuations are hyperlinks to one of hypertext markup Step of language files and common gateway interface programs. modifying an identified continuation which is an invoca 35. The computer system of claim 34, further comprising tion to a CGI program to invoke a CGI converter filter logic for filtering one of Said hyperlinks and data output program with the identified continuation, an argument from Said Services according to a predetermined criteria. counter which indicates a number of arguments asso 36. The computer system of claim 34, further comprising ciated with the CGI program, and the State information integration logic for adding one of Said hyperlinks and data passed as arguments, wherein Said Step of embedding is to Said output from Said Services according to a predeter performed by the converter program. mined criteria. 27. A computer System for preserving State information in 37. The computer system of claim 34, wherein said step a conversation between a client adapted to request Services of embedding further comprises the Step of: from one or more Servers which are networked via a StateleSS modifying an identified continuation which is a request protocol to the client, Said Services including one or more of for an HTML file to invoke a CGI converter program data and programs which the client may request, wherein the with the identified continuation and the State informa conversation is a Sequence of communications between the 15 tion passed as arguments. client and one or more Servers for Said Services, wherein 38. The computer system of claim 34, wherein said step each response from the Server includes one or more con of embedding further comprises the Step of: tinuations which enable another request for Said Services and modifying an identified continuation which is an invoca wherein the client must invoke one of the continuations to tion to a CGI program with the identified continuation continue the conversation, the System comprising: and the State information passed as arguments, wherein the client being adapted for initiating a conversation with said step of embedding is performed by the CGI the Server using the StateleSS protocol; program. State detection logic for detecting when the request for a 39. The computer system of claim 34, wherein said step Service requires preservation of the State information; of embedding further comprises the Step of: Search logic for identifying all continuations in an output 25 modifying an identified continuation which is an invoca from Said Service, in response to Said Step of detecting, tion to a CGI program to invoke a CGI converter converter logic for recursively embedding the State infor program with the identified continuation, an argument mation in all identified continuations, and counter which indicates a number of arguments asso communication logic for communicating the output to the ciated with the CGI program, and the State information client, wherein the State information is preserved and passed as arguments, wherein Said Step of embedding is provided to all services for the duration of the conver performed by the converter program. sation. 40. A computer System for preserving State information in 28. The computer system of claim 27, wherein said a conversation between a client adapted to request Services from one or more Servers which are networked via a StateleSS converter logic is executed by the Server and Said commu 35 nication logic communicates the output with embedded State protocol to the client, Said Services including one or more of information from the server to the client. data and programs which the client may request, wherein the 29. The computer system of claim 28, further comprising: conversation is a Sequence of communications between the a memory, coupled to the Server, for Storing at least part client and one or more Servers for Said Services wherein each response from the Server includes one or more continuations of the State information; wherein Said converter logic is 40 adapted for embedding an indeX representing Said part which enable another request for Said Services and wherein of the State information in Said all identified continu the client must invoke one of the continuations to continue ations. the conversation, the System comprising: 30. The computer system of claim 27, wherein said the client being adapted for initiating the conversation communication logic communicates the output without 45 with the Server using the StateleSS protocol; embedded state information from the server to the client; State detection means for detecting when the request for a and wherein the Server is adapted for dynamically down Service requires preservation of the State information; loading Said converter logic to the client for execution. Search means for identifying all continuations in an output 31. The computer system of claim 30, further comprising: from Said Service, in response to Said Step of detecting, a memory, coupled to the client, for Storing at least part of 50 converter means for recursively embedding the State the State information; wherein Said converter logic is information in all identified continuations, and further adapted for embedding an indeX representing communication means for communicating the output to Said part of the State information. the client; wherein the State information is preserved 32. The computer system of claim 27, wherein the client and provided to all services for the duration of the Selects a Second continuation from Said all identified con 55 conversation. tinuations with embedded State information, further com 41. The computer system of claim 40, wherein said prising: converter means is executed by the Server and Said commu the converter logic being further adapted for restoring the nication means communicates the output with embedded State information from Said Second continuation, invok state information from the server to the client. ing an associated Second Service with restored State 60 42. The computer System of claim 41, further comprising: information, and recursively identifying and embed a memory, coupled to the Server, for Storing at least part ding the State information in all continuations associ of the State information; wherein Said converter means ated with an output from Said Second Service. is adapted for embedding an indeX representing Said 33. The computer system of claim 27, wherein the state part of the State information in Said all identified information is correlated to a specific conversation. 65 continuations. 34. The computer system of claim 27, wherein the client 43. The computer system of claim 40, wherein said and the server are networked via the World Wide Web, the communication means communicates the output without 5,961,601 23 24 embedded state information from the server to the client; 53. The method of claim 52, further comprising the step and wherein the Server is adapted for dynamically down of Storing at least part of the State information in a memory loading Said converter means to the client for execution. coupled to the Server and wherein embedding Step includes 44. The computer system of claim 43, further comprising: embedding an indeX representing Said part of the State a memory, coupled to the client, for Storing at least part of 5 information in Said all identified continuations. the State information; wherein Said converter means is 54. The method of claim 51, further comprising the step further adapted for embedding an indeX representing of dynamically downloading computer program code to the Said part of the State information. client to perform Said embedding Step, in response to Said 45. The computer system of claim 41, wherein the client Step of communicating the output to the client. Selects a Second continuation from Said all identified con 55. The method of claim 54, further comprising the step tinuations with embedded State information, further com of Storing at least part of the State information in a memory prising: coupled to the client and wherein Said embedding Step the converter means being further adapted for restoring includes embedding an indeX representing Said part of the the State information from Said Second continuation, State information. invoking an associated Second Service with restored 56. The method of claim 51, further comprising the steps State information, and recursively identifying and 15 of: embedding the State information in all continuations receiving a Second request associated with a Second asSociated with an output from Said Second Service. continuation from Said all identified continuations with 46. The computer system of claim 45, further comprising embedded State information; and integration means for adding one of Said hyperlinks and data restoring the State information from Said Second continu to Said output from Said Services according to a predeter ation and invoking an associated Second Service with mined criteria. restored State information; 47. The computer system of claim 40, wherein the client recursively identifying and embedding the State informa and the server are networked via the World Wide Web, the tion in all continuations associated with an output from StateleSS protocol is hypertext transfer protocol, and the 25 Said Second Service. continuations are hyperlinks to one of hypertext markup 57. The method of claim 51, wherein the client and the language files and common gateway interface programs. server are networked via the World Wide Web, the stateless 48. The system of claim 47, wherein said converter means protocol is hypertext transfer protocol, and the continuations further comprises: are hyperlinks to one of hypertext markup language files and means for modifying an identified continuation which is common gateway interface programs. a request for an HTML file to invoke a CGI converter 58. The method of claim 57, further comprising the step program with the identified continuation and the State of filtering one of Said hyperlinks and data output from Said information passed as arguments. Services according to a predetermined criteria. 49. The system of claim 47, wherein said converter means 59. The method of claim 57, further comprising the step further comprises: 35 of adding one of Said hyperlinks and data to Said output from means for modifying an identified continuation which is Said Services according to a predetermined criteria. an invocation to a CGI program with the identified 60. A program Storage device readable by a computer, continuation and the State information passed as tangibly embodying a program of instructions executable by arguments, wherein Said converter means comprises the computer to provide a method for preserving State the CGI program. 40 information in a conversation via a StateleSS protocol 50. The system of claim 47, wherein converter means between a client adapted to request Services from one or further comprises: more Servers, the method comprising the Steps of: means for modifying an identified continuation which is receiving a Service request including State information, an invocation to a CGI program to invoke a CGI via the StateleSS protocol; converter program with the identified continuation, an 45 identifying all continuations in an output from Said Ser argument counter which indicates a number of argu Vice and recursively embedding the State information in ments associated with the CGI program, and the State all identified continuations, in response to Said request; information passed as arguments, wherein Said con and verter means comprises the converter program. communicating a response including the continuations 51. A computerized method for preserving State informa 50 and embedded State information, wherein the continu tion in a conversation via a StateleSS protocol between a ations enable another Service request and one of the client adapted to request Services from one or more Servers, continuations must be invoked to continue the conver the method comprising the Steps of sation. receiving a Service request including State information, 61. A program Storage device readable by a computer, via the StateleSS protocol; 55 tangibly embodying a program of instructions executable by identifying all continuations in an output from Said Ser the computer to perform method steps as claimed in claim Vice and recursively embedding the State information in 60, wherein said step of embedding is performed by the all identified continuations, in response to Said request; Server and Said Step of communicating is in response to Said and Step of embedding. communicating a response including the continuations 60 62. A program Storage device readable by a computer, and embedded State information, wherein the continu tangibly embodying a program of instructions executable by ations enable another Service request and one of the the computer to perform method steps as claimed in claim continuations must be invoked to continue the conver 60, further comprising the Step of Storing at least part of the sation. State information in a memory coupled to the Server and 52. The method of claim 51, wherein said embedding is 65 wherein Said Step of embedding includes embedding an performed by a Server and Said Step of communicating is in indeX representing Said part of the State information in Said response to Said embedding Step. all identified continuations. 5,961,601 25 26 63. A program Storage device readable by a computer, recursively identifying and embedding the State informa tangibly embodying a program of instructions executable by tion in all continuations associated with an output from the computer to perform method steps as claimed in claim Said Second Service. 60, further comprising the Step of dynamically downloading 66. A program Storage device readable by a computer, computer program code to the client to perform said step of 5 tangibly embodying a program of instructions executable by embedding which is responsive to Said Step of communi the computer to perform method steps as claimed in claim cating the output to the client. 60, wherein the client and the server are networked via the 64. A program Storage device readable by a computer, World WideWeb, the stateless protocol is hypertext transfer protocol, and the continuations are hyperlinks to one of tangibly embodying a program of instructions executable by hypertext markup language files and common gateway inter the computer to perform method steps as claimed in claim face programs. 60, further comprising the Step of Storing at least part of the 67. A program Storage device readable by a computer, State information in a memory coupled to the client and tangibly embodying a program of instructions executable by wherein Said Step of embedding includes embedding an the computer to perform method steps as claimed in claim indeX representing Said part of the State information. 66, further comprising the Step of filtering one of Said 65. A program Storage device readable by a computer, 15 hyperlinkS and data output from Said Services according to tangibly embodying a program of instructions executable by a predetermined criteria. the computer to perform method steps as claimed in claim 68. A program Storage device readable by a computer, 60, further comprising the steps of: tangibly embodying a program of instructions executable by receiving a Second request associated with a Second the computer to perform method steps as claimed in claim continuation from Said all identified continuations with 66, further comprising the Step of adding one of Said embedded State information; and hyperlinkS and data to Said output from Said Services accord restoring the State information from Said Second continu ing to a predetermined criteria. ation and invoking an associated Second Service with restored State information; k k k k k