`a2) Patent Application Publication co) Pub. No.: US 2007/0094609 Al
`(43) Pub. Date: Apr. 26, 2007
`
`Gilboa et al.
`
`US 20070094609A 1
`
`(54)
`
`EXECUTABLE AND DECLARATIVE
`SPECIFICATION FOR GRAPHICAL USER
`INTERFACES
`
`(75)
`
`Inventors: Yuval Gilboa, Pardesiya (IL); Rinat
`Gilboa, Pardesiya (IL)
`
`Correspondence Address:
`TOWNSEND AND TOWNSEND AND CREW,
`LLP
`TWO EMBARCADERO CENTER
`EIGHTH FLOOR
`SAN FRANCISCO,CA 94111 (US)
`
`(73)
`
`Assignee: 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, filed on Sep.
`30, 2005.
`
`Publication Classification
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3/00
`(2006.01)
`GO6F
`7/00
`(2006.01)
`GO6F 9/44
`(52) US. Che
`caccecssssssssensen 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
`whichacts as an interface between the design environment
`and the runtime environment.
`
`EXAMPLE #1: BANKING APPLICATION GUI (FOR DHTML RUNTIME PLATFORM )
`Bank Address
`
`
`
`{|Search|} |]Clear_]]
`
`1 Pobk Curac:
`[] Bank No:
`[] AdarNo:
`[[Bank Brench:|Main Branch
`BanksList
`[ Bank Group:
`I
`[| Bank Name:
`BANK.CTRY
`Low.
`us
`[ Region:
`US
`
`123445678
`
`Chase Manhattan Ba
`ouYou Oy
`
`Chicago
`New York
`
`12345678
`Commerce Bank
`Philadelphia
`PNG
`123456780
`Martton
`Chase Manahattan
`123456784
`New York
`Mellon Bank
`123456788
`Philadelphia
`123456789
`us
`Fidelity Bank
`Los Angeles
`
`Us
`
`
`
`AEE HEE)
`
`12
`
`[| Bank Cty:
`
`[ Bank Key:
`
`] city:
`
`[ Switt Code:
`[] Post Bank:
`
`ABCD3891
`
`Booking, Exh. 1044, Page 1
`
`[ Bank Name: Chase Manhattan 84
`
`[acy
`[ Hox Rows
`
`Celate
`4
`
`BANKKEY
`
`3
`
`&
`BANKNAME
`First Union Bank & Trust
`Citibank
`
`
`
`Booking, Exh. 1044, Page 1
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 1 of 16
`
`US 2007/0094609 Al
`
`DATA
`PROCESSING
`SYSTEM
`102
`
`DESIGN-TIME
`ENVIRONMENT
`
`MODELING
`TOOL
`
`
`
`ABSTRACT REP. GENERATOR
`XGL GENERATOR)
`
`ABSTRACT REP.
`(XGL REP.)
`
`100
`
`x
`
`4104
`
`106
`
`408
`
`DEVICE AND PLATFORM
`SPECIFIC RUNTIME TOOLS
`
`j-----
`
`en ene
`
`
`
`J||
`
`i XGL > JAVA
`112-1 | COMPILER
`
`
`
`
`
`XGL > DHTML
`XGL > FLASH
`COMPILER
`INTERPRETER
`
`I I | | | I | | I I I | I I | | I | | | | i |J
`
`114
`
`JAVA CODE
`
`112-2
`
`FLASH CODE
`
`120
`
`112-3
`
`116
`
`{22
`
`1
`
`26
`
`JAVA
`RUNTIME
`
`FLASH
`RUNTIME
`
`DHTML
`RUNTIME
`
`118
`
`124
`
`128
`
`GUI ON JAVA
`PLATFORM
`
`GUION FLASH
`PLATFORM
`
`GUI on DHTML
`PLATFORM
`
`ENVIRONMENT
`
`FIG. 1
`
`Booking, Exh. 1044, Page 2
`
`Booking, Exh. 1044, Page 2
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 2 of 16
`
`US 2007/0094609 Al
`
`
`
` MODEL REPRESENTATION
`
` 106
`(COMPRISING MODEL GU! COMPONENTS)
`
`
`
`USING AN ABSTRACT REP.
`GENERATOR (XGL REP.
`
` GENERATOR)
`
`
`
`ABSTRACT REPRESENTATION
`
` 110
`
`(COMPRISING ABSTRACT COMPONENTS
`AND ASSOCIATED PROPERTIES)
`
`(XGL REPRESENTATION)
`
`
`
`
` IN RUNTIME
`
`ENVIRONMENT RUNTIME
`
`202
`
`REPRESENTATION
`(TARGET DEVICE
`SPECIFIC)
`
`RUNTIME
`REPRESENTATION
`(TARGET DEVICE
`SPECIFIC)
`
`202
`
`FIG. 2
`
`Booking, Exh. 1044, Page 3
`
`Booking, Exh. 1044, Page 3
`
`
`
`Patent Application Publication Apr. 26, 2007 Sheet 3 of 16
`
`US 2007/0094609 Al
`
`RECEIVE A SIGNAL TO IDENTIFYING A MODEL
`
`REPRESENTATION
`
`302
`
`GENERATE AN ABSTRACT REPRESENTATION (XGL
`REPRESENTATION) FOR THE MODEL
`REPRESENTATION
`
`304
`
`300 —
`
`PERFORM RUNTIME ENVIRONMENT PROCESSING
`USING THE ABSTRACT REPRESENTATION
`GENERATED IN 304
`
`306
`
`FIG. 3
`
`Booking, Exh. 1044, Page 4
`
`Booking, Exh. 1044, Page 4
`
`
`
`Patent Application Publication Apr. 26, 2007 Sheet 4 of 16
`
`US 2007/0094609 Al
`
`EXAMPLE#1: BANKING APPLICATION GUI
`
`MODEL REP.
`(VISUAL REP. DEPICTEDIN
`
`402 FIG. 4B)
`
`XGL GENERATOR
`
`404
`
`XGL Rep.
`
`406
`
`XGL > JAVA
`
`XGL > FLASH
`
`XGL > DHTML
`
`Raa
`
`412
`
`FLASH
`
`420
`
`DHTML
`
`RUNTIME
`
`426
`
`GUI ON JAVA
`PLATFORM
`
`414
`
`428 (FIG. 4C)
`
`GUI ON FLASH
`PLATFORM
`(FIG. 4D)
`
`422
`
`(FIG. 4E)
`
`FIG. 4A
`
`Booking, Exh. 1044, Page 5
`
`Booking, Exh. 1044, Page 5
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 5 of 16
`
`US 2007/0094609 Al
`
`
`
`
`
`TACONOILVONTddVONDINVG
`
`
`
`yoeagsyueg
`
`J
`
`>Ssalppyyuegjndujo
`
`
`joa|ag|nO
`
`sseippyYUE1S]syuegUo
`
`
`
`lEJaqYue
`
`
`
`siiejaqyueg
`
`a?‘Sld
`
`{SIPYUeg
`
`Booking, Exh. 1044, Page 6
`
`WO4yee
`
`Booking, Exh. 1044, Page 6
`
`
`
`
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 6 of 16
`
`US 2007/0094609 Al
`
`oP‘Dld
`
`
`yueg|]Ce~Ca]souen[__aussevees]onyueg|]Isn«Ang
`
` ||snl]|aae|Sao|degeagav]=epg.ung|]Ssyuegueneyueneseyo|l[————sauasreezi|i[SS]
`
`
`
`1icooayuegueyeyueyyeseyoawenNyueg]peed|Low]
`
`
`
`
`
`
`
`(WYOSLV1dSWILLNAYYAPYO)INDNOLVONddONIMNVG‘4SIdWWXA
`
`
`ssolppyyuegW104Yoseag
`ooeea]{_seecea
`ziabeEDNbe!
`
`AYO0),MANuegueyeyueWaseydS29GPbE71[sal
`
`
`
`Ap|awenyueg|fayyueg|]Angyueg|
`
`
`
`
`
`
`sileyeqyueg
`
`Booking, Exh. 1044, Page 7
`
`Booking, Exh. 1044, Page 7
`
`
`
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 7 of 16
`
`US 2007/0094609 Al
`
`
`
`‘yueg}S0g
`
`syueg (WHOSLV1dSWILNNY
`
`
`
`HSV14YO)INSNOLLWOlIddySNINNVG:1#SIdWVX9
`
`Al0,MAN‘AIO
`jeansweJeans
`
`leseqoay“80DYIMS
`
`
`
`AYOOAMANyuegVeneyueEyaseyp
`
`sajebuy$07yuegAaply
`
`BIydjapenygyuegUOyyy
`
`
`eIydyapelygyuegaaawwod
`
`
`OAMAN,ue}eYyeurYyBseyD
`U0,MONyueqnid
`
`uO}SNOYUO}SNO}Joyueg
`
`
`
`fs:dnoigyueg
`
`
`
`ssaippyyueg
`
`
`
`
`
`egueeyueyeseuy‘aweNyueg
`
`suolBay
`
`uoILEW
`
`
`
`AID‘aweyUeg
`
`shayyueg
`
`QNd
`
`yen'pyuegUOlUr)sly
`
`
`
`4S!syueg
`
`—S—_——__—>
`rrerrrnnaSMOYXE
`
`“ANQyueg
`
`youeas
`
`Ob‘Sld
`
`ApHO,san
`
`
`
`
`
`Pgueyeyueyasey9SL9SPbEeL
`
`Booking, Exh. 1044, Page 8
`
`Booking, Exh. 1044, Page 8
`
`
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 8 of 16
`
`US 2007/0094609 Al
`
`
`
`
`
` ANDYO,MONAND|egURPeEYLEWeseyysoWeNyueg]
`
`
`
` bégcaoay:9poyYIMSlansLEWyeans|N-worbau|]
`
`aqueg30d|]
`
`Cn)taowea (WHOSLVTdSNINAY
`
`
`
`
`TWLHCGYO)INDNOLLVOlddlSNDINVG‘14JIdWWXA
`
`OL9SPERI|weamon|ubyeyeueyyvarasvezt|sseyud|
`
`sojebuyS07yuegAyepl468/94bEZ1
`
`aiydlapetdyuegUo}aWV
`
`
`ANDHOAABNegUEWeUUeWsey)SL9Sprect
`
`
`AD1‘OWENYURg]‘AayyuRg]
`
`
`
`
`
`
`ssolppyyueg
`
`Les|
`
`a]ef
`
`
`
`3s]syueg
`
`w WOina
`D>]
`a]>3
`
`wn
`D>
`
`wnI
`
`
`
`ENE)N=N=1
`
`dP‘Sls
`
`
`
`sirejegyueg
`
`Booking, Exh. 1044, Page 9
`
`Booking, Exh. 1044, Page 9
`
`
`
`
`
`Patent Application Publication Apr. 26, 2007 Sheet 9 of 16
`
`US 2007/0094609 Al
`
`EXAMPLE#2: ANALYTICS DASHBOARD GUI
`
`
`
`MODEL REP.
`(VISUAL REP. DEPICTED IN
`FIG. 5B)
`
`502
`
`XGL GENERATOR
`
`504
`
`XGL Rep.
`
`506
`
`XGL > JAVA
`
`XGL > FLASH
`
`XGL > DHTML
`
`Ryne
`
`512
`
`FLASH
`
`920
`
`DHTML
`
`RUNTIME
`
`926
`
`(FIG. 5E)
`
`GUI ON JAVA
`PLATFORM
`(FIG. 5C)
`
`514
`
`GUI ON FLASH
`PLATFORM
`(FIG. 5D)
`
`522
`
`GUI on DHTML
`PLATFORM
`
`528
`
`FIG. 5A
`
`Booking, Exh. 1044, Page 10
`
`Booking, Exh. 1044, Page 10
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 10 of 16
`
`US 2007/0094609 Al
`
`yeuaur
`
`
`
`
`
`TACOP]GYVOEHSVSOILATVNY
`
`
`
`suey)ueiseyey
`
`
`gige|SIapiCsajesa
`
`ISUBPICsajeSynduj>
`
`©WINIOY
`
`
`
`}siJ}99Jopsosajes
`
`LB@
`
`
`
`Salesyoleas
`
`Booking, Exh. 1044, Page 11
`
`Booking, Exh. 1044, Page 11
`
`
`
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 11 of 16
`
`yoIeEs (WHOL1dSWILNAYWAWPHO4)
`
`
`8869000000[=foveuna[>burg]|SAobelSAonalS[Seven]>onun]Ssors[|aiqe,Henn|Senenwn[Semanaeaxa[Smervous
`
`
`
`
` ung00000")
`
` pftaBeg|sana{0000011|00°66006hr606vb6|sna|—cooo0r|~—sogggagesoz089002|—eee|sana|0000011|ogeB0geSOzCbZezh026292|una|000007
`
`og'eB0gES0900zeelOP'sLPe
`
`60rd=Cb0K0dTOEc0r-dOld=40ddVINIW60rd=ELOFOdO«OPEue0rdF0l-d=LOddVININ
`
`COl-d=60010:ODI-dcowWed20b-d
`
`og'eB0ges09'P9682oO2e0¢
`
`
`
`una00000'100°000100:00)00°0001
`
`
`
`
`00000S2 e00000eO0000S! cd0000} an000S
`
`
`
`INDGUYVOSHSVGSOILATVNY:2#JIdWYX3
`zsalagBD|SalesGo¢SalasoO
`zgsauagED=|,SoNegmm¢sauegco
`weygaurweysuunjo5
`
`
`oloo00|éersan0000[0|o00'e9jogoz'tLzt|uesadwingardovoo0e|—_-6ssg00c000/oO|000°9b"OOOHAL|3dsdwng6569000000]Oo|000'6E"0£0000
`
`oroo00|6ss9000000
`
`
`
`
`0007ZL|O3udadwingvOh-d0200006559000000
` b002"s0'8zVWUZ|10ddVININ
`
`
`000z60'20|warAuung|cwON0000]~—sserg000000]oO||_o002'60't0|warfuung|cow]
`€0b-d000!9dd==00IrdcowLOl-d2l-d
`
`Lees)Cm0001000000+Biosafes]]ONJoWOISNDJSales
`
`
`€Ob-d60010d000}-dcowLhd20b-d
`
`
`O00e'bh'2b|OFudedwng20b-d
`010000
`60d=LOLOL20rd0l-dLOddVINIW
`zseuegmS|selagmagSaaSox
`zsauag«|SaagaESalaswa
`
`US 2007/0094609 Al
`
`sauobaye9
`
`souoBayep
`
`OS‘Old
`
`Booking, Exh. 1044, Page 12
`
`2wo°=aa
`
`ved
`
`yeyseq
`
`SOn|eA
`
`squobayeg
`
`eee
`CLP
`
`
`
`siapigsajes
`
`Booking, Exh. 1044, Page 12
`
`
`
`‘24J1dWYXS
`
`
`
`
`imunatoooyS|OE|feOkePOddascrew‘uy[ddvINIW|010000_B863000000_|[aug[SuaraFHIeAWN|—aneayen|sovaenMObou|Goma[aea%0q| —weLuous|ieueew|onua_|—s0aps
`€99‘VW0rd0P0000_6S¢9000000|[|10i-d|060000_SS9000000
`
`
`
`eduing|cI[00000NOISIDANdSS9000000_][SIETBETBEPoohy2)[POLNOISIOQUdadung=[Pld[020000BSS9000000_]|una]tLgegoges|eggs|EOE|e|OORTZL[201
`
`
`
`WeewreWeWotWeb008OOFSO2sPopsDeedeBDBSPGDDDDedWDNOWWW(dD0/9
`SPBudGIDBBBDBDdPe3BWdFoedSHHSHFogGFSFGHHPGFW's
`
`
`
`eseuegc>8zsevegma=|.saagcaeseegsesZseyegsen|saveg@a
`
`
`
`
`EsaagEs zsavagsa|seescesaueges Zseuagea|seyesm@
`
`
`
`(WHOSLY1dJNLLNNYHSY14YO)INDGUVOSHSVGSOILATWNY
`
`
`
`bddd,DBDGDDDKHBdNShgloosSHSSSe
`
`
`Leow_|€73000000|S|000260'z0[€0-W_|jorstud£O-W040000Be9000000010000Be79000000
`
`
`$
`SHHSPEPHSGFKPGKGFKHMssPFHG
`
`
`“LL*000100000
`
`N\
`
`
`
`GOseesDONJewojsn5
`
`
`
`syeysdueisaye)
`
`
`
`SalesaleaS
`
`HEYSULIN|OD
`
`Patent Application Publication Apr. 26,2007 Sheet 12 of 16
`
`US 2007/0094609 Al
`
`\KN
`
`as‘Old
`
`SSH
`
`*
`
`Booking, Exh. 1044, Page 13
`
`Booking, Exh. 1044, Page 13
`
`
`
`US 2007/0094609 Al
`
`2LOddvINiW
`
`yey)aur]
`
`Conooeez
`
`o'onoo02
`
`0'0000261
`
`4S‘Sid
`
`Patent Application Publication Apr. 26,2007 Sheet 13 of 16
`
`PONJaut0}sn5[] SayeS
`
`
`INNOfroHOXaHWAaN[|3MTWAI3NpidaNloosefuvecog[SsxalyonspaiwwBaNANWL!|3oogas|.81921fuoana
`
`
`
`
`
`
`"0|una [oocoor|ogeeoccs|—os'oozecs|orsire|ovoee|o00eehooziii2)23udeduing9200006969000000
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`|_¥na|ood:|osrezp|OSbezyTosrre|ons[0fooweouo[tLums|OW(ot00009€r9000000|__una|00000700'6h+605br6coon;|0_-foowsozo=|=Aung|OWL0006tr9000000|una|00000702'099002OPSaie00's|00096$99000000|una|ooo00}|oge909es6g5900000050j5:O2'erzezh026292000°9rO0'SrpoogbiztO3udedwing¢000009'88096SpooeteLuesaduindop000000°66
`
`Cd=6Ol-dOdd0L0d0Md7COW20rdWhdwldZOldVININOld=GDFddOdd0Ida
`
`
`
`
`(WHOSLV1dSWILNAYTWLHGYO)INDGYVOSHSYGSOILATYNY‘2#STdWVXy
`]
`
`
`
`10000260'0000rbL07000096000008i.SOW2rdLOldPol=201-dVININ
`peysregyeyealy
`
`
`
`Lees}=(_)DogLOOoou0
`rhigsaesf)
`
`JAAW.
`
`
`
`S39P1OSa/eS
`
`Youeag
`
`EEE
`
`Booking, Exh. 1044, Page 14
`
`Booking, Exh. 1044, Page 14
`
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 14 of 16
`
`US 2007/0094609 Al
`
`>
`
`.
`<?xml version="1.0"?>
`<xg:Componenturn namespace-decl___
`many
`<xg:Window...>
`contanerdeested
`interactor-dec! an
`control-deciy
`
`</xg:Window>
`<xg:Data>
`infosets-section
`infoactors-section
`operators-section
`enumerations-section
`</xg:Data>
`<xg:Controller>
`actions-section
`relays-section
`execution-plans-section
`</xg:Controller>
`|
`<xg:Resources>
`images-section
`palettes-section
`translations-section
`systems-section
`imports-section
`</xg:Resources>
`</xg:Component>
`
`FIG. 6
`
`Booking, Exh. 1044, Page 15
`
`Booking, Exh. 1044, Page 15
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 15 of 16
`
`US 2007/0094609 Al
`
`<?xml version="1.0"?>
`<xg:Component urn="AAD6BU"xmins:xg="http:/www.sap.com/visualcomposer/2005/xg!"
`xmins:ep="hitp:/www.sap.com/visualcomposer/2005/xgl/portal">
`<xg:Window windowTitle="Wizard1" windowType="top" preferredWidth="760"
`preferredHeight="480"frameStyle="primary">
`<xg:Canvas enableScrolling="true" scaleMode="fix">
`<xg:Wizard defaultChild="ABA6BV" roadmapStyle="full" frameStyle="none">
`<xg:PanelframeStyle="primary" w="320" h="160" x="344" y="16"
`showTitlebar="true">
`<xg:FormView id="ACA6CL"infoset="AAA6CL" title="Form5" scaleMode="fix"
`formLayout="absolute" formWiath="184" formHeight="64"isEditable="true">
`<xg:Controls>
`</xg:FormView>
`</xg:Panel>
`</xg:Canvas>
`</xg:Window>
`<xg:Data>
`<xg:Infosets>
`<xg:Infoactors>
`- <xg:Operators/>
`<xg:Enumerations>
`</xg:Data>
`<xg:Controller>
`<xg:Actions>
`- <xg:Relays/>
`<xg:ExecutionPlans>
`</xg:Controller>
`<xg:Resources>
`- <xg:Images/>
`- <xg:Palettes/>
`- <xg:Translations/>
`<xg:Systems>
`- <xg:Imports/>
`</xg:Resources>
`</xg:Component>
`
`FIG. 7
`
`Booking, Exh. 1044, Page 16
`
`Booking, Exh. 1044, Page 16
`
`
`
`Patent Application Publication Apr. 26,2007 Sheet 16 of 16
`
`US 2007/0094609 Al
`
`COMPUTER
`SYSTEM
`800
`
`USER INTERFACE
`INPUT DEVICES
`
`MEMORY SUBSYSTEM
`
`FILE STORAGE
`SUBSYSTEM
`
`818
`
`Bus SUBSYSTEM
`
`809 STORAGE SUBSYSTEM
`
`PROCESSOR(S)
`
`NETWORK
`INTERFACE
`
`USER INTERFACE
`OUTPUT DEVICES
`
`NETWORKS, SYSTEMS, DEVICES
`
`FIG. 8
`
`Booking, Exh. 1044, Page 17
`
`Booking, Exh. 1044, Page 17
`
`
`
`US 2007/0094609 Al
`
`Apr. 26, 2007
`
`EXECUTABLE AND DECLARATIVE
`SPECIFICATION FOR GRAPHICAL USER
`INTERFACES
`
`CROSS-REFERENCES TO RELATED
`APPLICATIONS
`
`‘The present application is a non-provisional appli-
`[0001]
`cation claiming benefit under 35 U.S.C. 119(e) of U.S.
`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 byrefer-
`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.
`
`information 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 maystore 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 whichthe application is to be used, the memoryresources
`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 Lo 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 memoryresources, andthelike,
`
`[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
`transformation 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 onthe 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,
`time model representation to a runtime form are performed
`
`by specialized runtime tools (c.g., compilers), cach 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. Dueto this tight
`coupling, many times, it becomes very difficult to evolve
`model representations without affecting the runtime envi-
`ronment and the designeris 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-
`time from the runtime environment. A declarative and
`executable representation for GUIs for applications is pro-
`vided that is independent ofany particular runtime platform,
`GUI framework, device, and programming language.
`
`[0007] According to an embodimentof 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 embodimentof 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 bythe first runtime envi-
`ronmentplatform, and executing thefirst source code using
`the first runtime environmentplatform 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 environment platform 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-
`ronment 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 embodimentofthe 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, gencrating 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 GUIfrom the abstract representation.
`
`[0011] According to an embodimentof the present inven-
`tion,
`the abstract representation is not dependent on a
`GUlI-framework of the runtime environment platform.
`
`Booking, Exh. 1044, Page 18
`
`Booking, Exh. 1044, Page 18
`
`
`
`US 2007/0094609 Al
`
`Apr. 26, 2007
`
`According to another embodimentof the present invention,
`the abstract representation is not dependent on a language of
`the runtime environment platform.
`
`[0012] According to an embodimentofthe 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 (GUID) 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.
`
`[0021] FIG. 4D depicts a screenshot generated GUIfor a
`Flash platform 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 depictsa visual representation of a model
`representation for a bank data-entry application GUI used in
`Example #2 according to an embodiment ofthe present
`invention;
`
`[0025] FIG. 5C depicts a screenshot generated GUI for a
`Java platform using an XGL representation generated for
`[Example #2 according to an embodiment of the present
`invention;
`
`[0026] FIG. 5D depicts a screenshot generated GUI for a
`Flash platform using an XGL representation generated for
`Example #2 according to an embodiment of the present
`invention;
`
`[0013] According to an embodimentofthe 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
`CXGLrepresentation) 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 XGLrepresentation 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 runtimerepresentations for various target devices
`and runtime platforms. An XGL representation thus serves
`as the common-ground or interface between design-time
`[0029] FIG. 7 depicts a sample listing showing the skel-
`user interface modeling tools andaplurality of user interface
`eton of a sample XGL component according to an embodi-
`runtime frameworks.
`ment of the present invention; and
`
`
`
`[0027] FIG. 5E depicts a screenshot generated GUI for a
`DHTMLplatform using an XGL representation generated
`for Example #2 according to an embodimentof the present
`invention;
`
`[0028] FIG. 6 depicts a sample XGL componentdeclara-
`tion structure according to an embodiment of the present
`invention;
`
`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.
`BRIEVY DESCRIPTION OF THLE 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 of a model
`representation for a bank data-entry application GUI used in
`Example #1 according to an embodiment ofthe present
`invention;
`
`[0020] FIG. 4C depicts a screenshot generated GUIfor a
`Java platform using an XGL representation generated for
`Example #1 according to an embodiment of the present
`invention;
`
`[0030] FIG. 8 is a simplified block diagram of a 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 embodimentof the present inven-
`tion, a generic, declarative, and executable GUI language
`(XGL) is provided. XGL is independent of any particular
`GUI framework or runtime platform. XGL is also not
`dependent oncharacteristics of a target device on whichthe
`
`Booking, Exh. 1044, Page 19
`
`Booking, Exh. 1044, Page 19
`
`
`
`US 2007/0094609 Al
`
`Apr. 26, 2007
`
`graphic uscr 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 XGLrepresentation
`is declarative which implies that the representation does not
`depend on any GUIframework, runtime platform, or device,
`or programming language. An XGL representation is thus a
`device-independent representation of a GUI. The XGLrep-
`resentation is executable and therefore unambiguously
`encapsulates execution semantics for the GUI described by
`a model representation. Models of different types can be
`transformed 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 someother runtime representation) that may be executed
`by a target device. As part of the runtime processing, an
`XGLrepresentation maybe 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 XGLrepresentation, 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 XGLrepresentation thus serves as
`the common-ground orinterface 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 devicc-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 environment, 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 gencrators 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 maybe 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 userinteractions, and flexible connectivity to any
`complex application data services. XGL is fully declarative
`and therefore does not rely on anyparticular programming
`language.
`
`[0037] FIG. 1 depicts a simplified environment 100 in
`which an embodimentof the present invention maybe used.
`As depicted in FIG. 1, a modeling tool 104 running ona 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,andthe 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
`ditferent modeling tools 104 may be used to generate model
`representation 106. These tools include butare not restricted
`to Visual Composer™ provided by SAP AG of Germany,
`Rational Rose™, Borland Together™, Microsoft ViSio™,
`and others. Modeling tool 104 and modelrepresentation 106
`may be considered to be part of a design time environment.
`
`[0038] According to an embodimentof the present inven-
`tion, an abstract representation generator (or XGL generator)
`108 is provided that generates an abstract representation
`(XGLrepresentation 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
`XGLrepresentation. 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
`XGLrepresentation.
`
`[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-
`able—XGT. 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 anypro-
`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 governing dynamic behavior
`of the GUI, rules governing 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
`
`Booking, Exh. 1044, Page 20
`
`Booking, Exh. 1044, Page 20
`
`
`
`US 2007/0094609 Al
`
`Apr. 26, 2007
`
`configured to gencrate XGL representations for modcls 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 gene