throbber
United States Patent [19]
`Blackwell, Jr. et al.
`
`USOO5857191A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,857,191
`Jan. 5, 1999
`
`[54] WEB APPLICATION SERVER WITH
`SECURE COMMON GATEWAY INTERFACE
`
`[75] Inventors: William C. Blackwell, Jr., Harvard,
`Mass.; Robin Alston, Penarth, United
`Kingdom; Kevin M. Farrington,
`Southborough, Mass.
`
`[73] Assignee: Gradient Technologies, Inc., Marlboro,
`Mass.
`
`[21] Appl. No.: 676,783
`[22]
`Filed:
`Jul. 8, 1996
`
`[51] Int. Cl.6 .................................................... .. G06F 17/30
`[52] US. Cl. ............................... .. 707/10; 707/1; 707/104;
`707/103; 395/200.33; 395/200.45; 395/831;
`380/23; 705/35
`[58] Field of Search ........................... .. 707/3, 10, 1, 103,
`707/104; 395/200.59, 200.33, 188.01, 684,
`200.45, 831; 380/25, 23, 49; 370/401; 705/35
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,452,459
`5,497,463
`
`9/1995 Drury et a1. .............................. .. 707/3
`3/1996 Stein et a1.
`395/200.33
`232g: Zi'ai'"
`M88 01
`576897638 11/1997 sagovsky '
`" _________ __
`/1
`577017451 12/1997 Rogers et
`370/401
`5,706,286
`1/1998 Reiman et a1. ..
`380/25
`5,706,349
`1/1998 Aditham et a1.
`5,708,780
`1/1998 Levergood et a1. ............. .. 395/200.59
`
`5,715,453
`
`2/1998 Stewart ......................................... ..1/1
`
`OTHER PUBLICATIONS
`YeW—Huey Liu, Paul DantZig, C.Eric Wu, Lionel M.Ni, A
`Distributed connection manager interface for Web services
`on IBM SP systems, IEEE 1996, 2—9, Jun. 1996.
`Masud Khandker, Peter Honeyman, Toby J. Teorey, Perfor
`mance of DCE RPC, IEEE 1995, 2—10, Apr. 1995.
`YeW—Huey Liu, Paul DantZig, C.Eric Wu, Jim Challenger,
`Lionel M.Ni, A Distributed Web server and its performance
`analysis on multiple platforms, IEEE, 665—672, May. 1996.
`A. Masud Khandker, Toby J Teorey, Case Study: HoW
`analytic modeling can reveal performance problems in dis
`tributed systems, IEEE, 61—67, Jul. 1996.
`Netscape Communications Corporation, “The Netscape
`Server API,” 1995.
`Netscape Communications Corporation, “The NSAPI Ver
`sus the CGI Interface,” 1995.
`Primary Examiner—Wayne Amsbury
`Assistant Examiner—Srirama Channavajj ala
`Attorney, Agent, or Firm—Hale and Dorr LLP
`[57]
`ABSTRACT
`
`A Web broWser communicates through a secure local proxy
`to a Web server that has an interface for secure communi
`cations. The application server has an application program
`conforming to the CGI programming model that can run
`continuously as a process and can maintain state
`information, such as pointers to next records, thus requiring
`less computational and memory overhead for a succession of
`requests
`
`13 Claims, 2 Drawing Sheets
`
`50
`/
`CELL DIRECTORY
`SERvICE (CD8)
`
`42
`
`10v BROWSER
`
`APPLICATION ~48
`PROGRAM
`
`DATABASE
`
`3444
`
`SLP
`
`IF
`
`DCE/RFC
`
`API
`
`806!
`
`~46
`~36
`C44
`
`/38
`WEB
`SERVER
`
`NTTP
`
`40
`/
`DOCUMENTS
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 1
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 1 of2
`
`5,857,191
`
`i10
`
`/12
`
`/16
`
`\
`
`COMMON
`GATEWAY /
`INTERFACE
`(CGI)
`
`18
`
`FIG. 1
`(PRIOR ART)
`
`1O
`
`32
`
`‘
`
`BROWSER
`
`SECURE LOCAL
`PRQXY (SLP)
`
`/36 /30
`
`SERVER
`
`CGI
`
`FIG. 2
`(PRIOR ART)
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 2
`
`

