gocr ep0747840-001
(PICTURE)(PICTURE) (PICTURE)Europäis hes Patentamt (1 9) (PICTURE) European Patent Offi_e (PICTURE) Offi_e euroPéen des brevets (1 1 ) E _ O _4_ 84O B_ (1 2) EUROPEAN PATENT _PECl FICATlON (45) Date of pUbliCation and mention (51 ) _nt C_.7_. _O6F _ _J3O of the grant of the patent_. 3O.O8.2OOO Bulletin 2OOOl35 (21 ) Application number_. 961 O8974.5 (PICTURE)(22) Date of filing_. O5.O6.1996 (54) A method for fulfilling requests of a web browser Verfahren, um Anträge eines Netzbrowsers auszuführen (PICTURE)(PICTURE) Procédé pour accomplir des requêtes d'un browser de réseau __ O _ OO h _h Note.. w._th._n n._ne months from the pub_._Cat._on of the ment._on of the grant of the European patent, any person may g._ve o nOtiCe tO the EUrOpean Patent OffiCe Of OppOSitiOn tO the EUrOpean patent granted. NOtiCe Of OppOSitiOn Shall be filed in ii a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. w (PICTURE)99(1 ) European Patent Convention). Printed by Jouve, 75OO1 PARIS (FR)
gocr ep0747840-002
EP O 747 84O B1 Des_ription Copyright Authorization 5 [OOO1] A portion of the disclosure of this patent document contains material which is subject to copyright protection. The owner, International Business Machines Corporation, has no objectionto the facsimile reproduction by any one of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records of any country, but otherwise reserves all rights whatsoever. 1O Fl ELD OF THE l NVENTlON [OOO2] This invention is related to computers and computer systems and particularly to a method and system for use of the World Wide Web and other sources of information and for utilization of existing equipment advantageously for web server data access over networks and the Internet. 15 RELATE D APPLl CATlONS [OOO3] This application entitled ''A Web Browser System'', is related to other United States of America Patent appli- cations filed concurrently herewith, and specifically to the applications entitled ''Computer Network for WWW Server 2O Data Access over lnternet'', EP-A-O 747 845_, and ''A Service Agent for Fulfilling requests of a Web Browser'', US-A-5 752 246, filed June 7, 1 995; and ''A Sub-Agent Service Agent for Fulfilling Requests of a Web Browser'', EP-A-O 747 841 ; and ''A Method for Fulfilling Requests of a Web Browser'' E P-A-O 747 843; and ''A Method for Distributed Task Fulfillment of Web Browser Requests'', EP-A-O 747 844. [OOO4] These applications have a common assignee; International Business Machines Corporation, Armonk, New 25 york. G LOSSARY OF TE RMS [OOO5] While dictionay meanings are also implied by certain terms used here, the following glossay of some terms 3O may be useful. World Wide Web (WWW) The Internet's application that lets people seeking information on the Inter- net switch from server to server and database to database by clinking on highlighted words or phrases of interest. An Internet WWW server supports 35 clients and provides information. Home page A multi-media table of contents that guides a web user to stored information about an organization on the Internet. 4O Gopher A menu-based search scheme, which as developed at the University of Min- nesota, lets a user reach a destination on the Internet by selecting items from a series of text menus. Access Agent A logical component that provides support for different access protocols and 45 data streams -- Frame Relay, HDLC (High Data Link Control) CBO (Contin- uous bit Operations, ATM (Asynchronous Transfer Mode), or TCP/l P. Application Processing Agent A data processing agent running in a server data processing system which performs tasks based on received requests from a client in a distributed 5O environment. ln our preferred embodiment, our application processing agent for database retrieval is our DIS server, a data interpretation system server and database gateway which is coupled to our web server HTTPD via a network. In our preferred embodiment an application processing agent employs executable object programs as command file objects, which in the 55 preferred embodiment are capsule objects. APl (Application Programming Interface) A functional interface supplied by the operating system or by a seperately licensed program that allows an application program written in a high-level 2
gocr ep0747840-003
EP O 747 84O B1 Ianguage to use specific data or functions of the operating system or the licensed program. (IBM Dictionary of Computing, International Edition, 1 994) An APl is the set of programming language constructs or statements that can be coded in an application program to obtain the specific functions 5 and services provided by an underlying operating system or service pro- gram. Client A client is a computer serviced by the server which provides commands to the server. 1O Data Interpretation System (DIS). IBM's object oriented decision support tool. Capsule A DIS capsule is a program created by a DIS programmer and executed in the DIS environment. A DIS capsule is a preferred example of a capsule 15 object. A capsule object is a specialized form of a command file (which is a list of commands to be executed, as in an EXEC or *.BAT batch file. The capsule object is created with an object environment, as is supplied by l BM's DIS. Other object environments are IBM's SOM and DSOM, and Microsoft's COM environment. 2O Internet The connection system that links computers worldwide in a web. Server A machine which supports one or more clients and is part of the web. Any computer that performs a task at the command of another computer is a 25 se_er. Slip or PPP connection. Serial-line Internet protocol and point-to-point protocol, respectively, for pro- viding a full access connection for a computer to the Internet. 3O TCP/IP Transmission control protocol/lnternet protocol. A packet switching scheme the Internet uses to chop, route, and reconstruct the data it handles, from e-mail to video. InterNetwork Routing (l NR) The link between systems which routes data from one physical unit to an- 35 other according to the applicable protocol. The protocol will employ a URL address for Internet locations. URL Universal resource locater, a Web document version of an e-mail address. URLs are very cumbersome if they belong to documents buried deep within 4O others. They can be accessed with a Hyperlink. Web browser An program running on a computer that acts as an Internet tour guide, com- plete with pictorial desktops, directories and search tools used when a user ''surfs'' the Internet. In this application the Web browser is a client service 45 which communicates with the World Wide Web. HTTPD An IBM OS/2 Web Server or other server having Hypertext Markup Lan- guage and Common Gateway Interface. In our preferred embodiment, the HTTPD incorporates our control program agent and is supported by an ac- 5O cess agent which provides the hardware connections to machines on the intranet and access to the Internet, such as TCP/l P couplings. HTTP Hypertext transfer protocol Hypertext transfer protocol. At the beginning of a URL ''http_.'' indicates the file contains hyperlinks. 55 Hyperlink A network address embedded in a word, phrase, icon or picture that is ac- tivated when you select the highlighted tidbit. Information about that item is currently retrieved to the client supporting a Web browser. 3
gocr ep0747840-004
EP O 747 84O B1 HyperText Markup Language (HTML) HTML is the language used by Web servers to create and connect docu- ments that are viewed by Web clients. HTML uses Hypertext documents. Other uses of Hypertext documents are described in U.S. Patents 5,2O4,947, granted April 2O, 1 993 to Bernstein et al.; 5,297,249, granted 5 March 22, 1 994 to Bernstein et al.; 5,355,472, granted October 11 , 1 994 to Lewis; all of which are assigned to International Business Machines Corpo- ration, and which are referenced herein. BACKGROUND OF THE l NVENTlONS 1O [OOO6] The Internet is not a single network, it has no owner or controller, but is an unruly network of networks, a confederation of many different nets, public and private, big and small, that have agreed to connect to one another. An intranet is a network which is restricted and while it may follow the Internet protocol, none or only part of the network available from outside a ''firewall'' surrounding the intranet is part ofthe agreed connection tothe Internet. The composite 15 network represented by these networks relies on no single transmission medium, bi-directional communication can occur via satellite links, fiber-optic trunk lines, phone lines, cable TV wires and local radio links. When your client computer logs onto the Internet at a university, a corporate office or from home, eveything looks local, but the access to the network does cost time and line charges. [OOO7] Until recently, ''cruising or surfing'' the Internet was a disorienting, even infuriating experience, something like 2O trying to navigate without cha_s. The World Wide Web, a sub-network of the lnternet, introduced about two years ago, made it easier by letting people jump from one server to another simply by selecting a highlighted word, picture or icon (a program object representation) about which they want more information -- a maneuver known as a ''hyperlink''. In order to explore the WWW today, the user loads a special navigation program, called a ''Web browser'' onto his com- puter. While there are several versions of Web browsers, l BM's example is the new WebExplorer which offers users 25 of l BM's OS/2 Warp system software a consistent, easy to use desktop of pictorial icons and pull down menus. As part of a group of integrated applications available from l BM for OS/2 Warp called the IBM Internet Connection, lets users Iog onto the Internet. [OOO8] To this point the World Wide Web (Web) provided by Internet has been used in industry predominately as a means of communication, advertisement, and placement of orders. As background for our invention there now exists 3O a number of Internet browsers. Common examples are NetScape, Mosaic and l BM's Web Explorer. Browsers allow a user of a client to access servers located throughout the world for information which is stored therein and provided to the client by the server by sending files or data packs to the requesting client from the server's resources. An example of such a request might be something called GSQL (get SQL) which was a NCSA language and CGl server program developed to getting textual results for a client caller. Developed by Jason Ng at the University of Illinois, this document 35 provided a way to map SQL forms against a database, and return the textual results to the client caller. This system is unlike the present invention, and presents difficulties which are overcome by our described system. [OOO9] These servers act as a kind of Application Processing Agent, or (as they may be referred to) an ''intelligent agent'', by receiving a function request from a client in response to which the server which performs tasks, the function, based on received requests from a client in a distributed environment. This function shipping concept in a distributed 4O environment was first illustrated by CICS as a result of the invention described in U.S. Patent 4,274, 1 39 to Hodgkinson et al. This kind of function, illustrated by CICS and its improvements, has been widely used in what is now known as transaction processing. However, servers today, while performing many functions, do not permit the functions which we have developed to be performed as we will describe. [OO1 O] Now, ''surfing'' the Internet with the WWW is still a time consuming affair, and the information received is not 45 generally useful in the form presented. Even with 1 4,4OO baud connection to the lnternet much line time is tied up in just keeping going an access to the Internet, and the users don't generally know where to go. Furthermore the coupling of resources available on a company's intranet and those available on the Internet has not been resolved. There is a need to reduce gateways, make better use of existing equipment, and allow greater and more effective usage of in- formation which is resident in many different databases on many different servers, not only within a homogeneous 5O network but also via the lnternet and heterogeneous network systems. [OO11] The problems with creating access to the world via the Internet and still to allow internal access to databases has been enormous. However, the need for a system which can be used across machines and operating systems and differing gateways is strongly felt by users of the Internet today. Anyone who has spent hours at a WWW browser doing simple task knows how difficult it still is to navigate through arcane rules without knowing where to go and even if you 55 know what you are doing spending hours doing routine tasks. Many needs exist. As one important instance, until now we know of no way to access data on multiple databases of different types using a single user request from a client. This and other difficulties are solved by our invention. 4
gocr ep0747840-005
EP O 747 84O B1 SUMMARY OF THE INVENTlONS [OO12] In accordance with our invention as defined in the appended claims needless user intervention is eliminated or greatly reduced with a Web server supporting an HTTPD which is provided with the capabilities of ourcontrol program 5 agent which organizes sub-agents supporting command file objects or capsules to perform tasks in support of a Web browser's request for service as programmable functions receiving parameters as input and providing as their output handled by the control program agent task completed results for reporting in accordance with the Web browser request in the form and to the location determined by a request and handling these request without needless user intervention. [OO13] In accordance with our invention, we have created a way to allow Web users to request information that is 1O created by a data interpretation system (DIS) and then presented by a web server to the user of the web. Our solution provides a way of requesting and processing and presenting information on the Web. In the process, data is retrieved from multiple sources which may be located remotely and accessed via an intranet routing and via the Web Internet and processed by our decision support capsules. Now companies and universities, and other users that want to access data located on different databases, want that data processed and formatted, and presented in a form the user desires, 15 such as a graphical format. Our solution permits users to access information from various sources and obtain infor- mation at a desired location as a result of a single request which is responded to by an organization of facilities and command file sub-agent decision support capsule objects by our command program agent. Users of the information can be internal to a company, or external. The result can be furnished to a user at a location which is internal or external to the company, and as specified at a specified location with a form and format desired. This allows a report to be 2O managed by the web support services we provide, and in a form consistent with the request, but without requiring a consistent interface solution. [OO14] In order to create a way for Web users to request information generation we provide a web server with a control program agent which is linked to a decision support tool of a data interpretation system server, the application processing agent, and then have that server retrieve, process, and format information which is presented to the user 25 on the Web by the Web server. ln our preferred embodiment, we have provided a link between a Hype_ext Markup Language (HTML) document using a common gateway interface, and open data interpretation system server (ODAS). As a result, Web clients can request DIS reports to be generated, specify the parameters to be used in generating the reports, and then view the report results on a Web home page. The DIS capsule can generate graphical information, such as colored pie charts, line graphs, bar graphs, and other forms of generated information. Since the Web server 3O is capable of presenting the results in desired formats, the full capabilities of a DIS report are utilized. [OO15] Our invention provides a method and system for allowing a user of a client to access and assemble information structured and reported to the user in accordance with his desires, selecting information for disparate servers which are located within a network can be an intranet or internal network, such as a LAN or WAN not normally accessible to the Internet, or coupled to the Internet. In accordance with our invention one can access data on multiple databases 35 of different types using a single user request from a client. We also allow the facility for providing specialized specific requests to be created for routine use, as well as the facility to formulate generalized or specialized ad hoc requests. In addition, we provide besides query and update capability, the ability to perform calculations with respect to any retrieved data, to format the information in text or in graphics, and the facility of presenting the results to the client for display or other use. 4O [OO16] The improvements which we have made achieve a means for accepting Web client requests for information, obtaining data from one or more databases which may be located on multiple platforms at different physical locations on an Internet or on the Internet, processing that data into meaningful information, and presenting that information to the Web client in a text or graphics display as a location specified by the request. [OO17] Our invention of providing a web server with a control program agent allows organization of decision support 45 functions to be executed by application processing agent servers located throughout the lnternet to gather and supply information not presently available with any existing resources without the need of endless intervention on the part of a requesting user of the WWW; further enabling an ordinary user to take advantage of expertise which is provided by programmable sub-agents developed by those with particular expertise in a given area as well as enabling use of standard routines commonly needed. 5O [OO18] These improvements are accomplished by providing for Web clients to request information from an application processing agent in which the application processing agent server performs tasks based on received requests from a client in a distributed environment by a web server supported by an access agent link and control program agent which in turn causes a decision support function to be executed by the application processing agent server. This is performed within the distributed environment by the application processing agent server which forms part of a network coupled 55 to and under control of the control program agent. According to our invention the decision support function is provided by a data interpretation system which functions as part of the application processing agent and the decision support function is programmable and generated by a data interpretation system, DIS or other decision support element per- forming similar functions, and provided in a form accessible to our control program agent which presents the output 5
gocr ep0747840-006
EP O 747 84O B1 generated to be presented to the user on the Web who made the initial request. We have provided, in a preferred embodiment, a link between l BM's Hypertext Markup Language (HTML), the Common Gateway Interface (CGl), and the Open DIS Access Server (ODAS), all of which may be used on machines which are are commercially available from IBM. In order to write additional functions which develop our invention, the reader is referred to the Medaphor 5 Data Interpretation System publication ''Developing Applications with OpenDIS Access Service, Version 2.O, available from IBM, First Edition (September 1 994) Part Number 31 5-OOO2-O1 which is incorporated herein by reference. [OO19] Our improvements relating to our control program agent is in accordance with our preferred embodiment is normally installed on an l BM HTTPD which is an l BM OS/2 Web Server or other server having Hypertext Markup Language and Common Gateway Interface. In our preferred embodiment, the HTTPD incorporates our control program 1O agent and is supported by an access agent which provides the hardware connections to machines on the intranet and access to the Internet, such as TCP/l P couplings. The hardware for the Web server is thus a workstation, such as l BM's PS/2 model 8O with OS/2. However, the HTTPD can be installed in PCs and upwardly also in machines which range across l BM's line of computers from powerful personal computers to mainframe systems which support MVS, l BM's operating system which enables multiple kinds of operating systems, including ''UNIX'' to co-exist on a single 15 platform. As a result of our invention Web clients can request DlS repo_s to be generated by the application processing agent specifying the parameters to be used in generating the reports, and then as a result of the request receive a result which is presented, as a visual display or otherwise, on a Web page for use by the requesting user. Our machine implementation allows a user having DIS access to generate graphical information such as colored pie charts, line graphs, bar graphs, etc. Since Web browsers such as IBM's Web Explorer are capable of displaying these formats, all 2O the functions which can be created by a DlS capsule can be utilized by a user of our invention. [OO2O] According to our improved method, an Internet World Wide Web user connects to a Web server through the use of a Web browser. In accordance with our preferred embodiment, we use HTML as the language used by Web servers to create and connect documents that are viewed by Web clients. HTML is an example of a hypertext language having the facility of clicking on a highlighted word, string of words, or image in orderto move to another HTMLdocument 25 or invoke a program on the se_er. An example of a Web client would be a machine used by a person using l BM's Web Explorer product. In using our invention a user may click on the hypertext in a document to reference a function which will be provided by an application processing agent server. The user is able to connect to another document that may be on another Web server. HTML commands are used to reference other documents. HTML is used to reference programs available on a server, and pass parameters to those programs. The application processing agent server 3O executes a program when it is referred to by a Web client via a control program agent resident, preferably, in a Web SerVer. [OO21] The Web client selects the information that they wish to view by using the HTML created page, the Web server takes the client request and passes it to a C program implementation of our control program agent. Web servers, such as HTTPD for OS/2, with our control program agent are able to provide access to executable programs through the 35 use of the Common Gateway Interface (CGl). When a program is referenced by the HTML, any parameters are passed to the program and it is executed. In our preferred embodiment we have used CGl to invoke programs that we have developed that will interface with the DIS product. CGl is an example of a software gateway from a Web server to programs outside the Web server application. [OO22] The control program agent that is called in this instance by the Web server through the CGl interface, passes 4O the Web client request along to a data interpretation system DIS via a Open Dis Access Server ( ODAS ). ODAS is a feature of a data interpretation system DIS that allows programs to initiate DIS functions, such as invoking DIS capsules. Our control program agents interface with DIS through ODAS to submit DIS capsules for execution. DIS capsules are basically programs that DIS application programmers create with the DIS programming language. In accordance with our invention, we have written capsules which are executed as a DIS capsule on a server to gather data from one or 45 more databases, process that data, and create a report in one of many formats, which we will describe by way of example. After the DIS capsule completes executing, in accordance with our preferred embodiment, the results that are generated during execution of a capsule are stored in a file on the application processing server. [OO23] After DIS creates a file that contains the formatted report results, our control program agents program dy- namically creates HTMLtags to present the formatted report backtothe Web client on the Internet. Our control program 5O agents using the CGl inte_ace can create HTML commands dynamically. ln this way a program can present information on a Web browser for the Web client. [OO24] After the DIS capsule has created the file containing the report request results, the control program creates HTML statements dynamically that display the report results to the Web browser. [OO25] Alternative means of presenting the data are shown by alternative routing. The user requesting the report 55 may wish to have the repo_ results sent to another location in addition to or instead of displaying the report results to the Web browser. This information is provided during the request phase. As a result of the alternative report request, and according to the parameters indicated therein, the report results can be sent by the control program via electronic mail, i.e. TCP/IP Sendmail facility and Lotus Notes, to one or more locations on the Internet. The report results can be 6
gocr ep0747840-007
EP O 747 84O B1 sent as a file and as a note. The request can request a voice response, which can be routed to a voice response unit. Thus, with a call to a translator, the text can be converted to voice, and even translated along the way. The report results can also be sent to a fax machine, or to a computer that has the capability of receiving fax data. [OO26] We use these report concepts to present report files created by DIS capsules on the Web client display. 5 [OO27] These and other improvements are set forth in the following detailed description. For a better understanding of the invention with advantages and features, refer to the description and to the drawings. BRIEF DESCRIPTlON OF THE DRAWl NGS 1O [OO28] FIGURE 1 shows schematically an overview of the preferred embodiment and particularly shows a typical distributed computer system which has internal and external networks including the Internet to connect clients to World Wide Web servers and other servers within the system in which our invention is situate. [OO29] FIGURE 2 shows a inquiry screen (home page) which is displayed on a client after the client is coupled to its server (which may be an Internet server) by a Web browser. 15 [OO3O] FIGURE 3 is a next screen which illustrates how a request is made according to a users desires, making a request in accordance with our invention with an input screen shown. [OO31] FIGURE 4 is a sample result screen which is returned to the client after the requested service is provided by the computer system network in accordance with our invention formatted according to the specifications of a DIS capsule. 2O [OO32] FIGURE 5 is a next screen which illustrates how a request is made according to a users desires, making a request in accordance with our invention by selection from a menu and through the use of image mapping. [OO33] FIGURE 6 is an example of a graphical result screen which is returned to the client after the requested service is provided by the computer system network in accordance with our invention. [OO34] FIGURE 7 illustrates a flowchart showing data flow between a web server and decision support system tool 25 such as IBM's Data Interpretation System (DIS), and shows the coupling of a Web client to a Web server and the coupling of a request to execute a DIS capsule and the coupling within the Web server from ODAS to a distributed DIS LAN with heterogeneous connections to multiple databases. [OO35] FIGURE 8 illustrates as a flow chart the functions of the control program for the web server. [OO36] FIGURE 9 illustrates by way of example a DIS capsule that creates a text report file. 3O [OO37] FIGURE 1 O illustrates by way of example a DIS capsule that creates a graphical report file. [OO38] FIGURE 1 1 illustrates an alternative configuration of the network system as it may be employed for permitting access to information available through homepages and in data warehouses where access to the homepage or data- base may or may not be restricted by a firewall. [OO39] (Note_. For convenience of illustration, in the formal drawings FIGURES may be separated in parts and as a 35 convention we place the top of the FIGURE as the first sheet, with subsequent sheets proceeding down and across when viewing the FIGURE, in the event that multiple sheets are used.) [OO4O] Our detailed description explains the preferred embodiments of our invention, together with advantages and features, by way of example with reference to the following drawings. 4O DETAl LED DESCRl PTlON OF THE lNVENTlON [OO41] Figure 1 illustrates a information delivery solution of a typical combination of resources including clients and servers which may be personal computers orworkstations as clients, and workstations to mainframe servers as servers. The various elements are coupled to one another by various networks, including LANs, WANs, and other networks, 45 which may be internal SNA networks or other like internal networks, and also providing access to the lnternet, which couples the system to the world via Internet. The Preferred Embodiment 5O [OO42] Turning now to our invention in greater detail, it will be seen from FIGURE 1 that our preferred embodiment provides a Web browser 1 O, which is coupled to a Web server 1 1 . Our Internet WWW browser is an intelligent computer system, such as an IBM PS/2, or other computer, an l BM ThinkPad, an RS/6OOO works as well and connections are made to the network via OS/2 WARP Connect, an IBM product. The Internet Web browser in the intelligent computer system which performs the Web browser function has IBM Web Explorer, or NetScape or Mosaic installed thereon. 55 This computer system 1 O is bi-directionally coupled with the OS/2 WARP Connect facility over a line or via a wireless system to our preferred computer system which we call our Web server. This system is a PS/2 or RS/6OOO or other similar system which includes our control program agent 73, which will be discussed below. Web server 1 1 , in our preferred embodiment is coupled again bi-directionally via a line or wireless coupling to a computer system, such as 7
gocr ep0747840-008
EP O 747 84O B1 a PS/2 or RS/6OOO or other server which supports and performs the server function of ODAS server 1 2, which is coupled to the distributed DIS network, here shown as LAN 1 3. ODAS 1 2 may be located on the same server as the Web server 1 1 or be located at a separate service machine, such as an l BM Digital Server. The Web server is logically coupled to our application processing agent server via a network. We call our application processing agent server a 5 DIS File server 1 4 because is comprises a data interpretation system which supports the decision support functions we provide which is today most inexpensively provided by an l BM computer system which supports OS/2. In our preferred embodiment, the intranet network is a LAN. Thus the components of the DIS LAN 1 3 comprise a DIS File Server 1 4, a general purpose workstation 1 5 which can be used for capsule development, a local database server 1 6, a Capsule Server 1 7 for storing a plurality of DIS capsules ready for user, a Database Gateway Server 1 8 which 1O performs the gateway functions to access databases which are linked to it, these databases include geographically distributed databases which can be located, for instance, in Chicago, New York, Dallas, Los Angeles, and each of which can be a different supported database, such as DB2 database 1 9, ORACLE database 2O, Sybase database 21 , Redbrick database 22. In our preferred embodiment all servers are coupled with a conventional LAN or WAN connec- tion, with a preferred IBM token ring shown. Reference should also be had to our alternative preferred embodiment 15 discussed below with respect to FlGURE 1 1 . [OO43] Thus, in connection with the preferred embodiment of FIGURE 1 as well as with respect to FIGURE 11 it would be appreciated from the schematic overview illustrated by FIGURE 1 and FIGURE 11 that our invention may be employed in a distributed computer system environment which has internal or intranet networks represented in our preferred embodiment by the DIS Network 1 3 and external networks including the Internet to connect clients to World 2O Wide Web servers and other se_ers within the system in which our invention is situate. Our invention makes use of the entire network. The Web browser 1 O can make a request to the Web Server 1 1 for a report. The Web server 1 1 with the facilities we provide causes the application processing agent which includes our DIS server 1 4 and its sup- porting communication server, the database gateway server 1 8, to act as an agent to gather data from one or more of the multiple databases, including the local database 1 6, DB2 database 1 9, ORACLE database 2O, Sybase database 25 21 , Redbrick database 22. Further details with respect to the use of our invention for database retrieval of information from multiple databases are provided as to the actions of the application processing agent functions of the database server(s) 1 8 with reference to FIGURE 7. [OO44] Thus, returning to our simplified and preferred embodiment, FIGURE 2 shows a inquiry screen (home page) 29 in the form which is displayed on a client after the client is coupled to its server (which may be an Internet Web 3O server 1 1 ) by a Web browser 1 O. The entire screen contains information and a plurality of objects. Once the home page is displayed, with appropriate descriptive guidance as illustrated by the FIGURE 2, the user can interact, for example, by clicking on image objects 3O, 31 , 32, 33, 34. As a example should the user want to make a special request in accordance with our invention, he could click on image 3O. This would take the user to the next screen, illustrated by FIGURE 3. Alternatively the user could select by clicking on image 31 another menu screen, illustrated by FIGURE 35 5. At this point also, a specialized format could be selected by double clicking first on a format select image illustrated by image objects representing access to menu screens 32, 33, 34, one or more of which a gopher. [OO45] The use of selection of icon image object is a function provided by HTML and programmers knowing this Ianguage can readily create variants to the images and functions we have illustrated. Thus incorporated within the drawings are to be understood to be the variants that can thus be created using our examples, as well as extensions 4O and combinations thereof. [OO46] When the user selected image 3O by clicking on the image 3O, FIGURE 3 appears. FIGURE 3 is the next screen which illustrates how a request is made according to a users desires, making a request in accordance with our invention with an input screen shown. The content of FIGURE 3 is preformatted 4O except for the user entries which are to be entered in the data input fields 41 . In this example the input field 41 is a userid. After a user has entered in 45 field 41 an acceptable input, he would then clickon instruction key 42. The instruction key illustrated is submit a request. At this point the Web server captures the information entered by the user, as described in FIGURE 7. It will be appre- ciated that the Web server captures the information entered by the user, including specialized input, as well as any ''hidden'' default information, which can include password authorizations, charge account identification, and other in- formation that can be used by the system in responding to the request. Thus the system can assume that the ''hidden'' 5O password is an authorization to pe_orm some function, such as include information from confidential source, or exit to the Internet. The charge authorization can also be tracked and accumulated by the system as it parses through its functions to charge back chargeable usages. If a request is for an order of an item, the actual item requested can be shipped and billed with this information. Since these functions are ''hidden'' they do not appear in the FIGURE but included with a request. The return of the request is illustrated in FIGURE 4. 55 [OO47] FIGURE 4 is a sample result screen which illustrates how a sample report conforming to the request results are presented to the client after the requested service is provided by the computer system network in accordance with our invention formatted according to the specifications of a DIS capsule which is illustrated by example in FIGURE 9. In this example, the return was a file, whose file name is displayed as P81 484 at 43. Informative text accompanying 8
gocr ep0747840-009
EP O 747 84O B1 the file is included as illustrated bythe example information 44 The screen providesthe content offile 43 in the requested form of preformatted text 5O in the form of a display of a text report generated by a DIS capsule stored in the DIS server 1 7. While we show text as the form the report results, the form of the request can be another form of presentation, as and image, a voice response, or other multimedia presentation.Reports can be returned translated into any desired 5 language based upon the request, as may be provided by DIS capsule calls to a translator. These features are included in the result 5O report. [OO48] When the user selected image made by clicking on the image 32 in FIGURE 2, FIGURE 5 appears. FIGURE 5 is a next screen which illustrates how a request is made according to a users desires. A user makes a request, in this instance for sales results within the organization for YTD Catalog Revenue in accordance with our invention by 1O entering text data intothe data entry areas 41 and 42 of the formatted screen with information as totype of data selected 4OA which will be translated into specific report information created by a DIS capsule. [OO49] FIGURE 6 is a sample result screen which illustrates how the request results are presented to the client after the requested service is provided bythe computersystem network in accordance with our invention formatted according to the specifications of a DIS capsule. In this instance selection of the object 32 links to the the screen of FIGURE 5, 15 which in turn with the DlS capsule created the output shown in FlGURE 6. DlS Capsules will be illustrated by examples in FIGURE 9 and 1 O. In this example the output of the DIS capsule illustrated in FIGURE 1 O is presented on the screen shown by FIGURE 6. The screen comprises a file name identifier, descriptive information 61 , and preformatted text 6O which is the display of the named file P55511 9. This is the display of a graphic report showing what might be deemed (but is not) Confidential information relating to Catalog Revenue for 1 995 YTD, with revenue given in $M, and breakout 2O as to HDW, SFW, PMV, MN and MNT from selected locations in Chicago, New york, Dallas, and Los Angeles, all of which are located on different systems, and which, as illustrated in FIGURE 1 , may be on different databases such as DB2, Oracle, and Sybase relational databases. This report was generated by a DIS capsule which is illustrated in FIGURE 9. This example illustrates how multiple actions can be taken on information retrieved. In this example data was translated into image material by calculation and formatting in the form of a graphic pie shaped report. Other image 25 data could also be displayed, as frames of selected images, or a sequence of images in the form of a moving picture display, which can be outputted from a server as will be described in FIGURE 11 . [OO5O] FIGURE 7 illustrates a flowchart showing data flow between a web server and decision support system tool such as l BM's Data Interpretation System (DIS). FIGURE 7 shows the coupling of a Web client 71 (corresponding to Web browser 1 O in FIGURE 1 ) to a Web server 72 (corresponding to Internet WWW server 11 ) and the coupling of a 3O request to execute a DIS capsule. [OO51] The Web browser 71 can make a request to the Web Server 72 for a report through the use of HTML. The HTML document refers to our control program agent 73, which may be implemented with the C language or other Ianguage which can provide run code for the particular Web server which is employed. We illustrate our preferred program according to the description provided in FIGURE 8. The Web Server 72 passes request data to and invokes 35 our control program 73 through the use of the CGl in accordance with our invention. The control program uses ODAS 74 in ODAS server 1 2 to set DIS capsule parameters and initiates the execution of a DIS capsule located in this embodiment in DIS capsule server 1 7 according to our preferred examples illustrated in FIGURES 9 and 1 O. [OO52] After a DIS capsule completes execution, the file created by the DIS capsule contains the formatted report results requested by the user. Our control program 73 dynamically creates the HTML statements that present the file 4O to the Web browser 1 O screen. Figure 7 shows the coupling within the Web server from ODAS 74 to a distributed DIS LAN 75 with heterogeneous connections to multiple databases DB2, Redbrick, Sybase and Oracle. Other sources of data can be linked to the LAN. Preferred Embodiment Interface between Server and DIS 45 [OO53] Our preferred control program agent 73 in FIGURES 1 and 11 is illustrated in detail by way of the flowchart of FIGURE 8. In our preferred embodiment, this program can be written in C or other suitable language but for general appreciation of the details, we will describe the steps in detail. These steps can be implemented by programmers of ordinay skill in the art without undue experimentation after understanding the steps described below. The control 5O program agent 73 is located in a Web server and provides an interface and execution functions. Thus in FlGURE 11 the function is provided between the Web Server 1 31 (corresponding to Internet WWW server 11 in FIGURE 1 ) and DIS which is located in a DIS server 1 33 (corresponding to server 1 4 in FIGURE 1 ) and for presentation of results according to the instructions of the Web browser 1 3O (corresponding to browser 1 O in FIGURE 1 ) according to the request command, which in default is a return to the Web browser home page. This interface utilizes in our preferred 55 embodiment the Web Server CGl and the DlS ODAS. [OO54] Before we proceed to the control program 73, it will be noted that in FIGURE 11 the Web Browser 1 3O will link to a Web Server 1 31 accessing it on the Internet though a unique l D called the uniform resource locater to access the node which we call the Web server 1 31 . When that access takes place an HTML document is displayed by the 9
gocr ep0747840-010
EP O 747 84O B1 Web server 1 31 to the Web browser 1 3O, as shown in FIGURE 2. Now, the user makes his entries as described with respect to FIGURE 2. Next the HTML document refers to the control program agent 73 and the Web server 1 31 through the use of the CGl invokes our control program agent 73. The Web server 1 31 retrieves data entered by the user from the HTML document and passes that data to our control program agent 73 upon invocation. 5 [OO55] The Web Server 1 31 has a gateway interface that allows the server to invoke a control program agent 73 running on it and to pass input parameters to the control program agent 73 (FIGURE 8) that were returned from the Hypertext document of the Web Browser. It will be appreciated that while weillustrate for our preferred example a single Web Server 1 31 , the Hypertext document locates the particular Web Server that can support the request made by checking the details of the ''hidden'' defaults and those functions requested. Thus a menu request for a generalized 1O search throughout the Internet may locate the particular service machine having an application processing agent which has the information desired. Oncethe control program 73 (FIGURE 8) is invoked, the steps programmedforthe machine to follow begins with a step 11 O illustrated in FIGURE 8. In reviewing this preferred control program agent it should be appreciate that steps 1 1 O and step 1 1 1 are steps that are interchangeable in order and which obtain environment variable data from the HTML document return. 15 [OO56] Thus step 1 1 O obtains a PATH-l NFO environment variable data. PATH-l NFO contains data from the HTML document that referred the Web Server to our program. Specifically the data contains the name of the DIS capsule to call, the name of the file containing the HTML statements to use when building the HTML document that displays the DIS capsule results to the Web browser, and the type of file that the DIS capsule will create. All off this information is the variable data which is stored in a buffer environment in step 1 1 2, and which is used in subsequent steps. 2O [OO57] Thus also, the control program proceeds with step 11 1 which may follow or precede or proceed in parallel with step 1 1 O to obtain the QUERY-STRING environment variable data. QUERY-STRl NG contains data from the HTML document that referred the Web Server to our program. Specifically the data contains values selected by the user and / or default values selected by the HTML document designer. These values are set in the DIS capsule by our control program prior to execution of the DIS capsule.This information is used to set variables in the DIS capsule. All 25 off this information is the variable data which is stored in a buffer environment in step 1 1 2, and which is used in sub- sequent steps. [OO58] Within the scope ofthe discussion of the control program agent illustrated by FIGURE 8 it should be appreciate that the steps 1 1 2 through 1 25 include the utilization of an APl set that provides a method of invoking executable programs located in a service machine which we denote as a sub-agent which executes in step 1 22 object capsules 3O from our sub-agent DIS file server 1 4. This provides functions such as queue and update functions for databases on multiple platforms and allows the processing of data retrieved from a database to be performed, including executing calculations, doing formatting, charging of accounts and the storing of results as a file accessible to the control program agent. During processing our control program agent 73 provides setups for APl calls which occurs in steps WHAT ARE THESE STEPS. Thus the control program agent will proceed as with an APl set with step 11 3. 35 [OO59] With the variable information now stored in a buffer, in step 1 1 3 the control program retrieves from a store, all of the DIS capsules that are used and the variable names associated with each DIS capsule and loads into memory associated with the control program the DIS capsule names available and the variable names associated with each DIS capsule. [OO6O] At that point in step 1 1 4 the control program is ready to and does initialize a connection between our control 4O program and the ODAS through the use of an ODAS APl. In other environments another APl performing similar func- tions could be used. [OO61] At that point, if required for control bythe decision support system, and as required by DIS, the control program would log onto the port or desktop for the assigned user. Thus, our control program agent 73 in step 1 1 5 logs onto a DIS ''desktop'', our DIS file server 1 4. 45 [OO62] Once the DIS capsule information is loaded into control program memoy, the control program can and does in step 1 1 6 retrieve from its memoy the DIS capsule variable names associated with the DIS capsule name passed to our control program in the step 1 1 O where PATH-INFO is provided. [OO63] Next, in step 1 1 7 the control program creates a data array stored in the control program memoy containing the DIS capsule variable names and the values for them that were passed to our control program in the 5O QUERy-STRlNG step. These two steps 1 1 6 and 1 1 7 should be done in order, even though steps 1 1 O and 1 1 1 can have an arbitrary order. At this point in step 1 1 7 you are matching the DIS capsule variable names with the data that was passed to the control program in the QUERY-STING environment variables. [OO64] Next, in preparation for a report, in step 11 8 the program creates a unique filename which may include data originated by the HTML document's variables stored in step 11 2 (dotted line) to pass to the DIS capsule as a DIS 55 variable for use in naming the report which will be created by the DlS capsule. As a result, the DlS capsule will create that file with the unique file name during its process. [OO65] In anticipation of DIS capsule execution, the values of variables used by the DIS capsule are obtained from the data array in the control program memory containing the DIS capsule variable names and the values for them that 1 O
gocr ep0747840-011
EP O 747 84O B1 were passed to our control program in the QUERY-STRING step. This is done in step 11 9 using the ODAS APl to set the DIS capsule variable values. At this point the capsule server 1 7 for the DIS server 1 33 attached to the Web Server 1 31 via network 1 32 will have a DIS capsule services queue. This queue is the queue of jobs being requested of the Dis Capsule Server 1 7. For the current job request (other like requests being perhaps still in the queue) we use the 5 ODAS APl to quey the contents of the DIS Capsule Services queue. If the queue size is larger (>t) than a threshold Ievel, then the process enters a wait state until the queue size is reduced to a tolerable level. The queue test of step 1 2O is a loop test which returns to test the queue size until a test answering ''is the queue of a size that execution can proceed?'' (