Web 2.0 på QCon

Nu har begreber som Web 2.0, AJAX og browser based applications efterhånden eksisteret i nogle år. Men hvordan er den faglige tilstand på disse egentlig' Er der stadig tale om at vi sidder og hacker lidt i noget JavaScript som vi har fundet på nettet (men nu er der bare blevet meget mere af det), eller er vi rent faktisk begyndt at tage browseren seriøst og benytte nogle af de faglige discipliner vi bruger andre steder'

På "Ajax & Browser-Based Applications" tracket på QCon London konferencen i forrige uge kom der nogle bud på hvordan vi kan lave nye moderne Web 2.0 løsninger og samtidig benytte de faglige discipliner vi kender og er gode til; her er lidt om hvad der blev præsenteret.

Dave Crane (kendt fra bla. Ajax in Action) mener at vi skal til at tænke på at have en egentlig client tier. I dag kan vi bruge flere timer i en AJAX applikation uden på noget tidspunkt at forlade den originale web side. Der er altså store mængder JavaScript i browseren, en egentlig client tier. Hvis vi anderkender at vi har en client tier, bør næste logiske skridt vel være at vi behandler denne som en hvilken som helst anden tier og benytter design patterns m.m. under udviklingen af den. Dette mener Dave Crane i hvertfald, og har han ikke ret? Dave var i hvertfald i stand til at vise glimrende eksempler på hvordan klassiske design patterns som Model View Controller og Strategy benyttes i en client tier.

Dette betyder jo så at vi skal til at kode i JavaScript (altså ikke bare lige rette lidt til hist og her på det der script du fik tilsendt af din kollega for 2 måneder eller fandt på nettet). Er det nu også så galt' Der findes jo trods alt ret glimrende JavaScript libraries så som Prototype, script.aculo.us og dojo (hvilke i øvrigt også blev berørt på QCon af hhv. Thomas Fuchs og Eugene Lazutkin), og er JavaScript egentlig ikke også et ret cool sprog? Det har da ihvertfald closures :)

Skulle du nu alligevel ikke være så vild med at kode JavaScript, debugge i en browser o.s.v. er der heldigvis også andre muligheder. Som Bruce Johnson (Google) fortalte, tager Google Widget Toolkit (GWT) en helt anden indgangsvinkel til problematikken. Her koder du simpelthen blot din Web 2.0 applikation i gode gamle Java, bruger dine vante udviklingsomgivelse og så sørger GWT på mirakuløs vis for at oversætte det hele til JavaScript. Hvis du kører i hosted mode (hvilket vil sige at GWT oversætter Java koden til JavaScript on the fly) kan du tilmed benytte en java debugger på din kode. Hvor fedt er det lige! GWT benytter noget de kalder JSNI (JavaScriptNativeInterface) så du kan tilmed selv lave nye GWT widgets som wrapper eksisterende JavaScript-libraries. Dette er der allerede en del der har gjort med f.eks. Google Maps, script.aculo.us og mange andre. Skal du bruge et Google Map i din applikation' Lav en instans af GMap2Widget klassen, tilføj en clicklistener og få events med koordinater når dine brugere klikker på kortet. Det er da lidt smart.

Når vi nu tænker i de baner skulle vi måske taget skridtet videre. Ifølge Christophe Coenraets har 97% af alle browsere i dag Flash installeret. Dette kan vi udnytte hvis vi bruger Flex. Ideen her minder om GWT. Vi koder vores applikation i Java, og får genereret en Flash applikation. Man kan lave nogle ret seje ting med Flex, eksempler kan graves frem fra Christophes blog. Med projektet Apollo er Adobe desuden i gang med at besvare spørgsmålet om hvordan vi køre vores Web 2.0 applikationer offline...

Er man til gode gamle Java EE, har platformen såmænd også Web 2.0 features at byde på. SEAM er et interessant projekt, og er man til Java Server Faces så findes der jo fx RichFaces og IceFaces.

Der er altså nok af muligheder. Spørgsmålet er så blot, bruger vi disse muligheder ' Eller hacker vi stadig bare løs'

