CFWebForge.com
 
 
   
 
Home      Service      Boeken      Artikelen      Contact     
  De praktijk  
     
   
     
  SharePoint 2010
Wijzigen van lijst- en bibliotheekitems in SharePoint 2010 ---

't Kan allemaal stukken handiger dan u denkt! Meer...
 
     
  Nieuws  
     
   
     
  Artikel over SharePoint 2010 - Sitestatistieken gedropt op http://tinyurl.com/3d5f4gu  
     
  Handboek SharePoint 2010 op de 7e plaats in de * top 15 * best verkochte boeken 2011 bij Computerboek.nl  
 
     
  Wat is Flash Remoting?  
 
 
     
 
Flash Remoting is de laatste en meest actuele toevoeging aan Flash en Macromedia's Studio 2004.

Met het verschijnen van Flash MX, Flash MX 2004 (september 2003) en ColdFusion MX zorgt Flash Remoting voor een conceptuele doorbraak in bestaande client/server webapplicaties.

   
Anders dan de gehanteerde standaard in webapplicaties zorgt Remoting voor een technologie waarmee u webapplicaties kunt ontwikkelen die - qua verwerkingssnelheid - sterker lijken op desktop applicaties dan de 'klik-en-wacht' HTML pagina's tot nu toe…

(In 'Leer je zelf Professioneel Macromedia ColdFusion MX' hebben we een apart hoofdstuk gewijd aan de integratie tussen ColdFusion MX en Flash Remoting. Tegelijk worden daarin twee Flash voorbeelden gegeven, waarmee u direct met Remoting aan de slag kunt...
Hier alvast een eerste 'verkenning'...)

Wat is Flash Remoting?

Flash Remoting MX maakt op een gerafineerde manier gegevensuitwisseling mogelijk tussen server en client, zonder de snelheidsbeperking en handmatige serialisatie/deserialisatie die kenmerkend was (en nog steeds is) in XML, Active-X en de oudere versies van Flash.

In een 'traditionele' HTML applicatie is een typische gebruikerservaring de 'klik-en-wacht' procedure. Het zal u bekend voor komen:

  1. U komt op een site. U wilt iets opzoeken en voert in een zoekveld een zoekwoord in. U klikt op de 'Submit' knop om de zoekactie te starten.
  2. U wacht op een respons van de server… tot het resultaat van de zoekopdracht door uw browser is verwerkt ('gerenderd') en op uw scherm verschijnt.
  3. Wilt u de zoekopdracht verfijnen of bestaat het resultaat uit meerdere pagina's dan geeft u een verfijning van de zoekopdracht - of klikt op een link voor de vervolgpagina.
  4. U wacht opnieuw…... tot de pagina - compleet met lay-out en images - in uw browser is ingeladen en gerenderd.

Deze procedure is op dit moment de gehanteerde (en hoe traag het ook gaat: geaccepteerde) standaard binnen client/server webapplicaties (zie figuur 1).

In tegenstelling tot het 'klik-en-wacht' proces is Flash Remoting gebaseerd op één enkele interface, die één keer ingeladen wordt voor de applicatie. Uitwisseling van gegevens heeft enkel nog betrekking op uitwisseling van data en niet meer op GUI-elementen (zie figuur 2).

 

Figuur 1 'Blok' met GUI, lay-out, HTML en gegevens wordt 'over de volle breedte'
steeds opnieuw teruggestuurd naar de aanvragende browser

 

Figuur 2 Flash Remoting:
Uitsluitend data (gegevens) - en dan ook nog gecomprimeerd tot 'smalle breedte' (AMF) -
wordt uitgewisseld. GUI en lay-out op de Client wordt hergebruikt.

 

Daarmee komt werkelijke Client/Server communicatie via Internet binnen handbereik. En verdwijnt de 'klik-en-wacht' HTML. Flash MX dient als 'front-end' voor uw webapplicatie. De enige uitwisseling die nog tussen Client en Server plaats vindt, heeft betrekking op de subset van gegevens.

