Table Of ContentInteroperable Ajax Tools and
Mashups
Jon Ferraiolo
IBM and OpenAjax Alliance
September 30, 2008
Agenda
(cid:131)(cid:131) IInnttrroodduucciinngg OOppeennAAjjaaxx AAlllliiaannccee
(cid:131)(cid:131) AAjjaaxx IIDDEEss
(cid:131)(cid:131) OOppeennAAjjaaxx MMeettaaddaattaa ((ffoorr AAjjaaxx LLiibbrraarriieess))
(cid:131)(cid:131) MMaasshhuuppss
(cid:131)(cid:131) OOppeennAAjjaaxx HHuubb 11..11
(cid:131)(cid:131) OOppeennAAjjaaxx MMeettaaddaattaa ((ffoorr WWiiddggeettss))
(cid:131)(cid:131) SSuummmmaarryy
Interoperable Ajax Tools and Mashups 2
The Ajax explosion (2005-2007)
(cid:131)(cid:131) HHuuggee aammoouunntt ooff hhyyppee
(cid:131)(cid:131) ~~220000 AAjjaaxx ttoooollkkiittss aappppeeaarr aallmmoosstt iinnssttaannttllyy
(cid:131)(cid:131) MMiiccrroossoofftt AAttllaass ((nnooww ccaalllleedd AASSPP..NNEETT AAJJAAXX))
•• HHeellppss ccoonnttrriibbuuttee ttoo lleeggiittiimmaaccyy
(cid:131)(cid:131) SSeevveerraall ootthheerr mmaajjoorr ““pprroopprriieettaarryy”” AAjjaaxx ffrraammeewwoorrkkss
•• AAddoobbee//SSpprryy,, BBaacckkbbaassee,, IICCEEssoofftt,, NNeexxaawweebb,, SSuunn//jjMMaakkii,, TTIIBBCCOO,, ……
(cid:131)(cid:131) SSeevveerraall mmaajjoorr ooppeenn ssoouurrccee pprroojjeeccttss
•• PPrroottoottyyppee//SSccrriippttaaccuulloouuss,, DDoojjoo,, YYaahhoooo,, DDWWRR,, GGooooggllee GGWWTT,, jjQQuueerryy,,……
(cid:131)(cid:131) WWhhyy ssoo mmaannyy ssoo qquuiicckkllyy?? SSiimmppllyy rreebbrraanndd DDHHTTMMLL ttoo AAjjaaxx
Interoperable Ajax Tools and Mashups 33
Why OpenAjax Alliance?
(cid:131)(cid:131) AA rriicchh bbuutt ffrraaggiillee eeccoossyysstteemm
(cid:131)(cid:131) IInntteerrooppeerraabbiilliittyy sshhoorrttccoommiinnggss
(cid:131)(cid:131) EEdduuccaattiioonnaall//mmaarrkkeettiinngg sshhoorrttccoommiinnggss
(cid:131)(cid:131) DDeeppeennddeennccee oonn bbrroowwsseerrss ccoommppaanniieess ffoorr tteecchhnniiccaall aaddvvaanncceess
(cid:131)(cid:131) AAjjaaxx vveennddoorrss mmoottiivvaatteedd ttoo wwoorrkk ttooggeetthheerr ((uunniitteedd wwee ssttaanndd,,
ddiivviiddeedd wwee ffaallll))
(cid:131)(cid:131) AAjjaaxx tteecchhnnoollooggyy llaayyeerr nnoott aaddddrreesssseedd bbyy ootthheerr iinndduussttrryy
ggrroouuppss
HTML app Ajax app
Ajax toolkit(s)
Browser
Interoperable Ajax Tools and Mashups 44
OpenAjax Alliance Formation
(cid:131)(cid:131) KKiicckk--ooffff mmeeeettiinngg MMaayy 22000066
(cid:131)(cid:131) 3300 ccoommppaanniieess
(cid:131)(cid:131) OObbjjeeccttiivveess,, pprroocceessss,, ssccooppee,, aanndd iinniittiiaall ttaasskkss
(cid:131)(cid:131) SSccooppee ooff aaccttiivviittiieess
(cid:131)(cid:131) IInntteerrooppeerraabbiilliittyy
(cid:131)(cid:131) EEdduuccaattiioonnaall
(cid:131)(cid:131) HHeellpp sshhaappee tthhee ffuuttuurree ooff tthhee AAjjaaxx eeccoossyysstteemm
(cid:131)(cid:131) WWhhaatt wwee pprroodduuccee
(cid:131)(cid:131) DDooccuummeennttss ((ee..gg..,, ssppeeccss))
(cid:131)(cid:131) OOppeenn ssoouurrccee ((mmoossttllyy JJaavvaaSSccrriipptt))
Interoperable Ajax Tools and Mashups 5
OpenAjax Alliance Areas of Focus
(cid:131)(cid:131) IInntteerrooppeerraabbiilliittyy
(cid:131)(cid:131) AAjjaaxx rruunnttiimmee lliibbrraarriieess
(cid:131)(cid:131) AAjjaaxx IIDDEEss
(cid:131)(cid:131) MMaasshhuuppss aanndd wwiiddggeettss
(cid:131)(cid:131) MMoobbiillee AAjjaaxx
(cid:131)(cid:131) MMaarrkkeettiinngg,, eedduuccaattiioonn aanndd eevvaannggeelliissmm
(cid:131)(cid:131) FFuuttuurree bbrroowwsseerrss
Interoperable Ajax Tools and Mashups 6
Runtime Interoperability
(cid:131)(cid:131) RRuunnttiimmee == JJaavvaaSSccrriipptt rruunnnniinngg iinn tthhee bbrroowwsseerr
(cid:131)(cid:131) PPrroobblleemmss
(cid:131)(cid:131) NNaammee ccoolllliissiioonnss
(cid:131)(cid:131) IInntteeggrraattiioonn ddiiffffiiccuullttiieess
•• CCrriittiiccaall ffoorr mmaasshhuuppss,, wwhheerree yyoouu aasssseemmbbllee pprree--bbuuiilltt ccoommppoonneennttss
oonnttoo tthhee ccaannvvaass,, oofftteenn uussiinngg ddiiffffeerreenntt AAjjaaxx ttoooollkkiittss
(cid:131)(cid:131) OOppeennAAjjaaxx RReeggiissttrryy
(cid:131)(cid:131) AAnn iinndduussttrryy--wwiiddee rreeggiissttrryy ooff JJaavvaaSSccrriipptt gglloobbaallss,, CCSSSS
ccllaassssnnaammeess,, aanndd HHTTMMLL mmaarrkkuupp eexxtteennssiioonnss
(cid:131)(cid:131) OOppeennAAjjaaxx HHuubb
(cid:131)(cid:131) OOppeennAAjjaaxx MMeettaaddaattaa
Interoperable Ajax Tools and Mashups 7
IDE Interoperability
(cid:131)(cid:131) IIDDEEss == DDeevveellooppeerr ttoooollss ((ccooddee aassssiisstt,, ddeebbuugg,, vviissuuaall llaayyoouutt))
(cid:131)(cid:131) PPrroobblleemm
(cid:131)(cid:131) NNxxMMppeerrmmuuttaattiioonn pprroobblleemm ((~~220000 AAjjaaxx ttoooollkkiittss,, ~~1155 AAjjaaxx IIDDEEss))
(cid:131)(cid:131) EEaacchh AAjjaaxx ttoooollkkiitt ddooccuummeennttss tthheeiirr AAPPIIss aanndd wwiiddggeettss iinn tthheeiirr oowwnn wwaayy
(cid:131)(cid:131) OOppeennAAjjaaxx MMeettaaddaattaa ffoorr AAjjaaxx LLiibbrraarriieess
(cid:131)(cid:131) IInndduussttrryy ssttaannddaarrdd XXMMLL ffoorr::
•• JJaavvaaSSccrriipptt AAPPIIss
•• UUII ccoonnttrroollss
(cid:131)(cid:131) JJSSDDoocc ttoo OOppeennAAjjaaxx MMeettaaddaattaa ccoonnvveerrtteerr ((ooppeenn ssoouurrccee))
(cid:131)(cid:131) SSoommee ooff tthhee lleeaaddiinngg OOppeennAAjjaaxx AAlllliiaannccee’’ss IIDDEE WWGG mmeemmbbeerrss
(cid:131)(cid:131) AAddoobbee DDrreeaammwweeaavveerr
(cid:131)(cid:131) EEcclliippssee ((AAppttaannaa,, JJSSDDTT,, AATTFF))
(cid:131)(cid:131) MMiiccrroossoofftt VViissuuaall SSttuuddiioo
Interoperable Ajax Tools and Mashups 8
Mashup and Widget Interoperability
(cid:131)(cid:131) MMaasshhuuppss == AAbbiilliittyy ttoo aasssseemmbbllee pprree--bbuuiilltt
ccoommppoonneennttss iinnttoo aa ccoommppoossiittee aapppplliiccaattiioonn
(cid:131)(cid:131) PPrroobblleemmss
(cid:131)(cid:131) SSeeccuurriittyy
(cid:131)(cid:131) WWiiddggeett iinntteerrooppeerraabbiilliittyy
(cid:131)(cid:131) OOppeennAAjjaaxx HHuubb 11..11
(cid:131)(cid:131) OOppeennAAjjaaxx MMeettaaddaattaa ffoorr WWiiddggeettss
(cid:131)(cid:131) OOppeenn ssoouurrccee GGooooggllee GGaaddggeettss ssuuppppoorrtt
(cid:131)(cid:131) OOppeenn ssoouurrccee mmiinnii--mmaasshhuupp ttooooll
Interoperable Ajax Tools and Mashups 9
Mobile Ajax
(cid:131)(cid:131) MMoobbiillee AAjjaaxx == FFuullll AAjjaaxx rruunnnniinngg oonn mmoobbiillee pphhoonneess
(cid:131)(cid:131) PPrroobblleemmss
(cid:131)(cid:131) SSppeecciiaall cchhaalllleennggeess ((ssccrreeeenn ssiizzee,, llaatteennccyy,, kkeeyyppaadd,, bbaatttteerryy,, ……))
(cid:131)(cid:131) SSppeecciiaall ooppppoorrttuunniittiieess ((ppoorrttaabbiilliittyy,, GGPPSS,, ccaammeerraa,, vvooiiccee,, ……))
(cid:131)(cid:131) WWhhiittee ppaappeerr:: IInnttrroodduuccttiioonn ttoo MMoobbiillee AAjjaaxx ffoorr DDeevveellooppeerrss
(cid:131)(cid:131) MMoobbiillee DDeevviiccee AAPPIIss
(cid:131)(cid:131) OOppeenn ssoouurrccee JJaavvaaSSccrriipptt ttoo aacccceessss CCPPSS,, ccaammeerraa,, aaddddrreessss bbooookk,, SSMMSS,,……
(cid:131)(cid:131) TTaarrggeettss bbootthh eexxiissttiinngg pprroopprriieettaarryy,, ssyysstteemm--ddeeppeennddeenntt AAPPIIss ((vviiaa pplluuggiinnss))
aanndd eemmeerrggiinngg iinndduussttrryy ssttaannddaarrddss
(cid:131)(cid:131) CCoollllaabboorraattiinngg wwiitthh OOMMTTPP,, ttrraacckkiinngg WW33CC ((ee..gg..,, ggeeoollooccaattiioonn))
Interoperable Ajax Tools and Mashups 10
Description:onto the canvas, often using different Ajax toolkits JQuery Lightstreamer Microsoft Ajax Library Nexaweb Ajax Client OAT: OpenLink AJAX Toolkit OpenSpot CalcDesk