Girando per il Web sempre meno spesso leggo notizie, voci di corridoio, post su forum riguardo a Macromedia Central ed il suo futuro dal rilascio della versione 1.5 (e quando si comincia a parlare poco di una tecnologia sono 2 le cose: o sta morendo o si sta trasformando in qualcosa di più grande).
Per quanto riguarda Central è difficile dare un pronostico tenendo conto delle 2 alternative. A me piace pensare che Macromedia/Adobe non permetta che una tecnologia del genere scompaia, sopratutto quando eravamo ad un passo dal poter avere una piattaforma per creare Rich Internet Application anche per il desktop andando così ad aggiungere l'ultimo anello mancante alla catena. Del resto esempi e accordi che la casa di San Francisco sta stringendo danno l'idea che stia puntando più in alto.
L'esperienza di Central è comunque servita al mercato, agli sviluppatori e a Macromedia stessa; se oggi troviamo una classe Actionscript in Flash 8 per l'upload ed il download di file da remoto lo dobbiamo sicuramente a Central!
Ho voluto soffermarmi a scrivere questo articolo per cercare di fare un po' di luce e per cercare di rinnovare l'interesse per un prodotto che ancora oggi ha da offrire nel mercato delle applicazioni "occasionally-connected".
Central nasce dalla seguente considerazione: la crescita esponenziale delle informazioni che sono reperibili su Internet rende sempre più arduo il compito per un utente del Web di scovare e organizzare i dati che si vogliono cercare.
Macromedia Central fornisce quindi uno strumento per distribuire le informazioni in una forma molto più strutturata senza dover ricorrere all'uso di browser o di motori di ricerca e senza dover essere necessariamente collegati ad Internet per poter usufruire dei dati raccolti.
Il software espone infatti un interfaccia utente personalizzata che una volta scaricata si avvale della presenza del Macromedia Flash Player sui client (per avere informazioni aggiornate sulla penetrazione del Flash player nel mondo visitate questa pagina) per accedere, filtrare, interpretare e condividere i contenuti tra varie applicazioni. E queste funzionalità possono funzionare indipendentemente dalla presenza di un collegamento attivo ad Internet.
Da un punto di vista dello sviluppo invece, Central rappresenta una infrastruttura per creare, distribuire e vendere applicazioni utilizzando l'ambiente di sviluppo di Flash Mx e Mx 2004 ed il linguaggio Actionscript.
Per l'utente finale invece basterà scaricare il software Central (Runtime Enviroment) che installandosi direttamente sul proprio pc consente di accedere e di scaricare le diverse applicazioni disponibili e di usufruirne in qualsiasi momento direttamente sul proprio desktop. La figura 1.0 mostra l'icona sempre attiva nella task bar di Windows, mentre la figura 2 mostra l'ambiente di Central installato sul desktop.
Cerchiamo di portare un esempio pratico che all'interno di uno scenario reale può meglio lasciar intendere il potenziale nascosto di un software come Central. Sarà capitato a tutti di usufruire di uno degli innumerevoli servizi che ci aggiornano in tempo reale sulle distribuzioni cinematografiche nelle sale della nostra città. Sul Web esistono molti siti del genere e basta collegarsi ad uno di loro per lanciare una ricerca, inserire la propria città, indicare il film o la sala del cinema per avere in pochi secondi una dettagliata risposta alle nostre richieste di informazioni.
Supponiamo di compiere questa operazione abitualmente ogni venerdì pomeriggio, giornata in cui di solito (almeno a Roma) vengono cambiati i palinsesti cinematografici. Quindi ogni venerdì ci colleghiamo, vediamo gli aggiornamenti dei vari film in uscita, leggiamo qualche recensione di film, vediamo qualche trailer, ci informiamo sugli orari. Tutto sembra funzionare perfettamente. Ma quanto sarebbe più comodo invece avere quelle informazioni sempre disponibili sul nostro desktop, pronte per essere lette in qualsiasi momento indipendentemente dalla presenza del collegamento ad Internet, magari consultando qualche recensione quando viaggiamo in treno con il nostro portatile e ottenendo informazioni sulle sale cinematografiche della città in cui ci stiamo recando. E magari essere avvisati di eventuali aggiornamenti al servizio, nuove recensioni, film in uscita, cambio dei palinsesti solo quando esse avvengono e quando colleghiamo il nostro devices ad Internet? Sarebbe sicuramente stupendo!
Beh, tutto questo è possibile con Central. E per dirla tutta il servizio già esiste in America (tanto per cambiare:))
Central permette di creare un nuovo Internet, dove sono le informazioni che finiscono all'utente senza doversi più preoccupare di andarle a cercare.
Un nuovo modo di concepire le Web Application
La Macromedia sta da anni spendendo comunicazioni e indirizzando la propria politica verso un miglioramento della User Experience delle applicazioni web attraverso il concetto di Rich Internet Application. Le RIA fondono quello che è il meglio del Web con il meglio delle applicazioni desktop creando esperienze sulla fruzione delle Web Applications più intuitive, funzionali e user friendly.
La tabella qui sotto, che avrete sicuramente visto se frequentate gli appuntamenti Macromedia (la usiamo praticamente ad ogni seminario, workshop) riassume i concetti e le funzionalità di una Rich Internet Application:
Web |
Desktop |
Rich Internet Apps |
|
Instant Deployment |
v |
v |
|
Cross-platform |
v |
v |
|
Progressive Download |
v |
v |
|
Magazine-like Layout |
v |
v |
|
Multimedia |
v |
v |
|
Standards-based: XML, SOAP, J2EE |
v |
v |
|
Interactive UI – Validation, Formatting |
v |
v |
|
Fast Response Times (No Page Refresh) |
v |
v |
|
Drag and Drop |
v |
v |
|
Scalable |
v |
v |
|
Works Offline and Online |
v |
v |
|
Traditional N-tier Development Model |
v |
v |
|
Easy to Add Communications Features |
v |
Detto questo possiamo dire che nello sviluppo di una RIA, Central significa:
- Applicazioni che risiedono sul desktop e comunicazioni in tempo reale: usando i Central Agents è possibile eseguire l'applicazione in un processo di background sul desktop del client, avvisare l'utente di nuovi aggiornamenti solo quando disponibili e di scaricarli direttamente sul proprio client per poterne usufruire anche quando si è off-line.
- Applicazioni multi-piattaforma e per mobile devices: appoggiandosi al Flash Player l'applicazione Central non ha problemi relativi alle compatibilità tra browser e sistemi operativi, in quanto essa gira all'interno dell'ambiente del programma, ed è possibile fruirne anche su dispositivi mobili (i PDA hanno la loro versione del Flash player)
- Media e streaming: usufruendo dei vantaggi del Flash Player, le applicazioni Central possono gestire differenti media al loro interno: file audio e video in differenti formati, streaming audio e video (mp3 e FLV) con l'integrazione di Flash Communication Server
- WebServices e XML: è possibile usare fonti dati esterne attraverso la consumazione di Webservices o di documenti XML, andando ad interfacciarsi con la parte business logic già esistente
Applicazioni Central: il punto di vista dei Flash Developer
Ho accennato prima che, presa visione del fatto che Central si appoggia alle funzionalità del Flash Player, per sviluppare un applicazione che giri sotto questo ambiente è sufficiente conoscere l'ide di Flash e il suo linguaggio di programmazione. Infatti basta disporre dell'ambiente di sviluppo di Flash per poter creare, sviluppare e distribuire questo tipo di progetti, avvalendosi di un set di Components appositamente costruiti per il runtime di Central (Central Components) e gratuitamente scaricabili insieme alle SDK del prodotto (Central SDK)
Infatti per potersi mettere a sviluppare in Central basta seguire le seguenti semplici operazioni :
- Scaricare l'SDK che comprendono i UI Central Components, il Debug panel per testare le applicazioni, le classi Actionscript per interagire con i dati, le applicazioni di esempio e il set completo di API con la relativa documentazione
- Studiare l'ide e le API di Central : innumerevoli risorse online esistono sull'argomento, una fra tutte la sessione DevNet di Macromedia
- Rilascio e distribuzione delle applicazioni : per poter distribuire le applicazioni bisogna ottenere un Product ID, accettare i license agreement, scegliere un Vendor ID (se la nostra applicazione sarà a pagamento) e acquistare un Capacity Pack.
Riassumendo i vantaggi nello sviluppare un progetto in Central :
- usare le conoscenze dell'ambiente di sviluppo di Flash e Actionscript
- possibilità di creare applicazioni innovative e all'avanguardia
- interfacciarsi e consumare web services in maniera semplice e veloce
- acquisire e salvare le informazioni in locale direttamente sul client
- fornire aggiornamenti in tempo reale e solo quando avvengono in remoto, senza far dover più preoccupare l'utente di andarsi a cercare l'informazione.
- distribuire e vendere le proprie applicazioni all'intera comunità di utenti che dispongono del client di Central, senza preoccuparsi dell'attività commerciale
La nuova versione di Central 1.5 : tra mito e realtà
Molte sono le caratteristiche del prodotto e difficile è poter fare una panoramica esaustiva in poche righe di articolo. Ho dovuto quindi fare la difficile scelta di riassumere e concentrarmi sulle features che ho ritenuto davvero innovative per un prodotto come Central. Spero di non rischiare di sminuirlo!
Feature #1 : Central AOL/ICQ SDK
Central espone delle API che permettono l'integrazione con prodotti di Istant Messaging quali AOL e ICQ. In particolare questo significa che gli sviluppatori sono in grado di accedere, programmare e personalizzare due dei più vecchi cosiddetti "social software" attualmente usati dalla comunità di utenti internet. Sicuramente questa rappresenta una grande novità e che spalanca le porte ad un nuovo tipo di applicazioni che possono ereditare la comunità di questi due grandi servizi. Se volete approfondire l'argomento dei "social software" consiglio questo interessante articolo :
Are You Ready for Social Software?
Feature #2 : pieno supporto al Flash Player 8 e ad Actionscript 2.0
La versione di Central è compatibile con il Flash Player 8 ed erediterà quindi tutte le sue performance e caratteristiche. La tabella qui sotto elenca per esempio alcune delle features supportate :
High Performance Media | Pervasive | Usability & Workflow Improvements |
ID3 Version 2 Support | Automatic Notification & Update | Array Sorting API Enhancement |
Movie Clip Depth Management | Custom Context Menu | |
MovieClipLoader API | ECMA-262 Strict Mode Compliance | Exception Handling |
PrintJob Object | Virtual Root | Hyperlink Context Menu Support |
Small Text Support | Web Services/SOAP Library | Mouse Wheel Support |
Streaming FLV over HTTP | Runtime Shared Library Improvements | |
Text Flow Around Images | Exact Domain Matching | |
Text Metrics | Cross Domain Policy Files | |
Text Style Sheets (CSS) | HTTP access to HTTPS movies |
Ulteriori informazioni riguardo a questo argomento sono reperibili direttamente dal sito di Macromedia, nella sezione Flash Player 8 e nella sezione DevNet di Macromedia.
Gli sviluppatori saranno invece lieti di sapere che si potranno usare le nuove specifiche di Actionscript V2 e quindi dello standard ECMA 262, proposta 4. Sulle novità delle versione 2 di Actionscript è stato scritto molto, mi limito quindi a darvi dei riferimenti online :
Actionscript 2.0 Overview (Macromedia DevNet)
ECMA 262 Proposal 4
Introduction to ActionScript 2.0 (Macromedia DevNet)
ActionScript 2.0 Language Details (Macromedia DevNet)
An ActionScript 2.0 Primer for ActionScript 1.0 Folk (Flash-mx.com)
Ingenium Flash Tutorial (Macromedia User Group)
Feature #3 : File Upload e Download
Con Central e dalla versione 8 anche con Flash è possibile attraverso delle nuove API leggere e scrivere file sulla macchina client. Questa era effettivamente uno scoglio nella vecchia versione del programma che permetteva solo di salvare dati in forma semplice attraverso l'uso di shared object. Evidentemente sono state accolte le richieste degli utenti da parte di MM.
Feature #4 : miglioramento delle performance e della gestione della memoria
Si sa che con le prime versioni dei programmi non possiamo purtroppo (lo dico in tono rassegnato ma bisogna essere reali) pretendere le migliori performance da parte del client. Come accade per il Flash Player e di recente con il rilascio della versione 8 di Flash con le nuove versioni vengono risolti problemi legati alle performance in Runtime e alla gestione della memoria sul client. Anche Central soffriva un po' in questo lato ma passi da giganti sul fronte delle prestazioni sono stati fatti. È prevista anche una parte di miglioramenti relativi al Network Detection, piccola nota dolente dell'attuale versione, che ogni tanto "svalvola" sul riconoscimento della presenza di un collegamento attivo.
Feature #5 : integrazione con il Flash Authoring
Anche se è un po' la pecca di Central la Macromedia non ha investito molto in Flash8 per cercare di migliorare il supporto allo sviluppo di applicazioni con Central magari con degli strumenti integrati nell'IDE di Flash che rimane comunque l'unico software per lo sviluppo di applicazioni in Central (anche se ora possiamo scrivere le classi AS V2 con qualsiasi editor :) ).
Feature #6 : integrazione con Flex e Flash Communication server
La funzionalità esiste ma ancora si è visto poco in giro, se non a livello sperimentale. Central rende possibile integrare applicazioni sviluppate con Macromedia Flex, il Presentation server che rendirizza Rich Internet Application scritte in MXML (linguaggio proprietario in XML) e Actionscript . Questo permette di poter integrare la nostra Central Application in complessi progetti sviluppati sotto J2EE o Coldfusion e non dovendoci più preoccupare del visual layout dell'applicazione.
Il supporto è valido anche per il server di Macromedia per creare applicazioni multi-utente il Flash Communication Server di cui stiamo aspettando il rilascio della nuova versione!
Spero che questa piccola e breve panoramica su Macromedia Central abbia solleticato i vostri appetiti di sviluppatori e che magari possiate trarre beneficio da questa tecnologia, che anche se non molto affermata e supportata può rispondere a delle esigenze di una fetta di applicazioni che altrimenti difficilmente potrebbero essere sviluppate.