BEEing va in pensione e rinasce con un nuovo progetto

BEEing è giunto al termine del proprio ciclo di vita.

In questi anni di duro lavoro e dopo oltre 65.000 righe di codice abbiamo maturato l’idea per una nuova versione del framework.

BEEing era nato per progetti di Enterprise 2.0, con logiche molto flessibili ma piuttosto influenzate dall’idea di base del progetto.

Da quell’esperienza e da un processo di reingegnerizzazione del codice durato diversi mesi è nato SmartForge, un Application Server che sfrutta al meglio l’architettura del suo predecessore, ma che anche la estende con nuove funzionalità legate alla gestione dei plug-in, con una parte di framework scritto in puro HTML5 e CSS3 e con il supporto nativo per MongoDB.

I primi plug-in ad essere rilasciati sono SmartCommerce (o Smart Forge Cart) e Smart Forge Chat (ancora in fase Alpha).

Smart Forge Cart è un progetto di e-commerce molto flessibile ed orientato all’integrazione con sistemi ERP esterni (es: SAP/R3) così come all’estensione ed alla personalizzazione di ogni singola funzionalità.

A breve sul nuovo sito troverete molte altre informazioni, tutorial, specifiche tecniche ed esempi di programmazione.

 

 

BEEing X

Clicca sull'immagine per ingrandire

Cos’è BEEing?

Dopo questo lungo periodo di refactoring credo sia doveroso rifare il punto zero.
La mappa concettuale che trovate qui sopra dovrebbe chiarire le idee a quanti si sentono ancora confusi.

BEEing X non è un’applicazione finita, ma una piattaforma costruita in Java su diverse librerie OpenSource con cui è possibile realizzare ogni tipo di implementazione.

Quali sono le funzionalità principali?

Queste sono le librerie che caratterizzano l’architettura di BEEing (che sono state armonizzate ed integrate ad arte).
Ne risulta un Application Server molto leggero e performante, facilmente estensibile ed accessibile mediante servizi esposti secondo le specifiche RESTful.
Lo scripting server side per produrre l’output HTML viene delegato a Velocity (che è facilmente espensibile secondo la logica a plug-in), mentre tutte le azioni client side sono implementate in JavaScript.
BEEing consente di partire nello sviluppo di soluzioni enterprise scalabili basate su Java con il minimo sforzo.

Dove trovo BEEing X?

BEEing X lo ritrovate su SourceForge: http://sourceforge.net/projects/beeingx/
Potete scaricare i sorgenti con un qualunque client SVN da questo indirizzo: https://beeingx.svn.sourceforge.net/svnroot/beeingx
Se invece volete solo curiosare qua e la nei sorgenti:

BEEing X scavalca BEEing 6

Lo sviluppo di BEEing 6 è terminato. Tuttavia l’esperienza maturata in questa nuova release mi ha fornito nuovi spunti per un’architettura ancora piu’ scalabile e flessibile.

Per questo motivo ho deciso di far pressione nel convincere il Team BEEing a non rilasciare ufficialmente la nuova release che era prevista per la fine del 2010.

Sarebbe stato come rilasciare un qualcosa di incompleto e destinato ad essere sostituito a breve.

Ecco allora affacciarsi il nuovo “BEEing X“. La differenza sostanziale sta nel fatto che il nuovo Application Server (completamente riscritto) sostituirà Glassfish in ogni sua parte ed offrirà agli sviluppatori una nuova architettura modulare a plug-in ed un framework di base estremamente flessibile e semplice da implementare.

Altrà novità è l’introduzione di Adobe Flex (abbiamo lasciato JavaFX che ancora non è pronto) come tecnologia per lo sviluppo dei moduli di interfaccia utente. Ecco perchè nel nuovo repository, oltre ai sorgenti Java, troverete i sorgenti ActionScript del framework BEEing Flex.

La nuova architettura del framework consente l’utilizzo di BEEing X per lo sviluppo di qualunque tipo di applicazione WEB con interfaccia utente avanzata (non solo E2.0). A breve pubblicheremo anche una sezione dedicata ai case history ed alle applicazioni commerciali implementate su base BEEing X.

Grazie a tutti.
Gian Angelo Geminiani
BEEing Team Leader

BEEing 6: road map e nuove funzionalità

1.0 Desktop App (The Drone) - Come strutturare l'interfaccia del drone

Nuova architettura

