`(12) Patent Application Publication (10) Pub. No.: US 2007/0079282 A1
`Apr. 5, 2007
`Nachnani et a].
`(43) Pub. Date:
`
`US 20070079282Al
`
`(54) BROWSER BASED DESIGNER AND PLAYER
`
`(22) Filed:
`
`5613- 30, 2005
`
`(76)
`
`Inventors: Pawan Nachnani; Newark; CA (US);
`Jill Huang, Mountain House, CA (US);
`Ramesh Kagoo, Pleasanton; CA (US);
`Sampath Thasampalayam; Fremont,
`CA (US); Lawrence Lindsey,
`Livermore; CA (US); Paul M. Tabet;
`Danville, CA (US)
`
`Correspondence Address:
`DIORRISON & FOERSTER LLP
`755 PAGE lVIIIiIi RD
`PALO ALTO, CA 94304-1018 (US)
`
`(21) Appl. 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
`driven.
`web services enabled and process
`
`102
`114
`
`
`Designer UI
`
`106
`
`120
`
`
`_i
`IE ApplicationDefinition
`
`Application Data
`
`
`
`table
`
`108
`
`Database
`
`Application Definition
`
`.
`
`Application Data table
`
`Page 1 of 49
`
`GOOGLE EXHIBIT 1009
`
`Page 1 of 49
`
`GOOGLE EXHIBIT 1009
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 1 0f 27
`
`US 2007/0079282 A1
`
`Figure 1a
`
`102
`
`114
`
`108
`
`
`
`
`
`
`
` Ii ApplicationDefinition
`
`
`
`
`
`Database
`
`Application Definition
`table
`
`-
`
`Application Data table
`
`1 l 2
`
`
`
`Page 2 of 49
`
`Page 2 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 2 0f 27
`
`US 2007/0079282 A1
`
`Web Browser
`
`Application
`
`132
`
`
`
`
`
`
`Application
`
`Web Page
`
`146
`
`148
`
`1 50
`
`
`
`Page 3 of 49
`
`Page 3 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 3 0f 27
`
`US 2007/0079282 A1
`
`E W
`
` Application
`
`202
`<Area
`
`,
`'
`—'
`namc=name property
`label=displayname
`
`
`StandardArea
`24“ Area Properties:
`rows=rowcount
`name, displayname, width,
`€015=80160unt>
`
`rowcount, colcount
`204
`
`
`<ForrnComponent
`
` Component (at least 1), type is one of:
`
`name=name property
`
`Label, TcxtBox, TextArca, RadioButton,
`WPC=WPC PIOPCKY
`
`CheckBox, Select List, File Attachment,
`
`datatype=datatype property
`
`
`Button, Image, Link.
`requircd=required property
`defaultvaluc=dcfaultvalue prop
`
`
`rowindex=rowindex property
`Component
`
`
`
`colindex=colindcx property
`Properties:
`
`name, type,
`hiddcn=hidden property '
`
`datacolumn=next available
`
`rowindex, colindex,,
`
`
`column name
`hidden, damset,
`
`
`/>
`datalinkagc,
`
`datatvoe. reouired.
`
`
`
`
`
`
`Page 4 of 49
`
`Page 4 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 4 0f 27
`
`US 2007/0079282 A1
`
`
`
`263
`
`Application
`
`203
`\
`
`Tabchrea
`
`24 '
`20
`
`Tahlchmnnnenr
`
`<Arca
`
`'
`
`‘
`
`namc=namc property, labcl=displaynamc,
`r0ws=rowcount, cols=colcount>
`
`Area Properties:
`name, displaynamc, width,
`rowcount, colcount
`
`_
`
`
`
`264
`
`- 265
`
`266
`
`267
`
`268
`
`269
`
`270
`
`271
`
`<FormComponent
`(same as in Standard
`Area) />
`
`‘
`
`“Nu“
`
`(/TablcColumn >
`
`'
`
`\“x‘
`
`</TabchctailRow >
`
`272
`
`</TablcComponcm>
`
`27 3
`
`
`
`’ ‘m
`
`275
`
`Page 5 of 49
`
`Page 5 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 5 0f 27
`
`US 2007/0079282 A1
`
`Figure 3
`
`Request Infor
`
`ation-
`
`302
`
` 300
`
`
`
`
`
`30
`
`4\
`
`Date: 4/22/2005
`
`306\
`
`_
`Pancnt Name
`
`_
`John J. Smith
`
`308
`
`310
`
`Page 6 of 49
`
`Page 6 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 6 0f 27
`
`US 2007/0079282 A1
`
`Figure 4a
`
`410
`
`\
`
`Form ': (name, description, version, category, theme. subject}
`
`Area (1 or more)
`
`BehaviorList (Optional, 0 or more)
`
`415
`
`\
`
`Area : { name, label, layout, rows, cois, visibility}
`
`L ComponentDefinition (1 or more)
`
`FormComponent (if present, 1 or more)
`or
`
`TableComponent (if present, 1 or more)
`
`420
`
`name, displayname, type, datatype, required, keyfield, readonly,
`
`\FormCom onent' {defaultvalue. rowindex, colindex. hidden, datacoiumn, maxlength, }
`
`>
`
`p
`
`-
`
`'
`
`alignment, allowedchars, rows, cols, size, allowmultiple, datalookup,
`formula, style, align, linkedcontrolname, attachtype
`
`FormComponentList (Optional, 0 or 1)
`
`FonnComponent (Optional, 0 or more)
`
`BehaviorList (Optional, 0 or 1)
`
`430
`
`\ BehaviorList
`[— Behavior : {name. event, category) (Optional, 0 or more)
`435/ L Code : string
`
`Page 7 of 49
`
`Page 7 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}
`
`TableHeadRow
`
`lvTableColumn (1 or more)
`
`TableDetailRow
`
`|—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)
`
`Page 8 of 49
`
`Page 8 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 8 0f 27
`
`US 2007/0079282 A1
`
`- Mum 5
`&
`
`Area Component
`,
`name=area_0
`label=Request Information
`cols=4, rows=6
`
`Form-Component.
`name=comp_arcafi0_0_0
`typc=LABEL
`label=Datc:
`rowindex=0, colindex=0
`
`Form Component
`name=datc_1
`type=DATE
`dataset:process_master/dtc1
`iowindex=0, c0lindcx=l
`
`r0windex=0 , colin dcx= 1
`
`Form Component
`name=comp_area_0_1_0
`typc=LABEL
`label: Patient Name:
`rowindcx=l , colindex=0
`
`Form Component
`name=sclect_3
`typc=SELECT
`datalookup: CORE/$CID/USER
`dataset=process_master/scl
`
`Figure 5b
`
`53
`
`0\ arca_0, Labcl=Requcst Information, . ,.
`53le—
`
`Component Definition
`
`534\
`
`comp_arca_0_0_0. labcl=Datc;. . . .
`
`536‘
`
`date_1, type=DATE,
`
`538.14
`
`comp_arca_0_l_0, label=Patient Name2,
`
`539/
`
`select_3, type=SELET, . . .
`
`52
`
`Page 9 of 49
`
`Page 9 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" layout="four">
`
`542
`
`.
`.
`<ComponentDefin1tion>
`
`544'
`
`<FormComponent name="comp_area_0_0_0" lype="LABEL" required="fa]se"
`
`label="Date:“-datatype="0" maxlength="25" style="EditBox" rowindex="0"
`
`colindex="0" datalookup="" dataset="" />
`
`</C0mponentDcfinition>
`
`<FormComponent name="date_l " type="DATE" required="false" 1abel="date_1"
`
`datatype="4" maxlength="25" style="EditBox" rowindex="0" colindex="l"
`
`datalookup="" dataset="PROCESS_MASTER/dtc1" />
`
`<FormComponent name="comp_area O 1 0" type="LABEL" required="true"
`
`label="Patient Namez" datatype="0" maxlengt ="25" style="EditBox" ,
`
`rowindex="1" colindex="0" datalookup="" dataset="" />
`
`<FormComp0nent name="select_3" type="SELECT" required="false"
`
`Iabel="select_3" datatype=" 1" maxlen
`
`="25" style="EditBox" rowindex="1"
`
`colindex=" 1 " datalookup="CORE/$CID/USER"
`
`dataset="PRO CESS_MASTER/sc 1 " />
`
`Page 10 of 49
`
`Page 10 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 10 0f 27
`
`US 2007/0079282 A1
`
`600
`
`dial/Ln gm
`
`Application Data Application
`
`Namc=VaIUC
`
`602
`
`Data: Client
`Structure
`
`Figure 6b
`
`604
`
`date_l=4/22/2005
`
`603
`
`select_3=]ohn I. Smi
`
`610
`
`Example
`Application
`Data on
`Client
`
`Example
`Application
`Data in
`Database
`
`618
`
`
`
`_
`Figure 6c
`61
`
`614
`
`16
`
`6
`
`dtcl
`
`
`
` 4/22/2005
`
`622
`
`Page 11 of 49
`
`Page 11 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 11 0f 27
`
`US 2007/0079282 A1
`
`Figure 7a
`
`
`
`
`
`
`
`
`
`
`
`Page 12 of 49
`
`Page 12 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 12 0f 27
`
`US 2007/0079282 A1
`
`Figure 7b
`
`720
`
`721
`
`723
`
`
`
`
`
`Page 13 of 49
`
`Page 13 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 13 0f 27
`
`US 2007/0079282 A1
`
`Figure 7c
`
`
`
`Page 14 of 49
`
`Page 14 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 14 0f 27
`
`US 2007/0079282 A1
`
`Figure 7d
`
`'0" Builder »— Web Page Dialog
`‘» M Q ' 0mm: 0mm
`{9 Blind Function
`
`:
`_erga
`cuslommmanca EM
`
`vlm pizla' min! 3 may (0 clipbcuc’ 1’?
`1 1mm :91:a:!\mc:l_ _1Imn=ai)l
`2 1mm: cafi- can: hazq.
`1.5111
`r \748
`
`ai
`
`‘ _ Add rum rug-mm; " 1' 5
`
`
`
`Page 15 of 49
`
`Sal-6 Evin!
`
`/
`
`
`
`
`
`Page 15 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 15 0f 27
`
`US 2007/0079282 A1
`
`Figure 76
`
`740
`
`sum! Even! SelacIEvenl E
`:Sefack Ewen!
`anBlux
`49
`
`V
`nnDoubleClick
`.
`_
`‘
`‘
`.
`vzwmaagpnmgcopym:i;b¢..£a'7.
`a SWIMHFL
`”Build cunt: retain“ gaz calculuiqm. kahuna“, a: a unMouseOver
`I/Sllfict th. Ctbéltt =3 alncticrg 5.10:: Evlnt u! clict {dd Evln‘: a: Add. Maxim.
`i/rm can Elia die; 23 a3;- zuum 9r magiqn an uh. 1.2: cc hllp build an Amara.
`Midst. mum. by tucking gn this; ngu.
`
`
`
`\748
`
`
`
`Page 16 of 49
`
`Page 16 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 16 0f 27
`
`S 2007/0079282 A1
`
`Figure 7f
`
`Formula Builder forLine Item Subtotal
` u edickon a
`eemen .ma operalo s,andformulas o
`
`
`Scel1.0ty ' Scellflnit Price
`
`753
`
`\
`
`I U
`
` 75
`
`
`
`;
`
`1%
`I;
`*:
`
`I 2
`
`
`mg
`
`mm
`
`a
`4;;w___wmu
`.A 4‘-
`5 Onfy data eiements aouessiblqto the target field are displayed in the Data Elements window, Win a Iable you may only work wim
`insrances of that row of the table. In the Tame Summary Footer Areas you may access columns of the table as well as data elements
`from other areas. Tame Summary Footer Areas an onry get summary (SUM. Min. Max etc) of data columns from the table.
`
`Add a group ofelemenLq SUM(x,+xl+-~-+x‘)
`
`Page 17 of 49
`
`Page 17 of 49
`
`
`
`
`
`Test Application 3
`_
`1
`'
`West Applic‘atich é
`
`_
`
`Tesx
`4_
`V
`Xnadivg
`
`1
`
`v
`
`'1
`
`1
`
`
`_
`‘
`_ i1; ilfi‘sfig a
`_
`
`
`M
`' 08/18/2005
`’
`OSIDUZOOS
`52mm"
`*5 Q a T152 ”9.39355“ 1
`Activ:
`2 Began Use to me any file :ype, such... Sunny Vang 09%“ Sunny Yang
`ne‘né'zizti
`- "
`'
`'
`,
`,
`0712542035,
`..
`- "
`L
`»
`«
`.
`.
`05/01/2903,
`,.
`,
`5mm» 35‘ E! 5 1-251 Radiation 2 My:
`\
`'
`'
`‘
`’
`.
`1 ' 09:99 AMV
`[15:29 r
`.
`SDnny Yang
`03:00 AM Sunny Ya'mi , nsgqn AM .
`_'
`..
`»
`.
`EST.
`;,‘ ..
`KST.’
`.*
`"‘57
`_».
`.
`"
`
`3310112005
`may.”
`539'0312005
`cans/2005
`
`09: 0 AM Sunny Yang
`5912:1553!“ NA
`139500 AM we ta route any Me tyne, such... Sunny Yang
`09:09 AM
`KST
`K57
`«-
`~
`'
`»
`cans/29:15 ,
`_ ‘.
`ti.
`_ V A
`v.
`7
`v,
`.
`'
`._
`-
`-
`Jami/2' gs
`.
`V
`.
`1752;141:905
`.
`' Sand Adbn
`'09100:Afl Use m‘ roqte finv'file gype, sud’i
`. Sunny Yéng
`03:00AM Sunny Ya'rg'g
`09410 M
`6910112605
`OSIOIHOOS
`13511812005
`OSWO AM Us: to mute any file type, such... Sunny Yang
`09:0D AM Sunny Yang
`(39:00 AN
`K57
`IGT
`IGT
`
`flvmlg‘ : H515! 2 £9323 ~
`Cmflghx x993 - 2095, gags. Ml fights rcxarvad.
`
`Patent Application Publication Apr. 5, 2007 Sheet 17 0f 27
`
`US 2007/0079282 A1
`
`
`
`
`I Bchcnd i £31.05;me
`
`2
`91!15/1594
`PROD
`Y
`
`1
`01/15/2094
`PROD
`N
`2
`0112532394
`TEST
`N
`
`1
`cuisjaooa
`TEST
`n
`2
`0212512604
`PROD
`Y
`
`5
`Y
`TEST
`cu 1512004
`
`3
`v
`, 212m:
`DUE/£009
`
`
`v3 DUKE/2004
`
`
`
`
`
`
`
`
`
`
`
`
`..,
`
`Tes! Applitarian 5
`
`Adv:
`
`
`
`Page 18 of 49
`
`Page 18 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 18 0f 27
`
`US 2007/0079282 A1
`
`4?ch 7R
`
`755
`
`
`
`-
`__
`_
`._
`_
`x
`§IIflEHEHHEaHHflIflHHIIIIIIIIIIIIIIIIIIII'III
`oceas .nsite . cam/Partners . a ?
`g????&ea-????&stnmi:§
`
`75 m
`
`i i
`
`
`.
`E
`75
`75
`E
`Llnk WP" Please 59‘3“
`g Egrmmlwmynm 10
`B Shaw Ns'la WED:
`i
`8\ AppHcaflon
`bga m pa m"
`
`4
`seen the Inbound link you would like Io mam. wan a fink mat launches in Make
`men View (In Progress. Comolalzd. Amhives. or Drafts) you my film tote specific“
`
`appiieelimv Mus launching an appliuafian you mar popular?» applicatinnconmls. i%
`
`
`75
`
`755
`
`
`
`
`E
`
`
`
`
`
`
`§§
`URL 232$;‘m”§f3§§§§52;§$+mfifi‘mmfigiflfi?
`URL max/L $3§§§523§§§é§§£§2htmmrig 2;?
`
`
`.
`.
`_
`‘F’
`Name Phumm owone
`Nah Favour: Option!
`g
`76x
`
`
`.
`i
`_
`_
`mm am yet session
`3
`'
`wk
`i
`L'm‘ TYW Launch ADDlumiké
`:93 SM Loq‘n cm, in mm... m
`Llnk WP“
`B 5“: Login Coakh ”mum in
`
`g mm,mm. ms
`76%Appllcation ,
`= Application ‘
`-pncalmnName %
`mmfiim2:”
`i
`,5
`z
`E
`f
`0ndheURLisbuik.youwxllnaedbmpyflendvasteilwflumpartym
`
`
`Once the URL is bull. yauwill used to may I and pasta inomo 3m party we:
`
`
`
`”plinth". When humming an application. you an populate applicaflon controls by
`appliab‘mi You may filter for a speck: appliauon in ma Nuts saeen view. or
`
`
`Saba N A
`'
`{ion Flherh iguana pf
`adding me variable nan-ms [tom the 3rd patty appfiahnn «they providc M causally
`
`
`
`Connols to Populate
`Copy Control Name code
`
`
`
`bouhhdick in data element horn your
`wnent :ppliaimn. mpy me Control
`
`Name Code lot casing into its URL
`
`above
`
`
`762
`
`
`
`
`
`Page 19 of 49
`
`Page 19 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 19 0f 27
`
`US 2007/0079282 A1
`
`¢qure 7C
`765
`Link Builder
`
`© Static URL
` 76
`0 Nsite to Nsite (initiate and prepopulaie another Nsite process)
`
`765
`
`
`
`
`r"Link Builder
`O Slatic URL
`7687M Nsite to Nsite (initiate and prepopulate another Nsite process)
`
`i
`
`Select Process Application to
`
`771
`
`Select another process appliwlion. then Drag and crop i
`cotmoismmapmmeconmlsmmaamemappficaiion 3
`Application to Initiate Mapping Boxes
`
`aiil
`
`768\L Nsite Application Variables
`from Application Name
`Drag and drop variables from your amen!
`application to the mapping boxes
`Current Application Mapping Boxes
`
`
`
`76
`Tmmromamm a" :2] >E::Il Awflextcmw
`
`
`AppZ'iextControlz
`TextConuoiNamez a.
`
`
`AppZTextConimn
`
`
`
`TextCommlNamM
`AppZTexiConimlt
`
`
`
`TextConnuiNameS
`AppZ'I’extComrols
`
`
`
`TexiControlNames
`AppZTextConimlG
`
`AppZTextConimW
`
`AppZTexiConimiB -_
`
`
`
`TextConlmiNameS l C: ’23
`373‘
`
`
`
`EAWKA?”
`
`Page 20 of 49
`
`Page 20 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 20 0f 27
`
`US 2007/0079282 A1
`
`Figure 8
`
`801
`
`331‘
`
`‘
`Chen! Computer
`
`802
`803
`
`805
`
`807
`
`808
`
`830
`
`C
`
`llent Computer
`
`832
`833
`
`835
`
`837
`
`838
`
`839‘
`
`840 809
`
`
`
`
`I 862
`App.Player JSP
`
`II 864
`'
`
`
`
`
`
`Application Sewer
`
`
`852
`
`App Designer JSP
`
`FonnProoessor
`
`860
`
`
`
`
`
`
`
`BusinessFactory
`
`DefinitionFactory
`
`
` , ProcessServIce
`
`s70
`
`.
`
`'
`
`854
`
`Page 21 of 49
`
`Page 21 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 21 0f 27
`
`US 2007/0079282 A1
`
`Figure 9
`
`
`
`Start Save Application Definition
`
`
`
`
`AppDesigner sewer
`page presentsuser
`interface.
`
`910
`
`
`
`914'
`
`916
`
`918 '
`
`
`
`
`Create Empty
`Create New App?
`Definition object
`
`
`
`
`No
`
`
`
`Load an existing
`
`application definition
`into Definition object.
`
`
`920
`
`
`
`
`
`
`
`Wait for User Action
`
`924
`Component Added?
`
`Yes
`
`Add nevr component
`to Definition
`
`
`
`928
`
`User Clicked Save?
`
`Yes
`
`Transform Definition
`Into XML according
`
`to XML schema
`
`Send XML to
`
`AppDeslgner JSP for
`
`storage In database
`
`
`
`
`
`Page 22 of 49
`
`Page 22 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 22 0f 27
`
`US 2007/0079282 A1
`
`Figure 103
`
`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
`
`Page 23 of 49
`
`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
`
`BusinessObjectValue
`property with component
`
`Add component value to
`HTML element.
`
`More components?
`
`
`
`
`
`
`
`
`
`1064
`
`Page 24 of 49
`
`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
`
`1118
`
`1 120
`
`1122
`
`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
`
`FormProcessor decodes
`
`incoming HTTP response
`parameter values
`
`BusinessFactory
`
`FormProcessor creates
`
`BusinessFactory
`
`traverses XML
`
`1134
` Yes
`No
`
`More components?
`
`Store ProcessMaster in
`database using
`ProcessService
`
`1136
`
`1138
`
`Page 25 of 49
`
`Page 25 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 25 0f 27
`
`US 2007/0079282 A1
`
`1201
`
`Figure 12a
`
`Fig-ure 12b
`
`1202
`
`Application
`
`1204
`
`Application Definition
`
`'
`
`
`1205
`Application Data
`
`
`
`>
`
`Edit
`
`1210
`
`1221 '
`
`\
`lniitiateProcess
`or Routing
`
`Active Mode
`
`,
`
`Undeploy
`
`\1223
`
`
`
`Deploy
`
`1231
`
`inactive Mode
`
`1 230
`
`Page 26 of 49
`
`Page 26 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 26 0f 27
`
`US 2007/0079282 A1
`
`«TN
`
`1301
`
`process_definition
`
`
`
`
`pk_process_definition_id: numen'c(9,0)
`fk_core_company_id: numeric(9.0)
`
`fkflcore_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_dale: datetime
`is_locked: nvarchar(1)
`
`
`Iocked_by: numen'c(9.0)
`Iock_date: datetirne
`
`
`1 302
`
`1303
`
`1 305
`
`
`
`Page 27 of 49
`
`Page 27 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 27 0f 27
`
`US 2007/0079282 A1
`
`process_master
`
`1422
`
`1421
`
`1404
`
`1406
`
`1410
`
` process_detail
`
`pk_process_master_id: numeric(9,0)
`pk_prooess_delail_id: numeric(9,0)
`
`
`routing_id: numeric(9,0)
`fk_proc‘ess_master_id: numeric(9,0)
`
`
`
`fk.core_user_id: numeric(9,0)
`parenl_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)
`
`
`
`Isc1: ntext
`description: nvarchar(100)
`Isc2: ntext
`
`
`sc1: nvarchar(256)
`
`lsc3: ntext
`sc2: nvarchar(256)\
`
`
`nc1: numeric(15,3)
`
`sc3: nvarchar(256)\
`lsc1: ntexi
`1407
`
`
`nc2: numeric(15,3)
`
`lch; ntext
`
`{163: numeric(15.3)
`
`
`
`bc1: nvarchar(1)
`Isc3: ntexi / 1405
`
`nc1: numeric(15,3)
`
`bc2: nvarchar(1)
`
`nc2: numeric(15,3)
`bc3: nvarchar(1)
`
`
`
`dtc1: daletime
`nc3: numeric(15.3)
`
`
`
`dth: datetime
`bc1: nvarchar(1)
`
`
`
`dtca: daietime
`bc2: nvarchar(1)
`
`
`
`bc3: nvarchar(1)
`dtc1: datetime
`
`dtc2: datetime
`
`dtc3: datetime
`
`
`process_extension
`
`
`pkJarocess_extension_id: numeric(9,0)
`
`fk_process_master_id: numeric(9,0)
`
`sc1: nvarchar(256)
`process_attachment
`
`
`sc2: nvarchar(256)
`
`sc3: nvarchar(256)
`pk_process_aflachment_id: numeric(9,0)
`
`lsc1: ntext
`
`
`pk_fk_core_company_id: numenc(9.0)
`Isc2: ntext
`
`
`pk_process_master_id: numeric(9,0)
`lsc3: ntext
`
`
`
`pk_process_de!ail_id: numeric(9,0)
`nc1: numeric(15,3)
`file_name: nvarchar(128)
`
`
`nc2: numeric(1 5,3)
`
`file_type: nvarchar(10)
`
`nc3: numeric(15‘3)
`
`
`file_size: numeric(9,0)
`bc1: nvarchar(1)
`
`file_oonieni_in_byte: varbinary
`
`bc2: nvarchar(1)
`attachmenLtype: nvarchar(1)
`
`bc3: nvarchar(1)
`
`dtc1: datetime
`
`dtc2: datetime
`
`dtc3: datetime
`
`
`
`
`Page 28 of 49
`
`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. Furthemrore, 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.
`
`[0005] Web applications, also referred to herein as
`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 Intemet 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 .IavaScr‘iptTM 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 tirrre 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.
`A typical 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
`DelpthM, 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 fomrs 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 efi‘iciently.
`[0009] Several of the RAD tools described above provide
`support for creating web applications. DelphiTM, Visual
`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
`
`Page 29 of 49
`
`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. Furthemlore, QuickBase itselfis 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 fomls. 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 011 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 011 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 itselfa 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 ap olication 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 lntemet. 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 designing the software application, defining the
`aspects of the application using the user interface, and
`transmitting the defined aspects to the server over the
`computer network. The method of providing a software
`application may include the acts of tracking a plurality of
`versions of the software application, maintaining each ver-
`sion as compatible with prior versions of the software
`application, and allowing a plurality of the versions to be
`active at the same time.
`
`In general, in a third aspect, the invention features
`[0015]
`a computer enabled method of providing a software appli-
`cation,
`including the acts of receiving over a computer
`network aspects of an application from a server, executi