throbber
US 20070094609Al
`
`(19) United States
`(12) Patent Application Publication (10) Pub. No.: US 2007/0094609 A1
`
`Gilboa et al.
`(43) Pub. Date:
`Apr. 26, 2007
`
`(54)
`
`EXECUTABLE AND DECLARATIVE
`SPECIFICATION FOR GRAPHICAL USER
`IVTERFAC ES
`
`(75)
`
`Inventors: Yuval Gilboa, Pardesiya (IL); Rinat
`Gilboa, Pardesiya (IL)
`
`Correspondence Address:
`TOWN SEND AND TOWNSEND AND CREW,
`LLP
`TWO EDIBARCADERO CENTER
`EIGHTH FLOOR
`SAN FRANCISCO, CA 94111 (US)
`
`(73)
`
`Assigncc: SAP Portals Israel Ltd., Ra’anana (IL)
`
`(21)
`
`Appl. No.:
`
`11/324,155
`
`(22)
`
`Filed:
`
`Dec. 29, 2005
`
`Related U.S. Application Data
`
`(60) Provisional application No. 60/722,888, filcd on Scp.
`30, 2005.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`0an 3/00
`(2006.01)
`0an 7/00
`(2006.01)
`G06F 9/44
`(52) U.S.Cl.
`........................... 715/762; 707/102; 717/104
`
`(57)
`
`ABSTRACT
`
`Techniques for decoupling models created during design-
`time from the runtime environment. A declarative and
`executable representation for GUIs for applications is pro-
`vided that is independent of any particular runtime platform,
`GUI framework, device, or programming language and
`Which acts as an interface between the design environment
`and the runtime environment.
`
`EXAMPLE #1: BANKING APPLICATION GUI (FOR DHTML RUNTIME PLATFORM)
`Bank Address
`
`
`
`Banks List
`
`IEEII I-l
`BANKCTRY
`3
`
`_ANKNAME
`_"V
`FlistUnion Bank E Trust
`083000105
`
`Chicago
`New York
`Citibank
`
`II Pobk Curac:
`II Bank No:
`II Addi No:
`II Bank Branch:
`II Bank Group:
`I] Bank Name:
`IICily:
`1w
`Street
`
`I]
`I] Swift Code:
`fl Post Bank:
`
`1 23445678
`
`Chase Manhattan Ba
`NewYork Ciiy
`
`ABCD3891
`
`I::
`
`Chase Manhattan a . [I City:
`
`New York City
`Chase Manhattan Bank
`123445678
`12345678
`
`Comneme Bank
`Philadelphia
`PNC
`123456780
`Memo"
`Chase NLananaitan
`123456784
`New York
`Mellon Bank
`123456788
`
`Philadelphia
`123456789
`Fidelity Bank
`Lns Angeles
`
`
`
`ESIEE SEE
`
`
`
`I] Bank Ctry:
`
`[I Bank Key:
`123445678
`
`II Bank Name:
`
`Page 1 of 40
`
`GOOGLE EXHIBIT 1016
`
`Page 1 of 40
`
`GOOGLE EXHIBIT 1016
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 1 0f 16
`
`US 2007/0094609 A1
`
`DATA
`PROCESSING
`SYSTEM
`102
`
`DESIGN-TIME
`
`ENVIRONMENT
`
`MODELING
`TOOL
`
`ABSTRACT REP. GENERATOR
`(XGL GENERATOR)
`
`
`
`
`
`
`
`
`ABSTRACT REP.
`
`(XGL REP.)
`
`AL
`
`100
`
`f
`
`104
`
`106
`
`1 08
`
`DEVICE AND PLATFORM
`SPECIFIC RUNTIME TOOLS
`1 12
`
`I _______
`
`____ ___
`
`I XGL —> JAVA
`1 12'1 I COMPILER
`
`XGL 9 FLASH
`
`COMPILER
`
`-
`
`XGL 9 DHTML
`INTERPRETER
`
`l
`
`
`
`1 12-2
`
`120
`
`1 1 2-3
`
`116
`
`122
`
`126
`
`JAVA
`RUNTIME
`
`FLASH
`RUNTIME
`
`DHTML
`RUNTIME
`
`1
`
`18
`
`124
`
`128
`
`GUION JAVA
`PLATFORM
`
`GUION FLASH
`PLATFORM
`
`GUI ON DHTML
`PLATFORM
`
`J
`
`RUN-TIME
`
`ENVIRONMENT
`
`FIG. 1
`
`Page 2 of 40
`
`Page 2 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 2 0f 16
`
`US 2007/0094609 A1
`
`
`
`MODEL REPRESENTATION
`(COMPRISING MODEL GU] COMPONENTS)
`
`106
`
`
`
`USING AN ABSTRACT REP.
`GENERATOR (XGL REP.
`GENERATOR)
`
`
`
`
`
`ABSTRACT REPRESENTATION
`(COMPRISING ABSTRACT COMPONENTS
`
`
`AND ASSOCIATED PROPERTIES)
`
`
`(XGL REPRESENTATION)
`
`
`
`110
`
` IN RUNTIME
`
`ENVIRONMENT
`
`
`
`RUNTIME
`REPRESENTATION
`(TARGET DEVICE
`SPECIFIC)
`
`RUNTIME
`REPRESENTATION
`(TARGET DEVICE
`SPECIFIC)
`
`202
`
`FIG. 2
`
`202
`
`Page 3 of 40
`
`Page 3 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 3 0f 16
`
`US 2007/0094609 A1
`
`300
`
`r...
`
`302
`
`304
`
`306
`
`RECEIVE A SIGNAL TO IDENTIFYING A MODEL
`
`REPRESENTATION
`
`GENERATE AN ABSTRACT REPRESENTATION (XGL
`REPRESENTATION) FOR THE MODEL
`REPRESENTATION
`
`PERFORM RUNTIME ENVIRONMENT PROCESSING
`
`
`
`USING THE ABSTRACT REPRESENTATION
`
`GENERATED IN 304
`
`FIG. 3
`
`Page 4 of 40
`
`Page 4 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 4 0f 16
`
`US 2007/0094609 A1
`
`EXAMPLE #1: BANKING APPLICATION GUI
`
`MODEL REP.
`
`(VISUAL REP. DEPICTED IN
`
`402 FIG. 4B)
`
`XGL GENERATOR
`
`404
`
`XGL REP.
`
`406
`
`XGL 9 JAVA
`
`XGL 9 FLASH
`
`XGL 9 DHTML
`
`FLASH
`
`DHTML
`
`GUI 0N JAVA
`
`PLATFORM
`(FIG. 40)
`
`414
`
`
`
`GUI ON FLASH
`
`PLATFORM
`(FIG. 4D)
`
`422
`
`GUI ON DHTML
`
`PLATFORM
`(FIG. 4E)
`
`428
`
`FIG. 4A
`
`Page 5 of 40
`
`Page 5 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 5 0f 16
`
`US 2007/0094609 A1
`
`
`
`
`
`._m_n_o_>_zOF<o_._nE<mz§z<m
`
`
`
`mimexcmm
`
`NV.OE
`
`55mm9.5m
`
`
`
`$062fig5:32mm(Eoncemmm
`
`A.:98ESa.u53%afile
`.W‘EammIo
`
`3%::mSco.nscuu.”2cmscoisco2;:m_82mmHO_82mmH‘.2m#_“E550_
`
`
`
`
`“mamaxcmm
`
`Page 6 of 40
`
`Page 6 of 40
`
`
`
`
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 6 0f 16
`
`US 2007/0094609 A1
`
`
`!i“a:I'm.
`
`
`323%lEach/Emgzam<><amo“:5020:5an@2225u;mdszxm
`
`$2584VegEEI2:993IIEI
`églI52:3%"In—m-
`
`
`
`£0to»3m:V.Ewm5:252$20$833+I£0=”$2is=5gm=5gm=
`
`
`
`H:28;
`
`
`
`
`
`a:05
`
`0V.OE
`
`253xcmm
`
`H2:
`
`28:302gm=
`
`Viewunsung:$20252:8=
`
`E
`
`I
`
`Page 7 of 40
`
`Page 7 of 40
`
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 7 0f 16
`
`US 2007/0094609 A1
`
`
`
`“Emonfifiam=>=._.23mIm<._n_mo”:50ZO_H<O_.Em<oz_xz<m”I“m._m_>.<xm
`
`
`
`
`
`293.3262xcmm
`
`2”Sam:
`
`
`“OH252HEW
`
` “we:is8:5Em838mg!amcmzmfimz$20”mew:ismum...mxcmm
`
`
`«283$!{B5252ng$20«2832!588$$85%£2822".£88.35853%!“$55%seaasE;52E352%:325gear!E»52€2825:3!
`3:3!55mm9.5m
`
`83;m3:82.8:$832!£522.35Em8.5:
`
`QV.OE
`
`
`
`Euis»,>>sz.m:mumzcmfi$20”$382
`
`
`
`35”2.52xzmm”Exfmm
`
`£23:3
`
`Page 8 of 40
`
`Page 8 of 40
`
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 8 0f 16
`
`US 2007/0094609 A1
`
`mm5325.2896
`
`333va
`
`3333.ES
`
`92wE.=”5:3£3=52.84=52Em.=Es:8=
`
`
`
`5stscam=
`
`asa:52
`
`
`
` via.81=8389‘680£3=$25gas..605=2“85¢:=56:
`
`éxcmmEgg—as.320gme:E55E:
`
`33532;g5:29.32$ch
`
`
`
`gamm—:o__m_2
`
`
`
`
`
`
`
`36mg8..xcmm€me
`
`mmnomvmm—
`
`MV.OE
`
`a6é;32
`
`.m$22.52$20
`
`”5=
`
`5:52xcmm=
`
`
`
`g9.:53=
`
`33$an
`
`wEsuxzé A5825
`
`
`mzczzm.__>E._omo”:50zo:<o_§<wzzz<mHE5%,5
`
`»o_ooomwou$2.3m
`
`nmENEN—
`
`39.3va
`
`£9.“va—
`
`emnmmvmfi
`
`«.3333
`
`858va—
`
`a:928
`
`(DU)33 (I)
`
`U)D
`
`0)II
`
`EEEEEH
`
`258{an
`
`Page 9 of 40
`
`Page 9 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 9 0f 16
`
`US 2007/0094609 A1
`
`EXAMPLE #2: ANALYTICS DASHBOARD GUI
`
`MODEL REP.
`
`
`
`(VISUAL REP. DEPICTED IN
`FIG. 58)
`
`502
`
`XGL GENERATOR
`
`504
`
`XGL REP.
`
`506
`
`XGL 9 JAVA
`
`XGL 9 FLASH
`
`XGL —) DHTML
`
`FLASH
`
`DHTML
`
`GUI 0N JAVA
`
`PIATFORM
`(FIG. 5C)
`
`514
`
`
`
`GUI ON FLASH
`
`PLATFORM
`(FIG. 50)
`
`522
`
`GUI ON DHTML
`
`PLATFORM
`(FIG. 55)
`
`528
`
`FIG. 5A
`
`Page 10 of 40
`
`Page 10 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 10 0f 16
`
`US 2007/0094609 A1
`
`E53:
`
`tmcoEm@
`
`:208:560
`
`tmco9.:
`
`
`
`
`
`._m_oo_>_om<OmIm<Dmo_._.>._<z<
`
`mmGE
`
`£35£350
`
`.2me22:086w
`
`A.anmx$90mmfiw59:o
`
`E55.v
`
`and.Q
`
`
`
`$50052823
`
`8am£28m
`
`Page 11 of 40
`
`Page 11 of 40
`
`
`
`
`
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 11 0f 16
`
`US 2007/0094609 A1
`
`
`
`
`
`8.8828.888.3828.88888°.—88888%8.8888.888E888.888
`
`
`
`08.8
`
`898
`
`08.8
`
`80.8
`
`89m
`
`:26.8
`
`888.83;8.2.88.3.8
`
`Sim55$ Each/E
`
`8:28<><_,mo“:50088195mo_E<z<8Emzfim
`
`E532A88.88El888888888aéélé88888:
`
`8an“.
`
`:26
`
`MI“ll
`
`sauofia
`
`133
`
`
`
`
`
`8888c88888o?0889888
`
`was;
`
`$memm325wB325wH.
`
`
`
`888m
`
`8088
`
`8803
`
`:252.:
`
`Tllllll
`
`
`
`
`
`87m9908.83m«21....3:.Enniszi
`
`871820%83”.825E«Ed
`
`8:883
`
`«macawnu«macawB08.5%B
`
`On
`.OE
`
`8710851087¢8.:ST;8—aI
`m9..//&/$89532.1~92.87m5mm<_2=2
`
`
`
`Illflfi‘il"!
`
`’.¢i¢90.1.55.5CD.
`
`
`
`871moo—0mm8En3257m87m:
`
`8:.980mm83.xmovd8—mEmm<_z_s_
`
`3:833
`
`
`
`mmutaw.U_8.5mBn85wRu
`
`3:333
`
`N888a38.38«8:8a
`
`:582.858
`
`8808
`
`888r0888
`
`
`
`
`
`man8838.8888.82:2.88
`
`
`
`
`
`88.2.20mm;3E88:.888—@8888
`
`EEn8822‘w33,82an85
`
`Ea...3:28EEEI
`
`KB8838.898.828.88
`
`
`
`88.8.8:22.cESIQQSZE98888888
`
`~33223038m
`
`ilmmiii...._!games
`
`
`
`.80582...oz.9883:
`
`
`
`Page 12 of 40
`
`
`
`
`
`0mm;88....37m8888888888::828888.888a88.2.:Omxn.35:1088°88888a88.2.2
`
`
`
`
`
`Page 12 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 12 0f 16
`
`US 2007/0094609 A1
`
`
`852%”8Ens/2m
`
`
`%%%%zozQa©%%@a%%.010/[calyx/ram.
`@Hfi-Ilfi.88gl!88885235258828:"852.:88888888
`
`
`mglglfiaéig§20.28%985Egg
`Ina-55:2;3E;IfiaiE-Efiaéglfiigfi
`
`
`ovyaaavovvovvv(ovo~.vvway
`
`
`
`
`
`
`5!8.8888.8889558.32829281198“.8;88888888
`E!%“.8888858::2892888858.88888888
`
`
`
`5!8.8889:893:8QAENEISEQQEE”:8“.IE88888888
`Ewd2vNEmEm.“Ewev68v63v0v0A7
`n”23w3NmacawE.v323Bn«3.3mma$.58nu_35m.9
`n32%Hmumeana325wwN.n8.8%EN825wE_3.3B
`Emotin.22:23.:2:mo“:Se368195
`
`
`
`
`
`_E88888%:8828888888
`mgEii?«.9385Egg
`
`
`
`
`
`
`
`
`
`
`
`
`552528
`
`on.9...
`
`mach22:03.3E.!.88888
`
`H.9038mH.025:585
`
`
`
`3.550€57.3th
`
`38m588
`
`I”
`
`
`
`:2632
`
`
`
`@%.a9%z@%&o@%%@%$10.78.aaaAwA/Qfifi/a
`.v&,a.o.alo(a.a.a.o‘a.a.a$44/yrv‘o.o.Yan
`
`A!
`
`Page 13 of 40
`
`Page 13 of 40
`
`

`

`mP
`
`.1
`
`r
`
`6
`
`US 2007/0094609 A1
`
`6285%m558:
`
`ed
`
`c.8803
`
`9888_
`
`c.8933
`
`@883
`
`268$
`
`
`
`7~210SE0‘.8;2..SE9.S.3525
`
`.8.2
`
`M888888%883E%8.38
`
`
`IEIIISSB9%28888888nma888;8.888.888.3888.8ll8m8§9%8888888
`
`7”:25am:2...32
`
`.92.x
`
`///V:f///////h.220.3,/S‘.8;.u:I
`
`3II18.88%—aSSv:5.88%988$.
`
`
`
`.8.23:SE3;37.223t‘||‘H‘,n‘leHOMONWMOMOV:.o‘n‘Iiyv’4w.
`
`8°58
`
`
`
`
`
`
`
`
`3—18—d50mna—omn8E.8‘:chLSE3—,;8—152:8:.Ermioa—no—unacord..13‘:8?1SF“35..uc—‘aSz—E
`
`
`
`
`
`Mm.OE
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`8.8888.82:8.8889888.888258.8888.8828.8808.888.888258588188888888Mg888.,.m%88°._.mE883888888.8888.8888.88888me8888.1888888.88Mg888.?888888.8828.8888.888.888:58888.8188888888
`
`
`
`
`Ina-Ii88.8.88SE288838888u838838.888.888.88
`
`
`
`
`
`
`
`
`
`
`
`
`tI'llm_é_!88888H”.9088m:6288830:
`
`
`
`AW”um—um:Emcm
`
`8888:85.22888888888P888318“EEEEEEEEEEm.259853.3
`
`
`
`
`
`t.mAzmomkfimms__._.z:m.__>_._.IQmo”:50om<OmIm<omo:.>._<2<.98mfisExm
`
`
`
`
`
`Page 14 of 40
`
`Page 14 of 40
`
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 14 0f 16
`
`US 2007/0094609 A1
`
`_
`<?me version="1.0“?>
`<xg:Component urn namespace—declmany>
`<xg:Window. .>
`container-deal"
`interactoi-cieéjcl
`control-Juan
`
`many
`
`.
`<ng:WIndow>
`
`<xg:Data>
`Infosets-section
`
`Infoactors-section
`operators-seamen
`enumerations-section
`<ng:Data>
`
`<xg:Contro_ller>
`actions-section
`reIays-section
`execution-plans-section
`<ng:Controller>
`'
`
`<xg:Resources>
`images-section
`palettes-section
`IransIatIons-section
`systems-section
`Imports-section
`<ng: Resources>
`
`<ng:Component>
`
`FIG. 6
`
`Page 15 of 40
`
`Page 15 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 15 0f 16
`
`US 2007/0094609 A1
`
`<7me version="1.0"?>
`<xg:Component urn= "AADGBU" mens:xg="http://www.sap. com/visualcomposer/2005/xgl"
`xmlns:ep="http://www.sap.com/visualcomposer/2005/ng/portal'>
`<xg:Window windowTitle= "Wizard1" windowType="top" preferredWidth="760"
`preferredHeight= "480" frameSter="primaIy'>
`<xg:Canvas enableScro/Iing="true" scaIeMode="fix">
`<xg:Wizard defaultChild= "ABA6BV" roadmapSty/e="fu/I" frameSty/e="none">
`<xg:Pane| frameSly/e="primary" w= "320" h="160" x= "344" y="16"
`showT/tlebar:"true">
`
`<xg:FormView id: ”A CA6CL" infoset= "AAA6CL" title="Form5" scaleMode= "fix"
`formLayout= "absolute" form Width= "1 84" formHeight= "64" isEditable= "true">
`<xg:Controls>
`</xg:FormView>
`<lxg:Panel>
`</xg:Canvas>
`</xg:Window>
`<xg:Data>
`<xg:|nfosets>
`<xg:|nfoactors>
`- <xg:0perators/>
`<xg:Enumerations>
`</xg:Data>
`<xg:Controller>
`<xg:Actions>
`- <xg:Re|ays/>
`<xg:ExecutionPIans>
`<lxg:Control|er>
`<xg:Resources>
`- <xg:|magesl>
`- <xg:PaIettesI>
`- <xg:Translations/>
`<xg:Systems>
`- <xg:|mportsl>
`</xg:Resources>
`</xg:Component>
`
`FIG. 7
`
`Page 16 of 40
`
`Page 16 of 40
`
`

`

`Patent Application Publication Apr. 26, 2007 Sheet 16 0f 16
`
`US 2007/0094609 A1
`
`809
`
`COMPUTER
`SYSTEM
`800
`
`MEMORY SUBSYSTEM
`
`FILE STORAGE
`
`SUBSYSTEM
`
`USER INTERFACE
`INPUT DEVICES
`
` STORAGE SUBSYSTEM
`
`BUS SUBSYSTEM
`
`P
`
`ROCESSONS)
`
`NETWORK
`INTERFACE
`
`USER INTERFACE
`OUTPUT DEVICES
`
`NETWORKS. SYSTEMS, DEVICES
`
`FIG. 8
`
`Page 17 of 40
`
`Page 17 of 40
`
`

`

`US 2007/0094609 A1
`
`Apr. 26, 2007
`
`EXECUTABLE AND DECLARATIVE
`SPECIFICATION FOR GRAPHICAL USER
`INTERFACES
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`[0001] The present application is a non-provisional appli-
`cation claiming benefit under 35 U.S.C. 119(e) of US.
`Provisional Patent Application No. 60/722,888 (Attorney
`Docket No. 017900-005900US)
`titled EXECUTABLE
`
`SPECIFICATION OF GRAPHICAL USER INTERFACES
`(XGL) filed Sep. 30, 2005, the entire contents (including all
`the appendices) of which are herein incorporated by refer-
`ence for all purposes.
`BACKGROUND OF THE INVENTION
`
`invention relates to graphical user
`[0002] The present
`interfaces, and more particularly to techniques for facilitat-
`ing creation of graphical user interfaces for different runtime
`environments.
`
`infomiation is com-
`In the computing domain,
`[0003]
`monly stored in the form of models. For example, during the
`design phase, a designer may use a modeling tool to design
`an application. As part of the application design, the mod-
`eling tool may generate a model representation that stores
`information for the application including information about
`graphical user interfaces (GUIs) associated with the appli-
`cation. The model may store information related to various
`entities or components of the application,
`information
`describing inputs or outputs of the components, information
`describing dependencies between the various components
`and their input and outputs, a component’s response to
`signals, the runtime environment, and other information for
`the application. The model that is used for storing applica-
`tion information may be configured by the designer after
`taking into consideration various factors such as the domain
`in which the application is to be used, the memory resources
`available for
`storing the information,
`the computing
`resources available for processing the model, tools to be
`used for manipulating the model, and other factors. A model
`representation (also referred to as canonic model represen-
`tation) thus provides a convenient way to persist information
`for an application in a machine-readable representation.
`Various different types of model representations may be
`used. The type of model that is used may depend upon the
`domain in which the application is to be used, the design-
`time modeling environment used by the designer, available
`computing and memory resources, and the like.
`
`[0004] During runtime, a design-time model (i.e., a model
`generated during design-time) is typically transformed to a
`form that can then be executed by a target device. The
`transfonnation from a model representation to an executable
`form is usually performed by a runtime framework which
`may comprise tools such as source code generators, com-
`pilers,
`interpreters,
`etc. This
`transformation generally
`depends on the characteristics of the runtime environment
`such as the runtime platform of the target device on which
`the application is to run (e.g., the target device that is used
`to output or display the GUI), characteristics of the target
`device such as GUI capabilities of the target device, and
`other factors that are specific to the runtime environment.
`
`transformations from a design—
`[0005] Conventionally,
`tiine model representation to a runtime fonn are performed
`
`by specialized runtime tools (e.g., compilers), each tool
`programmed to convert a particular type of model to a
`particular target device-specific and runtime environment-
`specific executable form. The model representation is thus
`tightly coupled to the runtime environment. Due to this tight
`coupling, many fillies, it becomes very difficult to evolve
`model representations without affecting the runtime envi-
`ronment and the designer is forced to take into consideration
`runtime environment dependencies during the design phase.
`
`
`
`BRIEF SUMMARY OF THE INVENTION
`
`invention provide
`[0006] Embodiments of the present
`techniques for decoupling models created during design-
`tirne from the runtime environment. A declarative and
`executable representation for GUIs for applications is pro-
`vided that is independent of any particular runtime platform,
`GUI framework, device, and programming language.
`
`[0007] According to an embodiment of the present inven-
`tion,
`techniques are provided for generating an abstract
`representation for a model representation. Information is
`received identifying a model representation for an applica-
`tion,
`the model
`representation comprising information
`describing a graphical user interface (GUI) for the applica—
`tion. An abstract representation is generated for the GUI
`based upon the model representation, wherein the abstract
`representation is independent of a runtime environment
`platform for executing the application.
`
`[0008] According to an embodiment of the present inven-
`tion, a first GUI for a first runtime environment platform
`using the abstract representation. In one embodiment, the
`first GUI is generated by generating first source code based
`upon the abstract representation, wherein the first source
`code is in a language supported by the first runtime envi—
`ronment platform, and executing the first source code using
`the first runtime environment platform to generate the first
`GUI. According to another embodiment, the first GUI is
`generated by generating machine executable statements spe—
`cific to the first runtime envirmmrent platfonn based upon
`the abstract
`representation, and executing the machine
`executable statements using the first runtime environment
`platform to generate the first GUI. The first runtime envi-
`romnent platform may be a Java platform, a Flash platform,
`Extensible Application Markup Language (XAML) plat-
`form, a dynamic HTML (DHTML) platform, or some other
`platform.
`
`[0009] According to an embodiment of the present inven-
`tion, a second GUI is generated for a second runtime
`environment platform using the abstract representation,
`wherein the second runtime environment platform is differ-
`ent from the first runtime environment platform.
`
`In one embodiment, generating the abstract repre-
`[0010]
`sentation comprises using a first set of mapping rules for
`generating the abstract representation from the model rep-
`resentation, generating the first GUI comprises using a
`second set of mapping rules for generating the first GUI
`from the abstract representation, and generating the second
`GUI comprises using a third set of mapping rules for
`generating the second GUI from the abstract representation.
`
`[0011] According to an embodiment of the present inven-
`tion,
`the abstract representation is not dependent on a
`GUI-framework of the runtime environment platform.
`
`Page 18 of 40
`
`Page 18 of 40
`
`

`

`US 2007/0094609 A1
`
`Apr. 26, 2007
`
`According to another embodiment of the present invention,
`the abstract representation is not dependent on a language of
`the runtime environment platform.
`
`[0012] According to an embodiment of the present inven—
`tion,
`techniques are provided for generating an abstract
`representation for a model representation. Information is
`received identifying a model representation for an applica-
`tion,
`the model
`representation comprising information
`describing a graphical user interface (GUI) for the applica-
`tion. An abstract representation is generated for the GUI
`based upon the model representation, wherein the abstract
`representation is declarative and executable.
`
`[0013] According to an embodiment of the present inven-
`tion, a generic, declarative, and executable GUI language
`(XGL) is defined that is independent of any GUI framework
`or runtime platform, not dependent on characteristics of a
`target device on which the graphic user interface is to be
`displayed, and is also independent of any programming
`language. XGL is used to generate a generic representation
`(XGL representation) for a design-time model representa-
`tion. The XGL representation is declarative and therefore
`does not depend on any GUI framework, runtime platform,
`or device, or programming language. An XGL representa-
`tion is thus a device-independent representation of a GUI.
`The XGL representation is executable implying that for a
`model representation unambiguously encapsulates execu—
`tion semantics for the GUI described by the model repre-
`sentation. The XGL representation that is created from a
`model representation may then be processed in the runtime
`environment. The XGL representation may be used to gen-
`erate device-specific
`and runtime environment-specific
`GUIs and runtime representations for various target devices
`and runtime platforms. An XGL representation thus serves
`as the common-ground or interface between design-time
`user interface modeling tools and a plurality of user interface
`rtmtime frameworks.
`
`features,
`together with other
`foregoing,
`[0014] The
`embodiments, and advantages of the present invention, will
`become more apparent when referring to the following
`specification, claims, and accompanying drawings.
`BRIEF DESCRIPTION OF TIIE DRAWINGS
`
`[0015] FIG. 1 depicts a simplified environment in which
`an embodiment of the present invention may be used;
`
`[0016] FIG. 2 depicts a simplified process for mapping a
`model representation to a runtime representation according
`to an embodiment of the present invention;
`
`[0017] FIG. 3 depicts a simplified high-level flowchart
`showing processing performed according to an embodiment
`of the present invention;
`
`[0018] FIG. 4A depicts a processing flow applicable to
`Example #1 according to an embodiment of the present
`invention;
`
`[0019] FIG. 4B depicts a visual representation ofa model
`representation for a bank data-entry application GUI used in
`Example #1 according to an embodiment of the present
`invention;
`
`[0020] FIG. 4C depicts a screenshot generated GUI for a
`Java platform using an XGL representation generated for
`Example #1 according to an embodiment of the present
`invention;
`
`Page 19 of 40
`
`[0021] FIG. 4D depicts a screenshot generated GUI for a
`Flash platfonn using an XGL representation generated for
`Example #1 according to an embodiment of the present
`invention;
`
`[0022] FIG. 4E depicts a screenshot generated GUI for a
`DHTMI, platform using an XGI, representation generated
`for Example #1 according to an embodiment of the present
`invention;
`
`[0023] FIG. 5A depicts a processing flow applicable to
`Example #2 according to an embodiment of the present
`invention;
`
`[0024] FIG. 5B depicts a visual representation ofa model
`representation for a bank data-entry application GUI used in
`Example #2 according to an embodiment of the oresent
`invention;
`
`[0025] FIG. 5C depicts a screenshot generated GLI for a
`Java platform using an XGL representation generated for
`Example #2 according to an embodiment of the oresent
`invention;
`
`[0026] FIG. 5D depicts a screenshot generated GL1 for a
`Flash platform using an XGL representation generated for
`Example #2 according to an embodiment of the aresent
`invention;
`
`
`
`[0027] FIG. 5E depicts a screenshot generated GLI for a
`DHTML platform using an XGL representation generated
`for Example #2 according to an embodiment of the oresent
`invention;
`
`[0028] FIG. 6 depicts a sample XGL component declara-
`tion structure according to an embodiment of the oresent
`invention;
`
`[0029] FIG. 7 depicts a sample listing showing the skel-
`eton of a sample XGL component according to an embodi-
`ment of the present invention; and
`
`[0030] FIG. 8 is a simplified block diagram ofa computer
`system that may be used to perform processing according to
`an embodiment of the present invention.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`In the following description, for the purposes of
`[0031]
`explanation, specific details are set forth in order to provide
`a thorough understanding of the invention. However, it will
`be apparent that the invention may be practiced without
`these specific details.
`
`invention provide
`[0032] Embodiments of the present
`techniques for decoupling models created during design-
`time from the runtime environment. Model representations
`for GUIs created in a design time environment are
`decoupled from the runtime environment in which the GUIs
`are executed. A declarative and executable representation for
`GUIs for applications is provided that is independent of any
`particular runtime platform, GUI framework, device, or
`programming language.
`
`[0033] According to an embodiment of the present inven-
`tion, a generic, declarative, and executable GUI language
`OCGL) is provided. XGL is independent of any particular
`GUI framework or runtime platform. XGL is also not
`dependent 011 characteristics of a target device on which the
`
`Page 19 of 40
`
`

`

`US 2007/0094609 A1
`
`Apr. 26, 2007
`
`graphic user interface is to be displayed. XGL is also
`independent of any programming language. XGL is used to
`generate a generic representation (referred to as the XGL
`representation or XGL-compliant
`representation)
`for a
`design-time model representation. The XGL representation
`is declarative which implies that the representation does not
`depend on any GUI framework, runtime platform, or device,
`or programming language. An XGL representation is thus a
`device-independent representation of a GUI. The XGL rep-
`resentation is executable and therefore unambiguously
`encapsulates execution semantics for the GUI described by
`a model representation. Models of different types can be
`transfonned to XGL representations.
`
`is created from a
`[0034] An XGL representation that
`model representation may then be used for processing in the
`runtime environment. For example, the XGI, representation
`may be used to generate a machine-executable runtime GUI
`(or some other runtime representation) that may be executed
`by a target device. As part of the runtime processing, an
`XGL representation may be transformed into one or more
`runtime representations (e.g., source code in a particular
`programming language, machine-executable code for a spe-
`cific runtime environment, executable GUI, etc.) that may be
`generated for specific runtime environments and devices.
`Since the XGL representation, rather than the design—time
`model representation, is used by the runtime environment,
`the design-time model representation is decoupled from the
`runtime environment. An XGL representation thus serves as
`the common—ground or interface between design—time user
`interface modeling tools and a plurality of user interface
`runtime frameworks. It provides a self-contained, closed,
`and deterministic definition of all aspects of a graphical user
`interface in a device-independent and programming-lan-
`guage independent manner. In an embodiment,
`the XGL
`semantics may be rigorously defined using an abstract model
`of a GUI framework. A specific embodiment of XGL is
`described below under the section titled “SAMPLE XGL
`SPECIFICATION (example embodiment)".
`
`In the runtime enviromnent, various different GUI
`[0035]
`framework-specific and platform-specific tools (e.g., code
`generators,
`interpreters, compilers, etc.) may be used to
`transform an XGL representation into GUIs running on
`target devices. These tools may comply with XGL specifi-
`cation. For example, XGL-compliant code generators may
`conform to semantics of XGL, as described below. XGL-
`compliant code generators may ensure that the appearance
`and behavior of the generated user interfaces is preserved
`across a plurality of target GUI frameworks, while accom-
`modating the differences in the intrinsic characteristics of
`each and also accommodating the different levels of capa-
`bility of target devices.
`
`[0036] XGL may be used for generating representations of
`various different GUIs and supports various GUI features
`including full windowing and componentization support,
`rich data visualizations and animations, rich modes of data
`entry and user interactions, and flexible connectivity to any
`complex application data services. XGL is fully declarative
`and therefore does not rely on any particular programming
`language.
`
`[0037] FIG. 1 depicts a simplified environment 100 in
`which an embodiment of the present invention may be used.
`As depicted in FIG. 1, a modeling tool 104 running 011 a data
`
`processing system 102 may be used by a GUI designer
`during the application design phase to create a model
`representation 106 for a GUI application. Model represen-
`tation 106 may be a machine-readable representation of an
`application or a domain specific model. Model representa-
`tion 106 may encapsulate various design parameters related
`to the GUI such as GUI components, dependencies between
`the GUI components, inputs and outputs, and the like. Model
`representation 106 provides a form in which a model(s) is
`persisted and transported, and possibly handled by various
`tools such as code generators, runtime interpreters, analysis
`and validation tools, merge tools, and the like. In one
`embodiment, model representation 106 may be a collection
`of XML documents with a well-formed syntax. Various
`different modeling tools 104 may be used to generate model
`representation 106. These tools include but are not restricted
`to Visual ComposerTM provided by SAP AG of Germany,
`Rational RoseTM, Borland TogetherTM, Microsoft ViSioTM,
`and others. Modeling tool 104 and model representation 106
`may be considered to be part of a design time environment.
`
`[0038] According to an embodiment of the present inven-
`tion, an abstract representation generator (or XGL generator)
`108 is provided that generates an abstract representation
`C(GL representation or XGL—compliant representation) 110
`based upon model representation 106. Abstract representa-
`tion generator 108 takes model representation 106 as input
`and outputs abstract representation 110 for the model rep-
`resentation. A specific embodiment of XGL is described
`below. Various other types of XGLs may also be used in
`alternative embodiments.
`
`[0039] Model representation 106 may be of various forms
`or types depending on the tool/language used for the mod-
`eling. These various different model representations may be
`mapped to XGL representation 110. Different mapping rules
`may be provided for mapping a model representation to an
`XGL representation. Different types of model representa-
`tions may be transformed or mapped to XGL representa—
`tions. For each type of model representation, mapping rules
`may be provided for mapping the model representation to an
`XGL representation.
`
`[0040] As previously indicated, XGL is independent of
`any GUI framework or runtime platform and is also inde—
`pendent of any programming language or target device
`characteristic. Further, XGL is capable of unambiguously
`encapsulating execution semantics for the GUI model rep-
`resentation. Accordingly, XGL representation 110 generated
`for a model representation 106 is declarative and execut-
`ableiXGI, representation 110 thus provides a representa-
`tion of the GUI of model 106 that is not dependent on any
`device or runtime platform, is not dependent on any pro-
`gramming language,
`and unambiguously encapsulates
`execution semantics for the GUI. The execution semantics
`
`may include for example, identification of various compo—
`nents of the GUI, interpretation of connections between the
`various GUI components, information identifying the order
`of sequencing of events, rules goveming dynamic behavior
`of the GUI, rules goveming handling of values by the GUI,
`and the like. The XGL representation is also not GUI
`runtime-platform specific. The XGL representation provides
`a self-contained, closed, and deterministic definition of all
`aspects of a graphical user interface that is device indepen—
`dent and language independent. XGL generator 108 may be
`
`Page 20 of 40
`
`Page 20 of 40
`
`

`

`US 2007/0094609 A1
`
`Apr. 26, 2007
`
`configured to generate XGL representations for models of
`different types, which may be created using different mod-
`eling tools 104.
`
`[0041] XGL or abstract representation 110 provides an
`interface between the design time environment and the
`runtime environment. As depicted in FIG. 1, abstract rep-
`resentation 110 may be used by runtime processing. As part
`of runtime processing, various runtime tools 112 may gen—
`erate different types of runtime representations based upon
`abstract representation 110. Examples of runtime represen-
`tations include device or language dependent source code,
`runtime platform-specific machine-readable code, GUIs for
`a particular target device, and the like. Runtime tools may
`include compilers, interpreters, source code generators, and
`other such tools that are configured to generate runtime
`platform-specific or target device-specific runtime represen-
`tations of abstract representation 110.
`
`[0042] A runtime tool may generate a runtime represen-
`tation from XGL representation 110 using specific rules that
`map abstract representation 110 to a particular type of
`runtime representation generated by the tool. These mapping
`rules may be dependent on the type of runtime tool, char—
`acteristics of the target device to be used for displaying the
`GUI, runtime platform, and/or other factors. Accordingly,
`mapping rules may be provided for transforming an XGL
`representation to any number of target runtime representa—
`tion directed to one or more target GUI runtime platfomis.
`
`[0043] For example, as depicted in FIG. 1, an XGL-to-
`Java compiler 112—1 may take XGL representation 110 as
`input and generate Java code 114 for execution by a target
`device comprising a Java runtime 116. Java runtime 116 may
`execute Java code 116 to generate/display a GUI 118 on a
`Java—platform target device. As another example, an XGL—
`to-Flash compiler 112-2 may take XGL representation 110
`as input and generate Flash code 120 for execution by a
`target device compri

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket