Rich Internet Applications



Vergelijkbare documenten
Building rich user interfaces in Java

Copyright IBS Nieuwbouw. Vereenvoudigd en versnelt Java ontwikkeling. Huub Cleutjens

Core. JavaFX: Klaar om de wereld te veroveren? JavaFX wordt door Sun gepositioneerd als de

Zelftest Java concepten

Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access

Acht stappen voor JSF

Frontend performance meting

Waarom een Independent Software Vendor voor XForms kiest. Johan Blok CM Pro

APEX en JasperReports

Gestart als demo/research voor cloud-oplossing. Een Afslagveiling

Barry van Zanten. Ux Designer / Developer. Kokosnootstraat 39, 2555 XB Den Haag - barry@uthinkicreate.nl

De toekomst van Oracle Forms

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Webapplicaties ontwikkelen met Vaadin

Inhoudsopgave. Hoofdstuk 1.Inleiding...3

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Stappenplannen MailPlus SOAP API

Voordat er optimaal gebruik gemaakt kan worden gemaakt van Magister 5 via het web, kan deze FAQ mogelijk van pas komen.

Perceptive Process. Technische Specificaties. Versie: 3.4.x

Angular Best Practices Door Alex en Chris van Beek

Waarom Cloud? Waarom nu? Marc Gruben April 2015

Applicatie-Architecturen

Analyse Programmeertalen

Technisch Ontwerp W e b s i t e W O S I

Tips & Tricks: Tip van de maand November Office Integratie

Is APEX a worthy substitute for Oracle Forms?

Capita Selecta Design Patterns voor administratieve applicaties

ArcGIS Mobile ADF. Smart Client Applicaties voor ArcGIS Server Eva Dienske, Wim Ligtendag

De 9lives Webdesign informatie sticky

Whitepaper. Connected Android Apps. Inleiding

In dit artikel kijken we naar de mogelijkheden van Silverlight

Geert Dekkers Web Studio +31(0)

iprova Suite Systeemeisen iprova 5 Hosting

CONTAINERIZATION OF APPLICATIONS WITH MICROSOFT AZURE PAAS SERVICES

Introductie.NET Framework 3.0 A N D R É O B E LIN K, M C S D, M V P

Oracle Portal in een Service-Oriented Architecture (SOA) ir. Jeroen F. van Schaijk Senior Consultant Emerging Technologies

Continuous testing in DevOps met Test Automation

Samengaan van Geo-informatie en Service Oriëntatie

Medicatie controle. Mobiele app op basis van App Service en Azure AD

React en React Native voor websites en apps

JavaServer Faces 2.1

Wat is JAVA? Peter van Rijn

Cloud werkplek anno Cloud werkplek anno 2014

Introductie Veiligheidseisen Exploiten Conclusie. Browser security. Wouter van Dongen. RP1 Project OS3 System and Network Engineering

Curriculum Vitae. Barry van Zanten Grafisch Lyceum Utrecht Utrecht

Delft-FEWS & Web Services

Welkom bij IT-Workz. Etten-Leur, 16 november Altijd en overal werken en leren. Applicatie en Desktop Delivery met Quest vworkspace

is front-end kennis relevant voor een UX designer

Perceptive Process. Technische Specificaties. Versie: 3.9.x

Perceptive Process. Technische Specificaties. Versie: 3.7.x

INHOUDSOPGAVE Het Boekenwinkeltje Registreer.aspx Opgaven... 97

Perceptive Process. Technische Specificaties. Version: 3.5.x

ANOUK ROUMANS TO CODE OR NOT TO CODE.

P R O F I E L S C H E T S

Weblogic 10.3 vs IAS

Zelftest Java EE Architectuur

Visie & Strategie. Aad van Schetsen. Vice President & General Manager Uniface Delft, 18 November 2009

Tim Melis CURRICULUM VITAE

APEX vs OutSystems, een vergelijking door een gebruiker