Geeft u een zoekopdracht in een Flash applicatie die gebruik maakt van Remoting, dan wordt dit verzoek gecomprimeerd in een ActionScriptpakket (ActionScript Message Format - AMF), naar de server gestuurd, verwerkt, als AMF weer teruggestuurd en in de Flash applicatie verwerkt.
Weg ook met het (gecachede) her-renderen en opnieuw opbouwen van het beeldscherm. Bovendien is het mogelijk met Flash MX gegevens op de achtergrond te laden, zodat het direct beschikbaar is wanneer u dit nodig heeft.

Waaruit bestaat Flash Remoting?

Flash Remoting bestaat uit een gebruikersinterface - applicatie GUI - gebouwd in Flash, waarin via ActionScript contact gelegd wordt met een applicatieserver. Flash Remoting software, geïnstalleerd op de applicatieserver, wekt als 'gateway' en interface tussen enerzijds de Flash Player - waarin uw applicatie draait - en anderzijds de server, die commando's van de gebruiker uitvoert. Flash Remoting kunt u dus min of meer beschouwen als toegangspoort tot de applicatieserver die verzoeken vanuit uw Flash applicaties vertaalt naar instructies die de server kan interpreteren.

Om met Flash Remoting te beginnen heeft u de Flash Remoting Components nodig. ColdFusion MX 6.1 beschikt standaard over deze functionaliteit, net zoals JRun. En wanneer u gebruik maakt van andere webservers: Remoting is er voor ASP.Net (IIS), J2EE servers, PHP(Apache) en Perl. Daarmee kunnen Flash Remoting applicaties ontwikkeld worden op zowel ColdFusion, ASP.Net, J2EE als PHP platforms, samen met de databases die deze ondersteunen: Microsoft SQL, Oracle, DB2, Access, PostgreSQL en MySQL.

Flash Remoting Components kunt u downloaden vanaf  http://www.macromedia.com/software/flashremoting/downloads/components/

Hoe werkt Flash Remoting?

De Remoting gateway, geïnstalleerd op uw applicatieserver (CFMX 6.1 beschikt al standaard over deze service) dient als interface tussen de Flash Player en de applicatieserver.
Remoting gateway heeft 3 hoofdtaken:

  • afhandelen van verzoeken van de Flash Player
  • vertalen van verzoeken en data (vanuit AMF) naar serverside commando's
  • vertalen van serverresponses terug naar AMF

De communicatie tussen de Flash Player en Flash Remoting gateway verloopt via HTTP. Die communicatie wordt normaal gesproken steeds aan clientside geïnitieerd vanuit de Flash Player - i.c. aan de hand van de opdrachten die de gebruiker, via de GUI, aan de Flash Player doorgeeft.

Omdat HTTP een statusloos protocol is, onderhoud de Flash Remoting gateway automatisch de status van verzoeken door middel van cookies en headers. Op deze manier ontstaat een 'virtuele', 'vaste' verbinding tussen server en client.

Omdat uitwisseling gebaseerd is op HTTP-protocol werkt Flash Remoting ook met encrypted code zoals HTTPS en SSL.

Uitwisseling van gegevens

De uitwisseling van gegevens, tussen client en server, vindt plaats in AMF-formaat.
AMF (ActionScript Message Format) is een binair formaat, ontwikkeld door Macromedia, om een lichtgewicht, efficiënt medium in handen te krijgen waarmee gegevens snel versleuteld, getransporteerd en weer ontsleutelt kunnen worden.

Om met Flash Remoting te werken is het niet noodzakelijk AMF te 'kennen'. Versleuteling gebeurt grotendeels op de achtergrond van de Flash applicatie en de applicatieserver, zonder dat u daar als programmeur enige kennis voor hoeft te bezitten. Praktisch wordt dit AMF-pakketje vanuit de Flash applicatie verzonden met het al-oude POST commando.

