throbber
RPX Exhibit 1004
`RPX v. AIT
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 1 of 22
`
`US 6,249,291 B1
`
`n:
`
`2E-EuYma<82>
`
`o:
`
`
`
`NSwwmqofim$32
`
`mi@fiaonxmx
`l.IIlI|II
`
`H2&3
`
`CHO:
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 2 of 22
`
`US 6,249,291 B1
`
`0
`
`SNcan
`
`
`
`mmmafimfl:o:r..._:nE<am§m..s§ou.%.@n,¢_.£.%m
`
`
`
`
`
`\\newmom
`
`
`
`EmEoD.S>.am¥62:wZEmuomuou
`
`
`
`
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`22__...l03._lCBhS
`
`US 6,249,291 B1
`
`co:8__&<W_
`
`Lwbhum“atom#5929
`
`
`
`
`
`m,.._.w&
`
`Nam
`
`<mesma
`
`E25
`
`Em:U
`
`

`
`US. Patent
`
`Jun. 19, 2001
`
`22__...l04._lBBhuS
`
`US 5,249,291 B1
`
`£u_...mn._
`
`«$5.
`
`mommxumn:
`
`HD_
`
`mmmusmfl
`
`mEo£m>._..
`
`M.mm.aa._%_m_.._
`
`\
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 5 of 22
`
`US 6,249,291 B1
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 6 of 22
`
`US 6,249,291 B1
`
`application
`identified by
`request exists?
`
`t.
`1.
`t
`crea e app 1Ca ion
`
`forward request to
`application
`
`receive response
`from application
`
`return response
`to client
`
`Figure 5A
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 7 of 22
`
`US 6,249,291 B1
`
`receive request
`
`verify request
`
`526
`
`valid request?
`
`generate errer
`
`create transaction
`
`Figure 5B
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 8 of 22
`
`US 6,249,291 B1
`
`identify page to
`handle request
`
`create request object
`and page object
`
`send message
`to page
`
`page responds
`to message
`
`action needed?
`
`Yes
`
`invoke action
`
`create response page
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 9 of 22
`
`US 6,249,291 B1
`
`create root object
`for object graph
`
`send
`
`"prepareRespc-nse"
`message to page
`object
`
`send
`
`"generateDescription"
`message to page object
`
`return response
`to server
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 10 of 22
`
`US 6,249,291 B1
`
`invalid
`session ID?
`
`encrypt request
`information
`
`check portion of
`encrypted string with
`digital signature
`
`

`
`US. Patent
`
`Jun. 19, 2001
`
`22f0.I_1teBhuS
`
`US 5,249,291 B1
`
`
`
`uaa_.€_aEmama_E_.=...1_m_.no_n_.._._wmu.:em£££_:>__E:cm_:.3.
`
`ask:_mfiwuuaflwx:5:-
`3325:
`
`:c:m_ucmm<
`
`
`
`w_um_...o1Ewuumflwxcafiucozuu..._:om>...m2“2m0.._
`
`
`
`
`
`
`
`
`
`:3...ac.mu...o_nEu»u.....~3.xm,_.>.emZ"wm>D4LEm"EMO.._
`
`
`
`
`
`
`
`n.=&.:v
`
`
`
`.._£mE..um_z<2ofimzu
`
`
`
`
`
`~.mm»o._.__,...m__um2¢.z3.52»252...:
`
`
`
`
`
`,:2m:m,um:._¢>L.:2m=._W_u.n.__.;.—..._.Ez_u
`
`as853
`
`
`
`.flU4.._.nZ..__.v
`
`nufimz?
`
`2.2.5:?
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`22f021._lEBhS
`
`US 6,249,291 B1
`
`momuswwm
`
`

`
`US. Patent
`
`Jun. 19, 2001
`
`22f031._lEBhuS
`
`US 5,249,291 B1
`
`m:o:m_uomm.<
`
`
`
`...::a:an_EoUmm_€_mEmHLS_mDH
`
`
`
`_...f:mcomEoU:mn_:w_mU_1_<U
`
`Ummzsmfl
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 14 of 22
`
`US 6,249,291 B1
`
`702
`
`

