Vraagtekens over opmars van applicaties in browser

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • joostvanpinxten
  • Registratie: Maart 2007
  • Laatst online: 03-09 12:50
Ik begin me de laatste tijd steeds meer af te vragen waar de scheiding tussen website en web-applicatie zit. Ook begin ik me af te vragen welke toekomst web-applicaties tegemoet gaan; er zijn enkele grote tekortkomingen aan de browsers van dit moment, als het om web-applicaties gaat.

Ik ben nu 23 en heb 'de opkomst' van het web meegemaakt in volle glorie. Van een 33k6 modempje en de eerste computerlessen op school (jaja, Microsoft Works op windows 3.11!) tot breedband en het web-applicatie bedrijf waar ik nu een bijbaan naast mijn studie Elektrotechniek heb. Voor zover ik gezien heb, heeft er een verschuiving plaatsgevonden in de manier waarop applicaties worden gevraagd en worden ontworpen. Waar dit pre-2000 vooral stand-alone applicaties waren, worden er op dit moment steeds meer projecten web-based uitgevoerd.

Uiteraard heeft dat z'n voordelen, zoals het flexibel kunnen updaten van de applicatie voor alle gebruikers of het beschikbaar zijn op een willekeurige, op internet aangesloten, computer. Ook is de ontwikkeltijd van een web-applicatie vaak korter dan van een stand-alone applicatie.

Het probleem waar ik nu mee in mijn hoofd zit is dat er bijvoorbeeld vaak slechte ontwerpkeuzes worden gemaakt, waardoor de performance van sommige websites/applicaties gewoon zeer triest te noemen is. Door de diversiteit aan browsers moet er in een (vaak niet aanwezige) testfase de volledige applicatie meerdere malen getest worden. Helemaal platform onafhankelijk zal het namelijk allemaal nooit (kunnen) worden. Wellicht komt er met javascript workers een oplossing voor websites die intensief (en dus meestal blokkerend) javascript gedrag uitvoeren. Dit is volgens mij hetzelfde probleem als waar Java applicaties last van hadden, toen de uitvoerende code nog vaak in dezelfde thread werd geplempt als waar de GUI in draaide.

Voor fora, bedrijfsprofielen, encyclopedieën, webshops, nieuwssites etc is het prima om een webbased-interface te hebben. Dit gaat dus voornamelijk om relatief statische informatie waarvan niet verwacht wordt om deze real-time bij te werken.

Wat ik steeds vaker zie, zijn echter steeds meer vragen over 'echte' applicaties in de webbrowser. Denk hierbij aan een e-mail applicatie of een chat-programma in de browser. Is allemaal hartstikke leuk om zonder het installeren van programma's in een chat terecht te kunnen komen, maar als je bedenkt hoe dit technisch opgebouwd is, dan breekt toch vaak mijn elektrotechnisch hartje.

Neem bijvoorbeeld Google Wave, mooi concept, het 'real-time' collaboreren in verschillende documenten/threads. Ik vind de technische uitwerking (aan de kant van de browser) verschrikkelijk. Wanneer je begint te typen haal je al 5 verbindingen per seconde. Nu zijn deze verbindingen niet erg intensief en is dat ook de enige reden dat het een beetje kan werken. Echter, stel dat je in een bedrijf met 10 man in google wave bezig bent, dan is het al snel 50 connecties per seconde. Een standaard-adsl verbinding heeft (volgens www.speedtest.nl) ongeveer een 800-1000 connecties per minuut als limiet. Dit is dus zo'n 14 connections per seconde en zou je dus met een standaard-adsl lijn al niet meer uit de voeten kunnen.

En hier komt nu het echte probleem waarmee ik in mijn hoofd zit: waarom wordt er zoveel in de webbrowser ontwikkeld, maar wordt er niet op grote schaal nagedacht waarom dit eigenlijk geen goed idee is. Als je een normale socket naar een server opent, dan kan dit prima in één verbinding, met weinig overhead. Google Wave gebruikt altijd de headers van de browser en headers van de server met een connectie, per request. Met een échte verbinding is dit vele malen kleiner, wordt de gebruikte bandbreedte kleiner en is het ook mogelijk om écht push-berichten vanaf de server te doen, terwijl dit (in een webbrowser) altijd gepolld is.

Onder andere dus een oproepje aan webbrowser-bouwers: maak het mogelijk om synchrone verbindingen open te zetten! Maar zorg er dan ook voor dat er een standaard komt, HTTP voldoet dan niet meer! Wat zijn jullie meningen over deze onderwerpen, namelijk de performance en het veinzen van functionaliteit die eigenlijk een work-around zijn op het web.

Acties:
  • 0 Henk 'm!

  • Kompaan
  • Registratie: Juni 2009
  • Laatst online: 02-12-2022
Het aantal connecties per seconde voor webapps ligt mijns inziens ook te hoog.

Google is zelf ook al bezig om iets efficiënter te maken dan HTTP(s) over TCP:

http://www.chromium.org/spdy/spdy-whitepaper

Maar zoiets moet dus ook in de webbrowser zitten...

Huidige technieken zijn voor een deel inderdaad workarounds, maar al wel dingen die werken zonder het internet voor een deel opnieuw uit te vinden. Voor allebei is genoeg te zeggen.

Acties:
  • 0 Henk 'm!

  • eghie
  • Registratie: Februari 2002
  • Niet online

eghie

Spoken words!

Dit heeft te maken met het verschil tussen stateless en stateful. Vanwege de beperkingen van het stateless HTTP, wordt er met HTML5 over nagedacht om websockets te implementeren. Zie voor uitleg: http://ajax.sys-con.com/node/677813

Er zijn ook verschillende implementaties voor TCPsockets in Javascript. Via een soort van bridge wordt er dan een statefull socket verbinding gemaakt met een dienst en via comet/websockets wordt de verbinding naar de client geregeld. Enkele voorbeelden daarvan zijn Kaazing, Orbited of iets als SocketJS.

Omdat de gegevens steeds meer realtime worden, wordt de nood om statefull verbindingen op te zetten steeds hoger. Dit omdat die daar veel beter geschikt voor zijn.

Het centrale, via 1 server, een webapplicatie aanbieden blijft natuurlijk ook interessant. Dit is namelijk veel makkelijker beheren, dan pure desktop applicaties. Daarnaast ben je ook niet OS gebonden. Omdat je toch steeds vaker van de desktop zelf gebruik wilt maken, zoals bestandsafhandeling, zijn er API' s bedacht om dat het HTML voor elkaar te krijgen. Die zijn samen gebracht onder de HTML5 specificatie.

Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 21:25
joostvanpinxten schreef op zondag 25 april 2010 @ 17:27:
En hier komt nu het echte probleem waarmee ik in mijn hoofd zit: waarom wordt er zoveel in de webbrowser ontwikkeld, maar wordt er niet op grote schaal nagedacht waarom dit eigenlijk geen goed idee is.
Inderdaad is HTTP niet het meest efficiente protocol. Maar je redeneert vanuit techniek en niet vanuit de gebruiker. En die vind blijkbaar de voordelen (altijd bij je data kunnen, niets hoeven te installeren of configureren) groter dan de nadelen.

Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 10-09 22:39
Zoals eghie al aangeeft zijn dit bekende problemen, en zijn ook de oplossingen hiervoor al in bespreking. Web Sockets zijn beschikbaar in Chrome (binnenkort Safari) en in de toekomstige Firefox 3.7 release, en er is een kleine flash toepassing beschikbaar welke het mogelijk maakt om voor andere browsers Web Sockets te gebruiken.

Tevens is men bezig met server-sent events te implementeren door middel van Event Sources. Dit werkt momenteel al in Opera, die hun eigen implementatie aangepast hebben aan de nieuwe specificaties.

Combineer dit met de nieuwe canvas functies (zowel 2D als 3D) die het zelfs mogelijk maken om zonder veel moeite grafische bewerkingen te doen, met hardware acceleratie, meer drag-and-drop, uploaden van meerdere bestanden (en wellicht zelfs mappen) tegelijk en de ongelooflijke snelheidsverbeteringen die browsers aan het doorvoeren zijn, dan denk ik persoonlijk dat applicaties op het internet zeker toekomst hebben. Dat Google hier op inzet is duidelijk, hun hele Chromium Operating System wordt er op aangepast.

Tevens is er een belangrijk aspect van web-based programmering die vaak vergeten wordt: het is toegankelijk. Eén van de belangrijkere ideologieën achter de HTML 5 standaard is het verbeteren van de toegankelijkheid van het Internet. Browsers passen zich beter aan voor screen readers en andere applicaties, semantiek wordt verbeterd en het maken van een simpele interface wordt makkelijker en makkelijker. Tenslotte moet je er ook rekening mee houden dat een basisapplicatie in een browser niet platform afhankelijk is: het werkt op jouw Windows computer, maar ook op de Apple, Linux en mobiele apparaten. Nu Internet Explorer 9 zich ook achter standaarden lijkt te gooien verwacht ik dat web-ontwikkeling over een paar jaar veel gemakkelijker zal zijn, maar ook veel krachtiger dan nu het geval is.

Acties:
  • 0 Henk 'm!

  • joostvanpinxten
  • Registratie: Maart 2007
  • Laatst online: 03-09 12:50
rutgerw schreef op zondag 25 april 2010 @ 18:36:
[...]

Inderdaad is HTTP niet het meest efficiente protocol. Maar je redeneert vanuit techniek en niet vanuit de gebruiker. En die vind blijkbaar de voordelen (altijd bij je data kunnen, niets hoeven te installeren of configureren) groter dan de nadelen.
Klopt, maar technisch gezien zie ik iets kapot lopen als er niet binnen nu en een jaar een standaard komt mbt 'statefull' verbindingen zoals eghie dat zo mooi weet te verwoorden.

HTML5 lijkt hier inderdaad een poging toe te doen om het gat te dichten, wat ik hierboven beschrijf. Hopelijk brengt het komende jaar een verandering in de ondersteuning en het ont-draften van HTML5, zodat er échte applicaties gebouwd kunnen worden.

