`(12) Patent Application Publication (10) Pub. No.: US 2007/0079282 A1
`
` Nachnani et al. (43) Pub. Date: Apr. 5, 2007
`
`
`US 20070079282Al
`
`(54) BROWSER BASED DESIGNER AND PLAYER
`
`(22)
`
`Filed:
`
`Sep. 30, 2005
`
`(76)
`
`Inventors: Pawan Nachnani, Newark, CA (US);
`Jin Huang, Mountain House, CA (US);
`Ramesh Kagoo, Pleasanton, CA (US);
`Sampath Thasampalayam, Fremont,
`CA (US); Lawrence Lindsey3
`Livermore, CA (US); Paul M. Tabet,
`Danville, CA (US)
`
`Correspondence Address:
`MORRISON & FOERSTER LLP
`755 PAGE MILL RD
`PALO ALTO, CA 94304-1013 (US)
`
`(21) App]. No.:
`
`11/241,073
`
`Publication Classification
`
`(51)
`
`Int. Cl-
`(2006.01)
`G06F 9/44
`(52) US. Cl.
`.............................................................. 717/106
`
`(57)
`
`ABSTRACT
`
`A system for designing, deploying, and executing enterprise
`applications is provided. The system allows for rapid devel-
`opment and deployment of Web-based data-oriented appli-
`cations. Multiple versions of the applications can exist
`simultaneously without conflicts. The applications may be
`web services enabled and process driven.
`
`1 02
`
`1 l4
`
`120
`
` —i
`
`IE ApplicationDefinition
`
`108
`
`Application Data
`
`
`
`
`
`
`
`Database
`
`
` Application Definition
`table
`
`Application Data table
`
`-
`
`Exhibit 1006
`
`Page 01 0f49
`
`Adobe Inc. v. Express Mobile, |nc.,
`|PR2021-XXXXX
`
`
`
`US. Pat. 9,471,287
`
`Exhibit 1006
`
`Exhibit 1006
`Page 01 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 1 0f 27
`
`US 2007/0079282 A1
`
`Figure 1a
`
`102
`
`114
`
`Dcsigncr UI
`
`
`
`Application Data “—
`
`
`
`' ApplicationDefinition I
`
`
`
`120
`
`
` Ii ApplicationDefinition
`
`
`
`
`
`108
`
`
`
`Application Data
`
`Databasc
`
`Application Definition
`table
`
`V
`
`.
`
`Application Data table
`
`1 1 2
`
`
`
`Exhibit 1006
`
`Page 02 of 49
`
`Exhibit 1006
`Page 02 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 2 0f 27
`
`US 2007/0079282 A1
`
`Web Browser
`
`Application
`
`38
`
`42
`
`132
`
`
`
`
`Component
`140
`
`
`
`
`
`
`Web Page
`
`
`Application
`
`146
`
`148
`
`150
`
`
`
`
`
`Exhibit 1006
`
`Page 03 of 49
`
`Exhibit 1006
`Page 03 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007
`
`Sheet 3 of 27
`
`US 2007/0079282 A1
`
`Figure 2a
`
`
`
`
`<Area
`
`
`
`Application
`202
`name=name property
`
`
`
`label=displayname
`
`rows=rowcount
`
` StandardArea
`
` 240\ Area Properties:
`cols: colcount>
`
`name, displayname, width,
`
`rowcount, colcount
`204
`
`
`
`
`
`<ForrnComponent
` Component (at least 1), type is one of:
`
`
`name=name property
`
`Label, TextBox, TextArea, RadioButton,
`
`WPC=WPC PTOPCKY
`CheckBox, Select List, File Attachment,
`
`datatype=datatype property
`
`
`
`Button, Image, Link.
`required=required property
`
`defaultvalue=defaultvalue prop
`
`
`
`rowindex=rowindex property
` Component
`
`colindex=colindex property
`Properties:
`
`
`name, type,
`hidden=hidden property '
`
`datacolumn=next available
`rowindex, colindex,,
`
`
`column name
`hidden, dataset,
`
`/>
`datalinkage,
`
`
`datatvoe. recruited.
`
`
`
`
`
`Exhibit 1006
`
`Page 04 of 49
`
`Exhibit 1006
`Page 04 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 4 0f 27
`
`US 2007/0079282 A1
`
`263
`
`Application
`
`TableArea
`
`Area Properties:
`name, displayname, width,
`rowcount, colcount
`
`<Area
`namc=namc property, labcl=displayname,
`rows=rowcount, cols=colcount>
`
`275
`
`264
`
`- 265
`
`266
`
`267
`
`268
`
`269
`
`270
`
`271
`
`Component (0 or more;
`same as in StandardArea)
`
`<FormComponent
`(same as in Standard
`Area) />
`
`‘
`
`~““‘~—._~
`
`</TableColumn>
`
`‘
`
`</TableDetailRow >
`
`272
`
`</TableComponenr>
`
`27 3
`
`’ -\'m
`
`Exhibit 1006
`
`Page 05 of 49
`
`Exhibit 1006
`Page 05 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 5 0f 27
`
`US 2007/0079282 A1
`
`Figure 3
`
` 300
`
`Request Infor
`
`ation-
`
`302
`
`30
`
`Date: 4/22/2005
`
`
`
`
`
`
`
`308
`
`310
`
`306\
`
`_
`Panent Name
`
`_
`John I. Smith
`
`Exhibit 1006
`
`Page 06 of 49
`
`Exhibit 1006
`Page 06 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 6 of 27
`
`US 2007/0079282 A1
`
`Figure 4a
`
`410
`
`\
`
`Form '2 ( name, description, version, category, theme. subject}
`
`Area (1 or more)
`
`BehaviorList (Optional, 0 or more)
`
`415
`
`\
`
`Area : { name, label. layout, rows, cols, vlslbllity }
`
`L ComponentDefinition (1 or more)
`
`FormComponent (if present, 1 or more)
`
`Of
`
`TableComponent (if present, 1 or more)
`
`420
`
`name, displayname, type, datatype, required, keyfield, readonly,
`
`\FormComponent: {defaultvalue, rowindex, colindex, hidden, datacolumn, maxlength, }
`
`alignment, allowedchars, rows, cols, size, allowmultiple, datalookup
`formula, style, align, linkedcontrolname, attachtype
`
`,
`
`FormComponentLlst (Optional, 0 or 1)
`
`FormComponent (Optional, 0 or more)
`
`BehaviorList (Optional, 0 or 1)
`
`430
`
`\ BehaviorList
`[— Behavior : (name, event, category} (Optional, 0 or more)
`435/ L Code 2 string
`
`Exhibit 1006
`
`Page 07 of 49
`
`Exhibit 1006
`Page 07 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 7 0f 27
`
`US 2007/0079282 A1
`
`Figure 4b
`
`440
`
`,
`
`\TableComponent : (name, type, rows, alldw_more_rows, style, allow_row_delete}
`
`TableHead Row
`
`lvTableColumn (1 or more)
`
`TableDetailRow
`
`l—TableColumn (1 or more)
`
`TableFootRow (Optional, 0 or more)
`
`l>TableColumn (1 or more)
`
`BehaviorList
`
`450
`
`\TableColumn : (name, label, rowindex, colindex, width}
`L FormComponent (Optional, 0 or more)
`
`-
`
`Exhibit 1006
`
`Page 08 of 49
`
`Exhibit 1006
`Page 08 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 8 0f 27
`
`US 2007/0079282 A1
`
`my Sgt
`
`Area Component
`,
`name=area_0
`label=Request Information
`cols=4, rows=6
`
`FormComponent
`namc=comp_area__0_0_0
`type=LABEL
`label=Datc:
`rowindex=0, colindex=0
`
`Form Component
`name=date_1
`type=DATE
`dataset:process_master/dtc1
`towindex=0, colindcx=1
`
`rowindex=0, colindex= 1
`
`Form Component
`name=comp_area_0_l_0
`type=LABEL
`label: Patient Name:
`rowindex=1 , colindex=0
`
`Form Component
`name=select_3
`type=SELECT
`datalookup= CORE/$CID/USER
`dataset=process_master/sc1
`
`Figure 5b
`
`53
`
`0\ area_0, Labcl=Request Information,
`532\L_
`
`Component Definition
`
`534\
`
`comp_area_0_0_0, label=Date:.
`
`536‘
`
`date_l, type=DATE,
`
`538-;
`
`comp_area_0_l_0, label=Patient Namez,
`
`539/
`
`select_3, type=SELET,
`
`52
`
`Exhibit 1006
`
`Page 09 of 49
`
`Exhibit 1006
`Page 09 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 9 0f 27
`
`US 2007/0079282 A1
`
`540
`
`Figure 5c
`
`<Area name="area_0" label="Request Information" cols="4" rows="6" 1ayout="f0ur">
`
`</C0mponentDcfinition>
`
`<ComponentDefinition>
`
`<FormComponent name="comp_area 0 0 O" type="LABEL" required="false"
`
`label="Date:"-datatype="0" maxlength="25" style=="EditBox" rowindex="0"
`
`colindex="0" datalookup="" dataset="" />
`
`<FormComponent name="date_1" type="DATE" required="false" 1abel="date_1"
`
`datatype="4" maxlength="25" style="EditBox" rowindex="0" colindex="1"
`
`datalookup="" dataset="PROCESS_MASTER/dtc1" />
`
`<F0rmComponent name="comp_area_0_1_0" type="LABEL" required="true"
`
`label="Patient Namez" datatype="0" maxlength="25" style="EditBox" ’
`
`rowindex="1" colindex="0" datalookup="" dataset="" />
`
`<FormComponent name="select_3" type="SELECT" rcquired="false"
`
`1abel="select_3" datatype=" 1" maxlength="25" style="EditBox" rowindex="1"
`
`colindex="1" datalookup="CORE/$CID/USER"
`
`dataset="PROCESS_MASTER/sc1" />
`
`Exhibit 1006
`
`Page 10 of 49
`
`Exhibit 1006
`Page 10 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 10 of 27
`
`US 2007/0079282 A1
`
`600
`
`iijwc éflk
`
`Data: Client
`
`Application Data
`
`Application
`
`Figure 6b
`
`604
`
`datc_1=4/22/2005
`
`603
`
`
`
`sclcct_3=]ohn I. Smi
`
`610
`
`.
`Figure 6c
`
`61
`
`Example
`Application
`Data on
`Client
`
`Example
`Application
`Data in
`Database
`
`
`
` “—
`
`4/22/2005
`
`62
`
`
`John J. Smith
`
`Exhibit 1006
`
`Page 11 of 49
`
`Exhibit 1006
`Page 11 of 49
`
`
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 11 0f 27
`
`US 2007/0079282 A1
`
`Figure 7a
`
`
`
`
`
`711
`
`Exhibit 1006
`
`Page 12 of 49
`
`Exhibit 1006
`Page 12 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 12 0f 27
`
`US 2007/0079282 A1
`
`Figure 7b
`
`720
`
`721
`
`723
`
`
`
`
`
`Exhibit 1006
`
`Page 13 of 49
`
`Exhibit 1006
`Page 13 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 13 of 27
`
`US 2007/0079282 A1
`
`Figure 7c
`
`
`
`Exhibit 1006
`
`Page 14 of 49
`
`Exhibit 1006
`Page 14 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 14 0f 27
`
`US 2007/0079282 A1
`
`Figure 7d
`
`3 Ac on Builde ~ Web Page Dialog
`
`0 Saint cum
`(9 sum Function
`
`
`
`vtm phla ' min! 3 ccb‘v (0 gligbcarc’ 1?
`1mm: mnm;gn_1-mnuul
`(Ik‘au: coda see: man.
`i-x'u;
`r \748
`
`
`
`
`
`Exhibit 1006
`
`Page 15 of 49
`
`Exhibit 1006
`Page 15 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 15 of 27
`
`US 2007/0079282 A1
`
`Figure 76
`
`740
`
`Slled Event
`
`
`49
`
`V
`unDouMgClick
`.
`_
`‘
`‘
`.
`copy a: cingomfi i ?.
`viayplién print
`a javucnpn
`”Build cut»: retain“ gs: calculating->9. vutéuscnl, a: a onMouseOver
`[IS-lieu ch. Objlct :: maxim-L, Sahc: 3:11;: 1:: click Add 311:: a: Add. Meagan
`[lieu can use elicit :11! 93;. 51-min: 9: Mann an ab: 2.2: a: hip band 2” Mug.
`llids: mum. by axiak’an gn this; ngux.
`
`1., {fl meantime~
`
`\
`748
`
`
`
`(nw«Lins
`
`Exhibit 1006
`
`Page 16 of 49
`
`Exhibit 1006
`Page 16 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 16 of 27
`
`US 2007/0079282 A1
`
`Figure 7f
`
`
`
`
`Sce11.Qty ‘ $cell.Un1t Price
`
`
`Only data elements aooesslblqto the tatgel field are displayed in the Data Elements window, Within a Iable you may only work wim
`instances of that row of the table. In the Table Summaty Footer Areas you may access columns ollhe table as well as data elements
`from other areas. Table Summary Footer Areas an only get summary (SUM. Min. Max, etc) of data columns from the table.
`
`
`
`
`753
`
`
`
`
`
`
`
`75
`
`Exhibit 1006
`
`Page 17 of 49
`
`Exhibit 1006
`Page 17 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 17 0f 27
`
`US 2007/0079282 A1
`
`
`
`mag
`
`(:{Qv‘ngww‘mmi%.-K'E.€k£~f%
`Smartfl'mm“I
`
`780
`
`
`
`
`
`01/15/2604
`01/15/2094
`
`
`ems/2004
`
`01/15/2004
`ouéS/z‘ooé
`
`cu 15/2004
`0x12311005:
`01/15/2004
`
`<<-<-<222<
` qulMt—‘Ni—‘N
`
`
`
`Seed/won i2}
`
`3;. .Q 7349“???“ 2
`Test Applicaticn 3
`
`
`
`-' send/wan {3;
`Semfidhn {'2
`
`
`
`
`Active-
`Test
`
`luadii'g
`
`Active
`
`.
`sunny Yang
`" '
`
`Sunny Yang
`-
`Sunny Yéng’
`
`2131:1133 t 8.352 = mu:
`Cnpyrlg‘hi 199$ - 2995. 5533. M] rights rexarvad.
`
`
`
`
`
`08/0112005
`0811812005
`
`' oa/xa/zohs L
`
`Sunny Yang
`09:00 AM Sunny Yang
`09:00 AM
`09:00 AM Use no me any file :yp'e, such...
`
`KST
`KST
`Activ:
`Salaam"
`'2; Q a 7:5: Apglkah'an 1
`iGT _
`
`
`,
`V
`08/01/2905
`Delis/:90
`--
`_
`_,
`07/25/2095
`,
`,
`
`
`03:00 AM 'Surin'y Yahfi ,
`139::90 AM i
`‘n9:pl0AMv Usegnrp
`‘
`‘
`'
`
`lCSTr
`.
`KST .
`E
`33/01/2005
`05/18/2005?
`ogsoo AM use to route any file type, such...
`09:00 AM Sunny Yang
`09:00 M E
`KST
`KST
`KST
`i
`-
`.
`v,
`_ ,.
`‘-
`03/15/2905“.
`_ns/o’i/2_o_os
`.
`V
`.
`awe/2,005
`03:00‘AM‘ Sunny Ya’n'g
`oagoo AM
`09:00AM Us: 211‘ 'roqte a’ny'flle type, such...
`05/01f2005
`0311812005
`(39/01/2005
`Sunny Yang
`09:00 AM Sunny Yang
`05:00 AM
`09:00 AM Us: to route any file type, sum...
`KST
`lGT
`K57
`
`
`njst Appgac‘auqéi 4'
`
`Task Applications
`
`Exhibit 1006
`
`Page 18 of 49
`
`Exhibit 1006
`Page 18 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 18 of 27
`
`US 2007/0079282 A1
`
`1?ch 7k
`
`
`’
`’
`__
`_
`_
`x
`$IIiHa“aIHHaflHflIIHHIIIIIIIIIIIIIIIIIIIIIIII
`9???&ea-????&SE=W .
`75 M
`cc as.nsite.com/Parcners.1a§?
`
`i i
`
`75
`
`755
`
`
`75
`
`763\
`
`E
`
`i
`
`
`75Ei
`if mm Platform Oflionl
`E5 Save ng'flwdcwmymw
`Llnk Wpe Please Select
`log'nmoeperusdan
`B Shasz‘LaFIalkxmmbs
`758\ Appncatkon
`
`755
`Select the Inbound link you wouid like to mam. Wm. a link that launches an Nshe
`me" View (In Progress. Complalzd, Natives, or Drans) yuu my final for a specific
`
`
`application When hundu'ng an application you mar Feudal: application camels,
`
`
`
`
`
`1' Great u
`URL ht: s:
`A
`first gave me a, a ?
`URL
`~
`,
`1
`‘
`.
`
`
`
`
`ififinfififfiifii{azamgnéséméasiafi
`{£35.34 t‘n‘Egifééi‘xié‘Efiéffififiéig 3&7
`
`
`
`1
`
`Memo mum Options
`Link W e
`um. maaovm cm
`I
`ESMloaficm—fiomfimm
`P
`EmLogir-{hakhsamlymh
`’
`
`
`mm mm per union
`min once per session
`i
`y
`13 ShowNsiu Platform abs
`764\APP"¢W09 ‘
`sna-NsinHitler!“man
`i
`OmahaURLisbuik.youwmnaedtocopvhndvasteilwfluarvvartyweh
`'
`OmmeURme‘yauwfllnnedtoeopylandpastainomeikmpanyweb
`;
`ewfimm When launching an application. m can playmate WWW" OWNS by
`appliafimi You may filter m a speck: appuamm in me mm; ween View. or
`
`
`;
`adding me vafiabit names from the 3rd pan! appliafinn "they moms ma! “WU
`m No Application Huerta view an 1;:le ens,
`E
`Connols to Populate
`Copy Control Name Code
`
`76
`TcxtConfmlNawI
`
`TeflCommlNarmZ
`
`boubledick the data clement from your
`TanCormnlea
`
`
`
`0:an ippflafinn. my me Comm!
`TextcordrotNma
`Name Code (or pasz'ng into this URL
`
`
`above
`
`WMNameS
`
`
`TextlerdNameG
`
`TmcmtrNName‘l
`
`
`
`
`
`Exhibit 1006
`
`Page 19 of 49
`
`Exhibit 1006
`Page 19 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 19 of 27
`
`US 2007/0079282 A1
`
`Link Builder
`
`
`765
`
`76
`
`© Static URL
`0 Nsite to Nsite (Initiate and prepopulate another Nsite process)
`
`
`
`765
`
`
`
`r—Link Builder
`0 Static URL
`76% Nsite to Nsite (Initiate and prepopulate another Nsite process)
`
`
`
`
`
`768\L Nsite Application Variables
`from Application Name
`Drag and drop variables from your current
`application to the mapping boxes
`
`i
`3
`1
`
`-"E/ 769
`Select Process Application to
`‘
`770
`Initiate Process AppZ
`v‘
`Seied another process applioation. then Drag and Drop i
`oormolstomaptn the controlsimntha currem application
`‘
`
`771
`
`i l i
`
`El
`lI
`lS
`l
`
`Application to Initiate Mapping Boxes
`Current Application Mapping Boxes
`[2:223 >E::.:] sziexmmrw
`
`AppZTextContmiZ
`TextContmiNameS
`[2:223 >312] Appzwmconm
`
`TextContrulNarne4
`TextContmlNameS
`
`
`:2 (:2: Wham“
`AppZTextComroiS
`TextControiNameS
`
`
`TextControlName?
`AppZTextConimlG
`AppZTextConiroU
`
`
`AppZTextControia
`
`
`"
`
`-
`
`Exhibit 1006
`
`Page 20 of 49
`
`Exhibit 1006
`Page 20 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 20 of 27
`
`US 2007/0079282 A1
`
`Figure 8
`
`801
`
`331‘
`
`Client Computer
`
`802
`
`803
`
`805
`
`807
`
`808
`
`830
`
`840 809
`
`Cllent Computer
`
`832
`
`833
`
`835
`
`837
`
`838
`
`839‘
`
`
`
`860
`
`Application Sewer
`
`
`A
`
`I 862
`pp‘PlayerJSP
`
`II 864
`
`
`
`
`
`
`854
` , ProcessServlce
`
`App Designer JSP
`
`'
`
`
`
`852
`
`Exhibit 1006
`
`Page 21 of 49
`
`Exhibit 1006
`Page 21 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 21 0f 27
`
`US 2007/0079282 A1
`
`Figure 9
`
`Start Save Application Definition
`
`910
`
`AppDeslgner server
`page presents‘user
`interface.
`
`914'
`
`-
`
`Create Empty
`
`.
`
`Yes
`
`
`Definitionobject -CreateNewApp?
`
`
`918 '
`
`No
`
`
`
`920
`
`Load an existing
`application definition
`
`
`into Definition object.
`
`
`
`
`1
`Wait for User Action
`
`922
`
`
`
`924
`Component Added?
`
`No
`
`928
`User Clicked Save?
`
`NO
`
`
`
`
`
`Yes
`
`Yes
`
`-
`Add new component
`to Definition
`
`926
`
`'
`-
`Transform Definition
`into XML according .
`to XML schema
`
`_
`
`Send XML to
`
`AppDeslgner JSP for
`storage in database
`
`
`
`916
`
`Exhibit 1006
`
`Page 22 of 49
`
`Exhibit 1006
`Page 22 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 22 0f 27
`
`US 2007/0079282 A1
`
`Figure 10a
`
`Get XML application
`definition
`
`(ProcessDefinition) from
`DefinitionFactory
`
`Start GetVaers
`subroutine
`
`1024
`
`
`
`
`
`
`
`
`
`For each application
`component in XML
`application definition-
`
`Compose component
`name
`
`More components?
`
`Look up dataset table
`and column names by
`component name in XML
`
`
`
`
`
`Get component value
`from ProcessMaster
`
`
`
`property with dataset
`table and column names
`
`
`
`Set BusinessObjectValue 1034
`property with component
`name to component
`value
`
`
`
`
`
`1 037
`
`Exhibit 1006
`
`Page 23 of 49
`
`Exhibit 1006
`Page 23 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 23 of 27
`
`US 2007/0079282 A1
`
`Figure 10b
`
`Start RenderHTML
`
`subroutine
`
`,
`
`1050
`
`
`
`For each application
`component in XML
`application definition
`
`
`
`
`
`Compose component
`name
`o
`
`Create HTML element for 1056
`
`component
`
`Get component value'
`from
`
`BusinessObjectVaIue
`property with component
`
`Add component value to
`HTML element.
`
`More components?
`
`
`
`
`
`
`
`
`
`1064
`
`Exhibit 1006
`
`Page 24 of 49
`
`Exhibit 1006
`Page 24 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 24 0f 27
`
`US 2007/0079282 A1
`
`Figure 11
`
`Start Save Application Data
`
`1110
`
`FormProcessor decodes
`incoming HTTP response
`parameter values
`
`
`
`FormProcessor creates
`
`BusinessFactory
`
`1118
`
`1 120
`
`1 122
`
`Begin XML traversal to
`- fill in ProcessMaster
`
`1123
`
`_ For each application
`component in XML
`application definition
`
`1124
`
`Compose component
`name
`
`1126
`
`Find component value
`with component name in
`H'ITP request
`
`1128
`
`Look up dataset table
`and column names by
`component name in XML
`
`1130
`
`
`
`Set ProcessMaster
`property with dataset
`
`
`table and column names
`to component value
`
`
`
`1132
`
`No
`
`1134
`Yes
`
`
`More components?
`
`
`
`
`
`BusinessFactory
`traverses XML
`
`1 136
`
`
`
`Store ProcessMaster in
`
`
`database using
`ProcessService
`
`Exhibit 1006
`
`Page 25 of 49
`
`Exhibit 1006
`Page 25 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 25 of 27
`
`US 2007/0079282 A1
`
`Figure 12a
`
`1201
`
`
`1202
`Application
`1203
`
`
`
`
`
`
`
`
`1204
`
`'
`Application Definition
`
`
`1205
`
`
`Application Data
`
`
`
`
`.
`
`
`Fig-ure 12b
`
`,
`
`Edit
`
`1210
`
`1221 '
`
`\
`iniitiateProcess
`or Routing
`
`
`
`
`Active Mode
`
`Undeploy
`
`
`\1223
`
`
`
`lnactive Mode
`
`1230
`
`Deploy
`
`1231
`
`Exhibit 1006
`
`Page 26 of 49
`
`Exhibit 1006
`Page 26 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 26 of 27
`
`US 2007/0079282 A1
`
`JEflwfl
`
`1301
`
`process_definition
`
`1 302
`
`1303
`
`1305
`
`
`
`
`pk_process_definition_id: numeric(9,0)
`fk_core_company_id: numeric(9.0)
`
`fl<,_core_company_process_id: numeric(9,0)
`
`
`process_xml: ntext
`
`process_type: nvarchar(1)
`
`version: numeric(9.0)
`
`is_active: nvarchar(1)
`
`
`mode: nvarchar(1)
` 1304
`
`effective_date: datetime
`
`end_da1e: datetime
`
`is__locked: nvarchar(1)
`
`
`Iocked_by: numeric(9.0)
`Iock_date: datetime
`
`
`
`Exhibit 1006
`
`Page 27 of 49
`
`Exhibit 1006
`Page 27 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 27 of 27
`
`US 2007/0079282 A1
`
`1422
`
`1421
`
`1404
`
`6
`
`process_detail
`process_master
`
`
`pk_process_masler_id: numeric(9,0)
`pk_prooess_delail_id: numeric(9,0)
`
`
`
`routing_id: numen'c(9,0)
`fk_proc‘ess_master_id: numeric(9,0)
`
`
`
`fk.core_user_id: numeric(9.0)
`parent_id: numeric(9.0)\
`
`
`
`fk_core_company_process_id: numeric(9,0)
`type_id: numeric(9.0
`
`
`
`fk_core_company_id: numeric(9,0)
`Sc1: nvarchar(256)
`
`
`
`subject: nvarchar(100)
`sc2: nvarchar(256)
`
`
`
`status: nvarchar(1)
`sc3: nvarchar(256)
`
`
`
`
`
`
`description: nvarchar(100)
`Isc1: ntext
`sc1: nvarchar(256)
`Isc2: ntext
`
`
`
`
`sc2: nvarchar(256)\ 140
`Isc3: ntext
`
`
`sc3: nvarchar(256)\
`nc1: numeric(15,3)
`
`Isc1: ntexi
`1407
`nc2: numeric(15,3)
`
`lch: ntext
`nc3: numeric(15,3)
`
`
`
`MT nvarchar(1)
`Isc3: ntext / 1405
`nc1: numeric(15,3)
`
`bc2: nvarchar(1)
`
`
`nc2: numeric(15,3)
`bc3: nvarchar(1)
`
`
`
`
`dtc1: datetime
`nc3: numerlc(15.3)
`
`
`
`dth: datetime
`bc1: nvarchar(1)
`
`
`
`dtcaz datetime
`ch: nvarchar(1)
`
`
`
`bc3: nvarchar(1)
`dtc1: datetime
`
`dtc2: datetime
`
`dtc3: datetime
`
`
`
`process_extension
`
` pk_process_extension_id: numeric(9,0)
`
`fl<_process_master_id: numeric(9,0)
`
`sc1: nvarchar(256)
`
` process_attachment
`sc2: nvarchar(256)
`
`sc3: nvarchar(256)
`
`pk_prooess_attachment_id: numeric(9,0)
`
`
`pk_fk_core_company_id: numen'c(9,0)
`:2; 2::
`
`
`
`
`pk_process_master_id: numeric(9,0)
`lsc3; ntext
`
`
`pk_process_detail_id: numeric(9,0)
`
` nc1: numen'c(15,3)
`file_name: nvarchar(128)
`nc2: numeric(15,3)
`
`
`
`file__type: nvarchar(10)
`
`
`
`n63: numen'c(15.3)
`
`
`file_size: numen'c(9,0)
`
`bc1: nvarchar(1)
`file_oontenl_in_byte: varbinary
`
`
`
`bc2: nvarchar(1)
`attachmenLtype: nvarchar(1)
`
`
`bc3: nvarchar(1)
`
`dtc1: datetime
`dtc2: datetime
`
`dtc3: datetime
`
`
`
`1410
`
`Exhibit 1006
`
`Page 28 of 49
`
`Exhibit 1006
`Page 28 of 49
`
`
`
`US 2007/0079282 A1
`
`Apr. 5, 2007
`
`BROWSER BASED DESIGNER AND PLAYER
`
`BACKGROUND OF THE INVENTION
`
`[0001]
`
`1. Field of the Invention
`
`[0002] The present invention relates generally to methods
`for programming a machine to perform data processing, and
`in one aspect to methods for programming a machine to
`perform specific data processing tasks described in a sim-
`plified manner.
`
`[0003]
`
`2. Description of the Related Art
`
`types of software applications are
`[0004] Today, most
`installed directly on a user’s computer. Examples of such
`applications include the MicrosoftTM WordTM, AdobeTM
`PhotoshopTM, and IntuitTM QuickenTM computer programs.
`A user of such an application generally is limited to using
`that application on the computers on which it has been
`installed. This limitation is problematic if a user is traveling
`and does not have physical access to the computer on which
`an application is installed. Furthermore, updating these
`applications to add new features or fix defects requires
`installation of updates directly on the user’s computer,
`which is often a time-consuming process.
`
`also referred to herein as
`[0005] Web applications,
`browser-based applications, solve such usability and instal-
`lation problems by using a web browser, e.g. Microsoft
`Internet ExplorerTM or Mozilla FirefoxTM, and a web server,
`e.g. ApacheTM or MicrosoftTM Internet Information Ser-
`vicesTM. An application can be divided into at least two main
`parts: a user interface, which is presented to a user and
`interacts with the user, and business logic, which performs
`the tasks required of the application, in accordance with user
`input received from the user interface. The web browser runs
`the user interface. The web server provides the user interface
`to the web browser and runs the business logic, possibly in
`cooperation with other servers such as an application server,
`e.g. JBossTM or BEATM WebLogicTM, and a database server,
`e.g. OracleTM. The web application need not be installed
`directly on the user’s computer. The term server or web
`server here refers to software executed on a computer, also
`referred to generally in the field as a server platform.
`
`[0006] A web browser is a type of specialized software
`application, typically installed directly on the user’s com-
`puter, which allows a user to view and interact with web
`pages. Web pages are documents, typically in HyperText
`Markup Language (HTML) format that the web browser
`retrieves from a web server computer via a network, using
`a protocol such as the HyperText Transfer Protocol (HTTP).
`Web pages may include software code in a programming
`language such as JavaScriptTM which will be executed by the
`web browser when the page is retrieved. A web application
`includes a user-interface component that is loaded as part of
`a web page by a browser via a network connection. A web
`application’s user interface may be implemented as a web
`page using HTML and JavaScriptTM. A browser-equipped
`computer, therefore, uses a network connection to permit a
`user to access a web application running on a remote server,
`for example. Furthermore, web applications can be updated
`at any time by installing the update on the server.
`
`[0007] Computer software applications are often required
`to perform operations that are specific to a particular user or
`organization. For example, a software application may be
`
`used to in a hospital to request clinical tests. The software
`application may include a set of data fields for which a user
`provides data values, such as a patient name and a test name.
`A particular hospital may also require a patient medical
`record number in a format defined by that hospital. In
`general, the set of data fields, and actions to be taken after
`data values have been provided, are dependent on the needs
`of the hospital, and may change over time. Therefore there
`is a need for customization of software to meet specific
`requirements. Customization of software may include devel-
`oping new software or modifying existing software. Cus-
`tomization can be done by a programmer using a program-
`ming language such as C++, Java, or BASIC. However, the
`use of such languages often requires substantial time and
`effort, as well as specialized knowledge of the programming
`language, so such customization by programming can be
`expensive. Rapid Application Development (RAD) tools
`address these problems by simplifying programming tasks.
`Atypical RAD tool is software that includes a graphical user
`interface for laying out application user interfaces and
`defining application behaviors in terms of predefined actions
`such as data entry and database access. A RAD tool may
`present a list of predefined behaviors or actions from which
`a user can choose when creating or extending an application.
`RAD tools are generally easier to learn and use than con-
`ventional programming-language based approaches
`for
`developing applications, and can shorten the time required
`to develop applications. Existing RAD tools include Borland
`DelphiTM, Microsoft Visual BasicTM, and Macromedia/
`Adobe ColdFusionTM, which can be used to develop a wide
`range of applications, but often require some programming.
`RAD tools such as Intuit QuickBase and Microsoft InfoPath
`can be used to develop applications that involve filling out
`data forms and accessing databases.
`[0008] There is a need for non-programmers to design,
`develop, and deploy simple to complex, composite and
`monolithic applications in the business world today. Appli-
`cation development is a costly, time consuming, and risky
`proposition for even capable engineering organizations, let
`alone business analysts and other non-technical staff. Few
`organizations have the resources to use complex develop-
`ment
`tools and deployment environments to build and
`deploy applications. This engineering capability void has
`fostered a large and thriving software industry as known
`today. Even so, packaged software applications are expen-
`sive to purchase and even more expensive to install, con-
`figure and maintain. A new breed of Software As A Service,
`(SAAS,) vendors have evolved to deliver complex software
`as a service to further eliminate complexity and reduce costs
`to leverage software application benefits. Even with SAAS
`vendors providing robust pre-built applications, only a small
`percentage of business software application requirements
`are met and hence,
`the need for both applications and
`infrastructure that is aimed at business analysts and pro-
`grammers to design, develop and deploy applications
`quickly and efficiently.
`[0009]
`Several of the RAD tools described above provide
`support for creating web applications. DelphiTM, Vlsual
`BasicTM, and ColdFusionTM simplify the development of
`web applications created using programming languages.
`That is, those tools simplify the creation of user interfaces by
`providing graphical user interface builder tools that can be
`easily connected to business logic implemented in a pro-
`gramming language, but it is still necessary to write code in
`
`Exhibit 1006
`
`Page 29 of 49
`
`Exhibit 1006
`Page 29 of 49
`
`
`
`US 2007/0079282 A1
`
`Apr. 5, 2007
`
`a programming language for some portions of the applica-
`tion, such as the business logic. QuickBaseTM provides for
`rapid development of forms-based web applications using a
`graphical user interface. Furthermore, QuickBase itself is a
`web application, which means that it allows web applica-
`tions to be developed using the same web application model
`in which the applications will be deployed. That is, users of
`QuickBase can develop applications on any computer run-
`ning a web browser, without directly installing QuickBase
`software on their own computer. QuickBase applications
`may also be hosted on web servers provided by a software
`vendor, for example, Intuit, so that users are not required to
`provide a web server to host QuickBase applications they
`develop.
`
`InfoPathTM from MicrosoftTM provides for rapid
`[0010]
`development of forms. InfoPath forms can optionally be
`made available as web applications, but the InfoPath form
`designer itself is not a web application and must be installed
`directly on a user’s computer. Furthermore,
`InfoPath
`depends on other Microsoft products such as
`Internet
`ExplorerTM and does not work with browsers from other
`vendors, such as Mozilla FirefoxTM. Therefore InfoPath
`forms can only be accessed from computers on which
`InfoPathTM and related MicrosoftTM products are installed.
`
`[0011] Existing RAD tools do not combine the benefits of
`web applications with features such as customizable pro-
`cessing in a scripting language, linkage with external data
`sources such as databases, and linkage to web services. We
`have recognized that
`it would be desirable to have an
`easy-to-use RAD tool which is itself a web application, and
`which allows a user to quickly develop and customize
`web-based data processing applications that can include data
`input, validation, processing, and linkage with web services.
`Such a RAD tool could be used to quickly and efficiently
`develop and customize applications using any computer that
`has a standard web browser and access to the Internet.
`
`Furthermore, web applications typically require complex
`business logic for their activities. This logic is typically
`written in strongly typed languages and the logic requires
`recompilation and redeployment. It would be desirable to
`provide a RAD tool with a scripting language which can
`change or extend the behavior of web applications without
`the additional overhead of recompilation or redeployment.
`
`[0012] Existing Web-based RAD tools do not provide a
`single unified interface and environment for building a web
`application that includes a user interface linked to persistent
`data stored in a database. Existing Web-based RAD tools
`disadvantageously use a multi-step process that starts at the
`level of individual data elements, and expect the user to
`perform a series of steps to define a user interface linked to
`persistent data. These steps typically include defining a field,
`defining an object, defining a container, linking the objects,
`defining a user interface, and linking the user interface to the
`objects and fields, all of which are complex and time-
`consuming.
`
`SUMMARY OF THE INVENTION
`
`In general, in a first aspect, the invention features
`[0013]
`a computer enabled method of creating a software applica-
`tion. The method includes the acts of providing a user
`interface for designing the software application on a web
`browser, defining aspects of the application via the web
`
`browser using the user interface, and transmitting the
`defined aspects to a server over a computer network to create
`a web-based software application. Embodiments of the
`invention may include one or more of the following features.
`The method of creating a software application may include
`the acts of providing a set of components on the web
`browser and implementing aspects of the application using
`the components. The method may include the steps of
`providing a library on the browser and using the library as
`an intermediary between the defined aspects at the browser
`and the server. The computer network may include the
`Internet. The method may include, at the server, the steps of
`rendering a representation of the application from the trans-
`mitted defined aspects, retrieving data associated with the
`application from a storage, and transmitting the representa-
`tion and retrieved data to a client. The method may include,
`at the client, the act of executing the representation and data
`on a web browser. The method may include the acts of
`providing a library on the web browser of the client and
`using the library as an intermediary between the web
`browser of the client and the server. The method may include
`the acts of tracking multiple versions of the software appli-
`cation, maintaining each version as compatible with prior
`versions of the software application, and allowing multiple
`of the versions to be active at the same time.
`
`In a second aspect, the invention features a com-
`[0014]
`puter enabled method of providing a software application,
`including the acts of receiving at a server over a computer
`network from a first client web browser a software applica-
`tion including defined aspects of the application, rendering
`a representation of the application from the received defined
`aspects, retrieving data associated with the application from
`a storage, and transmitting the representation and retrieved
`data to a second client. Embodiments of the invention may
`include one or more of the following features. In the method
`of providing a software application, the computer network
`may include the Internet. The method of providing a soft-
`ware application may include, at the second client, the steps
`of providing a web browser and providing a user interface to
`a user on the web browser from the received representation
`and data. The method of providing a software application
`may include, at the second client, the acts of: providing a
`library on the browser and using the library as an interme-
`diary between the browser and the server. The method of
`providing a software application may include the acts of
`providing a user interface on the web browser at the first
`client for desi