Insecurities within automatic update systems

ECTS fiche. Module info. Evaluatie. Gespreide evaluatie OPLEIDING. Handelswetenschappen en bedrijfskunde HBO Informatica

HTML5 VIDEO. Een stand van zaken Jeroen Wijering, LongTail Video

Applicatieplatformstrategie Rijkswaterstaat

Java op het Oracle 9i platform

Sitecore en AngularJS: hoe werken ze samen

Les 11: systeemarchitectuur virtuele machines

Zelftest Informatica-terminologie

Selenium IDE Webdriver. Introductie

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Transcriptie:

Rich Internet Applications Maart 2008 Adelbert Groebbens Sectie Onderzoek

Overzicht RIA De concepten en mogelijkheden van RIA Overzicht technologieën en benaderingen AJAX GWT Flex & AIR Swing + JavaFX Silverlight Samenvatting en aanbevelingen 2

Wat is RIA? user experience & usability client-side: installatie & upgrade & cross-platform het internet als platform, vol client-devices (PC,mobile, ) 3

Traditionele webapplicaties zijn pagina-gebaseerd (1/2) 0 1st page Presentation Logic Business Logic services, databases, data sources: 1 web 2 click browser client request response Data application server db xml over http WS db 4 render HTML Engine 3 page - state - logic - processing - object modellen - validatie - controllers 4

Traditionele webapplicaties zijn pagina-gebaseerd (2/2) Sorteer tabel contextverlies Bekijk detail item contextverlies Keer terug pagina (data) weer opladen 5

RIA is 'partial-page refresh': één scherm met componenten (1/2) client server 2 3 Remoting details here item selectie bvb. entry 1 entry 2 entry 3 1 code RIA engine vb. browser, JVM, Flash player plugin, 6

RIA is 'partial-page refresh': één scherm met componenten (2/2) Niet wachten op een request Betere responsitiveit Widgets / effecten Lokale validatie In In context Bookmark naar tab blad 7

Pagina's minder geschikt voor applicaties Een traditionele webapplicatie webpagina's: -- wizard (formulieren) -- context verlies ( ( data verlies?) verlies?) <submit> <page> <page> <page> <page> <page> <page> <page> <page> <page> <page> één één scherm: -- gerelateerde taken taken -- gerelateerde informatie -- meer meer controle door door de de gebruiker Een doordacht ontworpen RIA <data> <data> <app.> <submit> <data> 8

Responsiviteit en beweging in de user interface Informatie in in context Ook bvb. video help in in context. Customer self-service SZ werknemer neemt applicatie van burger tijdelijk over FlexStore http://examples.adobe.com/flex2/inproduct/sdk/flexstore/flexstore.html 9

Frequentere 'data remoting' tussen client en server autocompletion Google Suggest Toepassing: bij bij bepaalde inputvelden in in formulieren http://www.google.com/webhp?complete=1 10

Allerlei interactie verbeteringen Tijdelijke feedback in in context Google GMail Edit in in screen Dynamische formulieren Datapush http://mail.google.com/mail/#inbox 11

Data push (notification) Server data push. client quote1= 30 quote2= 25 quote3= 19 zie zie ook: Google GMail 1. Poll & answer server 2. Persistent connection Toepassing: realtime onderling informatie uitwisselen tussen enkele clients. browser 1 client server browser 2 client Java Swing desktop app 3 12

Desktop integratie en offline Ebay Ebay Desktop Rich Desktop Application (RDA) Offline Synchroniseer wanneer terug online. Impact op op ontwerp! http://desktop.ebay.com/ 13

Impact applicatieontwikkeling: meer User Experience (UX) design & agile Users Doelen Taken Content Succesvolle interactie met een RIA Gevolgen nieuwe mogelijkheden & geavanceerde UI: Analisten & UX designers scenario's (flows) annoteren bij wireframes Users nieuwe mentaliteit Nood aan meer user experience designers. Laat dit niet zomaar over aan developers! Proces: nood aan 'close agile collaboration'. User + Visual/UX designer + Developer + Analist 14

