`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