`
`(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