Client Fat Thin Rich UI Execution Environment Presentation Logic RIA (Rich) Presentation Logic Klassieke web app. (non-rich) Browser HTML Engine Business Logic Remoting Pages Server Presentation Logic Data Business Logic Data Business Logic Data Server Server integratie op op de de client: WOA, SOFEA, SOA, 15

Voordelen van RIA t.o.v. traditioneel web User productiviteit & user experience Betere usability, interactie & responsiviteit Functioneel meer geavanceerde mogelijkheden Complexere UI voor complexere taken (visualisatie, ) Offline Notificatie van externe 'events' (data push) Desktop integratie Video Technisch performantie, responsiviteit, robuustheid Dankzij lokale processing op de client Meer natuurlijke fit voor applicaties RIA als front-end voor SOA 16

Overzicht RIA De concepten en mogelijkheden van RIA Overzicht technologieën en benaderingen AJAX GWT Flex & AIR Swing + JavaFX Silverlight Samenvatting en aanbevelingen 17

Overzicht benaderingen Trad. Web 'enhancement' RIA AJAX RWA RDA NP P 18

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P De eerste hype: de AJAX techniek AJAX = Asynchronous JavaScript And XML

Basiscomponenten AJAX bestaan al heel lang (1998) client = browser HTML CSS HTTP Javascript engine DOM, widget events Browser API's.js engine (Javascript) 'XMLHttpRequest' 'convergentie' (2005) hype 20

Asynchrone communicatie met het XMLHttpRequest javascript object (params) event 21

AJAX response formaten: XML <data> <location lon="13.4156" lat="52.5206"/> </data> parsing: XML (DOM) var lon = datanode.firstchild.getattribute( lon ); parsing: XML XML (E4X) ( ( Javascript 4.0 4.0 & Actionscript Actionscript 3.0) 3.0) var var data = xml xml result var var lon lon = data.location.@lon; 22

