Flash è uno dei software più utilizzati per lo sviluppo di animazioni e giochi da distribuire sul web; ciò è dovuto alla facilità di animazione, alle sempre maggiori potenzialità grafiche e di programmazione e a un player relativamente leggero e diffuso per moltissime piattaforme.
Un settore dove Flash non è molto utilizzato è quello delle applicazioni multi-utente; esistono alcune chat realizzate in Flash, ma sono in minoranza e solitamente non sono "in tempo reale" ma sfruttano la scrittura/lettura di database o file di testo.
Vi sono però dei software che permettono la realizzazione di applicazioni Flash multiutente con un'interazione pressoché immediata, praticamente in tempo reale, quindi ideale per esempio per creare giochi o comunque progetti che richiedano immediatezza e non prevedano tempi di attesa, seppur minimi.
Si tratta solitamente di pacchetti software da installare sul server (questo purtroppo ne limita notevolmente la diffusione) che fanno da "ponte" tra i vari pc che visualizzano il filmato SWF.
Il primo software di un certo livello per quanto riguarda la multi-utenza in Flash è stato Flash Communication Server, rilasciato dalla Macromedia (ora Adobe) ai tempi di Flash MX.
Questo software si proponeva di permettere l'interazione tra filmati SWF su diversi PC, basandosi sempre su linguaggio Actionscript (anche se ovviamente con nuovi comandi rispetto a quelli "classici" di Flash Mx) ed è stato anche il software con cui è stato introdotto il formato FLV, che allora era utilizzabile solo per gli streaming live con Flash Communication Server (da Flash Mx 2004 è diventato invece utilizzabile anche con il solo Flash).
Ora il software ha raggiunto la seconda versione, ha cambiato nome (Flash Media Server 2) e casa produttrice (Adobe), ma nel frattempo sono nati altri software (più o meno gratuiti) con feature simili.
Svantaggi dei tool Flash lato server
Iniziamo a valutare gli svantaggi comuni a tutti questi strumenti. Spesso non si tratta di difetti relativi al software in se, ma sono comunque i motivi che hanno impedito finora un ampio diffondersi di queste tecnologie.
Installazione sul server
Il problema principale è la necessità di avere lo strumento installato sul server per poterlo usare sul web.
Sono pochi i provider che prevedano piani di hosting con Flash Media Server e spesso il prezzo per una configurazione adeguata è piuttosto elevato.
Ancor meno sono i provider a offrire soluzioni "alternative" come, per esempio, Smart Fox Server o Red5.
Nel caso in cui si voglia installare il programma su un proprio server è necessario affrontare il problema dei costi.
Questo è un difetto solo di alcuni programmi, perché, per esempio, Red5 è attualmente gratuito e altri hanno un costo abbastanza abbordabile, ma soluzioni come Flash Media Server risultano più costose (è possibile personalizzare le caratteristiche e avere prezzi differenti).
Necessità di imparare nuovi comandi
Il dover imparare nuovi comandi (o nuovi linguaggi) purtroppo fa sì che molti sviluppatori non riescano a provare questi software; alcuni tool mettono a disposizione dei file di esempio e dei componenti per facilitare lo sviluppo, ma per la creazione di progetti medio-complessi è comunque necessario approfondire nuovi comandi, certo è un passaggio che si rende sempre necessario quando si utilizza una tecnologia nuova, ma spesso non esiste un adeguata documentazione.
Carenza di risorse
Ricollegandosi al punto precedente, bisogna segnalare che, oltre alla documentazione, spesso manca una comunità di supporto su cui fare affidamento; la fortuna di molti progetti, magari del tutto privi di guide ufficiali, è nella comunità di utenti che si aiuta e si scambia suggerimenti.
Per alcune di queste tecnologie non ci sono forum ufficiali e quindi l'apprendimento risulta più difficile.
Va segnalato che Flash Media Server offre una guida completa, mentre Smart Fox Server ha una buona quantità di esempi, componenti e tutorial.
Più scadenti, sotto questo punto di vista, Electro Server e Red 5 (che tuttavia è giustificato dal fatto di essere un progetto nuovo e in costante sviluppo).
Difficoltà nel testare i progetti
Per quanto ci siano versioni gratuite per gli sviluppatori (sia Flash Media Server che Smart Fox Server offrono una free edition, mentre Red5 è totalmente gratuito), la difficoltà nel trovare un servizio di hosting rende conseguentemente difficili anche i test; le versioni per gli sviluppatori dei tool commerciali sono spesso limitate a 2 o 5 connessioni contemporanee (10 in rari casi), per cui, con esse, risulta quasi impossibile testare il proprio progetto in condizioni di traffico intenso, aspetto molto importante specialmente in lavori che includano streaming audio/video.
Questi sono i principali problemi che affliggono, in maniera più o meno grave, tutti i tool lato server per Flash.
Chiaramente molti sono i lati positivi, ma è importante conoscere le difficoltà in cui ci si può imbattere provando tali tecnologie.
Vantaggi dei tool Flash lato server
Analizziamo ora i principali vantaggi "generali" dei software lato server, che sono in linea di massima validi per tutti i tool appartenenti a questa categoria.
Eventi in tempo reale
Il vantaggio principale è ovviamente la possibilità di far "reagire" la nostra applicazione in tempo reale su più pc; esistono, per esempio, diverse chat in Flash basate su PHP/MySQL, ma generalmente vanno a scrivere e leggere il database (o il file di testo) a intervalli di tempo prestabiliti.
Con i software lato server, invece, la comunicazione può essere molto più immediata, dato che i dati passano direttamente dall'swf che li invia al server a poi a tutti gli altri swf connessi.
Trasmissione live di audio/video
Mentre le soluzioni Flash/PHP, multiutente, solitamente sono limitate all'invio di dati testuali, con Flash Media Server e affini è possibile mandare anche il segnale audio/video.
In particolare, per Flash Media Server, sarà possibile trasmettere interi eventi live, anche con telecamere professionali, grazie all'Adobe Media Encoder (ancora in fase di sviluppo al momento in cui scriviamo), che a quanto pare consentirà una vera e propria diretta continua di alto livello.
Esistono alcune videochat, create prevalentemente con Flash Media Server, che permettono anche la visione/ascolto di più utenti in contemporanea.
Esperienze personalizzate
Per quanto sia semplice inviare e ricevere dati, si possono comunque lasciare delle parti del progetto relative solo all'swf locale dell'utente, per esempio, per la personalizzazione dell'interfaccia. In questo modo ogni utente potrà avere l'applicazione con la skin che preferisce, senza che nessun altro utente la veda, ma al tempo stesso potrà scambiare con le altre persone connesse tutte le informazioni che desidera.
Si uniscono quindi le potenzialità grafiche e di personalizzazione di Flash ai vantaggi dell'esperienza multiutente.
Alta compatibilità
Tranne rare eccezioni, i software hanno una compatibilità decisamente elevata con i sistemi operativi, quindi è piuttosto difficile che non funzionino a dovere sul proprio server. È anche vero che, tranne nel caso in cui si abbia il proprio server, difficilmente si installerà il software dopo l'acquisto dello spazio web, ma al contrario si acquisterà lo spazio in funzione del software scelto.
Inoltre, quasi tutti gli strumenti danno la possibilità di sviluppare comandi ed estensioni personalizzate per aumentare le loro potenzialità, così da poter rendere l'applicazione maggiormente adatta alle proprie esigenze.
Nella seconda parte di questo articolo, vediamo quali sono le caratteristiche di questi software, valutando i pro e i contro di ognuno di essi.
Flash Media Server 2
Partiamo dal software "principe", realizzato dalla stessa casa madre di Flash:
Pro
- Utilizza il linguaggio Actionscript
- Installazioni personalizzabili
- Componenti
- Documentazione e supporto
- Developer edition gratuita
- Aggiornato
Contro
- Costoso
Smart Fox Server
Pro
- Versioni gratuite
- Aggiornato
- Leggero http://www.smartfoxserver.com/products/benchmarks.htm)
- Ben documentato
- Strumenti di amministrazione
Contro
- Carenza video/audio
- Difficilmente da trovare
Red5
Pro
- Gratuito
- Versatile
- Aggiornato
- Ben documentato
Contro
- Richiede un server proprio
- Nessun componente
- Incertezza intorno al progetto
Altri software
Esistono diversi altri software, per esempio Electro Server o ulteriori software, ma si tratta per lo più di software focalizzati su una particolare caratteristica (solitamente lo sviluppo di chat) e poco adatti a progetti medio complessi. In molti casi abbiamo software non aggiornati e che quindi risultano obsoleti a livello di performance. Electro Server era tra i programmi di punta, ma lo sviluppo è ormai fermo da molti mesi e di fatto è rimasto molto indietro rispetto ai software di cui abbiamo parlato.
Conclusioni
I pro e i contro, che abbiamo accennato, sono i più rilevanti; ogni software nasconde più o meno pecche e soprattutto si rivela più o meno adatto a seconda del progetto in cui lo si utilizza.
Flash Media Server e Smart Fox Server sono stati già sfruttati in una quantità di progetti, anche complessi, piuttosto considerevole e con ottimi risultati (Red5 essendo in sviluppo sotto questo punto di vista è più carente).
Probabilmente, per lo streaming video, il migliore resta Flash Media Server, che ha maggiori possibilità di configurazione (connessioni simultanee, banda complessiva, banda per il video, etc) rispetto agli altri strumenti e il recente Adobe Live Encoder (attualmente ancora in beta) promette novità nel settore dei video sul web.
Uno degli aspetti più graditi è sicuramente la disponibilità di versioni gratuite: gli sviluppatori potranno testare a fondo le potenzialità di questi software senza limitazioni e apprendere, a fondo, tutte le potenzialità, prima di decidere quale programma acquistare per i progetti lavorativi, anche se al momento lo sviluppo di applicazioni multiutente con Flash sembra un campo che richiede investimenti medio-alti anche solo a livello di hosting, fatto che purtroppo rallenta la diffusione di questi lavori.