throbber
(12) United States Patent
`Popp et al.
`
`US006249291B1
`US 6,249,291 B1
`*Jun. 19, 2001
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`(54) METHOD AND APPARATUS FOR
`MANAGING INTERNET TRANSACTIONS
`
`(75) Inventors: Nicolas Popp, Menlo Park; Bruce Ong;
`Charles D’Harcourt, both of San
`Francisco, all of CA (US)
`
`(73) Assignee: NeXT Software, Inc., Redwood City,
`CA (US)
`
`(*) Notice:
`
`This patent issued on a continued pros
`ecution application ?led under 37 CFR
`1.53(d), and is subject to the tWenty year
`patent term provisions of 35 U.S.C.
`154(a)(2).
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 08/532,491
`(22) Filed:
`Sep. 22, 1995
`
`(51) Int. Cl.7 ..................................................... .. G06T 9/00
`(52) US. Cl. ............................................................ .. 345/473
`(58) Field of Search .......................... .. 395/761, 326—332;
`707/2; 345/473
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,297,249 * 3/1994 Bernstein et al. ................. .. 395/329
`5,600,831 * 2/1997 Levy et al. ...... ..
`5,623,656 * 4/1997 Lyons ................................. .. 395/610
`
`OTHER PUBLICATIONS
`
`Electronic Mail Message: “Pricing Model—WebRex—
`TRUTH Wanted!” Sep. 10, 1995, Ted Shelton, Information
`Technology Solutions, Inc.
`
`Documents Posted on World Wide Web: “The WadsWorth
`Concept,” last modi?ed Aug. 10, 1995.
`Documents Posted on World Wide Web: “Building Client/
`Server/Web Applictaions, HoW Fast Can Your Business
`Respond?”, retrieved May 6, 1997.
`Documents Posted on World Wide Web: “The Object—Ori
`ented Development Environment For Creating Dynamic
`Web Applications,” Visual Wave 2.0, retrieved May 5, 1997.
`Aronson “HTML3 Manual of Style” pp 44—45, 112—123,
`1995.*
`“Introduction To Visual Basic” by Application Developers
`Training Co. pp 188—189, 1994.*
`Aronson “HTML 3 Manual of Style” pp 111—123, 1995.*
`
`* cited by examiner
`
`Primary Examiner—Almis R. Jankus
`(74) Attorney, Agent, or Firm—The Hecker LaW Group
`(57)
`ABSTRACT
`An object-oriented approach provides the ability to develop
`and manage Internet transactions. Local applications can be
`accessed using any Workstation connected to the Internet
`regardless of the Workstation’s con?guration. Some or all of
`a Web page can be generated dynamically using input
`received in a returned page, generated at runtime, or
`retrieved from an external data source (e.g., database or
`electronic mail system). When the Web page de?nition is
`rendered, the information contained in template(s), declara
`tion ?le(s), and object(s) are used to generate standard
`de?nitions. State information is maintained across transac
`tions. Using state information, virtual applications, sessions,
`transactions, and pages can be implemented. Self-contained
`modules, or components, provide the ability to share imple
`mentations and create multi-content documents. Event
`objects can be used to assist in event handling management.
`
`25 Claims, 22 Drawing Sheets
`
`1100
`
`Prepare\
`
`Response
`1 1 04
`
`1108
`..................... ,. A.
`
`- pull
`
`.
`
`push
`
`Database
`
`-
`
`1100
`
`Handle\
`Request
`1104
`-
`push ,
`Database <}—————'
`
`1106
`
`1110
`/
`
`VACATION REQUEST
`PUSH: Name:
`Joseph Smith
`Vacation: 1/23/95 - 2/15/95
`Approved:
`
`1106
`
`1110
`/
`
`VACATION REQUEST
`PULL Name:
`Joseph Smith
`Vacation: 1/23/95 - 2/15/95
`Approved:
`
`Petitioner Microsoft Corporation - Ex. 1013, p.1
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 1 0122
`
`US 6,249,291 B1
`
`EMU
`
`A: \
`
`g2 8E>
`
`o3
`
`w:
`
`N:
`
`
`
`ww?oum $22 /
`
`gmonmmmvw
`
`o: /
`
`\ \ m: w:
`
`m:
`
`
`
`50:82 83>
`
`DLU
`
`Petitioner Microsoft Corporation - Ex. 1013, p.2
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 2 0122
`
`US 6,249,291 B1
`
`gm EN EN mom
`
`mom
`
`@PFI
`
`32mm
`
`EBHU
`
`“$30.5
`
`mam
`
`\
`
`
`
`EmEoD $>$m
`
`wcm
`
`com
`
`BEBE
`
`§>>>>i
`
`
`
`M8332 B30950
`
`Petitioner Microsoft Corporation - Ex. 1013, p.3
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 3 0122
`
`US 6,249,291 B1
`
`NHm
`
`\
`
`2m W W \ “ ..................... I_. ?aw \ W .................
`
`
`W - “CPI
`
`mm wmmmmozm
`Wm 258955 N
`
`
`
`35mm 55mm
`
`m w m Cw?
`
`in
`
`T
`
`Sm
`
`\
`
`Ti
`
`E26
`
`gm
`
`\
`
`H
`
`E26
`
`8m
`
`\
`
`H
`
`E25
`
`mom
`
`\
`
`H
`
`E26
`
`Petitioner Microsoft Corporation - Ex. 1013, p.4
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 4 of 22
`
`US 6,249,291 B1
`
`cam
`
`“m.“wwmxumm
`.Q.WmwmxummN
`
`mom
`
`mm8&5
`
`wmm
`
`N.m$.§,_mm_m_.,“
`
`mmm
`
`wEo£m>>
`
`Petitioner Microsoft Corporation - Ex. 1013, p.5
`
`Petitioner Microsoft Corporation - Ex. 1013, p.5
`
`
`
`
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 5 0122
`
`US 6,249,291 B1
`
`402
`
`Figure 4
`
`Petitioner Microsoft Corporation - Ex. 1013, p.6
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 6 0122
`
`US 6,249,291 B1
`
`502
`
`504
`
`receive request
`
`application
`identified by
`equest exists?
`
`create application
`
`508
`
`Yes
`506
`+
`forward request to /
`application
`
`i
`
`receive response
`from application
`
`i
`
`return response
`to client
`
`512
`
`508
`/
`
`510
`
`/
`
`Figure 5A
`
`Petitioner Microsoft Corporation - Ex. 1013, p.7
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 7 0122
`
`US 6,249,291 B1
`
`522
`
`receive request
`
`524
`
`-- No ->
`
`526
`
`create session +
`
`Yes
`
`
`
`i verify request
`
`/
`
`530
`
`generate error
`
`532
`/
`
`I
`Yes
`534
`v
`create transaction /
`
`Figure 5B
`
`Petitioner Microsoft Corporation - Ex. 1013, p.8
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 8 0f 22
`
`US 6,249,291 B1
`
`536
`
`538
`
`540
`
`set context
`
`t
`
`identify page to
`handle request
`
`t
`
`create request object
`and page object
`
`i
`
`send message
`to page
`
`t
`
`page responds
`to message
`
`action needed?
`
`Yes
`V
`invoke action
`
`create response page
`
`Figure SC
`
`Petitioner Microsoft Corporation - Ex. 1013, p.9
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 9 0122
`
`US 6,249,291 B1
`
`@
`i
`
`create root object
`for object graph
`
`552
`
`I
`
`
`
`H prepareResponse / send "
`
`
`message to page
`object
`
`556
`send
`"generateDescription" /
`message to page object
`
`return response
`to server
`
`558
`
`I
`
`560
`
`Figure 5D
`
`Petitioner Microsoft Corporation - Ex. 1013, p.10
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 10 0f 22
`
`US 6,249,291 B1
`
`get session ID
`from request
`
`invalid
`session ID?
`
`Yes
`V
`retrieve session
`using session ID
`
`I
`
`retrieve session
`key from session
`
`I
`
`I 566
`
`568
`
`572
`
`encrypt request
`information
`
`I
`
`574
`check portion of
`encrypted string with /
`digital signature
`
`578
`
`raise error
`
`576
`
`580
`
`Figure 5E
`
`Petitioner Microsoft Corporation - Ex. 1013, p.11
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 11 0122
`
`US 6,249,291 B1
`
`wow
`
`atom
`
`A
`
`New
`
`EbcoUwwECum
`
`woo
`
`BBQEwH
`
`Petitioner Microsoft Corporation - Ex. 1013, p.12
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 12 of 22
`
`US 6,249,291 B1
`
` scriptec1Contro1
`
`inputC0ntro1
`
`630
`
`Data
`
`Source
`
`618
`
`Figure6B
`
`622
`
`Petitioner Microsoft Corporation - Ex. 1013, p. 13
`
`Petitioner Microsoft Corporation - Ex. 1013, p.13
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 13 0f 22
`
`US 6,249,291 B1
`
`wow
`
`
`
`. . . :SQOQEQUQQAOEEmQEmQ
`
`0%
`
`www
`
`3%
`
`0%
`
`Now
`
`Petitioner Microsoft Corporation - Ex. 1013, p.14
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 14 0f 22
`
`US 6,249,291 B1
`
`702
`
`708
`
`704
`
`706
`
`SELECT_
`FORM
`
`710
`
`714
`
`716
`
`OL
`
`WEBPEOPLE
`
`Figure 7A
`
`Petitioner Microsoft Corporation - Ex. 1013, p.15
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 15 of 22
`
`US 6,249,291 B1
`
`702
`
`Repetition
`ontro er
`C
`L1
`
`,
`,
`.
`,
`.
`,
`.
`,
`.
`,
`
`.
`,
`-

`'
`’
`,
`.
`.
`,
`.
`.
`,
`,
`.
`.
`
`,
`.
`.
`.
`,
`.
`,
`.
`,
`.
`,
`.
`.
`.
`.
`.
`.
`.
`,
`.
`—
`-
`,
`.
`.
`.
`,
`.
`,
`.
`.
`,
`.
`.
`,
`.
`,
`.
`,
`.
`.
`.
`,
`,
`.
`.
`,
`,
`,
`.
`.
`.
`,
`.
`,
`,
`'
`'
`,
`.
`,
`.
`.
`.
`,
`.
`,
`.
`,
`,
`,
`.
`.
`.
`.
`.
`,
`.
`,
`.
`.
`.
`.
`.
`,
`.
`.
`.
`,
`.
`
`744
`
`750
`
`I . , . . . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . , . . . ..
`
`Petitioner Microsoft Corporation - Ex. 1013, p.16
`
`Petitioner Microsoft Corporation - Ex. 1013, p.16
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 16 0f 22
`
`US 6,249,291 B1
`
`702
`
`706
`
`SELECT_
`FORM
`
`WEBPEOPLE
`
`""""""" "
`
`718
`
`Repetition
`
`Controller
`
`730
`
`LN
`
`724
`
`726
`
`732
`
`734
`
`Input
`
`Input
`
`Input
`
`Input
`
`Figure 7C
`
`Petitioner Microsoft Corporation - Ex. 1013, p.17
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 17 0f 22
`
`US 6,249,291 B1
`
`send "create" message to
`document's root object
`
`i
`
`identify children
`of root object
`
`d
`
`802
`
`804
`
`/
`
`806
`
`send "create" message /
`to children
`
`children have
`children?
`
`Figure 8
`
`Petitioner Microsoft Corporation - Ex. 1013, p.18
`
`

`
`U.S. Patent
`
`Jun. 19,2001
`
`Sheet 18 0122
`
`US 6,249,291 B1
`
`_______________________________
`
`904
`
`,,,,,,,,,,,,,
`
`WWW
`Server
`
`906
`
`, , . . . r r . . . . r . 1 I . r . r . r V . . . r . ( . r . , . . . - 1 1 . . . . . . . . . . . 1 - . . r r .
`
`. , . r . r . , . r . . . r . r . . 1 , . . , . , ( 9 . . , . 1 ,,
`r 1 r . , , . , V . . 1 1 , . . r . r . ' . 1 . r 1 r v . ( . p v . . r . r . , 1 1 - .,
`
`912
`
`Web Object
`Server
`
`914
`
`Application
`
`918
`
`922
`
`Figure 9A
`
`Petitioner Microsoft Corporation - Ex. 1013, p.19
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 19 0f 22
`
`US 6,249,291 B1
`
`954
`
`958
`
`Application
`
`956
`
`Response
`Page
`
`Response I
`
`962
`
`Page
`
`Figure 9B
`
`Petitioner Microsoft Corporation - Ex. 1013, p.20
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 20 of 22
`
`US 6,249,291 B1
`
`1022 I1024
`
`
`
`/'//./.102610281030
`
`, . V V _ ‘ . . V , , . ..
`
`101
`
`1012 Z2
`
`Application
`
`. . . . . . . . . . . . . .
`
`_ , ‘ _ , , _ , ‘ _ , _ ,\
`
`Figure10
`
`.‘
`
`.~
`
`1002
`
`1004
`
`I
`~
`i
`‘
`\
`‘
`1
`‘
`\
`I
`‘
`2
`.“~“\._
`‘
`.
`\
`‘
`s
`‘
`* fl ‘
`2
`1
`‘
`I
`2.
`n\\\\\\.
`I
`.
`\
`O0
`~
`.
`‘
`1 O
`
`1010
`
`.K
`
`\~
`
`.-
`
`1006
`
`Petitioner Microsoft Corporation - Ex. 1013, p.21
`
`Petitioner Microsoft Corporation - Ex. 1013, p.21
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 21 of 22
`
`US 6,249,291 B1
`
`8:
`
`
`
`emmaommZOF<U<>3:
`
`U
`
`/2&5
`
`mmcommmm
`
`oo:
`
`HUw>oHnE<
`
`
`Edam£33“@532Emmi
`
`
`
`
`
`minim-mfimmiaou8m>Aulllll.$325
`
`5:05ZOF<U<>8:
`
`0
`
`0
`
`/298$
`
`ammswmm
`
`SS
`
`
`
`
`fidbm:35_mEmZAQUA
`
`
`
`mQS>”E>o:E<
`
`
`
`m$m<~-mm\m~:ao:8m>||:|IuIIl.Vafismo
`
`<225mm
`
`0
`
`Petitioner Microsoft Corporation - Ex. 1013, p.22
`
`Petitioner Microsoft Corporation - Ex. 1013, p.22
`
`
`

`
`U.S. Patent
`
`Jun. 19, 2001
`
`Sheet 22 of 22
`
`US 6,249,291 B1
`
`ooafl.wofiw
`
`mfimim-RENEaon8m>.QHAn“.A”
`
`
`
`fidbmAmmommfimzImamamsm.
`HmmbommzoP<u<>\OW33V......................._
`
`
`
`
`”Um>o.RE<
`
`
`
`
`
`.................._
`
`
`
`
`
`fiam%§o_.”J.v;.,.Sm.
`
`
`
`emmbommzo:.<u<>Ooofiflwmi«\.....................:
`
`
`
`mmfiim-mo\m~>aou§>.
`
`uUm>o.~mm<
`
`
`
`................
`
`m:Emma
`
`/mum
`oofifi
`no.5
`
`mmcommmm
`
`:30wofia
`
`mmmnfimfl
`
`_AlI--III.
`
`/nofiufim
`
`oofifi
`
`woflfi
`
`gmmswmm
`
`amsm
`
`“Vwmmnfimfl
`
`-
`
`Petitioner Microsoft Corporation - Ex. 1013, p.23
`
`Petitioner Microsoft Corporation - Ex. 1013, p.23
`
`
`

`
`US 6,249,291 B1
`
`1
`METHOD AND APPARATUS FOR
`MANAGING INTERNET TRANSACTIONS
`
`BACKGROUND OF THE INVENTION
`
`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
`
`10
`
`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 example, download a file
`from or send an electronic mail message to another
`computer/client 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
`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 information
`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 (HTTP) is the standard pro-
`tocol for communication with an information server on the
`WWW. HTTP has communication methods that allow cli-
`
`ents to request data from a server and send information to the
`server.
`
`To submit a request, the client contacts the HTTP server
`and transmits the request to the HTTP 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
`HTTP server. A connection between a client and an HTTP
`
`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 between the client and the HTTP server.
`
`The HTTP server does not retain any information about
`the request after the connection has been terminated. HTTP
`is, therefore, a stateless protocol. That is, a client can make
`several requests of an HTTP 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., HTTP server, file or program). This address-
`ing scheme is called Uniform Resource Locator (URL). A
`URL contains the protocol to use when accessing the server
`(e.g., HTTP), 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 file structure of the server.
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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 URL.
`If the client request is for a file, the HTTP server locates
`the file and sends it to the client. An HTTP server also has
`
`the ability to delegate work to gateway programs. The
`Common Gateway Interface (CGI) specification defines the
`mechanisms by which HTTP servers communicate with
`gateway programs. A gateway program is referenced using
`a URL. The HTTP 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 the HTTP.
`A browser displays information to a client/user as pages
`or documents. A language is used to define the format for a
`page to be displayed in the W. 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
`HTML elements that are nested within each other. An
`
`HTML document is a text file in which certain strings of
`characters, called tags, mark regions of the document and
`assign special meaning to them. These regions are called
`HTML 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 of the structure of an HTML document:
`<HTML>
`<HEAD>
`
`. element(s) valid in the document head
`.
`.
`</HEAD>
`<BODY>
`
`. element(s) valid in the document body
`.
`.
`</BODY>
`</HTML>
`Each HTML 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, “/” that follows the first
`delimiting character (“<”).
`HTML is a hierarchical language. With the exception of
`the HTML element, all other elements are contained within
`another element. The HTML element encompasses the
`entire document. It identifies the enclosed text as an HTML
`document. The HEAD element
`is contained within the
`HTML element and includes information about the HTML
`document. The BODY element
`is contained within the
`
`Petitioner Microsoft Corporation - Ex. 1013, p.24
`
`Petitioner Microsoft Corporation - Ex. 1013, p.24
`
`

`
`US 6,249,291 B1
`
`3
`HTML. 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
`
`10
`
`15
`
`20
`
`beneficial to use object-oriented HTML elements to manage
`a series of Internet transactions and to maintain state infor-
`mation across Internet transactions. It would be beneficial to
`
`25
`
`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 THE INVENTION
`
`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 HTML template(s), declaration
`file(s), and object(s) are used to generate standard HTML.
`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
`of state 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
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`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-
`tifying Web pages it is possible to gain the advantages of
`obj ect-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 flow 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 and/or 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. Atemplate contains an initial definition for some or all
`of the page. At runtime, some or all of the initial definition
`can be dynamically altered. Associations provide declaration
`and binding information. Custom logic provides custom
`functionality.
`A reusable or sharable construct of the present invention
`is referred to as a component. Acomponent can represent an
`entire page or some portion of a page. Acomponent has none
`or more resources. 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., HTML, 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
`
`Petitioner Microsoft Corporation - Ex. 1013, p.25
`
`Petitioner Microsoft Corporation - Ex. 1013, p.25
`
`

`
`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 information 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 DESCRIPTION OF THE DRAWINGS
`
`illustrates
`
`FIG. 1 provides an example of a general purpose com-
`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
`using the present invention.
`FIG. 3B provides an example of Web pages generated by
`an Automobile Shopper’s 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 flow 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 HTML in Table Four is parsed.
`FIG. 7B provides an example of the object tree of FIG. 7A
`and an associated 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 and
`template.
`FIG. 8 illustrates a rendering process flow.
`FIGS. 9A—9B illustrate event handling object diagrams.
`FIG. 10 illustrates context objects.
`FIGS. 11A—11B illustrate the push and pull modes of the
`present invention.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`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 DATA 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 DATA/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 680X0 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 116.
`The video amplifier 116 is used to drive the cathode ray tube
`(CRT) raster monitor 117. 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, MAC/OS, 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
`204. The
`browser executing on client 202 displays HTML documents
`transmitted to client 202 via WWW 204. When the client
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`45
`
`browser submits a request typically an HTML page, it is
`transmitted via WWW 204 to HTTP server 206. An attribute
`of the submitted form is a Universal Resource Locator
`
`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. Akeyboard
`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 118
`along with keyboard 110, mouse 111 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
`
`50
`
`55
`
`60
`
`65
`
`(URL). The URL specifies procedures to be executed and/or
`data input by the user.
`HTTP server 206 can service the client request by, for
`example, retrieving a return form or file (specified by a URL
`contained in the HTML document) and transmitting it to
`client 202 via W 204. Further, HTTP server 206 can
`initiate a program identified in the URL. In the preferred
`embodiment, the URL specifies CGIMessenger 210 to ser-
`vice the client request. CGIMessenger 210 uses the Com-
`mon Gateway Interface (CGI) protocol,
`for example.
`CGIMessenger 210 can execute on the HTTP server 206 or
`another server connected to HTTP server 206, for example.
`The following provides an example of a URL:
`
`http ://wvvw. next.com/cgi_bin/cgimessenger/app_name/rcv_form/
`send_form
`
`The above example is for illustration only. Any URL
`format can be used with the present invention. The URL in
`the above example has multiple parts. The first part, “httpz”
`specifies the protocol to be used. Other examples of protocol
`include “ftpz”, “gopherz” and “wais”. The next part specifies
`
`Petitioner Microsoft Corporation - Ex. 1013, p.26
`
`Petitioner Microsoft Corporation - Ex. 1013, p.26
`
`

`
`US 6,249,291 B1
`
`7
`the Internet domain name of the server. In this case, the
`Internet domain name of the HTTP server is “www.next-
`
`.com”. The next part, "/cgi_bin/cgi_messenger" specifies
`the path and filename 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 specified in the URL with the
`“appiname” specification. The names of the receiving form
`(e.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 HTTP server 206. HTTP server
`206 initiates CGIMessenger 210. To service the client
`request, CGIMessenger 210 communicates with HTTP
`server 206 to obtain information regarding the client request.
`For example, CGIMessenger 210 obtains any information
`that accompanied the user request such as form and/or
`application names and/or user input. The form names can
`include the name of the form that was submitted to initiate
`
`th

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