Hvordan udvikler du Web 2.0 applikationer?

Kommentarer (3)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Thomas Peter Berntsen

Hej Kresten

Et interessant indlæg med mulighed for en god diskussion.

Vi benytter i høj udstrækning RIA-værktøjet Tibco General Interface til at konstruere AJAX-baserede frontends til de applikationer, vi udvikler.

Frontend og backend udveksler data gennem SOAP, XML-RPC eller REST, hvor vi designer vore backend-applikationer med den relevante snitflade.

Backend-applikationen udvikler vi typisk i enten Ruby (on Rails), Java eller Python og definerer en serviceorienteret snitflade, som kan anvendes af General Interface og til integration med andre systemer.

En af de store fordele ved General interface er, at man kan arbejde meget visuelt med opbygningen af interfacet. Applikationen indeholder et stort udvalg af skabelon-komponenter såsom faneinddelere, formularelementer, matrixelementer mv, som kan placeres, tilpases og eventuelt scriptes via JavaScript.

Endvidere er det forholdsvis nemt at "mappe" metoder og returværdier fra web services til de forskellige komponenter i General Interface. Herefter kan der så udføres transformationer på de data, der cirkulerer i frontend'en, enten via JavaScript eller XSL.

Vi finder det et godt bud på et værktøj til RIAer, idet det er fornuftigt at arbejde med til rapid prototyping, overskueligt at scripte til avancerede workflows og tillader fuldstændig seperation mellem front- og backend.

Og meget interessant: General Interface nyder godt af en BSD-licens, så det er frit tilgængeligt.

Så ja, vi hacker løs, men med en god abstraktion. :-)

Se mere hér: http://www.tibco.com/devnet/gi/default.jsp

  • 0
  • 0
Tommy Dejbjerg Pedersen

Enig, glimrende overview for os der ikke kunne komme til London øv,øv :-)

Jeg tror stadig, som nævnt tidligere på bloggen, at Flex får en stor rolle her, især fordi de har Adobe i ryggen til at pushe det. Og med Apollos release sker der virkelig spændende ting og sager.

Men (med risiko for at blive slagtet af vores "Kill Bill" sektion her på V2), så må vi ikke glemme Microsoft som med Blend og WPF er et seriøst alternativ til Flex/Apollo HVIS man altså kan leve med platformen.

Som Thomas skriver er RIAs et perfekt match til en SOA arkitektur og et glimrende alternativ til de store portalprodukter, som jeg ofte synes er spild af penge. Mashups og RIAs giver hurtige og synlige resultater uden de massive up-front investeringer som high-end portalprodukter medfører.

BTW: Et andet glimrende sted at følge udviklingen indefor RIAs er disse to blogs: http://blog.digitalbackcountry.com/
http://blogs.zdnet.com/Stewart/

  • 0
  • 0
Thomas Peter Berntsen

Ja, Apollo-Flex-kombinationen ser særdeles interessant ud. Jeg tror nok, at den skal vinde anvendelse.

Man kan jo ikke komme uden om, at Flash er en udbredt platform, og at den virtuelle maskine i Flash-platformen til tider virker meget hurtigere, nærmest dopet, end tilsvarende JavaScript-fortolkere i de større browsere. En del af svaret på dette skal måske findes i, at indholdet af SWF-filerne er forudkompileret?

Som du også skriver, Tommy, så er det lige dét, om man kan leve med platformen. Det ville nu være rart, hvis FLA-formatet blev åbnet.

Men ok, hvis man har en pragmatisk tilgang til tingene, finder man nu nok det bedste værktøj til den konkrete opgave. Og Flex og Apollo være særdeles værdige udfordrere.

Og for god ordens skyld bør jeg lige nævne, hvem "vi" er (når nu jeg i mit forrige indlæg omtaler "vi"): Translucent Technologies (www.translucent.dk)

Så fik vi vist dét på plads 8-)

  • 0
  • 0
Log ind eller Opret konto for at kommentere
IT Company Rank
maximize minimize