Waarom AMF en niet XML of SOAP?
Een terechte vraag omdat SOAP juist speciaal ontwikkeld is om als 'lichtgewicht' protocol te dienen. Bovendien werkt SOAP met HTTP en HTTPS! Dat Macromedia toch voor een eigen formaat gekozen heeft ligt aan het feit dat SOAP in wezen geïmplementeerd wordt als XML - en daarom nogal wollig en omvangrijk is in vergelijking met het binaire AMF formaat. Zelfs als SOAP-berichten gecomprimeerd worden, zijn deze nog steeds omvangrijker dan AMF-bestanden!

En waarom geen XML?
Omdat XML veronderstelt dat u een aparte codelaag schrijft, waarin verzoeken of data ge(de)serialiseerd kunnen worden. Een codelaag voor zowel aan de client- als aan de server-zijde van uw applicatie.

AMF daarentegen vraagt geen (extra!) handmatige (de)serialisatie en maakt mogelijk dat data zonder tussenliggende lagen tussen server en Flash verzonden en verwerkt worden.

Session Management

Omdat HTTP een statusloos protocol is en elk verzoek aan de server beschouwd wordt als afkomstig van een 'nieuwe' gebruiker, hebben webprogrammeurs nogal eens de handen vol aan het creëren en vasthouden van sessies om gegevensoverdracht te personaliseren. Session management is, naast webprogrammeren, in dit opzicht vaak een kunst apart omdat er geen standaard oplossingen voor handen zijn.

Session management wordt bij Flash Remoting echter min of meer onzichtbaar voor de programmeur afgehandeld. Sessie-informatie wordt met ieder AMF-pakket verzonden, zonder dat u als programmeur handmatige code voor sessionmanagement hoeft te schrijven.

Hoe ziet een Flash Remoting applicatie er dan uit?
In het algemeen volgen Flash applicaties een n-tiered architectuur:

De Flash Player vormt daarbij aan clientside de presentatielaag: de gebruikersinterface met knoppen, buttons etc., zoals u die kent uit andere 'desktop' applicaties.
De Flash Remoting gateway, die bovenop de applicatieserver loopt, vormt de middel(verwerkings)laag.
De Applicatieserver tenslotte vormt de datalaag: de toegang tot databases (SQL Server, DB2, MySQL, Oracle etc.), XML bestanden, kommagescheiden bestanden etc.).

De uitwisseling gebeurt via AMF.

Is Flash Remoting moeilijk?

Flash is traditioneel een omgeving voor webontwerpers met functionaliteit voor tekenen, programmeren, animatie, geluid, images en video. Voor Flash Remoting is met name kennis van ActionScript nodig (hoewel Flash MX aanzienlijk minder 'hersengymnastiek' vraagt dan de vroegere versies van Flash (Flash 4/5)).

Flash Remoting is niet complex, maar het helpt wanneer u uw weg in Flash al kent. Bent u bekend met andere ontwikkelomgevingen (Delphi, Visual Basic), dan zal Flash vertrouwd overkomen. Flash MX heeft dezelfde 'Form-gebaseerde' visuele 'klik-en-sleep' benadering als Delphi/Visual Basic en bevat (herbruikbare) standaard componenten (a la Delphi) die u zonder enige programmeerkennis direct in uw Flash applicatie kunt inzetten.

Bent u onbekend met ActionScript: het maakt gebruik van dezelfde programmeerconcepten - lusjes, variabelen en if-else statements - die u ook in CFML tegenkomt.

Verandert ActionScript inhoudelijk, wanneer u gebruik maakt van een andere applicatieserver?
Nee. Flash ActionScript is grotendeels onafhankelijk van de serverarchitectuur waarop het draait: of dit nu ColdFusion Server, ASP.Net/IIS, J2EE, JRun of PHP/Apache is.

Nieuwsgierig geworden naar Flash Remoting?

In 'Leer je zelf Professioneel Macromedia ColdFusion MX' is een apart hoofdstuk gewijd aan de integratie tussen ColdFusion MX en Flash Remoting. Tegelijk worden daarin twee voorbeelden meegegeven waarmee u direct met Flash Remoting aan de slag kunt...

Voor het overige is op dit moment alleen nog engelstalig referentiemateriaal beschikbaar. Een overzicht daarvan treft u hier.

 

 
   
  copyright © Peter van der Woude