Vanuit de gebruiker gezien wordt het allemaal een compleet andere discussie, aangezien het dan niet meer gemakkelijk in meetbare termen kan worden weergegeven, maar je dingen krijgt als: 'snelheid' van een applicatie, gebruiksgemak, (on)mogelijkheden, overzichtelijkheid, dichtheid van informatie, plaatsing van informatie etc. En veel van de applicaties die ik de laatste tijd zie (onder andere die van de IB-Groep), zijn alles behalve gebruiksvriendelijk.

Het gaat hier nu specifiek over de connections, die nu helaas asynchroon zijn. Maar er zijn nog vele andere dingen die nog beter moeten, wil een webbrowser daadwerkelijk een fatsoenlijk 'platform' worden. Zoals bijvoorbeeld het multithreaded maken van de scripts en bepaalde opties die je in een low-level environment wel zou kunnen doen. Fatsoenlijke 3D games in de browser lijkt me bv nog erg ver weg (ondanks dat er een DX plugin in de omloop is).

En het feit dat er steeds meer functionaliteit in de browsers komt te zitten, waardoor het misschien steeds meer richting een soort van sand-box virtuele machine komt, lijkt me qua complexiteit nogal een grote stap, maar niet ondenkbaar.

Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 10-09 22:39
Fatsoenlijke 3D games in de browser lijkt me bv nog erg ver weg (ondanks dat er een DX plugin in de omloop is).
Dit is nu al mogelijk middels WebGL, dat in de laatste Firefox nightlies, en tevens in Chrome/Safari al werkt (bij Chrome sinds kort zelfs volledig in hun sandbox). Gezien ook Opera in de working group zit is het niet ondenkbaar dat ook zij binnenkort support zullen toevoegen (Opera 11?), waarschijnlijk middels de VEGA grafische library waarmee ook zij binnenkort hardware matige ondersteuning voor rendering gaan toevoegen. Microsoft legt de nadruk met Internet Explorer op grafische aspecten van het internet, waaronder GPU acceleratie, dus het zou me absoluut niets verbazen als ze in mei met de volgende Developer Preview, eventueel in juli met de preview daarop, ondersteuning toevoegen van de WebGL functies in Internet Explorer 9.

Daarnaast is er ook de Native Client technologie van Google. Deze werkt in Firefox, Safari, Opera en Google Chrome, en kan na installatie (onder andere) LLVM bitcode uitvoeren. Voor LLVM bestaan er front-end compilers voor onder andere C, C++, Objective C, en Java. Al deze code zal veilig op de cliënt uitgevoerd kunnen worden op een manier die Google al cross-platform werkend heeft, waarbij propere 64-bit ondersteuning voor Windows "om de hoek" ligt.

Browsers zijn duidelijk al verder dan je denkt, het is nu met name aan de web-ontwikkelaars om er hun voordeel mee te doen. Probleem hierbij is wel dat documentatie op vele gebieden nog achterblijft, en dingen als vendor-prefixes bij CSS (-webkit-gradient in plaats van gradient) niet ideaal blijven. Deze zullen echter vanzelf verdwijnen zodra er meer CSS en HTML modules naar de CR (Candidate Recommendation) status gaan.

[ Voor 6% gewijzigd door Peter op 25-04-2010 23:06 ]


Acties:
  • 0 Henk 'm!

  • joostvanpinxten
  • Registratie: Maart 2007
  • Laatst online: 03-09 12:50
Peter schreef op zondag 25 april 2010 @ 22:57:
[...]
Browsers zijn duidelijk al verder dan je denkt, het is nu met name aan de web-ontwikkelaars om er hun voordeel mee te doen. Probleem hierbij is wel dat documentatie op vele gebieden nog achterblijft...
Inderdaad, de browservendors zijn echt al veel verder dan ik dacht! Goed om te weten, maar zoals je zegt, het is nog niet bepaald toegankelijk voor 'de massa' omdat het nog niet in alle browsers werkt, en zoiets dus nog geen zin heeft in productie te nemen...

Acties:
  • 0 Henk 'm!

  • YopY
  • Registratie: September 2003
  • Laatst online: 13-07 01:14
Zelfs zonder al die nieuwe technologieën denk ik dat het wel mogelijk is om een goeie, responsieve web applicatie te bouwen, door gewoon niet te scheutig requests af te vuren. Ik bedoel, leuk dat je live kunt editen met Wave, maar in het overgrote deel van de gevallen zul je dat niet gebruiken. In dat geval kun je ook gewoon je edits doen en die slechts eenmaal per X seconden (10 - 30?) opsturen (en nieuwe data ophalen).

Maar ik heb nog weinig ervaring met dat soort webapps (moet nodig verandering in komen), dus misschien zit ik uit m'n nek te lullen.

Chromium OS zal in ieder geval wel een flinke schop aan webapplicaties geven, zeker als het daarmee, en de technologieën die daaruit voortvloeien, 'echte' crossplatform applicaties promoot. Of het een succesvol OS zal worden is een andere vraag (ik denk het persoonlijk niet), maar dat zal de toekomst zelf uitwijzen.
Pagina: 1