Come anticipato nel post precedente, BEEing 6 è stato dotato di una nuova architettura che lo rende ancora piu’ scalabile e performante.
Il modulo di accesso al database ed i servizi sono stati spostati in un nuovo application server, il Command Server.
Sono stati implementati nuovi servizi RESTful e JSON-RPC per consentire l’interazione del Command Server con  diverse soluzioni client, quali applicazioni PHP, AJAX/JSON, Flash, Native Java, .Net, Ruby, ecc.

Il nuovissimo modulo Command Server supporta inoltre la gestione di Add-On (o server side plug-in) per la personalizzazione e l’estensione delle funzionalità base. In questo modo l’aggiunta di ulteriori servizi RESTful o JSON-RPC risulta estremamente semplificata, così come il debug, il deploy e la manutenzione.

Ma le novità a livello tecnologico non si fermano qui. Negli ultimi mesi abbiamo progettato l’architettura per nuovi client (Mobile, TV e Desktop) che consentono un’esperienza utente di livello superiore. Il modulo Desktop, che sarà il primo ad essere rilasciato, porta tutte le funzionalità del web direttamente sul PC dell’utente. Login semplificato, drag & drop di files, maggiori performance, immediatezza dell’interfaccia sono solo alcuni dei vantaggi portati dalla nuova interfaccia.

La Web GUI attuale è stata spostata nel modulo Web GUI Application Server, che nella release finale girerà su Tomcat e richiederà molti meno parametri di configurazione per un deploy piu’ rapido e snello. Inoltre è possibile configurare un “cluster” di Web GUI Application Server per supportare carichi di lavoro molto consistenti.

Nuova filosofia e nuove funzionalità: le Panoramiche

Oltre ad aver riprogettato l’architettura e riscritto buona parte del codice sorgente, abbiamo ridisegnato anche alcuni aspetti funzionali.
L’introduzione di nuovi concetti e funzionalità, come ad esempio le “Panoramiche“, ha portato alla definizione di un nuovo paradigma.

Le Panoramiche saranno inizialmente tre ed offrono all’utente diverse prospettive su altrettante tipologie di risorse, ovvero Documenti, Persone e Tempo.
La Panoramica Documenti (o Panoramica Risorse) offre all’utente una serie di widgets mirati alla ricerca, alla valorizzazione, alla conservazione e alla categorizzazione dei documenti.
Le risorse gestite dalla Panoramica Documenti sono i link esterni, le immagini ed i video, i documenti del wiki, gli allegati (word, excel, power point, ecc..), le pagine dei siti web.
I widgets (elementi dell’interfaccia grafica) comprendono un componente per le ricerche, diversi tag cloud (tags personali, tags condivisi), un componente che raccoglie i segnalibro, ed altri per mostrare i documenti votati, quelli maggiormente graditi e quelli gestiti dai gruppi di appartenenza.

La Panoramica Persone (o Community) e la Panoramica Attività (gestione del tempo) hanno le medesime finalità della Panoramica Documenti (cioè la ricerca, la valorizzazione, la conservazione e la categorizzazione), ma applicate ognuna al proprio dominio (cioè Persone e Tempo).  Allo stesso modo anche le intefacce grafiche mantengono lo stesso aspetto.

Per chiarire meglio i nuovi concetti vi riporto come esempio la mappa concettuale della Panoramica Documenti.

1.1 Panoranica Risorse - Quali sono le caratteristiche della Panoramica Risorse

Tempi per il rilascio della nuova versione

L’analisi e lo sviluppo della nuova versione hanno richiesto piu’ tempo del previsto (colpa anche di alcuni problemi riscontrati sulla piattaforma JavaFX).
Le incertezze percepite a causa di una scarsa comunicazione e chiarezza da parte di Oracle sul futuro di JavaFX (ed alcuni bug importanti che affliggono il framework e l’IDE) ci hanno fatto optare per tecnologie alternative che tuttavia hanno richiesto alcuni mesi di studio e valutazione.

Per questo motivo il rilascio della versione definitiva di BEEing 6 è stato previsto per la fine del 2010.

A.A.A.A Designer di Interfacce Cercasi.

Se avete voglia e tempo per supportare BEEing con consigli e bozzetti, siete i benvenuti.

Nuova documentazione per BEEing

beeing_presentation

Eccoci finalmente pronti con un minimo di documentazione.
Abbiamo fatto questo sforzo :) in vista dell’International Forum on Enterprise 2.0.

I documenti sono due, una presentazione ed un opuscolo. Potete scaricarli da slideshare, oppure visionarli da questo post.

