`a2) Patent Application Publication io) Pub. No.: US 2007/0079282 Al
`
` Nachnaniet al. (43) Pub. Date: Apr. 5, 2007
`
`
`US 20070079282A1
`
`(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 Lindsey,
`Livermore, CA (US); Paul M. Tabet,
`Danville, CA (US)
`
`Correspondence Address:
`MORRISON & FOERSTER LLP
`755 PAGE MITI. RD
`PALO ALTO, CA 94304-1018 (US)
`
`(21) Appl. No.:
`
`11/241,073
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`GO06F
`(52) US. C1.
`
`(2006.01)
`9/44
`iccccccccccccescssecsscresscsessessceseesesersscsscees 717/106
`
`(57)
`
`ABSTRACT
`
`Asystem 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
`webservices enabled and process driven.
`
`102
`
`114
`
`100
`
`Application Data
`
`106
`
`108
`
`
` Designer UI
`
` } Application.Definition
`
`
`120
`; ApplicationDefinition
`Application Data
`
`
`
`
`
`
`
`Database
`
`Application Definition
`table
`
`|.
`
`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 of 27
`
`US 2007/0079282 Al
`
`Figure la
`
`102
`
`114
`
`
`Designer UI
`
`A Application.Definition:
`
`
`Application Data [-]
`
`
`
`
`
`
`
`
`
`
`
`108
`
`Application Definition
`
`Application Data
`
`Database
`
`
`
`Application Definition
`table
`
`|.
`
`Application Data table
`
`112
`
`124
`
`Page 2 of 49
`
`Page 2 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 2 of 27
`
`US 2007/0079282 Al
`
`WebBrowser
`
`
`Application
`
`Component
`
`140
`
`38
`
`42
`
`146
`
`148
`
`150
`
`Application
`
`WebService
`
`132
`
`
`
`
`
`
`Database
`
`Page 3 of 49
`
`Page 3 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 3 of 27
`
`US 2007/0079282 Al
`
`Ce
`
`
` Application
`499
`<Area
`
`.
`.
`-"
`name=name property
`label=displayname
`
`
`StandardArea
`240) Area Properties:
`rows=rowcount
`name,displayname,width,
`cols=colcount>
`
`rowcount, colcount
` 204
`
`
`
`<FormComponent
`
` Component(atleast 1), type is oneof:
`name=nameproperty
`
`Label, TextBox, TextArea, RadioButton,
`type=type property
`
`
`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,
`
`datatvpe. required.
`
`
`
`
`
`
`Page 4 of 49
`
`Page 4 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 4 of 27
`
`US 2007/0079282 Al
`
`:
`
`:
`
`Fae 2b
`
`393
`‘
`
`26.
`
`a
`
`
`-
`
`‘|
`
`<Form name=application name>
`
`262
`
`263
`
`<Area
`hame=nameproperty,label=displaynamc,
`rows=rowcount,cols=colcount>
`
`TableArea
`
`240
`20
`TableCamnonent
`
`Area Properties:
`name,displayname, width,
`rowcount, colcount
`
`-
`
`.
`
`.
`
`
`_
`TableCo
`<TableGomponent name=... />
`
`Properties: name, width,
`colindex
`
`-
`
`To
`
`<FormComponent
`(same as in Standard
`Area} />
`
`~
`
`me,
`
`</TableColumn >
`
`*
`
`</TableDetailRow >
`
`272
`
`264
`
`- 265
`
`266
`
`267
`
`268
`
`269
`
`270
`
`271
`
`200 Application
`
`</TableComponent>
`273
`[_<rares>|~274
`a78
`
`
`
`Page 5 of 49
`
`Page 5 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 5 of 27
`
`US 2007/0079282 Al
`
`Figure 3
`
`Request Information:
`302
`
` 300
`
`
`
`
`
`30
`
`A
`
`Date:| 4/22/2005
`
`30g
`Patient Name}
`
`John J. Smith
`
`308
`
`310
`
`Page 6 of 49
`
`Page 6 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 6 of 27
`
`US 2007/0079282 Al
`
`Figure 4a
`
`410
`
`N\ Form: { name, description, version, category, theme, subject}
`
`Area (1 or more)
`
`BehaviorList (Optional, 0 or more)
`
`415 N\
`
`Area : {name,label, layout, rows, cois, visibility }
`
`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,
`FormComponent: {sour rowindex, colindex,hidden,datacolumn,maxtength, }
`alignment, allowedchars, rows,cols, size, allowmultiple, datalookup
`formula, style, align, linkedcontroiname,attachtype
`
`FormComponentList (Optional, 0 or 1)
`
`FormComponent (Optional, 0 or more)
`
`BehaviorList (Optional, 0 or 1)
`
`430 \ BehaviorList
`
`435
`Code:string
`
`Behavior : {name, event, category} (Optional, 0 or more)
`
`Page 7 of 49
`
`Page 7 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 7 of 27
`
`US 2007/0079282 Al
`
`Figure 4b
`
`440\tablecomponent : (name, type, rows, allow_more_rows, style, allow_row_delete}
`
`TableHeadRow
`
`|setiecotumn (1 ormore)
`
`TableDetailRow
`
`|vebleCohure (1 ormore)
`
`TableFootRow (Optional, 0 or more)
`
`TableColumn (1 or more)
`
`BehaviorList
`
`450
`
`*\tableColumn : {name, label, rowindex, colindex, width}
`L FormComponent(Optional, 0 ormore)
`
`:
`
`Page 8 of 49
`
`Page 8 of 49
`
`
`
`Patent Application Publication Apr. 5, 2007
`
`Sheet 8 of 27
`
`US 2007/0079282 Al
`
`Area Component
`,
`name-=area_0
`label=Request Information
`cols=4, rows=6
`
`Form- Component
`name=comp_area_0_0_0
`type= LABEL
`
`rowindex=0, colindex=0
`
`Form Component
`name=date_]
`type=DATE
`dataset=process_master/dtcl
`rowindex=0, colindex=1
`
`Foye En label=Date:
`
`Form Component
`name=comp_area_0_]_0
`type=LABEL
`label= Patient Name:
`rowindex=1, colindex=0
`
`Form Component
`name-=select_3
`type=SELECT
`datalookup=CORE/$CID/USER
`dataset=process_master/scl
`rowindex=0, colindex=1
`
`Figure 5b
`
`53
`
`.
`area_0, Label=Request Information, ...
`
`532——
`
`ComponentDefinition
`
`534—~
`
`comp_area_0_0_0, label=Date:, ...
`
`536-— date_1l, type=DATE, ...
`538
`comp_area_0_1_0, label=Patient Name:, ...
`539 select_3, type=SELET,...
`
`52
`
`Page 9 of 49
`
`Page 9 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 9 of 27
`
`US 2007/0079282 Al
`
`540
`
`Figure 5c
`
`<Area name="area_0" label="Request Information" cols="4" rows="6" layout="four">
`
`542
`
`544
`
`ws
`<ComponentDefinition>
`
`<FormComponent name="comp_area_0_00" type="LABEL"required="false"
`label="Date:"datatype="0" maxlength="25" style="EditBox" rowindex="0"
`colindex="0" datalookup="" dataset=""" />
`
`</Area> -
`
`546
`
`<FormComponent name="date_1" type="DATE”required="false" label="date_1"
`
`datatype="4" maxlength="25" style="EditBox" rowindex="0" colindex="1"
`
`datalookup="" dataset="PROCESS_MASTER/dtc1" />
`
`<FormComponent name="comp_area_0_10" type="LABEL"required="true"
`label="Patient Name:" datatype="0" maxlength="25" style="EditBox"
`rowindex="1" colindex="0" datalookup="" dataset="" />
`
`<FormComponent name="select_3" type="SELECT"required="false"
`label="select_3" datatype="1" maxlength="25" style="EditBox" rowindex="1"
`
`colindex="1" datalookup="CORE/$CID/USER"
`
`dataset="PROCESS_MASTER/sc1" />
`
`</ComponentDefinition>
`
`Page 10 of 49
`
`Page 10 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 10 of 27
`
`US 2007/0079282 Al
`
`00
`
`Raue ba
`
`Name=Value
`
`602
`
`Data: Client
`Structure
`
`Application Data Application
`select_3=John J. Smi
`Database
` 4/22/2005
`
`Figure 6b
`
`604
`
`date_1=4/22/2005
`
`608
`
`610
`
`.
`Figure 6c
`61
`
`614
`
`16
`
`6
`
`dtcl
`
`618
`
`Example
`Application
`Data on
`Client
`
`Example
`Application
`Data in
`
`622
`
`624
`
`Page 11 of 49
`
`Page 11 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 11 of 27
`
`US 2007/0079282 Al
`
`Figure 7a
`
`
`
`
`ata
`Ns
`ree:
`
`
`
`
`
`
`
`Page 12 of 49
`
`Page 12 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 12 of 27
`
`US 2007/0079282 Al
`
`Figure 7b
`
`723
`
`
`
`
`
`720
`
`721
`
`Page 13 of 49
`
`Page 13 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 13 of 27
`
`US 2007/0079282 Al
`
`Figure 7c
`
`
`
`Page 14 of 49
`
`Page 14 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 14 of 27
`
`US 2007/0079282 Al
`
`Figure 7d
`
`
`
`748 (Ade PeetRabaier <7
`
`MLCmRSa lk
`
`Select Event
`
`i O sotect' Object
`® Satect Function
`
`cusiomFunction_Jawrence @
`wlewplain) print! copy fo Clipboard;7
`Zunetien eustosfunction lavrenced) {
`fr¥eus code goes heza.
`ieiths
`* \
`
`WA
`
`u ah
`
`i
`
`
`
`
`
`Page 15 of 49
`
`Page 15 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 15 of 27
`
`US 2007/0079282 Al
`
`Figure 7e
`
`740
`
`Select Event
`
`
`49
`
`
`
`sie plata j print | copy twcliphaard ! F-
`bg javascrize.
`7/Palid custom rouvines loz calculations, validations, or egonMouseQver
`7/Selact the Cbsact cz Function, Salect fvent and click Add Evant az Add Founcrion.
`#ffos can else click tha Data Zlessnt or Function on the lefr to help build the action.
`/fEdit Funetiong by eiickicg in this area.
`\
`
`748
`
`
`
`Page 16 of 49
`
`Page 16 of 49
`
`
`
`
`
`
`
`
`Ewa
`(RNB
`Add a group ofelements: SUM(x,+%,+--+X,}
`a
`;
`a Soeae
`i Only data elements accessible to the target field are displayed in the Data Elements window. Within a table you may only work with
`|
`instances ofthat row ofthe table. In the Table Summary Footer Areas you may access columnsof the table as well as data elements
`|
`from other areas. Table Summary Footer Areas can only get summary (SUM, Min, Max, etc) of data columnsfrom thetable.
`i
`
`
`
`i
`4u
`
`_—_#eCcn7FF
`
`Patent Application Publication Apr.5,2007 Sheet 16 of 27
`
`US 2007/0079282 Al
`
`Figure 7f
`
`
`
`
`Formula Builder for Line item Subtotal
` uble click on data
`elements, math
`operations, and formulas to
`
`
`
`75
`
`
`zd
`
`Page 17 of 49
`
`Page 17 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 17 of 27
`
`US 2007/0079282 Al
`
`Siaa
`
`
`Smartforms™
`{ Gtegend } © Logout
`
`
`Applicalion Type:|Aa g
`
`91/15/2004
`PROD
`
`
`L
`Geov Undenloy
`01/15/2004
`PROD
`2
`Geny Edt Qepley Delete
`01/2572006
`TEST
`1
`Geov Edit Deploy Qelete
`91/15/2004
`TEST
`2
`Seov undesloy —
`02/28/2004
`PROD
`
`
`3
`TEST
`ou 15/2003
`Ceay Initiate Deploy Delete
`
`
`3
`- PROD
`piszs/i008
`Geay undebioy
`:
`
`G1f15/2004= %
`
`
`
`
`SETI
`[First/Previous.
`se
`
`
`
`Gary Undesloy 2
`
`
`
`
`
`
`
`
`
`
`08/01/2005
`4
`~ 98/18/2005
`.
`09:00AM Sunny Yang
`SetectActon
`fi] a a Test Apslication 1
`Active
`2 G9:00AM Lise to route any file type, such... Sunny Yang
`osyov2005
`06/18/2005
`a — :
`.
`0862008
`.
`09:00 AM “Sunny Yang. 09:00AM |
`SetectActon
`$4) ay 8 Test Application 2
`1 09:00 AM” Use tor
`Sunny Yang
`08/01/2005
`98/18/2005
`sane
`es708/2065
`
`09:60 AM Sunry Yang
`09:00 AM
`1
`Test
`Test Application 3
`SeteActon
`iyi
`89:00AM Use to route any file type, such... Suany Yang
`KST
`KST
`
`a osoi/300s =.=8748/2005oe ee 09/15/2005 00 iet :
`
`
`
`
`
`
`Test Application 4 "o£ (06:00.AM Use teroute. anyfile type, sucti... Sunny Yang~09:00AM" Sunny NangInactive 09:00.4M
`oe
`9970172005
`08/01/2008
`08/18/2005
`tL OS:00 AM Use to route any file type, such... Sunny Yang
`09:00AM Sunny Yang
`06:00 AN
`KST
`KST
`«ST
`
`fytisite : Belo : Road
`Copyright 1995 - 2005, Nsite. ail rights reserved.
`
`Active’
`
`C
`
`Test Application S
`
`Active
`
`
`
`Page 18 of 49
`
`Page 18 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 18 of 27
`
`US 2007/0079282 Al
`
`i
`|i
`|
`|
`
`||i
`
`Fave 7k
`
`755
`
`
`
`
`757
`|
`758
`
` 75 . ee ;
`
`
`
`SSEMa
`URL petpas ss rocess nsite, com/rartners.
`f6p?
`
`ide!oon2772heae? 17769FOUKESreexeal’y
`
` _H
`
`site Ptatform Options
`ES]
`£3 Save LoginCookie,56-onlyneve to
`Link Type [Picase Select
`ogi once per selon
`3 Shew Nsite Platforn tabs
`Application
`Select the inbound link you would like to create. With a link that taunches an Nsite
`screen view (In Progress. Completed, Archives, or Drafts} you may Biter for a specific’
`Application. When taunching aa application you may populate application contrels.
`
`
`755
`
`
`75
`7
`76
`
`
`
`
`
`
`_UR Psdperseeyingrenee
`URL neces//puncese,25%tecop/porcoers18"
`
`<5]
`Nee PlatformOptions
`76xy
`Naite PlatformOptions
`‘Showe Nsite Piatform tabs
`Link Type [Launch Application
`EF Save Login Cookie. so only have ta
`Link Type
`£3 Saw Login Cockia soanlyhave ts
`|
`login once per session
`764\pppteation f
`O-——~. application onizatonvane
`gy Sener,
`Once the URL és built, you will need fo copyit and paste it to the 3rd party web
`i
`Onca the URL is buat. you will need to copy @ and paste it to the 3rd party wab
`
`application. Wher launching an application. you can populate application controls by
`adding the variable narnes from the 3rd party applicationif they provide that capability
`spalication.You mayfitter for a specific apptication in the Nsite screenview, or
`
`
`
`Controls to Populate
`Copy Control Name Code
`
`
`
`Double-diick the data element from your
`above
`
`‘current application, copy the Control
`Name Code for pasting into the URL
`
`
`
`
`
`
`
`762
`
`Page 19 of 49
`
`Page 19 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 19 of 27
`
`US 2007/0079282 Al
`
`tgure A
`MeL Meiers
` 76
`
`@ Static URL
`ONsite to Nsite (Initiate and prepoputate another Nsite process)
`
`765
`
`
`
`
`anaraEES
`O Static URL
`768~|———~@ Nsite to Nsite (Initiate and prepopulate another Nsite process)
`768-———_| Nsite Application Variables
`Select Process Application to — :«—(769
`|
`from Application Name
`Initiate
`770
`|
`Drag and drop variables from your current
`Select another process application, then Drag and Drop i
`application to the mapping boxes
`comrols to map to the controls from the current application
`:
`Current Application Mapping Boxes|Application to Initiate Mapping Boxes
`
`
`Tacenvanamet Bl [______}>[_______]|Ropdtextconrat’ fg} — 771
`
`
`
`
`
`
`
`TextContolname2a >
`Apo2TextControl2
`:
`TextControlName3
`App2TextControl3
`
`TextControiName4
`App2TextControls
`
`
`TextContraiName5
`App2TextControl§
`
`
`
`TextControiNameS
`App2TextControlé
`
`
`TextControiName?
`App2TextControl7
`
`
`TextControlNames
`App2TextControls
`&
`
`
`
`Co]
`
`
`
`
`
`|
`
`70S
`
`Page 20 of 49
`
`Page 20 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 20 of 27
`
`US 2007/0079282 Al
`
`Figure 8
`
`601
`
`i
`Client Computer
`
`Application
`Definition
`
`B02
`803
`805
`
`807
`
`808
`
`830
`
`840 809
`
`B31
`
`Cc
`
`lient Computer
`
`Application
`Definition
`
`992
`833
`835
`
`837
`
`838
`
`839,
`
`
`
` Application Server
`
`
`
`852
`
`App Designer JSP
`
`FormProcessor
`
`
` AppPlayer JSP
`
`
`
`
`
`
`BusinessFactory
`
` 854
` + ProcessService
`
`DefinitionFactory
`
`870
`
`-
`
`Page 21 of 49
`
`Page 21 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 21 of 27
`
`US 2007/0079282 Al
`
`Figure 9
`
`AppDesigner server|914
`page presents ‘user
`Anterface.
`
`
`
`
`
` 910 Start Save Application Definition
`
`
`920
`
`
`916
`
`918 ©
`
`No
`
`Create New App?
`
`Create Empty
`
`Definition object
`
`
`
`
`Load an existing
`
`application definition
`
`into Definition object.
`
` Wait for User Action
`Yes
`
`
`
`924
`Component Added?
`
`928
`
`User Clicked Save?
`
`Yes
`
` Add new component
`to Definition Transform Definition
`
`Into XML according
`to XML schema
`
`
` Send XML to
`
`
`
`AppDesigner JSP for
`storage in database
`
`
`
`Page 22 of 49
`
`Page 22 of 49
`
`
`
`More components?
`
`For each application
`componentin XML
`application definition.
`
`
`Compose component
`name
`
`
`Start GetValues
`:
`subroutine
`
`
`
`
`
`
`
`Look up datasettable
`
`and column names by
`component namein XML
`
`
`Get componentvalue
`from ProcessMaster
`
`property with dataset
`table and column names
`
`
`
`Set BusinessObjectValue {1034
`property with component
`name to component
`value
`
`Patent Application Publication Apr.5,2007 Sheet 22 of 27
`
`US 2007/0079282 Al
`
`Figure 10a
`
`Get XML application
`definition
`(ProcessDefinition) from
`DefinitionFactory
`
`1024
`
`
`
`1037
`
`Page 23 of 49
`
`Page 23 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 23 of 27
`
`US 2007/0079282 Al
`
`Figure 10b
`
`Start RenderHTML
`
`subroutine
`
`name
`
`component
`
`
`
`
`For each application
`componentin XML
`
`application definition
`
`
`Compose component
`
` Create HTML elementfor 1056
`
`
`
`
`
`
`
`Get component value
`from
`BusinessObjectValue
`property with component
`
`Add componentvalue to
`HTML element.
`
`More components?
`
`
`
`1064
`
`Page 24 of 49
`
`Page 24 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 24 of 27
`
`US 2007/0079282 Al
`
`Figure 11
`
`Start Save Application Data|1110
`Begin XMLtraversalto 1123
`- fillin ProcessMaster
`
`_ For each application|1124
`component in XML
`application definition
`
`FormProcessor decodes
`incoming HTTP response
`parameter values
`
`FormProcessorcreates
`
`BusinessFactory
`
`1118
`
`1120
`
`Compose component
`name
`
`1126
`
`Find componentvalue
`with component namein
`HTTP request
`
`1128
`
`Lookup dataset table|1130
`1122
`and column names by
`component namein XML
`
`traverses XML
`
`BusinessFactory
`
`
`
`Set ProcessMaster
`
`property with dataset
`table and column names
`to componentvalue
`
`
`
`
`
`1132
`
`1134
`Yes
`
`
`More components?
`
`
`1138
`
`Store ProcessMasterin 1136
`database using
`ProcessService
`
`Page 25 of 49
`
`Page 25 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 25 of 27
`
`US 2007/0079282 Al
`
`Figure 12a
`
`1201
`
`Application
`
`Application Data
`
`Application Definition
`
`1204
`1208
`
`
`
`Figure 12b
`
`Edit
`
`1222
`
`Active Mode
`
`Undeploy
`
`
`“—~1223
`
`
`
`inactive Mode
`
`Deploy
`
`1231
`
`1221-
`
`IniitiateProcess
`or Routing
`
`Page 26 of 49
`
`Page 26 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 26 of 27
`
`US 2007/0079282 Al
`
`ue |
`
`1301
`
`1302
`
`process_definition
`
`
`
`
`
`pk_process_definition_id: numeric(9,0)
`fk_core_company_id: numeric(9,0)
`
`fk_core_company_process_id: numeric(9,0)
`
`process_xmi: ntext
`
`process_ftype: nvarchar(1)
`1303
`version: numeric(9,0)
`
`is_active: nvarchar(1)
`
`mode: nvarchar(1)
`
`1304
`effective_date: datetime
`
`end_date: datetime
`
`1305
`is_locked: nvarchar(1)
`locked_by: numeric(9,0)
`
`lock_date: datetime
`
`
`
`Page 27 of 49
`
`Page 27 of 49
`
`
`
`Patent Application Publication Apr.5,2007 Sheet 27 of 27
`
`US 2007/0079282 Al
`
`1404
`1406
`
`
`
` process_detail
`process_master
`
`
`
`pk_process_master_id: numeric(9,0)
`pk_process_detail_id: numeric(9,0)
`routing_id: numeric(9,0)
`fk_process_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: numeroON 1422
`
`
`
`fk_core_company_id: numeric(9,0)
`set: nvarchar(256)
`
`
`subject: nvarchar(100)
`sc2: nvarchar(256)
`1421
`
`status: nvarchar(1)
`s¢e3: nvarchar(256)
`
`
`
`Isct: ntext
`description: nvarchar(100)
`
`Isc2: ntext
`
`s¢1: nvarchar(256)
`
`
`\sc3: ntext
`sc2: nvarchar(256)-—-—_________
`
`
`
`sc3: nvarchar(256)—~_
`ne1: numeric(15,3)
`
`
`
`Isci: ntext
`1407
`nc2: numeric(15,3)
`
`Isc2: ntext
`nie3: numeric(15,3)
`
`
`
`bc1: nvarchar(1)
`
`isc3: ntext 1405
`
`net: numeric(15,3)
`be2: nvarchar(1)
`
`
`
`nc2: numeric(15,3)
`be3: nvarchar(1)
`
`
`dtc1: datetime
`nes: numeric(15,3)
`
`
`dtc2: datetime
`bet: nvarchar(1)
`
`
`
`dte3: datetime
`be2: nvarchar(1)
`
`
`be3: nvarchar(1)
`
`
`dict: datetime
`dtc2: datetime
`
`dtc3: datetime
`
`process_extension
`
`
`pk_process_extension_id: numeric(9,0)
`
`fk_process_master_id: numeric(9,0)
`s¢e1: nvaschar(256)
`
`
`process_attachment
`
`$¢2: nvarchar(256)
`
`sce3: nvarchar(256)
`
`pk_process_attachment_id: numeric(9,0)
`Isc1: ntext
`
`
`pk_fk_core_company_id: numeric(9,0)
`Isc2: ntext
`
`
`pk_process_master_id: numeric(9,0)
`Isc3: ntext
`
`
`
`pk_process_detail_id: numeric(9,0)
`net: numeric(15,3)
`
`
`file_name: nvarchar(128)
`ne2: numeric(15,3)
`
`file_type: nvarchar(10)
`
`
`nc3: numeric(15,3)
`
`file_size: numeric(9,0)
`bet: nvarchar(1)
`
`
`file_content_in_byte: varbinary
`be2: nvarchar(1)
`attachment_type: nvarchar(1)
`
`
`be3: nvarchar(1)
`
`dtc1: datetime
`dtc2: datetime
`
`dtc3: datetime
`
`
`
`1410
`
`
`
`Page 28 of 49
`
`Page 28 of 49
`
`
`
`US 2007/0079282 Al
`
`Apr. 5, 2007
`
`BROWSER BASED DESIGNER AND PLAYER
`
`BACKGROUND OF THE INVENTION
`
`[0001]
`
`1. Tield 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 Microsoft™ Word™, Adobe™
`Photoshop™, and Intuit™ Quicken™ 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 problematicif 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.
`
`[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 Explorer™ or Mozilla Firefox™, and a web server,
`e.g. Apache™ or Microsoft™ Internet Information Ser-
`vices™. An application can be dividedinto 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 fromthe user interface. The web browser runs
`the user interface. The web server providesthe userinterface
`to the web browser and runs the business logic, possibly in
`cooperation with other servers such as an applicationserver,
`e.g. JBoss™ or BEA™ WebLogic™, and a database server,
`e.g. Oracle™, The web application need not be installed
`directly on the user’s computer. ‘he 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 JavaScript™ which will be executed by the
`web browser whenthe pageis retrieved. A web application
`includes a user-interface componentthat 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 JavaScript™. A browser-equipped
`computer, therefore, uses a network connection to permit a
`user to access a web application running on a remoteserver,
`for example. Furthermore, web applications can be updated
`at any time by installing the update onthe 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 includea 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 ofthe programming
`language, so such customization by programming can be
`expensive. Rapid Application Development (RAD) tools
`address these problems by simplifying programmingtasks.
`Atypical RAD toolis 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 whencreating or extending an application.
`RADtools 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
`Delphi™, Microsoft Visual Basic™, and Macromedia/
`Adobe ColdFusion™, which can be used to develop a wide
`range of applications, but often require some programming.
`RADtools 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 developmentis 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 casts
`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. Delphi™, Visual
`Basic™, and ColdFusion™ simplify the development of
`web applications created using programming languages.
`Thatis, 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, butit is still necessary to write code in
`
`Page 29 of 49
`
`Page 29 of 49
`
`
`
`US 2007/0079282 Al
`
`Apr. 5, 2007
`
`a programming language for some portions of the applica-
`tion, such as the business logic. QuickBase™ provides for
`rapid development of forms-based web applications using a
`graphical user interface. Furthermore, QuickBaseitselfis 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.
`
`InfoPath™ from Microsoft™ provides for rapid
`[0010]
`development of forms. InfoPath forms can optionally be
`madeavailable as web applications, but the InfoPath form
`designer itself is not a web application and mustbe installed
`directly on a user’s computer. Furthermore,
`InfoPath
`depends on other Microsoft products such as Internet
`Explorer™ and does not work with browsers from other
`vendors, such as Mozilla Firefox™, Therefore InfoPath
`forms can only be accessed from computers on which
`InfoPath™ and related Micrasoft™ products are installed.
`
`
`
`browser using the user interface, and transmitting the
`defined aspects to a server over a computer networkto create
`a web-based. software application. Embodiments of the
`invention mayinclude one or moreofthe 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 mayinclude, at the server, the steps of
`rendering a representation of the application fromthe trans-
`mitted defined aspects, retrieving data associated with the
`application from a storage, and transmitting the representa-
`tion and retrieved data to a clicnt. 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 browserofthe client and
`using the library as an intermediary between the web
`browserofthe 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.
`
`[xisting RAD tools do not combinethe benefits of
`(0011]
`Ina second aspect, the invention features a com-
`(0014]
`web applications with features such as customizable pro-
`puter enabled method of providing a software application,
`cessing in a scripting language, linkage with external data
`including the acts of receiving al a server over a computer
`sources such as databases, and linkage to web services. We
`network fromafirst client web browser a software applica-
`have recognized that
`it would be desirable to have an
`tion including defined aspects of the application, rendering
`easy-to-use RAD tool which is itself a web application, and
`a representation of the application fromthe received defined
`which allows a user to quickly develop and customize
`aspects, retrieving data associated with the application from
`web-based data processing applications that can include data
`a storage, and transmitting the representation and retrieved
`input, validation, processing, and linkage with web services.
`data to a second client. Embodiments of the invention may
`Such a RAD tool could be used to quickly and efficiently
`include one or moreof the following features. In the method
`develop and customize applications using any computerthat
`of providing a software application, the computer network
`has a standard web browser and access to the Internet.
`may include the Internet. ‘he method of providing a soft-
`Furthermore, web applications typically require complex
`ware application may include,at the secondclient, the steps
`business logic for their activities. This logic is typically
`of providing a web browser and providinga user interface to
`written in strongly typed languages and the logic requires
`a user on the web browser from the received representation
`recompilation and redeployment. It would be desirable to
`and data. The method ofproviding a software application
`provide a RAD tool with a scripting language which can
`may include, at the second client, the acts of: providing a
`change or extend the behavior of web applications without
`library on the browser and using the library as an interme-
`the additional overhead of recompilation or redeployment.
`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 browserat thefirst
`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.
`
`[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
`performa 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 linkingthe userinterface 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 a