`
`U.S. Patent
`
`Jan. 5, 1999
`
`Sheet 2 0f 2
`
`5,857,191
`
`CELL DIRECTORY
`SERVICE (CD8)
`
`42
`~48 4-»
`DATABASE
`
`10“ BROWSER
`
`APPLICATION
`PROGRAM
`
`SLP f
`n
`
`DCE/RPC
`
`API
`SCGI
`
`NTTP
`
`/38
`WEB
`SERVER
`
`DOCUMENTS
`
`FIG. 3
`
`60
`
`CLIENT
`
`/62
`SERVER 1
`
`64 /
`V SERVER 2
`
`DATABASE 1
`
`-
`DATABASE 2
`
`FIG. 4
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 3
`
`

`
`5,857,191
`
`1
`WEB APPLICATION SERVER WITH
`SECURE COMMON GATEWAY INTERFACE
`
`FIELD OF THE INVENTION
`
`This invention relates to a secure interface for an appli
`cation server.
`
`BACKGROUND OF THE INVENTION
`
`With a commercially available Web browser, a user can
`obtain information, such as a document or records from a
`database, from a Web server over the Internet. The Web
`server can access documents directly, or it can access a
`database through a common gateway interface (CGI) pro
`gram. When the Web server requests data from the database
`in response to the user’s request, a CGI program is executed
`to create a query to the database, to format results from the
`database in HyperTeXt Markup Language (HTML), and to
`provide the results to the Web server for transmission to the
`user.
`To access the database during a succession of requests, the
`Web server creates and eXecutes a separate local CGI pro
`gram for each request. Each process opens the database,
`retrieves data speci?c to the request, and closes the database.
`BetWeen requests, the Web server does not preserve any state
`information. Consequently, any subsequent request for
`information from the database requires that a subsequent
`CGI process perform the same steps, i.e., open database,
`retrieve data, and close database. Such execution of succes
`sive programs for successive requests to access the database
`is computationally inef?cient.
`Communications betWeen the Web broWser and the Web
`server are typically made according to the HyperTeXt Trans
`fer Protocol (HTTP). A concern With such transfers of
`information is that HTTP is generally not secure. With a
`commercially available “packet sniffer,” an intruder can
`intercept packets transmitted over the Internet. To provide
`additional security, public-key authentication and encryp
`tion can be added to HTTP. Authentication refers to a
`mechanism by Which the transacting parties prove they are
`Who they claim to be; and encryption refers to the altering
`of data so that it cannot be easily read or modi?ed if
`intercepted. Such systems, hoWever, do not provide
`authoriZation, i.e., the restriction of access to data based on
`a user’s identity.
`To provide more security functions, the Web broWser and
`Web server can use the Distributed Computing Environment
`(DCE) from the Open SoftWare Foundation (OSF) of
`Cambridge, Mass. With a DCE-based system, requests from
`the Web broWser are provided to a secure local proXy (SLP),
`Which tunnels the requests to a DCE-aWare Web server via
`DCE Remote Procedure Call (RPC). Security based on RPC
`communications enables authoriZation in addition to other
`security features.
`
`OBJECTS AND SUMMARY OF THE
`INVENTION
`
`It is an object of the present invention to provide access
`to objects With less computational overhead than is typical
`of a CGI program model.
`It is another object of the present invention to reduce
`overhead While providing security that includes
`authentication, privacy, and authoriZation.
`In a system according to the present invention, a secure
`application server has a secure interface that receives
`requests from a Web broWser. The server also has an appli
`
`2
`cation program for accessing an object, such as a database,
`and an application programming interface (API) betWeen the
`secure interface and the application program.
`The secure application server can run continuously as a
`process and can maintain state information about the object.
`In the case Where the object is a database, the database can
`remain open betWeen calls to the same database, and the
`secure server can maintain pointers to neXt records to be
`read. This system thus requires less computational and
`memory overhead. The secure servers are scalable in that
`additional secure servers can be added and their tasks can be
`divided so that different servers are used for different pur
`poses. The API betWeen the secure interface and the appli
`cation program alloWs a programmer to use the CGI pro
`gramming model in the application program, Without
`requiring that the programmer program according to the
`secure interface, such as the Distributed Computing Envi
`ronment (DCE). Other features and advantages become
`apparent from the folloWing detailed description, draWings,
`and claims.
`
`15
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`25
`
`FIGS. 1 and 2 are block diagrams of knoWn systems for
`providing communications betWeen a Web broWser and a
`Web server.
`FIGS. 3 and 4 are block diagrams of systems according to
`embodiments of the present invention.
`
`DETAILED DESCRIPTION
`
`Referring to FIG. 1, in a knoWn system, a commercially
`available Web broWser 10 (a client) communicates With a
`Web server 12 using HTTP or a version of HTTP With
`public-key-based authentication and encryption. Web server
`12 can access documents 16 directly, or it can cause a
`process to access data in a database 18 through a common
`gateWay interface (CGI) 20. CGI 20 has a program that
`resides on server 12 and is customiZed to server 12 and
`database 18. CGI 20 is thus part of server 12. For each
`request from a user for data in database 18, Web server 12
`eXecutes the CGI program. Each execution of the CGI
`program causes the server to open database 18, create a
`query to access the data in the database, provide and format
`results for server 12 in HTML, and then close database 18.
`Referring to FIG. 2, to provide enhanced security, the user
`can use Web broWser 10 With a secure local proXy (SLP) 32
`to communicate With a Web server 30 through an interface
`36 that alloWs secure communications With DCE/RPC.
`Server 30 also uses a CGI program to access a database as
`described above. While this system provides security that
`has certain bene?ts over HTTP or HTTP enhanced With
`public-key encryption, such as the addition of authoriZation
`features, it still has some draWbacks of the system of FIG.
`1 in that a stateless CGI program is involved in the same
`inef?cient manner and the CGI program must reside on the
`same system as server 30 and thus be part of server 30.
`Referring to FIG. 3, according to the present invention, a
`Web broWser 10 can communicate With many Web servers,
`including an application server 36 through an SLP 34 over
`secure DCE/RPC, and With Web server 38 With HTTP.
`Server 38 can retrieve documents 40 and provide them to the
`user over non-secure HTTP.
`Server 36 has a secure interface 44 that supports com
`munications With secure DCE/RPC, an application program
`ming interface (API) 46, and an application program 48 that
`can access an object such as a database 42. Program 48 in
`
`35
`
`45
`
`55
`
`65
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 4
`
`

`
`3
`server 36 can be kept constantly running With the database
`open. With this ability, program 48 can maintain state
`information about database 42, and can store database
`speci?c handles to service a series of database queries
`Without closing the database betWeen each query. These
`handles can contain pointers that alloW a neXt record to be
`retrieved Without restarting a search. Server 36 can thus omit
`computational overhead that is typically required for a series
`of accesses as in a system such as that shoWn in FIG. 1. To
`implement this feature, the server has a main procedure
`Which calls a database open routine, thus causing the data
`base to remain open.
`Server 36 is also multi-threaded so that it can handle
`requests from multiple broWsers concurrently, thus provid
`ing additional computational ef?ciency over the typical
`CGI-based system. The shared process memory also
`requires less memory.
`As part of a typical DCE system, the system shoWn in
`FIG. 3 has a cell directory service (CDS) 50 that runs as a
`daemon on some host in the DCE cell. CBS 50 brings
`together DCE-based clients, such as SLP 34 and secure
`application servers 36. If a user With a Web broWser invokes
`a Uniform Resource Locator (URL) With a particular DCE
`syntax (e.g., “/.:/” in the URL), SLP 34 queries CBS 50 to
`determine the netWork location of a DCE-aWare Web server
`corresponding to the URL. Because the URL locates a
`virtual object Within the netWork and not a speci?c netWork
`host or a hard physical netWork address, a secure application
`server can change its host name or netWork address and
`re-register With the CBS 50 daemon Without requiring a
`change in the URL invoked by the client user.
`Referring to FIG. 4, the system of the present invention is
`easily scalable in that a client 60 can access multiple secure
`application servers 62, 64 such that each secure application
`server corresponds to a different URL and a different appli
`cation or group of applications. For eXample, different
`secure application servers can each access different
`databases, each feeding information back to the Web
`broWser; or one application server can be a backup in the
`event that one host fails.
`Referring again to FIG. 3, application program 48 can be
`Written by a programmer to conform to the model and
`protocol used With current CGI-based servers, but program
`48 is adapted for use With secure interface 44 With a toolkit
`in API 46 that implements the secure interface functions.
`This toolkit includes a library With a number of routines for
`handling details associated With the secure interface protocol
`and provides a convenient interface to the user/programmer,
`Without requiring the programmer to program With a secure
`interface protocol such as DCE.
`The toolkit has a “start” routine that initialiZes functions
`of the application server, such as providing a server name to
`CBS 50 so that the server can be found, and registering an
`end point. After the server is started, a “listen” routine causes
`the application server to listen for incoming requests. This
`listen routine accepts, as input parameters, pointers to han
`dler routines for HTTP methods that might be requested by
`a client user, such as “GET,” “HEAD,” “POST,” and “PUT”
`methods. These handler routines Would be Written by an
`application developer With an application-speci?c procedure
`for handling requests. These handlers typically take input
`parameters, check authoriZation against an access control
`list (ACL), perform processing, create HTML output, and
`return to the listen routine. If the toolkit is Written in
`C-language, it also includes input/output routines that emu
`late knoWn C-language runtime routines, such as printf,
`puts, getc, and getenv.
`
`1O
`
`15
`
`25
`
`35
`
`45
`
`55
`
`60
`
`m 5
`
`5,857,191
`
`4
`With this toolkit stored as API 46 on application server 36
`in one of a number of knoWn types of storage media, such
`as a disk, application programmers familiar With CGI pro
`gramming can build an application server of the type shoWn
`in FIG. 3, While the toolkit conveniently adapts the CGI
`program to the secure interface.
`An embodiment of a secure interface and an application
`program interface is available from Gradient Technologies,
`Inc., of Marlboro, Mass., under the name WebCrusader
`Secure AppEngine. This product provides DCE-based com
`munications for users With a WebCrusader Connect Client
`local proxy and also provides a C-language API for com
`municating With an application program. With such a
`system, the application server is not tied to another particular
`Web server. Because the application server is not tied to a
`particular Web server, it can be managed separately, thus
`making administration more manageable. Moreover, the
`application program for accessing the object can be Written
`in the knoWn CGI form, and therefore the programmer need
`not use a proprietary protocol.
`Having described an embodiment of the present
`invention, it should be apparent that other modi?cations can
`be made Without departing from the scope of the invention
`as de?ned by the appended claims. While the present
`invention has been described in terms of DCE, other secure
`systems, such as a public key system, could be employed.
`What is claimed is:
`1. An application server for receiving from a Web broWser
`requests to access an object, the server comprising:
`a secure interface for receiving the requests from the Web
`broWser over a communications line;
`an application program conforming to the common gate
`Way interface (CGI) protocol and stored in a storage
`medium for accessing the object and for providing data
`as a result of the access; and
`an application program interface With a library of routines
`stored in a storage medium for communicating betWeen
`the application program conforming to the CGI proto
`col and the secure interface to provide secure commu
`nications to the object.
`2. The server of claim 1, Wherein the secure interface
`receives communications With Distributed Computing Envi
`ronment Remote Procedure Call (DCE RPC).
`3. The server of claim 1, Wherein the application program
`has an open database call to keep the object open betWeen
`successive requests from the Web broWser.
`4. A method comprising server-implemented steps of:
`receiving over the Internet from a Web broWser a ?rst
`request for access to a database;
`accessing the database in response to the ?rst request
`according to the CGI protocol;
`providing data from the database to the Web broWser
`according to the CGI protocol Without closing the
`database;
`receiving over the Internet from a Web broWser a second
`request for access to a database;
`accessing the non-closed database according to the CGI
`protocol in response to the second request from the Web
`broWser; and
`providing data from the database to the Web broWser
`according to the CGI protocol in response to the second
`request.
`5. The method of claim 4, Wherein the receiving steps
`include receiving requests over DCE RPC.
`6. A system responsive to requests from a user With a Web
`broWser, the system comprising:
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 5
`
`