BEEing (Opuscolo)

BEEing (Presentazione)

Cos’è BEEing?

BEEing loginLa piattaforma

BEEing è una piattaforma java per lo sviluppo di soluzioni Enterprise 2.0, intranet ed extranet.
Lo sviluppo delle funzionalità base è molto dinamico e ad ogni release è possibile trovare nuove applicazioni (wiki, blog, microblogging, project management, crm, ecc..).
In futuro è possibile che alcuni moduli siano distribuiti come plug-in, e quindi non vengano integrati nel pacchetto base (es: il modulo di configurazione prodotto).
La distribuzione separata di alcuni plug-in specifici consente al modulo “CORE” di mantenere un peso ridotto e un minor numero di parametri di sistema.
Tutti i moduli ed i plug-in sono distribuiti completi di codice sorgente, compresi quelli di integrazione a sistemi proprietari (es: modulo per SAP/R3).
I moduli di integrazione a sistemi proprietari possono richiedere, per un corretto funzionamento,  la presenza di librerie di terze parti e delle relative licenze d’uso (non distribuite coi moduli BEEing)

Il framework di sviluppo è stato progettato con un’architettura modulare e basata sul concetto di plug-in.
La stratificazione del codice e dei package secondo una logica a “layer funzionali” consente una miglior manutenzione anche nel lungo periodo e favorisce lo sviluppo in team grazie ad una chiara e semplice suddivisione dei compiti.

I Moduli

Attualmente BEEing è composto da:

  • CORE: Contiene le classi base del framework e l’integrazione con alcune librerie open source (es: rome, Json, ZK, OpenJpa);
  • WEBAPP: E’ il cuore dell’application server e raggruppa in se il modulo wiki, il blog, la gestione utenti, la gestione dei profili, il datastore ed i componenti base per la gestione delle dashboard e dei widgets;
  • LIB_ADMIN: E’ un plug-in di sistema e contiene tutte le maschere e le logiche di amministrazione (variazione dei parametri di configurazione, definizione delle costanti di sitema, gestione delle lingue, gestione delle localizzazioni);
  • LIB_KNOL: Contiene l’interfaccia grafica del modulo wiki, del modulo gestione conoscenza e del modulo di gestione del datastore (per l’archiviazione dei file allegati);
  • LIB_BLOG: Contiene l’interfaccia grafica del modulo blog;
  • LIB_RSS: Contiene le logiche di conversione dei contenuti in formato RSS;
  • LIB_TRACKBACK: Modulo di gestione dei trackback;
  • PLG_CUSTOMER: Plug-in per il CRM (in fase alpha)
  • PLG_FLASHGATEWAY: Plug-in di integrazione con librerie Flash Remoting (Adobe Flash) per l’integrazione con Flash;
  • PLG_SAP/R3: Plug-in per l’integrazione con SAP/R3 (richiede librerie proprietarie SAP che non vengono distribuite con BEEing)

Come si sviluppa con BEEing

BEEing non è un’applicazione, ma un framework di sviluppo modulare.
Benchè le molte funzionalità base lo rendano del tutto simile ad una applicazione, ed in futuro lo sarà sempre piu’, BEEing nasce per essere integrato o per integrare sistemi esistenti. Grazie a BEEing potrete implementare soluzioni extranet/inranet molto avanzate, estendere l’interfaccia del vostro sistema ERP o integrarlo con sistemi di e-commerce o social networking, potete realizzare CRM o sistemi di configurazione prodotto facilmente integrabili con sistemi esistenti, così come estendere la vostra archiviazione documentale o implementarla partendo da zero (il datastore interno è compatibile JSR-000170).

Su BEEing si sviluppa in Java, Scripting Java, Scripting Velocity, XML, XUL.
Ma principalmente in Java.
L’architettura del sistema consente lo sviluppo di plug-in che possono essere vere e proprie applicazioni complete di database, maschere e menù, semplicemente integrabili alla WEBAPP.
Il deploy dei plug-in è completamente automatico ed il sistema integra i moduli esterni esattamente come accade per quelli nativi.
Non tutti i plug-in devono contenere obbligatoriamente elementi di interfaccia utente o database. E’ possibile integrare oggetti che il sistema caricherà come task schedulati o thread “one shot”, per compiere le piu’ disparate attività (backup, sincronizzazione database, controllo risorse di sistema, monitoraggio e alert, ecc..) .