`(12) Patent Application Publication (10) Pub. No.: US 2007/007.9282 A1
`Nachnani et al.
`(43) Pub. Date:
`Apr. 5, 2007
`
`US 2007007.9282A1
`
`(54) BROWSER BASED DESIGNER AND PLAYER
`(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
`7SS PAGE MILL RD
`PALO ALTO, CA 94304-1018 (US)
`
`(21) Appl. No.:
`
`11/241,073
`
`(22) Filed:
`
`Sep. 30, 2005
`Publication Classification
`
`(51) Int. Cl.
`(2006.01)
`G06F 9/44
`(52) U.S. Cl. .............................................................. 717/106
`
`ABSTRACT
`(57)
`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.
`
`O2
`
`14
`
`
`
`20
`
`
`
`
`
`Application Definition
`
`Application Data
`
`
`
`Database
`
`
`
`
`
`
`
`
`
`Application Definition .
`table
`
`Application Data table
`
`SAP Exhibit 1006
`SAP v. Express Mobile, Inc.
`IPR2021-01146
`Page 00001
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 1 of 27
`Figure la
`
`US 2007/0079282 A1
`
`102
`
`ll4
`
`00
`
`Designer UI
`
`
`
`
`
`
`
`Application Definition
`
`Application Data
`
`
`
`
`
`Database
`
`
`
`
`
`Application Definition .
`table
`
`Application Data table
`
`2
`
`IPR2021-01146 Page 00002
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 2 of 27
`
`US 2007/0079282 A1
`
`
`
`
`
`Web Browser
`
`Application
`
`32
`
`l46
`
`IPR2021-01146 Page 00003
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 3 of 27
`
`US 2007/007.9282 A1
`
`Figure 2a
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Application 202
`
`StandardArea
`
`204
`
`240N Area Properties:
`name, displayname, width,
`rowcount, colcount
`
`Component (at least ), type is one of
`Label, TextBox, TextArea, RadioButton,
`CheckBox, Select List, File Attachment,
`Button, Image, Link.
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Component
`Properties:
`name, type,
`rowindex, colindex,
`hidden, dataset,
`datalinkage,
`datatwbe, reauired
`
`
`
`<Area
`name=name property
`label=displayname
`OWSOWolt
`cols=colcount
`
`
`
`
`
`<FormComponent
`name=name property
`type=type property
`datatype=datatype property
`required=required property
`defaultvalue=defaultvalue prop
`rowindex=rowindex property
`colindex=colindex property
`hidden=hidden property
`datacolumn=next available
`column name
`Me
`
`
`
`
`
`
`
`
`
`
`
`IPR2021-01146 Page 00004
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 4 of 27
`
`US 2007/007.9282 A1
`
`
`
`Application
`
`TableArea
`
`Area Properties:
`name, displayname, width,
`rowcount, colcount
`
`Properties: name, width,
`colindex
`
`263
`
`<Area
`name=name property, label=displayname,
`rows=rowcount, cols=colcounts
`
`<FormComponent
`(same as in Standard
`Area) />
`
`---
`
`- C/TableColumn >
`---
`</TableDetailRow >
`
`272
`
`</TableComponent>
`
`273
`
`264
`
`- 265
`
`266
`
`267
`
`268
`
`269
`
`270
`
`27l
`
`IPR2021-01146 Page 00005
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 5 of 27
`Figure 3
`
`US 2007/0079282 A1
`
`
`
`300
`
`
`
`Request Inforquation
`302
`
`304
`
`Date: 4/22/2005
`
`30g
`
`Patient Name John J. Smith
`
`
`
`308
`
`30
`
`IPR2021-01146 Page 00006
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 6 of 27
`
`US 2007/0079282 A1
`
`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, cols, visibility}
`L ComponentDefinition (1 or more)
`FormComponent (if present, 1 or more)
`
`Ot
`
`TableComponent (if present, 1 or more)
`
`420
`name, displayname, type, datatype, required, keyfield, readonly,
`YFomcomponent: {
`rOWindex, Colindex, hidden, datacolumn, maxlength, }
`alignment, allowedchars, rows, cols, size, allowimultiple, datalookup,
`formula, style, align, linkedcontrolname, attachtype
`FormComponentList (Optional, 0 or 1)
`
`FormComponent (Optional, 0 or more)
`
`Behaviorlist (Optional, 0 or 1)
`
`430
`N Behaviorist
`
`L Behavior: (name, event, category) (Optional, 0 or more)
`435 u-1 L
`Code: string
`
`IPR2021-01146 Page 00007
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 7 of 27
`
`US 2007/0079282 A1
`
`Figure 4b
`
`440
`YTabocomponent : (name, type, rows, allow more rows, style, allow row delete)
`
`TableHeadROW
`team (1 or more)
`
`TableDetailROW
`to (1 or more)
`
`TableFootRow (Optional, 0 or more)
`team (1 or more)
`
`Behaviorlist
`
`450
`YTablacolumn : {name, label, rowindex, Colindex, width)
`L FormComponent (Optional, 0 or more)
`
`IPR2021-01146 Page 00008
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 8 of 27
`
`US 2007/0079282 A1
`
`
`
`52
`
`Area Component
`name=area 0
`label=Request Information
`cols=4, rows=6
`Form Component
`name=comp_area 0-00
`type=LABEL
`label=Date:
`rowindex=0, colindex=0
`
`Form Component
`name=datel
`type=DATE
`dataset=process master/dtcl
`rowindex=0, colindex=l
`
`-
`
`fare 5,
`
`W
`
`Form Component
`name=comp_area 0-l-O
`type=LABEL
`label=Patient Name:
`rowindex=l, colindex=0
`
`Form Component
`name=select 3
`type=SELECT
`datalookup=CORE/SCID/USER
`dataset=process master/scil
`rowindex=0, colindex=l
`
`Figure 5b
`530N area_0, Label=Request Information, ...
`532 N.
`Component Definition
`
`comp_area 0-0-0, label-Date:, ...
`534 N.
`536- date l, type=DATE, ...
`538
`comparea 0 l 0, label=Patient Name:, ...
`539
`select 3, type=SELET, ...
`
`IPR2021-01146 Page 00009
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 9 of 27
`
`US 2007/007.9282 A1
`
`Figure 5c
`
`540
`
`
`
`<Area name="area 0" label="Request Information" cols="4" rows="6" layout "four">
`
`<ComponentPefinition>
`
`<FormComponent name="comp area 00 0" type="LABEL" required="false"
`label="Date:" datatype="0" maxlength="25" style="EditBox" rowindex="0"
`colindex="0" datalookup=" dataset="f>
`
`<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 1 0" typer"LABEL" required="true"
`label="Patient Name:" datatype="0" maxlength="25" style="EditBox"
`rowindex="1" colindex="0" datalookup=" datasets" f>
`
`<FormComponent name="select 3" type="SELECT" required="false"
`label="select 3" datatype="1" maxlength="25" style="EditBox" rowindex="1"
`colindex="1" datalookup="CORE/SCID/USER"
`dataset="PROCESS MASTER/sc1" f>
`
`</Component Definition
`
`IPR2021-01146 Page 00010
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 10 of 27
`
`US 2007/007.9282 A1
`
`600
`
`Application Data
`
`hye 6a
`
`Application
`Data: Client
`
`Figure 6b
`
`
`
`604
`
`date l=4/22/2005
`
`608
`
`select3=John J. Smi
`
`60
`
`Figure 6c
`6
`
`
`
`6
`
`66
`
`4/22/2005
`
`Example
`Application
`Data on
`Client
`
`Example
`Application
`Data in
`Database
`
`IPR2021-01146 Page 00011
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 11 of 27
`
`US 2007/007.9282 A1
`
`Figure 7a
`
`
`
`IPR2021-01146 Page 00012
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 12 of 27
`Figure 7b
`
`US 2007/0079282 A1
`
`720 721
`
`
`
`723
`
`IPR2021-01146 Page 00013
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 13 of 27
`
`US 2007/007.9282 A1
`
`Figure 7c
`
`
`
`IPR2021-01146 Page 00014
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 14 of 27
`
`US 2007/0079282 A1
`
`Figure 7d
`
`
`
`io Salad Function
`
`|text-
`i
`customFunction lawrences
`s
`
`Select twent shocubleCick W
`
`mm-mm-mm
`
`4.
`
`view it is : print copy to th; beats...?
`functica estarrunctipaliawrence { } {
`wese ceasia gees the ea.
`isit, N
`
`748
`
`IPR2021-01146 Page 00015
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 15 of 27
`
`US 2007/007.9282 A1
`
`Figure 7e
`
`
`
`740
`
`s &
`Oselect Functio
`
`select Event Select event is
`
`troubleClick
`.
`.
`.
`vier risis print cops to sigbasti i
`st as ascist.
`fasiid custa, rativities a calcuistics, waiigatics, ex concuseOver
`actica.
`iseet the tict is
`actic, Salist extet art click Axe east at is
`a sets car sists click the data alars at praxiastier cry txt legs to help build the aeties.
`ified it firetástas try eitskin in this area.
`
`49
`
`748
`
`asid Eventrarder
`
`Aig Function
`
`IPR2021-01146 Page 00016
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 16 of 27
`
`US 2007/007.9282 A1
`
`Figure 7f
`
`
`
`
`
`753
`
`Only data elements accessible to the target field are displayed in the Data Elements window. Within a table you may only work with
`instances of that row of the table, in the Table Summary Footer Areas you may access columns of the table as well as data elements
`from other areas. Table Summary Footer Areas can only get summary (SUM, Min, Max, etc) of data columns from the table,
`
`
`
`IPR2021-01146 Page 00017
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 17 of 27
`
`US 2007/0079282 A1
`
`isionals critis: 5ties
`PRCd
`Y
`PROX
`N
`2
`N
`Es
`tes
`2
`Y
`Prod
`s
`Y
`test
`3
`Y
`3.
`Y
`
`Olfisf2004
`0/Sf204
`0.5:2004
`(1572.04
`of2Si2004
`Olylsf2O4
`oil/35iggot
`lfs/208
`
`copy ridecay
`lette
`Scox Edit Reggy
`cey Edit decay delete
`gby Undecoy
`Scay. Initiate ceetcy delete
`CCEY undedley
`Y
`
`
`
`
`
`Select Action
`
`Seled Action
`
`
`
`w
`
`s:
`
`f Test Application
`-
`.
`is 6 Test Application 2
`: "
`-
`. . .
`Test Application 3
`.
`. . .
`Test Application 4
`
`Active'
`-
`
`Test
`
`Inactive
`
`see Action
`
`x
`
`Test Applications
`
`Active
`
`a SSAS
`3.
`8:8
`osysf2Oos
`08/of2005
`Osfia/2005
`09:00 AM use to route any file type, such... Sunny Yang 09:00 AM Sunny Yang C9:00 AM
`07:25.2095
`.
`. " .
`.
`.
`.
`08/0/2ggs
`08/18/2005
`09:00 AM use tor
`W
`.
`Sunny Yang (9:00 AM Sunny Yang os: A
`Ks
`. .
`.
`. .
`Kst,
`KST
`303.2095
`80/2005
`oB/18/2005
`09:30 AM Use to route any file type, such... Surry Yang 09:00 AM Sunny Yarg 09:00AM
`KS
`KST
`03:15/2005 .
`.
`. .
`.
`.
`.
`. .
`.
`. . .
`.
`des
`08.18/2005
`i. (9:00AM use to route any file type, such... sunny Yang 09:00 AM Sunny Yang 09:00AM
`sfl/2005
`08/0f20s
`Bis/200s
`OS:00 AM use to route any file type, such... Sunny Yang 09:00 AM Sunny Yang 09:00 AM
`KS
`Kst
`KS
`
`tist sits Hale : Legs:
`Copyright 99s - 2333, isits. All rights reserved.
`
`IPR2021-01146 Page 00018
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 18 of 27
`
`US 2007/0079282 A1
`
`
`
`
`
`URL SE;5:5:33:3
`isiaxxxxis
`sea-????ssixxxess.
`
`755
`
`75
`75 8-N Link Type Please Select
`Application
`
`Nsite Platform options
`E3 Save Loon
`scs only neves
`kogir orce per session
`Show Nsiteration tabs
`Select the inbound link you would like to create. With a link that launches an Nsite
`screen yiew (in Progress. Completed, Archives, or drafts you may fief for a specific;
`application. When launching an application
`ra
`ulate application controls.
`
`s
`
`755
`
`create Inbound link
`URt.https://
`ess.nsite.com/Partners. g?
`dissexxxuris????seas????ses frexxxxxas
`
`75
`
`Create inbound Link
`R https://processinsites fartners. g
`id-kxxxxture???seas???ssfsexxxxxsists
`
`Nise Platform options
`759 N.
`since have to
`76
`link Type launch ApplicatioS2
`Application ApplicationName 2 E. as
`Once the R is built, you will need to copy it and paste it to the 3rd party web
`application. When launching an application, you can populate application controls by
`sdding the variable names from the 3rd party application if they provide that capability
`Controls to Populate
`Copy Controt Name Code
`extCoreMarte
`extOrcNaire2
`extControlNarne3
`extcontroNare
`Tesco?itro Nares
`TextControNames
`TaxControl:Name?
`
`76
`
`
`
`... 8
`
`current application, copy the Control
`Nanne Code of pasting into the URL
`above
`
`Nsite Pattornr 0
`763
`3 Save Login cookie, so only have to
`Link type
`C.
`76 Application ApplicationName
`Once the URL is built, you will need to copy a and paste it to the 3rd party web
`application. You may fitter for a specific application in the Nsite screen view, or
`selectio Application Filter to view at applications
`
`rar
`
`
`
`762
`
`IPR2021-01146 Page 00019
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 19 of 27
`
`US 2007/007.9282 A1
`
`765
`76
`
`Link Builder
`
`O Static URL
`ONsite to Nsite (initiate and prepopulate another Nsite process)
`
`765
`
`Link Builder
`
`
`
`OStatic URL
`768 -5 Nsite to Nsite (initiate and prepopulate another Nsite process)
`
`Select Process Application to
`768-1- Nsite Application Variables
`Initiate Process App2
`N
`from Application Name
`Select another process application, then drag and orop
`Drag and drop variables from your current
`controls to map to the controls fron the current application
`application to the mapping boxes
`Application to initiate Mapping Boxes
`Current Application Mapping Boxes
`O) O App2textcontrol
`App2TextControl2
`App2TextContro3
`App2TextContro4
`App2TextContro5
`App2textControls
`App2TextControl?
`App2TextControl.8 R
`
`TextOcottNare3
`extControl.Narie-4
`extControNafe5
`extControNares
`TextControNanet
`
`
`
`
`
`77
`
`IPR2021-01146 Page 00020
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 20 of 27
`
`US 2007/0079282 A1
`
`Figure 8
`
`801
`
`Client Computer
`
`802
`
`803
`805
`
`807
`
`808
`
`830
`
`831
`
`Client Computer
`
`832
`
`833
`835
`
`837
`
`838
`
`839.
`
`840
`
`809
`
`852
`
`
`
`
`
`
`
`
`
`
`
`854
`
`
`
`
`
`Application Server
`
`App Designer JSP
`
`
`
`App Player JSP
`
`Fomprocessor
`
`
`
`
`
`860
`862
`
`864
`
`DefinitionFactory
`
`BusinessFactory
`
`ProcessService
`
`Database
`
`IPR2021-01146 Page 00021
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 21 of 27
`
`US 2007/0079282 A1
`
`Figure 9
`
`Start Save Application Definition ) 910
`
`AppDesigner server 1914
`page presents user
`interface.
`
`916
`
`
`
`Yes
`Create Empty
`Definition object -- New App?
`
`918
`
`920
`
`
`
`Load an existing
`application definition
`into Definition object.
`
`No
`
`
`
`
`
`922
`
`
`
`
`
`Wait for User Action
`
`924
`
`component Added?d N-gser Clicked save >Ne
`
`928
`
`Yes
`
`Yes
`
`Add new component
`to Definition
`
`926
`
`Transform Definition
`into XML according .
`to XML schenna
`
`
`
`Send XML to
`AppDesigner JSP for
`storage in database
`
`
`
`IPR2021-01146 Page 00022
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 22 of 27
`
`US 2007/007.9282 A1
`
`Figure 10a
`
`
`
`Get XML application
`definition
`(ProcessDefinition) from
`DefinitionFactory
`
`Start GetValues
`Subroutine
`
`
`
`1024
`
`
`
`
`
`
`
`
`
`
`
`
`
`For each application
`component in XML
`application definition.
`
`Compose component
`ae
`
`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
`
`More components?
`
`1037
`
`IPR2021-01146 Page 00023
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 23 of 27
`Figure 10b
`
`US 2007/007.9282 A1
`
`Start RenderHTML
`Subroutine
`
`1050
`
`
`
`For each application
`component in XML
`application definition
`
`
`
`Compose component
`ae
`
`Create HTML element for 1056
`component
`
`Get component value
`from
`BusinessObjectValue
`property with component
`
`Add component value to
`HTML element.
`
`More components?
`
`
`
`
`
`
`
`
`
`
`
`1064
`
`IPR2021-01146 Page 00024
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 24 of 27
`
`US 2007/0079282 A1
`
`Figure 11
`
`Start Save Application Data ) 1110
`
`
`
`
`
`FormProcessor decodes 1118
`incoming HTTP response
`parameter values
`
`FormRrocessor Creates
`BusinessFactory
`
`BusinessFactory
`traverses XML
`
`1120
`
`1122
`
`Store ProcessMaster in
`database using
`ProcessService
`
`1136
`
`Begin XML traversal to 1123
`fill in ProcessMaster
`
`For each application
`Component in XML
`application definition
`
`1124
`
`Compose Component
`late
`
`1126
`
`Find component value
`with component name in
`HTTP 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
`More components?
`
`
`
`Yes
`
`IPR2021-01146 Page 00025
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 25 of 27
`
`US 2007/007.9282 A1
`
`Figure 12a
`
`
`
`1201
`
`1202
`
`Application
`
`12O3
`
`
`
`1204
`
`1205
`
`Application Definition
`
`Application Data
`
`w
`
`Figure 12b
`
`Edit
`
`1210
`
`1221
`
`N
`InitiaterOceSS
`or Routing
`
`Active Mode
`
`Undeploy
`N1223
`
`inactive Mode
`
`Deploy
`
`1231
`
`
`
`
`
`
`
`1230
`
`IPR2021-01146 Page 00026
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 26 of 27
`
`US 2007/007.9282 A1
`
`pie s
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`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 Xml:ntext
`process type: nvarchar(1)
`version: numeric(9,0)
`is active: nvarchar(1)
`mode: nvarchar(1)
`effective date: datetime
`end date: datetime
`is locked: nvarchar(1)
`locked by: numeric(9,0)
`lock date: datetime
`
`
`
`30
`
`302
`
`303
`
`304
`
`305
`
`IPR2021-01146 Page 00027
`
`
`
`Patent Application Publication Apr. 5, 2007 Sheet 27 of 27
`
`US 2007/0079282 A1
`
`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)N
`fk core company process id: numeric(9,0)
`type id: numeric(9,0
`422
`sc1: nvarchar(256)
`fk Core Company id: numeric(9,0)
`Sc2: nvarchar(256)
`l42l
`subject: nvarchar(100)
`sc3: nvarchar(256)
`status: nvarchar(1)
`sc1:ntext
`description: nvarchar(100)
`sc2:ntext
`sc1: nvarchar(256)
`sc2: nvarchar(256) - sc3. ntext
`Nahar(256- 407
`1406
`A: as: :
`inc2: numeric b,
`sche
`sc2 intext
`inc3: numeric(15,3)
`sc3:ntext - la05
`bc1: nvarchar(1)
`nc1: numeric(15,3)
`bc2: nvarchar(1)
`inc2: numeric(15,3)
`bc.3: nvarchar(1)
`inc3: numeric(15,3)
`ditc1: datetime
`bc1: nvarchar(1)
`dtc2 datetime
`bc.2: nvarchar(1)
`dtc3; datetime
`bc3: nvarchar(1)
`ditc1: datetime
`ditc2: datetime
`ditc.3: datetime
`
`l404
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`process attachment
`pkiprocess attachment id: numeric(9,0)
`pk flk core company id: numeric(9,0)
`pk process master id: nurneric(9,0)
`pk process detail id: numeric(9,0)
`file name: nvarchar(128)
`file type: nvarchar(10)
`file size: numeric(9,0)
`file content in byte: warbinary
`attachment type: nva?char(1)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`1410
`
`process extension
`pk process extension id: numeric(9,0)
`fk process master id: numeric(90)
`sc1: nvarchar(256)
`sc2: nvarchar(256)
`sc3: nvarchar(256)
`3. As
`sc3. ntext
`nc1: numeric(15,3)
`nc2: numeric(15.3)
`nc3: numeric(15,3)
`bc1: nvarchar(1)
`bc.2: nvarchar(1)
`bc.3: nvarchar(1)
`dtc1: datetime
`ditc2: datetime
`ditc3; datetime
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IPR2021-01146 Page 00028
`
`
`
`US 2007/007.9282 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
`0004 Today, most types of software applications are
`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.
`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 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 JavaScript TM 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
`applications user interface may be implemented as a web
`page using HTML and JavaScript T.M. 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.
`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
`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, 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
`
`IPR2021-01146 Page 00029
`
`
`
`US 2007/007.9282 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.
`0010 InfoPathTM from MicrosoftTM provides for rapid
`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
`0013 In general, in a first aspect, the invention features
`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.
`0014. In a second aspect, the invention features a com
`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 designing the software application, defining the
`aspects of the application using the user interface, and
`transmitting the defined aspects to the server over the
`compute