`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 15 of 22
`
`US 6,249,291 B1
`
`.“§x.H.”.“.”.H.”.”."-”-“.“.~.“._.”~.u~
`

`5
`
`742
`
`E
`g
`
`WEBPEOPLE
`
`744
`
`746
`
`Repefifion
`Controller
`
`Figure 7B
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 16 of 22
`
`US 6,249,291 B1
`
`702
`
`WEBPEOPLE
`
`Repetition
`Controller
`
`Figure 7C
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 17 of 22
`
`US 6,249,291 B1
`
`send "create" message to
`document's root object
`
`identify children
`of root object
`
`send "create" message
`to children
`
`children have
`
`children?
`
`

`
`US. Patent
`
`Jun. 19, 2001
`
`Sheet 18 of 22
`
`US 6,249,291 B1
`
`Web Object
`Server
`
`Application
`
`918
`
`j
`
`924
`
`Page
`
`920
`
`L
`
`926
`
`-.-<.......y-.u¢A----E
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 19 of 22
`
`US 6,249,291 B1
`
`Response
`Page
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 20 of 22
`
`US 6,249,291 B1
`
`11
`
`-:
`
`G)
`5-4
`53
`.9.“
`LL:
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`22f012tCB.........S
`
`US 6,249,291 B1
`
`
`
`SmzommZOE.¢U¢>
`
`
`
`E__EmzmwmomUEMZ
`
`_uw>o.aE<
`
`9&2E-main:_:o_.8m>
`
`TI
`
`mmna
`
`
`
`emmadmmZOE.<U€>
`
`
`
`£:Em£n_mmo_.umchmz
`
`
`
`$2:”E=5.&<
`
`mmaflE-mimmh”:o:mum>
`
`ll
`
`45;
`
`<22&5
`
`vmwnfi...«D
`
`/Pammunm
`
`mmcommmm
`
`8:
`
`32
`
`mwmnfimfl
`
`/sufiz
`
`fiuzmmm
`
`No.2.
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`22teehS
`
`22on
`
`US 6,249,291 B1
`
`
`
`emmaommZOE..<U<>
`
`
`
`mm\mQ~-mo\mm>aou§>
`
`
`
`Eflnmammmom“@982
`
`”B>o:E<
`
`
`
`Hmmaommzo:_<u<>
`
`fiwamEmma..
`
`
`
`minim-mos“:aou§>
`
`fi.._._>oEm¢.
`
`msm
`
`/Q
`.En._m.fl
`ooafi
`
`mmfiommmm
`
`wofifi
`
`/«E8:
`
`oofifi
`
`woflfi
`
`umwnwwm
`
`mmanflmfl
`
`-
`
`amsmflvummfifimfl
`
`

`
`US 6,249,291 B1
`
`1
`METHOD AND APPARATUS FOR
`IVIANAGING INTERNET TRANSACTIONS
`
`BACKGROUND OF THE lNVEN'l'I()N
`
`1. Field of the Invention
`
`This invention relates to the development and manage-
`ment of transactions on the Internet.
`
`2. Background
`The Internet
`is a worldwide matrix of interconnected
`computers. An Internet client accesses a computer on the
`network via an Internet provider. An Internet provider is an
`organization that provides a client (e.g., an individual or
`other organization) with access to the Internet (via analog
`telephone line or Integrated Services Digital Network line,
`for example). A client can, for exarnple, download a file
`from or send an electronic mail message to another
`computerfclient using the Internet.
`To retrieve a file on the Internet, a client must search for
`the file, make a connection to the computer on which the file
`is stored, and download the file. Each of these steps may
`involve a separate application and access to multiple, dis-
`similar computer systems. The World Wide Web (WWW)
`was developed to provide a simpler, more uniform means. for
`accessing information on the Internet.
`The components of the WWW include browser software,
`network links, and servers. The browser software, or
`browser, is a graphical interface (i.e., front—end) that sim-
`plifies access to the Internet. A browser allows a client to
`communicate a request without having to learn a compli-
`cated command syntax. A browser typically provides a
`graphical user interface (GUI) for displaying infonnation
`and receiving input. Examples of browsers currently avail-
`able include Mosaic, Netscape, and Cello.
`Information servers maintain the information on the '
`WW and are capable of processing a client
`request.
`Hypertext Transport Protocol (I-ITTP) is the standard pro-
`tocol for communication with an information server on the
`WWW. H‘I’I't’ has communication methods that allow cli-
`ents to request data from a server and send information to the
`S-EI'\«"El'.
`
`To submit a request, the client contacts the HTTI’ server
`and transmits the request to the l-I"l"l'l’ server. The request
`contains the communication method requested (e.g., GET an
`object from the server or POST data to an object on the
`server). The HTTP server responds to the client by sending
`a status of the request and the requested information. The
`connection is then terminated between the client and the
`
`I-ITTP server. A connection between a client and an H'l'l'l’ _
`server therefore has four stages: 1) initiation, 2) request
`transmittal, 3) response transmittal, and 4) termination. A
`connection can only process a single transaction or interac-
`tion bctween the client and the H'l'l’l’ server.
`
`_
`
`The HTTP server does not retain any infomiation about
`the request after the connection has been terminated. IITTP
`is, therefore, a stateless protocol. That is, a client can make
`several requests of an H'l'|'l’ server. but each individual
`request is treated independent of any other request. The
`server has no recollection of any previous request.
`An addressing scheme is employed to identify Internet
`resources (e. g., II'I'l'I-’ server, ille or program). This address-
`ing scheme is called Uniform Resource Locator (U RI..}. A
`URI. contains the protocol to use when accessing the server
`(e.g.. I-ITTP), the Internet domain name of the site on which
`the server is running, the port number of the server, and the
`location of the resource in the lile structure of the server.
`
`2
`The WWW uses a concept known as hypertext. Hypertext
`provides the ability to create links within a document to
`move directly to other information. To activate the link, it is
`only necessary to click on the hypertext link (e.g., a word or
`phrase). The hypertext link can be to information stored on
`a different site than the one that supplied the current infor-
`mation. A URL is associated with the link to identify the
`location of the additional
`information. When the link is
`activated, the client ’s browser uses the link to access the data
`at the site specified in the URI...
`If the client request is for a file. the HTTP server locates
`the file and sends it to the client. An I-ITTI’ server also has
`the ability to delegate work to gateway programs. The
`Common Gateway Interfaoe (CGI) specification defines the
`mechanisms by which HTTP servers communicate with
`gateway programs. A gateway program is referenced using
`a URL. The H‘I'l‘P server activates the program specified in
`the URL and uses CGI mechanisms to pass program data
`sent by the client to the gateway program. Data is passed
`from the server to the gateway program via command-line
`arguments, standard input, or environment variables. The
`gateway program processes the data and returns its response
`to the server using CGI (via standard input, for example).
`The server forwards the data to the client using lhe HTTP.
`A browser displays information to a clientfuser as pages
`or documents. A language is used to define the format for a
`page to be displayed in the WVVW. The language is called
`Hypertext Markup Language (HTML). A WWW page is
`transmitted to a client as an HTML document. The browser
`executing at the client parses the document and produces a
`displays a page based on the information in the HTML
`document.
`
`is comprised of
`language that
`HTML is a structural
`HTMI- elements that are nested within each other. An
`HTML document as a text iile in which certain strings of
`characters, called tags, mark regions of the document and
`assign special meaning to them. These regions are called
`I-l'l‘Ml.. elements. Each element has a name, or tag. An
`element can have attributes that specify properties of the
`element. Blocks or components include unordered list, text
`boxes, check boxes, radio buttons, for example. Each block
`has properties such as name, type, and value. The following
`provides an example ofthe structure of an HTML document:
`<l‘lTMI.>
`-cllli./\.I)>
`
`. element(s) valid in the document head
`.
`.
`«all IE/\D>
`-cBOI)Y>
`.
`.
`. element(s) valid in the document body
`<,-’l3()DY>
`4r'l'lTML>
`L-Zach IITML element is delimited by the pair of characters
`"<" and “>". The name of the HTML element is contained
`within the delimiting characters. The combination of the
`name and delimiting characters is referred to as a tag. Each
`element is identified by its tag. In most cases, each element
`has a start and ending tag. The ending tag is identified by the
`inclusion of an another character. "I" that follows the first
`delimiting character ("<").
`HTML is a hierarchical language. With the exception of
`the IITML element, all other elements are contained within
`another element. The HTM l. element encompasses the
`entire document. It identifies the enclosed text as an HTMI.
`document. The HEAD element
`is contained within the
`IITML element and includes information about the IITML
`document. The BODY element
`is contained within the
`
`

`
`US 6,249,291 B1
`
`3
`I-ITML. The BODY element contains all of the text and other
`information to be displayed. Other elements are described
`by any HTML reference manual.
`Web-based access has been used for simple information
`publishing that consisted of static data and no logic. For
`example, a client request might request another page. The
`HTTP server fetches a pre-defined Web page using the URL
`contained in the request. The Web page is returned to the
`client. Web-based access has progressed to dynamic infor-
`mation publishing that allows some simple queries and some
`limited logic to access a database and display database
`information. Web applications have been used in commerce
`to order articles of manufacture via the Web (e .g., a personal
`stereo cassette deck). Commerce applications provide some
`limited logic and allow a Web page to change based on the
`client input.
`Web-based applications are developed independent of
`other Web-based applications. That is, constructs used to
`implement one Web—based application remain local to the
`application. ‘They are not shared.
`Currently, a common gateway interface program is writ-
`ten to process a single transaction. Minimal state informa-
`tion is retained within the HTML document.
`it would be
`beneficial to use objeet—oriented H’l'MI_ elements to manage
`a series of Internet transactions and to maintain state infor— _
`mation across Internet transactions. It would be beneficial to
`be able to generate HTML documents dynamically using
`information from a previous transaction, corporate data, and
`data retained in HTML element objects. It would be ben-
`eficial to be able to share application development across
`applications.
`SUMMARY OF 'l'I-IE INVE.N'l'lON
`
`_
`
`The object-oriented approach used by the present inven-
`tion provides the ability to develop and manage Internet
`transactions. An HTML document can be generated dynami-
`cally. Some or all of a form can be generated based on input
`received in a receive form, generated at runtime, or retrieved
`from an external data source (e.g., database or electronic
`mail system). When the HTML document is rendered, the
`information contained in IITML template{s), declaration
`lile(s), and object(s) are used to generate standard IITML.
`Information regarding a client request is maintained by
`the application that processes the client request. The infor-
`mation is maintained in a state. or context. Different levels
`ofstate information are maintained by the present invention.
`The state level defines the duration and scope of the state
`information. Storage policies define the method of storage
`used for state information. By maintaining a context having
`levels, it is possible to form a virtual session with each user _
`accessing an application such that an application can serve
`any request in any order.
`Using the present invention, a user can connect to a local
`Internet provider and use the Web to connect to a home page.
`Once the connection is established, the present invention is _
`used with an application on the server side of the connection
`to dynamically generate Web pages. The Web pages contain
`application information and provide the ability for the user
`to specify input. A browser executing on the user’s work-
`station receives a Web page from the Internet and sends a
`response containing user input via the Internet. The present
`invention can be used to generate Web pages in response to
`the user input. Thus, a user can access an application located
`anywhere relative to the application server by using any
`local workstation hardware and software platform.
`When a client request is received by the application, the
`application manages the update and retrieval of data from
`
`4
`the form
`the context, processes the received form (i.e.,
`received from the client that includes the client request), and
`processes any return form (i.e., a form sent to the client in
`response to the client request).
`All or some portion of the Web page is dynamically
`generated. Classes of object are associated with elements
`that defined a Web page (e.g., HTML elements). By objec-
`titying Web pages it is possible to gain the advantages of
`object-oriented programming with Web pages. These advan-
`tages include rapid application development through object
`reuse, transparent distribution, simplified maintenance, and
`scalability. These advantages can be achieved using the
`common interface provided by Web browsers.
`Object instances associated with definitional elements are
`instantiated during execution to manage their respective
`portions of the Web page. Control objects are associated
`with definitional elements to facilitate the How of informa-
`tion to and from external data sources.
`
`Definitional elements can be grouped together. A group
`object class provides the ability to access these definitional
`elements as a group. A special type of control referred to as
`a repetition control allows a group to be activated multiple
`times. Each activation of a group of definitional elements
`generates one occurrence of a repeating portion of the Web
`page.
`Self-contained modules, or components, can be accessed
`to provide additional definition for the Web page. A control
`object is associated with one of these modules to manage its
`integration into the rest of the Web page definition. The
`self-contained modules can be shared by one or more Web
`pages in a single application andfor across multiple appli-
`cations executing on application server 316 (or any other
`server).
`A page definition has some combination of the following
`associated resources: template(s], association(s), and custom
`logic. A template contains an initial definition for some or all
`of the page. At runtimc, some or all of the initial definition
`can be dynamically altered. Associations provide declaration
`and binding information.
`(Tustom logic provides custom
`functionality.
`A reusable or sharable construct of the present invention
`is referred to as a component. Aeomponenl can represent an
`entire page or some portion ofa page. Acomponent has none
`or more rcsou rccs. A resource can be,
`for example,
`a
`template, association, or custom logic. A component owns
`its associated resources.
`
`One or more components can be combined to define a
`page. A component can be defined using different defini-
`tional constructs {e.g., H'l‘MI., VRML, PDF, etc.). By com-
`bining these components as a single Web page, a document
`can be derived from multiple definitional constructs.
`A control class provides object cover for components. An
`abstract class provides the ability to: associate a Web object
`(e.g., an HTML element object) with a corporate object,
`generate static elements, and modify an object tree. Sub-
`classes of the control class inherit behavior from the abstract
`class. Instances of these subclasses provide push and pull
`mode associative behavior.
`In push mode, data retrieved
`from an external data source (or another source) is used to
`dynamically generate a Web page.
`In pull mode, data
`contained in the Web page can be stored into the context or
`corporate object.
`A control object can have subcontrols that are themselves
`control objects. Subcontrols can be pre-defined or generated
`at runtime. The associative behavior of a subcontrol
`is
`attributed to the parent control object. A control object
`
`

`
`US 6,249,291 B1
`
`5
`activates a subcontrol's push and pull modes by forwarding
`the activation message that it received.
`Event objects are used to handle a client request. These
`event objects contain request infonnation and behavior to
`verify and process an client request. Custom logic can be
`invoked during event handling. The application manages the
`process and event objects.
`
`BRIEF D]:lS(.‘RlI’I'lON OF TIIIE. DRAWINGS
`
`6
`118 may contain, for example, 32 address lines for address-
`ing video memory 114 or main memory 115. The system bus
`118 also includes, for example, a 32-bit D/(FA bus for
`transferring DATA between and among the components,
`such as CPU 113, main memory 115, video memory 114 and
`mass storage 112. Alternatively. multiplex D(\TA.r’address
`lines may be used instead of separate DATA and address
`lines.
`
`In the preferred embodiment of this invention, the CPU
`113 is a 32-bit microprocessor manufactured by Motorola,
`such as the (JSUXU processor or a microprocessor manufac-
`tured by Intel, such as the 80x86, or Pentium processor.
`However, any other suitable microprocessor or microcom-
`puter may be utilized. Main memory 115 is comprised of
`dynamic random access memory (DRAM). Video memory
`114 is a dual-ported video random access memory. One port
`of the video memory 114 is coupled to video amplifier 1.16.
`The video amplifier 116 is used to drive the cathode ray tube
`(CRT) raster monitor 11?. Video amplifier 116 is well known
`in the art and may be implemented by any suitable means.
`This circuitry converts pixel DATA stored in video memory
`114 to a raster signal suitable for use by monitor 117.
`Monitor 117 is a type of monitor suitable for displaying
`graphic images.
`The computer system described above is for purposes of
`example only. The present invention may be implemented in
`any type of computer system or programming or processing
`environment. When a general purpose computer system
`such as the one described executes the processes and process
`flows described herein, it
`is a means for developing and
`managing Internet transactions.
`The present invention provides the ability to access an
`application using any interface. For example, a client can
`access the same application via the Internet using a system
`running Windows, MACIOS, Sun.OS. NextStep, etc. Refer-
`ring to FIG. 2, client 202 is resident on a corporate network
`200. Corporate network 200 is a local area network com-
`prised of personal computers such as client 202,
`for
`example. Client 202 executes a browser such as Netscape or
`Mosaic to interface with World Wide Web (WWW) 204. The
`browser executing on client 202 displays HTML documents
`transmitted to client 202 via WWW 204. When the client
`browser submits a request typically an HTML page,
`it is
`transmitted via “WVW 204 to HTTP server 206. An attribute
`of the submitted form is a Universal Resource Iocator
`(URL). The URI.. specifies procedures to be executed andior
`data input by the user.
`H’l'I'P server 206 can service the client request by, for
`example, retrieving a return form or file (specified by a URL
`contained in the I-ITML document) and transmitting it
`to
`client 202 via W 204. Further, HTTP server 206 can
`initiate a program identified in the URI.. In the preferred
`embodiment, the URL specifics CGIMesscngcr 210 to ser-
`__ vice the client request. CGlMessengcr 210 uses the Com-
`mon Gateway Interface (CGI) protocol,
`for example.
`CGIMessenger 210 can execute on the I-ITTP server 206 or
`another server connected to l-I’l’l'l’ server 206, for example.
`The following provides an example of a URL:
`
`illustrates
`
`1 provides an example of a general purpose com-
`FIG.
`puter to be used with the present invention.
`FIG. 2 provides a block-level diagram that
`components of the present invention.
`FIG. 3A provides a block-level diagram for accession a
`corporate application on the World Wide Web (WWW)
`using the present invention.
`FIG. 3B provides an example of Web pages generated by
`an Automobile Shopper’:-5 application accessed via the
`WWW using the present invention.
`FIG. 4 provides a diagram of the object tree.
`FIGS. 5A—5E provides an example of a process How for
`handling a client request.
`FIG. 6A provides an example of resources associated with ;_
`a control.
`
`FIGS. 6B—6C provide a block-level diagram associated
`with component processing.
`FIG. 7A provides the object tree that is generated when
`the I-ITMI. in Table Four is parsed.
`FIG. 7B provides an example of the object tree of FIG. ‘TA
`and an associaterl repetition controller and repetition tem-
`plate.
`FIG. 7C‘ provides an example of the object tree of FIG. 7B _
`that has been modified using a repetition controller anti
`template.
`FIG. 8 illustrates a rendering process How.
`FIGS. 9A—9B illustrate event handling object diagrams.
`FIG. [0 illustrates context objects.
`FIGS. ll/\—llB illustrate the push and pull modes of the
`present invention.
`I)E'l'AII..ED DESCRIPTION OF TI-IE
`INVENTION
`
`_
`
`A method and apparatus for developing and managing
`Internet
`transactions is described.
`In the following
`description, numerous specific details are set forth in order
`to provide a more thorough description of the present
`invention. It will be apparent, however, to one skilled in the
`art. that the present invention may be practiced without these
`specific details. In other instances, well-known features have
`not been described in detail so as not
`to obscure the
`invention.
`
`The present invention can be implemented on a general
`purpose computer such as illustrated in FIG. 1. A keyboard
`110 and mouse 111 are coupled to a bi-directional system
`bus 118. The keyboard and mouse are for introducing user
`input to the computer system and communicating that user
`input
`to CPU 113. The computer system of FIG. 1 also
`includes a video memory 114, main memory 115 and mass
`storage 112, all coupled to bidirectional system bus I18
`along with keyboard 110, mouse [11 and CPU 113. The
`mass storage 112 may include both fixed and removable
`media, such as magnetic. optical or magnetic optical storage
`systems or any other available mass storage technology. Bus
`
`http:.’.i\.v\tv\v,next.con1.n'cgi_bit't.I’cgE:r1essengeri'app_nante.-'tev_fortnf
`sertd_fo rm
`
`The above example is for illustration only. Any URL
`format can be used with the present invention. The URI- in
`the above example has multiple parts. The first part, “httpr”
`spccilies the protocol to be used. Other examples ofprotocol
`include "ftp:”, "gopher: ” and “wais”. The next part specifies
`
`

`
`US 6,249,291 B1
`
`7
`In this case, the
`the Internet domain name of the server.
`Internet domain name of the HT11’ server is “www.next-
`.corn". The next part, “fcgi bintcgi messenger" specifies
`the path and lilename of the desired resource. The resource
`can be a file, form, or program, for example. In this case, the
`resource is a common gateway interface program that is
`used to route requests to applications. The application that
`processes the client request is specilied in the URL with the
`"app name” specification. The names ofthe receiving form
`(c.g., the form containing the client request) and the sending
`form (e.g., a reply to the client request) can be included in
`the URL.
`
`_
`
`Aclient request can result in the invocation of application
`214 in the server domain 208, for example. The client
`request is received by the HTTI’ server 206. HTTP server
`206 initiates CGIMessenger 210. To service the client
`request, CGIMesseriger 210 communicates with HTTP
`server 206 to obtain information regarding the client request.
`For example. CG|Messenger 210 obtains any information
`that accompanied the user request such as form andlor
`application names andior user input. The form names can
`include the name of the form that was submitted to initiate
`the client request as well as a return form.
`The application name identifies the application that ser-
`vices the client
`request.
`If an application is specified,
`C‘GIMcssengcr 210 transmits the client request and corre-
`sponding information transmitted from HTTP Server 206 to
`application 214. Application 214 can execute on the san1e or
`different server as CGIMessenger 210 andior I-i'I'l'I’ Server
`206, for example. Application 214 executes an interaction
`flow to satisfy the user request. Application 214 can access
`an external data source such as database 224. Database 224
`can be resident on the same server as application 214.
`Alternatively, database 224 can be resident on a mparate
`server {e.g., a separate database server).
`The present
`invention can service multiple levels of
`interaction with the client browser. A simple hypertext
`request (c.g., a request [or another form specified in the
`request) is serviced by I-l’t'l‘P Server 206 by returning the
`specified form. A simple hypertext
`request can be,
`for
`example, a request for a static I-ITMI.. page (e.g., a page that
`contains static information that is defined prior to execution)
`that does not have any associated logic.
`The present invention provides the ability to satisfy more
`sophisticated requests. For example, the present invention
`can be used to access a Web page (e.g., an lITMI.Web page)
`that
`is dynamically generated using complex queries (or
`other data retrieval mechanisms)
`to retrieve data and
`dynamically generate an HTML page using complex logic.
`For more sophisticated requests, the present invention can .
`execute logic such as CGIMcss-cnger 210 and application
`214, for example, to process a client request. The apptication
`preferably includes an object class hierarchy that can be
`implemented in any object-oriented language such as objec-
`tive C, SmallTalk or JAVA. Objects (c.g., Web page defini-
`tional objects and control objects) dynamically generate a
`Web page and manage client interaction via the Internet and
`WW.
`Internal Application
`A powerful
`feature of the WWW is its accessibility
`virtually anywhere in the world using virtually any
`hardwarefsoftware platform. Using the present invention,
`this feature ofthe WWW can be used to allow an application
`such as a corporate (or local) application to be accessed
`using any workstation that provides access to the Web
`regardless of its location. The present invention can be used
`to allow an internal, corporate application to be accessed any
`
`_
`
`8
`place in the world via any hardwarefsoftwarc platform that
`is capable of accessing the Internet.
`The present
`invention provides tools to implement an
`application that can be accessed via the WWW. Further, the
`present invention provides tools to manage the interaction
`between a WWW client and the internal application. FIG.
`3A provides a block overview of an internal application that
`is accessed via the Internet.
`Clients 302, 304, 306, and 308 access WWW 310 using
`any WWW-capable workstation. For example, client 302
`can be an Intel-based workstation running Windows and a
`browser such as NetScape Navigator. Client 304 can be a
`68K workstation running MacOS and Mosaic WWW
`browser. Client306 can be an RISC machine running UNIX
`and a proprietary browser. Client 308 is an Intel-based
`workstation running DOS and the DosLynx browser.
`Requests submitted by clients 302, 304, 306, and 308 to
`IITTP server 314 are transmitted to HTTP server 314 via
`WWW 310. HTTP server 314 runs in the corporate network
`312. A client request is forwarded to application server 316
`via IITTP server 314. Application server 316 runs one or
`more internal applications.
`The present
`invention accommodates the needs of an
`internal application. For example, using the present inven-
`tion art
`internal application can provide a dynamic user
`interface that can respond to user input. Further, an internal
`application is able to access an external data source to store
`the application’s data. State information can be retained to
`allow the internal application to allow the application to
`maintain open sessions with multiple users capable of pro-
`cessing multiple transactions in any order.
`Development of an internal application can be eflicient
`and flexible. An internal application can be written using
`complex logic and complex queries. Developers have the
`ability to incorporate pre-existing modules into the internal
`application. Modules are self-contained to facilitate module
`maintenance and interaction.
`
`An internal application running on application server 316
`has the ability to respond to the client request using the
`capabilities of the present invention. The Web page defini-
`tion returned to a client can be generated from a pre-defined
`template or templates. Alternatively, all or some portion of
`the definition can he dynamically generated by the applica-
`tion. 'Ihe contents of the Web page can contain data retrieved
`from an external data source (e.g., such as database server
`318), or state information maintained by the application.
`Custom logic and declarations can be associated with each
`Web page.
`technology to
`The application can make use of object
`generate client responses. For example, the elements of a
`Web page definition are objectified. Instances of definitional
`elements are instantiated during execution to manage their
`respective portions of the Web page. Control objects are
`associated with definitional elements to facilitate the flow of
`information to and from external data sources. Aspecial type
`of control referred to as a repetition control allows a group
`to be activated multiple times. Each activation of a group of
`definitional elements generates one occurrence of a repeat-
`ing portion of the Web page.
`Defirtitional elements can be grouped together. A group
`object class provides the ability to access these definitional
`elements as a group.
`Self-contained modules, or components, can be accessed
`to provide additional definition for the Web page. Acontrol
`object is associated with one of these modules to manage its
`integration into the rest of the Web page definition. The
`self-contained modules can be shared by one or more Web
`
`

`
`US 6,249,291 B1
`
`-
`
`9
`pages in a single application andfor across multiple appli-
`cations executing on application server 316 (or any other
`server).
`Internal application 320 can be, for example an Automo-
`bile Shopper’s application. lt can be used by a prospective
`car buyer
`to select a car. A car shopper accesses the
`Automobile Shopper’s application. The application provides
`a series oliscreens (i.e., Web pages) based on user-input that
`are designed to facilitate the selection and purchase of an
`automobile. FIG. 3B provides Web pages that are generated
`using application 32!] and displayed at a client workstation
`stlch as clients 3(E—308.
`The content of the Web pages seen by the shopper are
`determined based on the shopper's input. A Web page can be
`generated from a pre-built or static definition. However, it
`would

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