AJAX response formaten: JSON var data = { } }; location: { lon: 13.4156, lat: 52.5206 JavaScript Object Notation parsing: javascript interpreter eval(json_received_data); var lon = data.location.lon; 23

AJAX response formaten: HTML <p> Number of items found: 13 </p> <table> <thead> <tr> <td>name</td> <td>quantity</td> <td>price</td> </tr> </thead> <tbody> partial page update: HTML DOM update: 24

Enkele populaire AJAX toolkits Toolkit Beschrijving Feature DWR Dojo Ext JS (fork van de Yahoo UI library) AJAXTags Prototype Remoting calls van Javascript client naar Java op de server. Uitgebreide toolkit (widgets, i18n, communicatie, ). Ook package en build system. Rich UI widgets, effecten, events, DOM manipulatie, asynchrone communicatie, JSP tag library met AJAX functionaliteit (autocomplete, ). Classes, inheritance, in javascript. Sterk in remoting naar Java, maar ook enkel dat. Gesupporteerd door een foundation (IBM, Sun, ). Beste UI widgets. Eenvoudige AJAX enhancement van JSP, Struts, Veel gebruikt als basis. Scriptaculous Effecten, animatie. 25

Ext JS 2.0 Rijke widgets http://extjs.com/deploy/dev/examples/grid/grouping.html 26

AJAX enhancements: handigere formulieren & validatie Lokale validatie Server validatie Firebug debugger https://www.electrabel.be/protected/impact/public/myhome/selfregistration.do#section:providepersonalinformation 27

Sterke punten AJAX Gebaseerd op gevestigde waarden. HTML, CSS, DOM, web, Geen plugin nodig. Veel toolkits beschikbaar (open source). Sinds lang. Reeds veel evolutie. 'AJAX enhancements' aan bestaande webapplicaties. Veel platformen op basis van Javascript APIs. Google, MySpace, IBM Project Zero, 28

Zwakke punten AJAX Browser verschillen en incompatibiliteiten. IE6, IE7, IE8, Firefox 2.0, Firefox 3.0, Safari, Opera, Complexe en onproductieve omgeving voor grotere applicaties. Nodig om goed de browser en.js omgeving te kennen. IDE tools niet op niveau zoals bij Java. Veel toolkits beschikbaar (open source). Moeilijke keuze. Combineren: meer risico's? Te sterk evoluerend. Zelfde security issues zoals bij traditionele web applicaties. Remoting met Web Services: niet out-of-the-box. 29

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P Google Web Toolkit (GWT)

Waarom GWT? AJAX pain Javascript compile - geoptimaliseerd - size - performance - startup - voor elke browser - Java Software Engineering - develop - test -debug - refactor -IDE - productivity - code analysis - build - doc Doel: "AJAX with lower risk." 31

GWT: structuur, architectuur Development (Eclipse, Maven, ) client UI server-side 'client-deel Java' Javascript = subset Java 1.4 & GWT API compile Java 1.4,1.5,1.6, finale deployment browser GWT 'host' browser GWT 'host' Tomcat servlet container.js Client Client GWT-RPC Server Nodige.js convention MyServiceInterface AsyncCallback MyServiceInterface <<servlet>> MyServiceImplement 32

"GDF-Web prototype" door Smals gebouwd met GWT 1.4 + GWT-Ext 2.0 Dit kan dus op op een Javascript platform, dankzij GWT!!!! At At runtime: gegenereerde complexe user interface op op basis van een formulier model. Op de de server: model processing. Bvb. on-the-fly formulier validatie. 33

Sterke punten GWT AJAX, maar zonder de nadelen. Java skills zijn herbruikbaar (niet de libraries!) Client (javascript browser) Java Server (J2EE) Java Leunt sterk aan bij Java Swing (widgets, listeners, ). Optimalisatie. Snelle startup. Code-generatie. Gratis beschikbaar en sterke community (Google). 34

Zwakke punten GWT Het is ontwikkelen voor een onderliggend javascript platform. GWT = Toolkit = basis Toe te voegen: 'more richness', animatie, multimedia, vector-graphics, higher-level componenten, Zelf nog wat UI software design nodig. Zelf aflijnen hoever je 'afwijkt'. GWT 1.4: Java client-deel nog niet Java 1.5 Bij finale deployment toch nog testen op alle browsers. Geen declaratieve UI taal. 35

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P Adobe Flex

Flex, Actionscript (.as), MXML en Flash Player VM client browser server Development (Eclipse, FlexBuilder) Flash v9 (AVM2).swf Flex framework en libraries.mxml generate compile.as.as.swf 37

Remoting met Flex en de extra Data Services client browser Flash v9 HTTP AMF3 server servlet / J2EE - Blaze DS.java data services, RTMP, - Livecycle DS 38

Mogelijkheden van de Data Services Remoting Data synchronisatie (data push) 39

Sterke punten Flex Eenvoudige, consistente en geconsolideerde omgeving. Designer (FlexBuilder), deploy, debug,.as,.mxml, Kracht en productivity. Databinding (syntax). E4X. Dynamic (scripting). Sterke UI componenten & framework. Charting. Video. Effecten. Data Services: goede ondersteuning voor data remoting & synchronisatie. RTMP channel. Community uitgebreid. 40

Zwakke punten Flex Flash Player v9 plugin nodig op de client browsers. FlexBuilder IDE staat nog niet zo ver als Eclipse voor Java en is niet gratis. Kost (optioneel) van de Lifecycle Data Services. Niet 100% open source. Livecycle DS, FlexBuilder, RTMP en Flash player. 41

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P Adobe AIR

Rich Desktop Application met AIR: offline mogelijkheid & desktop integratie doel: AJAX & browser & web web AIR AIR geen geen algemene desktop runtime, wel wel snel snel te te installeren cross- platform runtime SQLite SQLite embedded W3C, AJAX OS OS (Windows, Mac Mac Linux pas pas na na de de 1.0 1.0 release) 43

AIR demo: zie eerder Ebay Ebay Desktop http://desktop.ebay.com/ 44

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P Sun's Java Swing + JavaFX

JavaFX: waarom een declaratieve taal 'on top of' Java Swing? 46

JavaFX Script (.fx) dient voor de UI GroupLayout { content: [ Button { text: "Go" ZoomBar.fx action: operation() { javafxpad.go(); } }, ComboBox { selection: bind javafxpad.zoomselection cells: bind foreach (anoption in javafxpad.zoomoptions) ComboBoxCell { text: "{anoption}%" } } ] 47

Swing, Java Web Start, JavaFX, Applets client Swing Java2D JavaFX "Swing is is not not out" Java SE 6uN Java API's, AWT, JVM J W S.jnlp.jar's server-side plug-in (native) Client browser 48

Reeds lang Swing business applicaties, nu met JavaFX eenvoudiger en ook Java2D eenvoudiger Tesla Motors site (recreated) Java Web Start (JWS): 'JavaFX showcase prototype': http://download.java.net/general/openjfx/demos/tesla.jnlp 49

Sterke punten JavaFX + Swing Beknopte, declaratieve syntax JavaFX handig voor UI. Maakt Swing & Java2D eenvoudiger, toegankelijker. Open community (met open discussion on features). Sun's globale strategie is open source. Bedoeling om JavaFX te combineren met Java. Alle kracht van Java is beschikbaar. Stabiliteit Java Swing & AWT. Swing is flexibel. 50

Zwakke punten JavaFX + Swing JavaFX. Nog niet officieel gelanceerd. Nog geen grote community. Java Swing (alleen). Vergt ervaring, know-how. Geen declaratieve UI taal. Toekomstige combinatie: JavaFX + Swing. Huidige combinatie kan beter qua complexiteit? Huidige JavaFX is weliswaar prototype. 51

Trad. Web 'enhancement' RIA AJAX RWA RDA NP P Microsoft's Silverlight

Silverlight overzicht Client browser Client SL plugin 1.1 (=2.0) parse.xaml to web page Canvas Client stub generatie in VS2008 Server web page: DOM accessible Canvas (.xaml).dll (C#, ) subset.net APIs & crossbrowser CLR.js.html,.js,.xaml, resources,.dll 53

Ontwikkeling Silverlight SL 1.0.xaml.js - Visual Studio 2008 - Silverlight tools beta 2 for VS2008 SL 2.0 (=1.1).xaml CLR: dus C#, echte potentieel 1.1 is tussentijdse alpha versie! 54

RIA en visual / graphic designers (= demo Silverlight) http://www.nibblestutorials.net/ 55

Sterke punten Silverlight 1.1 (=2.0) Tooling (remoting aangekondigd). Men spreekt over 'Rich networking support'. Skills zijn herbruikbaar (niet de libraries!) Client (Silverlight) C# Server (.NET) C# Recente.NET 3.5 heeft sterke nieuwe features. Source code recent gereleased (debugging). 56

Zwakke punten Silverlight 1.1 (=2.0) XAML Zijn.xaml files 'too verbose'? Te sterk gescheiden met.cs &.js files? Goed voor graphic designers in het team? Silverlight plugin moet geïnstalleerd worden. 'Microsoft only' Visual Studio tools, Moonlight, Nog niet matuur. 57

Overzicht De concepten en mogelijkheden van RIA Overzicht technologieën en benaderingen AJAX GWT Flex & AIR Swing + JavaFX Silverlight Samenvatting en aanbevelingen 58

Overzicht benaderingen Trad. Web 'enhancement' RIA AJAX RWA RDA NP P oplossingen GWT Flex Silverlight Swing & JavaFX AIR Toolkits Java applet 59

Overzicht technologie analyse Technology Client Remoting Development Release date AJAX toolkits - Browser (javascript) - XML - HTML - JSON -.js,.html,.css, toolkit APIs - Java IDE voor JavaEE backend - depending on library (sinds +- 2006) - ook Javascript IDEs GWT - Browser (javascript) - XML - JSON - GWT-RPC (binary) - Java IDE - 3rd party libraries zoals GWT-EXT - vb. GWT-Designer - GWT 1.4: 2006Q3 - GWT 1.5: 2008Q2(?) Swing (+ JavaFX) - Java -Browser (applet plugin) - RMI, JMS - WS (SOAP) - elke Java remoting impl. - Java IDE - Java APIs + opensource libs - Java designer tools - Java SE 6: 2006Q4 - Java SE 6uN: 2008Q3 - Java SE 7: 2008Q4 - JavaFX: 2008Q2-Q3 Flex AIR - Browser (Flash plugin v9) - AIR Runtime - WS (SOAP) - XML - JSON - AMF3 (binary) - LCDS: data synch. - Eclipse FlexBuilder voor frontend -.as,.mxml - Java IDE voor JavaEE backend - Flex 2.0: 2006Q3 - Flex 3.0: 2008Q1 - AIR 1.0: 2008Q1 Silverlight - Browser (SL Plugin) - MS niet op Linux - WS (SOAP) -XML - JSON - Visual Studio 2008 (.NET) - SL 1.0: 2007Q4 - SL 2.0: 2008Q3 60

Essentiële raadgevingen omtrent de technologieën (1/2) Swing, JavaFX Java kracht (neem voor de front-end UI JavaSE 6). Desktop, maar browser kan met applet (6uN). Gevestigde waarde met veel frameworks. Opvolgen: JavaFX, Java SE 6uN. Flex Fris en duidelijk platform. Livecycle DS (J2EE) kan rendabele extra zijn. Browser, maar desktop integratie en offline/online kan met AIR. Uitproberen voor eerste klein geschikt project. 61

Essentiële raadgevingen omtrent de technologieën (2/2) AJAX toolkits Essentiële verbeteringen web app. (Struts, ). Beperk AJAX. Gebruik de toolkits. GWT "No-compromise AJAX". Java software engineering voor AJAX. Silverlight Voor de.net wereld. Cross-platform revolutie? Huidige 1.1 is te beperkt. SL 2.0 opvolgen. 62

Herhaling: voordelen van RIA t.o.v. traditioneel web User productiviteit & user experience Functioneel meer geavanceerde mogelijkheden Technisch performantie, responsiviteit, robuustheid 63

RIA veel voordelen, maar niet wanneer: Sterk document en browser georiënteerde applicatie. Budget versus user requirements. RIA's maken het niet eenvoudiger. Investering in interaction en usability design. Als de 'rich UI behaviour' teveel performantie op de client vraagt. Wanneer niet compatibel met accessibility requirements. W3C ARIA (screen reader, ) 64

Impact van RIA in de organisatie Ontwikkeling: proces & organisatie Meer User experience (UX) & visual designers. Training developers en analisten inzake RIA. Nieuwe UI mogelijkheden. Kennis: web desktop, desktop web Intensief samenwerken met users. Verzamel en bouw standaardkennis op (pilots, ). Users Sensibilisatie. Implicaties: behoeften, Intensief samenwerken met developers en analisten. Tools Investering in de nodige tools (rendabel). 65

Besluit: evolutie naar RIA's Nieuwe klemtoon usability en ergonomie. De gebruiker staat centraal. Kies NIET voor één enkele technologie. Java wereld..net wereld. Toekomstige trend. 66

That's it! Vragen? Adelbert Groebbens adelbert.groebbens@smals.be 02/787 5860