`
`5,857,191
`
`5
`a Web server having an interface for allowing secure
`communications betWeen the server and the Web
`broWser, the Web server for providing documents to the
`Web broWser;
`a ?rst object accessible over the Internet; and
`a ?rst application server With a secure interface that
`alloWs secure communications of the type provided by
`the Web server, the ?rst application server being
`responsive to the Web broWser for accessing the ?rst
`object to retrieve data therefrom and for providing the
`retrieved data to the Web broWser independent of the
`Web server.
`7. The system of claim 6, further comprising a second
`object accessible over the Internet, and a second application
`server having a secure interface and being responsive to the
`Web broWser for accessing and retrieving data from the
`second object independent of the Web server.
`8. The system of claim 6, Wherein the ?rst Web server is
`a DCE-aWare server and the secure interface supports DCE.
`
`15
`
`6
`9. The system of claim 6, further comprising a cell
`directory service, responsive to a request from the client, for
`determining a netWork location of a requested server.
`10. The system of claim 6, Wherein the application server
`is multi-threaded.
`11. The system of claim 6, Wherein the accessible object
`is a database, and the application server is programmed to
`access the database during multiple requests Without closing
`the database betWeen requests.
`12. The system of claim 6, Wherein the ?rst accessible
`object is a database, and Wherein the application server has
`an application program for accessing the database, and an
`application programming interface for communicating
`betWeen the application program and the secure interface.
`13. The system of claim 12, Wherein the application
`program conforms to the CGI protocol, and the secure
`interface supports DCE.
`
`*
`
`*
`
`*
`
`*
`
`*
`
`Petitioners Great West Casualty Co., BITCO Gen. Ins. Corp., and BITCO Nat'l Ins. Co.
`Ex. 1028, p. 6

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket