`Leaf
`
`USOOS 754772A
`Patent Number:
`[11]
`[45] Date of Patent:
`
`5,754,772
`May 19, 1998
`
`[54] TRANSACTION SERVICE INDEPENDENT
`HTTP SERVER-TO-TRANSACTION
`GATEWAY
`
`[75] Inventor: Shawn T. Leaf, St. Paul, Minn.
`
`[73] Assignee: Unisys Corporation, Blue Bell. Pa.
`
`[21] Appl. No.: 622,099
`[22] Filed:
`Man 26’ 1996
`
`[51] Int. Cl.6 .................................................... .. G06F 15/16
`[52]
`395/200.33; 395/610
`[58] Field of Search ................................... .. 395/604, 610,
`395/762. 335. 200.03, 200.09, 200.12, 200.33,
`200.31. 200.47, 200.97
`
`[56]
`
`References Cited
`
`U'S' PATENT DOCUMENTS
`9/1988 KolJin et a1. .......................... .. 395/604
`4,774,655
`4,881,166 11/1989 Thompson et a1
`395/608
`5,129,032
`7/ 1992 Tir??g 6t 31
`395/600
`5,423,776
`6/1995 Roth?led ------- --
`395/600
`5530352 6/1996 Meske’ Jr" et a1
`395/610
`5,572,643 11/1996 Judson .......... ..
`3951793
`5,596,744
`1/1997 Dao et a1.
`395/610
`5,623,656 4/1997
`.. 395/610
`5,634,053
`5/1997
`
`OTHER PUBLICATIONS
`
`Francis Heylighen, World-Wide Web: a distributed hyper
`media paradigm for global networking. Apr. 18, 1994,
`IEE/INSPEC Database Updates and Additions (1960-95)
`doc. # 1374618; Proceedings. Share Europe Spring Confer
`ence pp. 355-368.. 1994.
`
`Primary Examiner-Lance Leonard Barry, Esq.
`gttgrmey, Agent, or Fzrm—Charles A. Johnson; Mark T.
`
`ABSTRACT
`
`5
`7
`[
`1
`A system which makes prior art On-Line Transaction Pro
`Cessing (OLTP) systems and their associated databases
`accessible using HyperText Transport Protocol (HTTP)
`interfaces. The response time for an on-line user seeking
`HTTP access to the transaction processing system is mini
`mized by pre-establishing a transaction gateway client hav
`ing a static connection to the transaction processing system.
`In addition, the HTTP access to the transaction processing
`system is available for multiple concurrant users. The sys
`tem further provides a gateway that is independent of the
`underlying service provided by the transaction processor,
`whereby the same gateway client is capable of usage with
`di?-erent databases and O Crations ther?on
`P
`‘
`
`36 Claims, 12 Drawing Sheets
`
`BRowsER
`
`9 Q -
`
`BROWSER
`
`16
`
`‘8
`8R1: EATEWE/IIHK‘TITREATJ'
`WEB
`:
`
`NAIIED PIPE
`1IgSTANCES
`
`4o
`
`TRANSACTION
`PRocEssoR
`coouuzcnous
`
`1
`
`54
`
`3
`
`TRANSACTION
`
`DISTRIBUTED
`
`84\1:§A1E!JQ'E[K_"iR§AB_<
`
`\ msn'wces <
`
`I)
`
`SYSTEM
`
`8B\4CEATEWA_YIIFK_TPTREAID:<IGI>
`
`72
`
`<:5:>
`
`74
`
`it
`
`52
`
`10s
`
`ENTERPRISE
`SERVER SYSTEM
`/56
`
`DISTRIBUTED
`
`SYSTEM
`
`CONNECTIONS
`
`Mm
`
`WEB SERVER
`SYSTE"
`
`78
`< HTMLnocuuENT
`
`|
`
`76
`< VIEW BUFFER ]
`
`28
`
`HTIIL - HYPERTEXT MARKUP LANGUAGE ‘
`TXN -TRANSACT1ON
`uRL - UNIFORM REsouRcE LocAToR
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 1
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 1 of 12
`
`5,754,772
`
`mm
`
`mm
`\ 0..
`
`m?
`
`225555 /;3
`
`F EamE
`
`mm>>
`
`mmmBOmm
`
`mm;
`
`mmmBOmm
`
`mm;
`
`5530mm
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 2
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 2 of 12
`
`5,754,772
`
`mm;
`
`mum>>omm
`
`2
`
`mm;
`
`mumz'omm
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 3
`
`
`
`U.S. Patent
`
`May 19, 1993
`
`Sheet 3 of 12
`
`5,754,772
`
`
`
`
`
`
`
`Em._.m>mmw>mmmmzozomzzoowmoz<._.mz_
`
`
`
`
`mommmoofim.__._om__..<z
`
`mwE.=.._m_._.zmzo_B<mz<E
`
`mm;3mm;3mm;3mm;
`
`
`
`
`
`mmmaommocoEmaozmmmmaommmmmsomm
`
`
`
`omSm_Em_nSsmaaazo:o<mz<E
`zo_5<wz<Ezo_5<mz<E>ssE<uE>Em
`
`
`
`
`
`
`
`9
`
`
`
`
`
`wz_$mooEaz_mm_ooEEm_._o.w<mmm$_m_HEm_w<w7:.
`
`
`
`_E5>m=m:m>mmmoz<$z_llllllllII1
`
`
`
`mm,_m_@_ww,@w.wg
`
`Ezmmmm;
`
`..m$.6
`
`mzozomzzoo
`
`mo.=..m.E
`
`
`
`
`
`
`
`
`
`mu<=oz<._._3E<=cm_.Em.E._._E._.:..
`
`
`
`
`
`mo._.<oo._momzommm_Eo"__z=I#3
`
`zo_8<mz<E12E.
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 4
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 4
`
`
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 4 0f 12
`
`5,754,772
`
`10
`
`WEB
`BROWSER
`
`REQUEST
`FOR HTML!
`(URL)
`DOCUMENT
`
`HTML
`DOCUMENT
`
`URL WITH
`TXN INPUT
`
`HTML
`DOCUMENT
`WfI'XN DATA
`
`WEB
`SERVER
`
`URL WITH
`TXN INPUT
`
`HTML
`DOCUMENT
`WITXN DATA
`
`TRANSACTION
`GATEWAY
`CLIENT
`
`6
`
`SERVICE
`REQUEST WI
`VIEW BUFFER
`
`VIEW BUFFER
`WITH TXN
`DATA
`
`DISTRIBUTED
`TRANSACTION
`PROCESSING
`SYSTEM
`
`TXN - TRANSACTION
`URL - UNIFORM RESOURCE LOCATOR
`
`Figure 4
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 5
`
`
`
`U.S. Patent
`
`May 19, 1998
`
`Sheet 5 0f 12
`
`5,754,772
`
`WEB SERVER
`SYSTEM
`INITIALIZATION
`PROCESSING
`
`ESTABLISH VIEW FILE
`ON WEB SERVER
`
`302
`
`/ 304
`
`I
`
`ESTABLISH A WEB-VIEW FILE ON
`THE WEB SERVER TO CREATE A
`NAMED MAPPING BETWEEN THE
`NAMED FIELDS OF THE VIEW
`DEFINITION AND THE VIEW BUFFER
`
`I
`
`ESTABLISH AN HTML TEMPLATE
`FOR THE SERVICE DEFINED BY THE
`VIEW DEFINITION
`
`I
`
`START A PREDETERMINED NUMBER OF
`TRANSACTION GATEWAY CLIENT
`INSTANCES
`
`I
`
`START THE WEB SERVER
`
`/ 334
`
`Figure 5
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 6
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 6 of 12
`
`5,754,772
`
`All
`
`
`
`Al 26
`
`<5. 05
`
`mg
`
`
`
`%\ "mtg 55 £2: Es
`
`59m: Ha is
`
`m 959m
`
`an \ 3m Esau;
`
`
`
`5 GEE N m=<= Hum
`
`
`
`528 . m5: 5mm
`
`m8
`
`\ Hz 55
`
`m
`
`
`
`52% = was‘ 5mm
`
`’\ 528 m 252 SE
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 7
`
`
`
`U.S. Patent
`
`May 19, 1998
`
`Sheet 7 of 12
`
`5,754,772
`
`HTML TEMPLATE
`
`A
`
`314
`
`<FORM METHOD=GET ACT|0N=“lRT68IEMPDBSVC.tx’>
`<|NPUT TYPE=H|DDEN NAME=“\fiew” VALUE=“EMP_BUF”>
`<TABLE>
`<TR>
`
`_
`< TD ROWSPAN=10>
`<|MG SRC=“l|magesIWebTx5.gif” W|DTTH=67 HElGHT=318
`VSPACE=0 HSPACE=15>
`<TD>
`
`Employee #
`<TD COLSPAN=2>
`
`<lNPUT SlZE=5 MAXLENGTH=4 NAME=NUMBER VALUE=“ ”>
`<TD ALlGN=H|GHT COLSPAN=2>
`<lNPUT TYPE=reset VALUE=“CIear Form”>
`
`<TR>
`<TD COLSPAN=5>
`<HR SlZE=2>
`
`<TR>
`
`<TD COLSPAN=5 ALIGN=CENTER>
`
`<B>Employee |nformation<IB>
`
`_
`<TR>
`<TD> Name
`
`<TD><|NPUT S|ZE=11 MAXLENGTH=1O NAME=NAME VALUE=“ ”>
`<TD WlDTH=25>
`<TD>Job
`
`<TD><|NPUT S|ZE=10 MAXLENGTH=9 NAME=JOB VALUE=“ ”>
`<TR>
`<TD>
`
`Operation
`<TD>
`
`<SELECT NAME=COMMAND><OPTlON
`SELECTED>Se|ect<0PT|ON>Update<OPT|0N>|nsert<OPT|0N>Delete<IS
`ELECT>
`<TR>
`<TD>
`
`<|>Status<I|>
`<TD COLSPAN=3>
`
`<|NPUT SlZE=27 MAXLENGTH=1 NAME=sTATUS VALUE=“ ”>
`<TD ALlGN=RlGHT>
`
`<|NPUT TYPE=SUBM|T VALUE=Transmit>
`<l'l'ABLE>
`<[FORM>
`
`Figure 7
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 8
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 8
`
`
`
`U.S. Patent
`
`May 19, 1998
`
`Sheet 8 0f 12
`
`5,754,772
`
`VIEW DEFINITION
`316
`
`VIEW EMP__BUF
`# type
`cname
`
`fbname
`
`count
`
`Nag
`
`size
`
`null
`
`carray
`carray
`carray
`carray
`carray
`carray
`can'ay
`canay
`carray
`carray
`END
`
`status
`command
`Number
`Name
`Job
`Mgr
`HireDate
`Salary
`Comm
`Dept
`
`STATUS
`COMMAND
`NUMBER
`NAME
`JOB
`MGR
`HIREDATE
`SALARY
`COMM
`DEPT
`
`1
`1
`1
`1
`1
`1
`1
`1
`1
`1
`
`-
`-
`-
`-
`-
`-
`-
`-
`-
`-
`
`40
`7
`5
`11
`10
`5
`10
`6
`6
`5
`
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`“ ”
`
`Figure 8
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 9
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 9 0f 12
`
`5,754,772
`
`m @SDE
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 10
`
`
`
`US. Patent
`
`May 19,1998
`
`Sheet 10 0f 12
`
`5,7 54,772
`
`WEB SERVER
`PROCESSING
`
`402
`WAIT FOR CONNECTION /
`FROM WEB BROWSER
`
`__________ _ _ INITIATE AS
`
`404
`\
`
`I
`
`A THREAD
`
`I
`ACCEPT CONNECTION AND /
`READ THE URL
`
`406
`
`CASE
`MIME TYPE OR
`PATH PREFIX
`
`410
`
`412
`
`+
`TYPE:
`TRANSACTION
`
`414
`
`GATEWAY
`LINK
`PROCESSING
`
`;
`
`416\ TYPE:
`
`TEXTIHTML, TEXTIPLAIN,
`IMAGEIGIF, IMAGEIJPEG,
`AND OTHER USER DEFINED TYPES
`
`I
`
`41 B
`\ WEB SERVER SEND FILE PROCESSING
`OR
`CUSTOMIZED GATEWAY PROCESSING
`
`I
`
`420
`\ CLOSE
`CONNECTION
`
`END OF
`THREAD
`
`Figure 10
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 11
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 11 0f 12
`
`5,754,772
`
`GATEWAY
`LINK
`PROCESSING
`
`452
`
`454
`
`GET THE IDENTIFICATION
`OF THE NAMED
`PIPE AND OTHER
`CONFIGURABLE INFORMATION
`
`I
`
`DETERMINE WHETHER INPUT
`IS GET OR POST
`
`I
`
`W POST, LOCATE
`POST DATA
`
`456
`
`I
`
`REQUEST CONNECTION
`WITH NAMED PIPE
`
`458
`/
`
`I__
`
`I
`
`460
`
`/
`
`SEND REQUEST ON
`NAMED PIPE
`
`I
`
`462
`READ RESPONSE FROM /
`NAMED PIPE
`
`I
`
`464
`DETERMINE CONTENT /
`TYPE OF RESPONSE
`
`I
`
`PACKAGE RESPONSE ACCORDING
`TO CONTENT TYPE AND SEND TO
`WEB BROWSER
`
`466
`
`468
`
`Figure 11
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 12
`
`
`
`US. Patent
`
`May 19, 1998
`
`Sheet 12 of 12
`
`5,754,772
`
`TRANSACTION
`GATEWAY
`CLIENT PROCESSING
`
`CREATE INSTANCE OF
`NAMED PIPE
`
`502
`/
`
`I
`
`ESTABLISH CONNECTION
`WITH TRANSACTION
`PROCESSOR
`
`504
`/
`
`520
`
`I
`
`ALLOCATE MEMORY FOR
`A VIEW BUFFER
`
`I
`
`EXTRACT FIELD NAMES
`AND VALUES FROM
`THE URL
`
`516
`
`518
`
`I
`
`WRITE THE VALUES TO POSITIONS
`IN THE VIEW BUFFER AS
`INDICATED BY THE
`WEB-VIEW FILE
`
`I
`
`CALL DISTRIBUTED TRANSACTION
`PROCESSING SYSTEM WITH
`SERVICE NAMED IN URL
`
`I
`
`OPEN THE HTML TEMPLATE
`FOR THE NAMED VIEW
`
`I
`
`EXTRACT VALUES FROM THE
`VIEW BUFFER USING THE
`WEB-VIEW FILE
`
`I
`
`524
`
`526
`/
`
`528
`
`/
`
`WRITE VALUES EXTRACTED FROM THE
`VIEW BUFFER TO AN HTML DOCUMENT
`AS INDICATED BY THE HTML TEMPLATE
`
`_'I WAIT FOR CONNECTION
`I
`
`ON INSTANCE OF
`NAMED PIPE
`
`READ MESSAGE FROM
`INSTANCE OF
`NAMED PIPE
`
`I
`
`EXTRACT THE NAMED VIEW
`FROM THE URL
`
`I
`
`OPEN THE WEB-VI EW
`FILE NAMED IN THE URL
`
`I
`
`OPEN THE VIEW FILE
`NAMED IN THE URL
`
`506
`/
`
`508
`/
`
`510
`/
`
`512
`
`514
`
`I
`
`SEND THE HTML DOCUMENT
`ON THE INSTANCE OF THE
`NAMED PIPE
`
`530
`
`Figure 12
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 13
`
`
`
`5,754,772
`
`1
`TRANSACTION SERVICE INDEPENDENT
`HTTP SERVER-TO-TRANSACTION
`GATEWAY
`
`BACKGROUND
`
`2
`A disadvantage with the CGI program approach described
`above is that the application developer must be acquainted
`with the HTML, the CGI, and the database engine. In
`addition, a different CGI program may be required for each
`di?erent database, thus adding to the cost of creating and
`maintaining the database access for the Web Browser.
`Businesses are faced with the challenge of adapting their
`present usage of yesterday’s technology to new opportuni
`ties that are made available with the World Wide Web. Most
`business application software and underlying databases are
`not equipped to handle interaction with Web Browsers. It
`would therefore be desirable to have a ?exible and e?icient
`means for allowing interoperability between business appli
`cation software and the World Wide Web.
`
`15
`
`SUMMARY OF THE INVENTION
`
`The present invention makes prior art on-line transaction
`processing (OLTP) systems and their associated databases
`accessible using Hyper’I‘ext Transport Protocol (HTTP)
`interfaces. The response time for an on-line user seeking
`HTTP access to the transaction processing system is mini
`mized by pre-establishing a transaction gateway client hav
`ing a static connection to the transaction processing system.
`In addition, the HTTP access to the transaction processing
`system is available for multiple concurrent users. The inven
`tion further provides a gateway that is independent of the
`underlying service provided by the transaction processing
`system, whereby the same gateway client is capable of usage
`with different databases and operations thereon.
`An on-line transaction processing system is made acces
`sible to Web Browsers by establishing a predetermined
`plurality of transaction gateway clients to receive HTTP
`requests that are received by a Web Server from the Web
`Browsers. Concurrent processing of multiple transaction
`requests from the Web Browsers is performed by the plu
`rality of transaction gateway clients. Each transaction gate
`way client pre-establishes a static connection with the
`on-line transaction processing system. The pre-established
`connection allows requests from the Web Browsers to be
`quickly routed to the transaction processing system. Time is
`saved by elimination of the traditional steps of connecting
`with and then disconnecting from the transaction processing
`system for each request from a browser program. The
`gateway client translates between H‘ITP formatted requests
`from the Web Browsers and the request format expected by
`the on-line transaction processing system.
`The invention handles multiple concurrent requests from
`the Web Browsers and makes the requests available for
`concurrent processing by the on-line transaction processing
`system. A predetermined number of instances of the trans
`action gateway client are established to be available for
`performing the necessary translations. Each of the instances
`of the transaction gateway client establishes a static con
`nection with the on-line transaction processing system as
`described above. As requests are received by the Web Server
`from the Web Browsers, the requests are routed to an
`available one of the instances of the transaction gateway
`client. Each instance of the transaction gateway client is
`capable of processing one request at a time.
`The transaction gateway client of the present invention is
`independent of the underlying service initiated by the
`on-line transaction processing system. For example, the
`transaction gateway client may be utilized with different
`databasemanagers (the database manager being the service),
`so long as the on-line transaction processing system is
`capable of utilizing the services provided by the different
`
`1. Field of the Invention
`This invention generally relates to gateway processors for
`providing access to database management systems by
`browser programs, and more particularly to a generalized
`gateway processor for making various transaction databases
`accessible by browser programs.
`2. Description of the Related Art
`The methods by which companies conduct business with
`their customers are undergoing fundamental changes, due in
`large part to World Wide Web technology. In addition, the
`same technology that makes a company accessible to the
`world, may be used on internal company networks for
`conducting operational and administrative tasks.
`One of the technologies underlying the World Wide Web
`is the Web Browser. Web Browsers are quickly becoming a
`de facto user interface standard because of their ability to
`interpret and display information having standard formats
`(e.g., HyperText Markup Language (HTML), standard text,
`GIF, etc.). Client software programs, popularly referred to as
`Web Browsers (e.g.. Mosaic, Lynx, etc.), execute on client
`systems and issue requests to server systems. The server
`systems typically execute HyperText Transport Protocol
`(HTTP) server programs which process requests from the
`Web Browsers and deliver data to them. The system that
`executes a HTTP server program and returns data to the Web
`Browser will hereinafter be referred to as a Web Server
`System. An HTTP server program itself will be referred to
`as Web Server.
`-
`A Web Server System has access to on-line documents
`that contain data written in HyperText Markup Language
`(HTML). The HTML documents contain display
`parameters, capable of interpretation by a Web Browser, and
`references to other HTML documents and Web Servers
`(Source: World Wide Web: Beneath the Surf from UCL
`Press, by Mark Handley and Jon Crowcroft, on-line at
`http://www.cs.ucl.ac.uk/sta?’ljon/book/bookhtml).
`As Web Browsers are making their mark as a “standar ”
`user interface, many businesses have a wealth of information
`that is managed by prior art database management systems
`such as DMS, RDMS, DB2, Oracle, Ingres, Sybase,
`Informix, and many others. In addition, many of the data
`base management systems are available as resources in a
`larger transaction processing system.
`One key to the future success of a business may lie in its
`ability to capitalize on the growing prevalence of Web
`Browsers in combination with selectively providing access
`to the data that is stored in its databases. Common Gateway
`Interface programs are used to provide Web Browser access
`to such databases.
`The Common Gateway Interface (CGI) is a standard for
`interfacing external applications, such as Web Browsers, to
`obtain information from information servers, such as Web
`Servers. The CGI allows programs (CGI programs) to be
`referenced by a Web Browser and executed on the Web
`Server system. For example, to make a UNIX database
`accessible via the World Wide Web, a CGI program is
`executed on the Web Server system to transmit information
`to the database engine, receive the results from the database
`engine, and format the data in an HTML document which is
`returned to the Web Browser.
`
`25
`
`35
`
`45
`
`50
`
`55
`
`65
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 14
`
`
`
`5,754,772
`
`3
`database managers. Multiple styles of transaction gateway
`clients may be established, however, to interface with dif
`ferent styles of on-line transaction processing systems and to
`accommodate di?erences in data format requirements.
`The independence of the transaction gateway client from
`the underlying service is accomplished with each HTTP
`request from a Web Browser program specifying a requested
`service and a respective predetermined mapping ?le for each
`available service. A predetermined HyperText Markup Lan
`guage (HTML) template ?le is also established for each
`desired service. Each of the predetermined mapping ?les
`sets forth the format and content of the data buifer that is
`used for communicating between the transaction gateway
`client and the on-line transaction processing system for the
`particular service. A mapping ?le directs the transaction
`gateway client where to write data to and read data from the
`data buffer for predetermined ?elds of the database. The
`HTML template ?le is used in creating an HTML document
`that is returned to a Web Browser. The transaction gateway
`client reads data values from a data buffer returned from the
`transaction processing system (as speci?ed by the mapping
`?le), the data values are written to appropriate locations in
`the HTML document as directed by information contained in
`the HTML template ?le.
`Still other objects and advantages of the present invention
`will become readily apparent to those sldlled in the art from
`the following detailed description, wherein only the pre
`ferred embodiment of the invention is shown, simply by way
`of illustration of the best mode contemplated for carrying
`out the invention. As will be realized. the invention is
`capable of other and different embodiments, and its several
`details are capable of modi?cations in various obvious
`respects. all without departing from the invention.
`Accordingly, the drawings and description are to be regarded
`as illustrative in nature, and not as restrictive.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a functional block diagram of a computing
`environment in which a transaction system and a Web Server
`interoperate in a single system;
`FIG. 2 is a functional block diagram of an exemplary
`computing environment in which the present invention
`could be used;
`FIG. 3 is a functional block diagram of the software
`components that make a transaction database accessible to
`one or more Web Browsers;
`FIG. 4 is a data?ow diagram showing the ?ow of data
`between the components of the exemplary system;
`FIG. 5 is a ?owchart of the steps for initializing an
`environment on a Web Server System to provide Web
`Browser access to a transaction database;
`FIG. 6 shows the relationship between the Web-View File
`and the View Buffer;
`FIG. 7 illustrates a portion of the HTML Template created
`for the View De?nition of FIG. 8;
`FIG. 8 illustrates a sample View De?nition;
`FIG. 9 is a sample screen display of the image produced
`by a Web Browser from an HTML document based on the
`HTML Template;
`FIG. 10 is a ?owchart of the general processing of the
`Web Server;
`FIG. 11 is a ?owchart of the processing performed by a
`Gateway Link thread; and
`FIG. 12 is a ?owchart of the processing performed by
`each of the instances of the Transaction Gateway Client.
`
`55
`
`65
`
`1O
`
`15
`
`20
`
`25
`
`35
`
`4
`DETAILED DESCRIPTION
`FIGS. 1 and 2 are functional block diagrams of exemplary
`computing environments in which the present invention
`could be used to make a transaction processing system
`interoperable with the World Wide Web. FIG. 1 is a func
`tional block diagram of an environment in which the trans
`action system and the Web Server operate in a single system,
`and FIG. 2 shows an environment in which the Web Server
`System acts as a front-end for the Enterprise Server System.
`FIG. 1 is a functional block diagram of a computing
`environment in which a transaction system and a Web Server
`interoperate in a single system. A plurality of micro
`computers, designated as Web Browser 10, 12, 14, and 16,
`are coupled to a Web Server 18 Via Network 20. The
`Network may be an internal local area network or the
`Internet.
`Each of the Web Browsers 10-16 is comprised of soft
`ware for browsing the World Wide Web, such as Mosaic,
`Netscape Navigator, etc.. and a suitable micro-computer or
`computer workstation along with operating system software.
`The Web Server may be off-the-shelf software such as the
`Microsoft Internet Information Server and Netscape Com
`merce Server.
`The typical operating mode for the Web Server 18 is to
`receive requests from the Web Browsers 10-16 and return
`the requested data ?'om the Pre-formatted Data element 22.
`The Pre-formatted Data consists of HTML documents.
`The Server System 24 may be any data processing system
`that is suitable for transaction processing applications, such
`as the 2200 Series, A-Series, and UNIX based data process
`ing systems from Unisys Corporation. The exemplary Trans
`action Processing System 26 is intended to encompass
`transaction manager software, such as Open/OLTP Transac
`tion Manager software from Unisys, user implemented
`Open/OLTP services (application programs), and Open/
`OLTP resource managers (such as a database management
`system). The Open/OLTP transaction model is described in
`the X/Open Guide, Distributed Transaction Processing Ref
`erence Model as published by the X/Open Company Ltd.,
`UK. The present invention would be applicable to other
`non-standard or proprietary transaction based systems, as
`well as to other data servers in general.
`The Transaction Processing System 26 serves data from
`the Database 28 to the Transaction Clients 30, 32, 34, and
`45
`' 36. The Transaction Clients 30-36 are coupled to the Trans
`action Processing System via Line 38, of which the under
`lying technology is driven by the application of the Trans
`action Processing System 26.
`The Transaction Gateway Client 40 allows the Web
`Server 18 to interoperate with the Transaction Processing
`System 26. Speci?cally, a predetermined Open/OLTP
`service, as de?ned by an application programmer, is refer
`enced in an HTML document in the Pre-formatted Data
`element 22. When a Web Browser 10, 12, 14, or 16 selects
`the service, the request is routed to the Web Server 18. which
`in turn routes the request to the Transaction Gateway Client.
`The Transaction Gateway Client determines the requested
`service and forwards the necessary information to the Trans
`action Processing System 26. The Transaction Processing
`System processes the request against the Database 28
`according to the speci?ed request (e.g., select, update,
`delete). The Transaction Processing System returns data
`and/or status information to the Transaction Gateway Client,
`which in turn formats the data into an HTML document that
`is forwarded to the Web Server. The Web Server sends the
`HTML document to the requesting Web Browser.
`
`50
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 15
`
`
`
`5
`FIG. 2 is a functional block diagram of an exemplary
`computing environment in which the present invention
`could be used. The environment of FIG. 2 ditfers from that
`of FIG. 1 in that the Web Server 18 and the Database 28
`reside on separate data processing systems. The Web Server
`18 resides on a Web Server System 50, and the Database 28
`resides on an Enterprise Server System 52.
`The Web Server System 50 may be any class machine that
`is capable of running a Web Server 18 along with a Dis
`tributed Transaction Processor 54. In the exemplary Web
`Server System, the Distributed Transaction Processing Sys
`tem 54 is similar to the Transaction Processing System 26 of
`FIG. 1 in that both are Open/OLTP compatible. The Trans
`action Processing System 54 of FIG. 2 is designated as
`Distributed to make clear that a transaction is formatted on
`the Web Server System 50 and forwarded to the Enterprise
`Server System for processing. A suitable Distributed Trans
`action Processing System 54 for the Web Server System is
`the Transactional Desktop software product from Unisys.
`The Transactional Desktop software is Open/OLTP
`compliant, but does not have the required components for
`processing service requests. However, the Transactional
`Desktop software is capable of initiating service requests.
`The exemplary Enterprise Server System is a 2200 Series
`data processing system from Unisys and also includes a
`Distributed Transaction Processing System 56. The Distrib
`uted Transaction Processing System 56 is intended to
`encompass the same functionality as the Transaction Pro
`cessing System 26. However, it is designated as Distributed
`to be compatible with the Distributed Transaction Process
`ing System 54. The Distributed Transaction Processing
`System 54 and the Distributed Transaction Processing Sys
`tem 56 are coupled via Network 58. Preferably, the network
`interface for Network 58 is separate from the network
`interface for Network 20.
`' The environment of FIG. 2 may be preferable to the
`environment of FIG. 1 in that the Web Server System 50
`maybe used prevent request from the Web Browsers 10-16
`from entering Network 58. The Windows NT operating
`system is con?gurable to prevent routing of data packets
`between two network interfaces. In this fashion, the only
`tra?ic that is allowed on Network 58 in response to requests
`on Network 20 is in the form of Open/OLTP service calls
`which are referenced by HTML documents.
`FIG. 3 is a functional block diagram of the software
`components that make a transaction database accessible to
`one or more Web Browsers. Before discussing the various
`software components, it may be useful to illustrate a high
`level data ?ow between the components.
`The data flow is illustrated by the labeled directional
`arrows 72. 74, 76. and 78. The Web Server 18 receives
`Uniform Resource Locator (URL) character strings from the
`Web Browsers 10. 12. 14. and 16. URL character strings are
`passed to the Transaction Gateway Client instances 40,
`which in turn translate the URL character strings into View
`Buffers. View Buffers are passed to the Distributed Trans
`action Processing System 54 as shown by Line 74, and in
`turn passed on to the Distributed Transaction Processing
`System 56. Note that a View Bohfer is a data structure that
`is understood by the Open/OLTP style Distributed Transac
`tion Processing Systems 54 and 56. The invention would be
`equally applicable to transaction and/or database systems
`which expect different data structures. The Distributed
`Transaction Processing System 56 returns View Buffers to
`the Distributed Transaction Processing System 54, which in
`turn returns View Buffers to the Transaction Gateway Client
`
`50
`
`55
`
`65
`
`5,754,772
`
`5
`
`10
`
`15
`
`25
`
`35
`
`45
`
`6
`instances 40. The Transaction Gateway Client instances
`transform the View Buffers into Hyper’l‘ext Markup Lan
`guage documents which are returned to the Web Server 18
`as shown by Line 78. The Web Server returns the HTML
`documents to the respective Web Browsers.
`In terms of the software components that make a trans
`action database Web Browser e?iciently accessible, two
`main components provide the accessibility. The ?rst com
`ponent is the Gateway Link Thread 82 and the second is the
`Transaction Gateway Client 40.
`Web Servers such as the Netscape Commerce Server
`support multiple threads. That is, a single Web Server
`process is multiplexed between the threads. In the exem
`plary embodiment, the Web Server software (i.e., Netscape
`Commerce Server) is con?gured with a Dynamic Link
`Library function designated as the Gateway Link. Each of
`the Gateway Link threads 82, 84, and 86 correspond to a
`URL received from a respective one of the Web Browsers
`10-16. The basic function of a Gateway Link is to establish
`a connection with an available Transaction Gateway Client
`instance 40, forward a URL to the Transaction Gateway
`Client instance, receive an HTML document from the Trans
`action Gateway Client instance, and return the HTML
`document to the respective Web Browser. The Gateway Link
`threads are designated with dashed lines to indicate that their
`existence is dynamic.
`The second main software component is the Transaction
`Gateway Client 40. The main function of the Transaction
`Gateway Client is to transform a request which is in the form
`of a URL from a Web Browser 10-16 into a format which
`is understandable by the Distributed Transaction Processing
`Systems 54 and 56, and transform the data returned from the
`Distributed Transaction Processing Systems 54 and 56 into
`a HTML document that is returned to a Gateway Link.
`In the exemplary embodiment, a predetermined number
`of Transaction Gateway Client instances are started and
`available to process requests from the Web Browsers 10-16.
`Each of the Transaction Gateway Client instances processes
`one request at a time. An equally suitable approach would be
`to have one Transaction Gateway Process instance with a
`multi-thread capability.
`Each of the Transaction Gateway Client instances creates
`an instance of a Named Pipe. The instances of the Named
`Pipe are collectively referenced as 102. An instance of the
`Named Pipe is used for communicating between one of the
`Gateway Link threads 82-86 and an available one -of the
`Transaction Gateway Client instances.
`In addition to instances of the Named Pipe 102 , each
`instance of the Transaction Gateway Client 40 establishes a
`connection with the Distributed Transaction Processing Sys
`tem 54. This connection is established prior to a Transaction
`Gateway Client receiving a request from a Web Browser and
`maintained for the life of the processor instance so that time
`is not wasted in connecting and disconnecting every time a
`request appears. In the exemplary system the connection is
`made with the tpinit program call to the Distributed Trans
`action Processing System 54. In this manner, each of the
`Transaction Gateway Client instances has a preestablished
`and continuous connection with the Distributed Transaction
`Processing System 54. The connections between the Trans
`action Processing System Gateway instances and the Dis
`tributed Transaction Processing System are collectively ref
`erenced as 104.
`Connections between the Distributed Transaction Pro
`cessing Systems 54 and 56 are established as requests are
`forwarded from the Transaction Gateway Client instances.
`
`Petitioner Microsoft Corporation - Ex. 1060, p. 16
`
`
`
`7
`The connections are collectively referenced as Lines 106.
`The connections are designated with dashed lines to indicate
`that the connections are dynamically established and undone
`(as compared to the static connections between the Trans
`action Gateway Client instances 40 and the Distributed
`Transaction Processor 54).
`FIG. 4 is a data?ow diagram showing the ?ow of data
`between the components of the exemplary system. Initially,
`the Web Browser 10 makes a request for an HTML docu
`ment to the Web Server 18 in the form a URL character
`string as shown by Line 1. The Web Server then returns a
`predetermined HTML document to the Web Browser as
`shown by Line 2. The data ?ow of Lines 1 and 2 is intended
`to illustrate the initial steps for initiating a transaction from
`a Web Browser.
`Line 3 shows the URL forwarded from the Web Browser
`10 to the Web Server 18 in response to an action initiated by
`the user of the Web Browser. The Web Server. in turn,
`receives the URL and passes it along to the Transaction
`Gateway Client 40 as shown by Line 4. The Transaction
`Gateway Client 40 transforms the input URL into a View
`Bu?er. which at Line 5. is passed to the Distributed Trans
`action Processing System 54.
`The Distributed Transaction Processing System 54 for—
`wards the View Buffer to the appropriate resource manager
`(not shown) and receives the results of processing the
`transaction in a View Buffer. The View Buffer with the
`transaction results is returned to the Transaction Gateway
`Client 40 as shown by Line 6. The Transaction Gateway
`Client extracts the transaction results from the View Bu?er
`and inserts the transaction results into an HTML document.
`At Line 7. the HTML document with the transaction results
`is forwarded to the Web Se