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:

Macchina VMWare preconfigurata.

Introduzione

Questo breve manuale definisce la procedura per scaricare ed installare una macchina virtuale preconfigurata per l’utilizzo di BEEing.

Download e scompattamento BEEing

Per prima cosa è necessario effettuare il download dei file necessari all’installazione della macchina virtuale.
All’indirizzo http://sourceforge.net/projects/beeing/files/
si deve effettuare il download dei seguenti files:


Una volta completato il download sarà necessario scompattare il contenuto dei file compressi per procedere all’installazione della macchina virtuale.

nota(estrazione file compresso):
Cliccare sul file “ubuntu10_gv3.part1″ ed estrarne il contenuto. In automatico il programma per la scompattazione (nel nostro caso winrar) procederà a ricostruire il file originale dove è salvata la virtual machine (file suddiviso in 3 parti differenti per motivi di dimensioni). Una volta ottenuto un unico file “UBUNTU10_GV3″ si dovrà procedere all’estrazione vera e propria del disco che contiene la Macchiona virtuale “
UBUNTU10GV3.vmdk“.

Installazione Virtual Machine con VMWARE

In questo caso è descritta la procedura per l’installazione della versione light di VMWARE, cioè VMWARE PLAYER.
Come prima cosa procederemo con la creazione di una nuova macchina virtuale vergine:

In questo modo il sistema andrà a creare tutti i file necessari per la gestione di una nuova macchina virtuale.
Procedendo con i vari step per la creazione della virtual machine è consigliabile associare al sistema un disco da 20GB e almeno 1GB di RAM.

A questo punto è necessario sostituire il disco vuoto della macchina virtuale appena creata con il disco precedemente scaricato, il disco di BEEing!

Avvio Macchina Virtuale

A questo punto non resta che avviare la Virtual Machine ed utilizzare le seguenti credenziali per avere accesso alla macchina:


Ubuntu user: administrator
Ubuntu pasw: adminadmin

NOTA
: Affinche la macchina appena creata sia visibile dall’esterno è necessario impostare correttamente l’indirizzo ip affinchè sia accessibile dal vostro dominio.

Riepilogo credenziali di accesso ai vari servizi installati

MySQL user: beeing
MySQL psw: beeing

Glassfish user: admin
Glassfish psw: adminadmin

BEEing user: administrator
BEEing psw: administrator

Per installare l’applicazione BEEing è necessario:
- Effettuare
Download del BEEing.war e fare il deploy in Glassfish (http://mydomain:4848);
- Il Database si popola con i dati di default.

Soluzione problema visibilità Virtual Machine in rete:

Deploy di BEEing.

Scaricate il file BEEing.war ( l’ultima versione disponibile).

Collegatevi alla console di glassfish mediante URL: http://192.168.70.201:4848/
(dove “192.168.70.201″ è l’indirizzo IP della vostra macchina virtuale. Eventualmente sostituitelo con uno piu’ adatto alla vostra configurazione di rete).
Immettete il nome utente con diritti amministrativi (administrator) e la password (adminadmin), si aprirà la console di amministrazione di Glassfish.

Procedete con il deploy.
E’ fondamentale che “Application Name” e “Context Root” siano BEEing.

glassfish_deploy

Se avete dubbi su come effettuare il deploy di un’applicazione su Glassfish, fate riferimento al post precedente “Come installare BEEing“.

Una nuova versione di BEEing è in cantiere

beeing-enterprise-architecture

Abbiamo avviato lo sviluppo di una nuova major release di BEEing. La nuova versione comprende un’architettura completamente riprogettata per offrire maggior scalabilità e bilanciamento dei carichi di lavoro.

Il modulo CORE viene diviso in due differenti Application Server:

  • Server Applicativo (APP SERVER)
  • Server di interfaccia utente (GUI SERVER)

APP SERVER e GUI SERVER comunicano tra loro utilizzando il protocollo JSON mediante chiamate REST. Sarà quindi possibile sostenere carichi di lavoro notevoli con moltissimi client connessi ed attivare politiche di load-balancing senza dover effettuare investimenti troppo onerosi.

Inoltre le nuove API REST renderanno ancora piu’ semplice l’integrazione con applicazioni mobile, desktop o TV.
La nuova versione (sarà la 6.0) includerà anche alcune applicazioni di esempio sia per il desktop che per iPhone ed Android.

Ogni feedback è sempre gradito. :)

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)

BEEing v. 5.0.0.2

v5002

Eccoci finalmente fuori con la nuova versione 5.0.0.2.
Le novità sono tantissime, tra cui:

  • Nuovo framework Ajax per l’interfaccia grafica ZK 5.x
  • Il modulo eCMS supporta la sottoscrizione ai documenti ed i collaboratori
  • Nuovi template grafici
  • Nuovi widgets per il tag cloud, i tag personali, i tag sociali e di sistema
  • Localizzazione in Polacco, Russo, Francese, Tedesco, Spagnolo, oltre alle già supportate Italiano ed Inglese.
  • Sistema di audit e notifica attività

Abbiamo creato una nuova sezione “Screenshots” che arricchiremo con immagini e video dimostrativi.

Potete scaricare la nuova versione da SourceForge.

La codifica in BEEing

encoding

Introduzione

BEEing utilizza la codifica UTF-8 senza BOM (Unicode Transformation Format, 8 bit), molto utile per il trasferimento di informazioni tramite sistemi di posta elettronica o per la memorizzazione di dati all’interno di un datastore. In particolare risulta essere molto adatta a questo tipo di piattaforma, essendo BEEing un framework multilingue.

Come impostare una codifica in BEEing

Per definire una determinata codifica sulla piattaforma (es. UTF-8) è necessario seguire i seguenti passi;

Impostare la codifica UTF-8 in Glassfish

Glassfish è l’application server utilizzato da BEEing, all’interno del quale è necessario configurare un pool contenente le connessioni con i database.

Per ogni connessione è necessario definire alcune proprietà aggiuntive (vedi l’apposita sezione in Installare la versione 3.x di BEEing) tramite cui specificare il nome del database, l’indirizzo IP … Tra queste può essere inserita anche la proprietà Encoding con valore il tipo di codifica che si intende utilizzare.

Encoding-glassfish

Impostare la codifica UTF-8 nel Database.

Il database destinato a contenere i nostri dati dev’essere configurato con la codifica prescelta onde evitare spiacevoli conversioni errate; questa impostazione può essere specificata attraverso il software prescelto per la gestione dei datastore. Di seguito un esempio tramite Navicat.

Encoding-navicat

Codifica per Progetto (per chi ama lavorare sul codice sorgente)

Tramite un apposito IDE di programmazione (o sull’apposito file.xml) è possibile impostare la codifica di un progetto.

Ad esempio Netbeans consente questa operazione entrando nelle proprietà del progetto di interesse.

nb

Codifica per Eclipse-Link (per chi ama lavorare sul codice sorgente)

Se siete degli sviluppatori e state realizzando un nuovo plug-in con un apposito database, allora dovreste assicurarvi che anche le dichiarazioni delle persistence unit contengano le corrette specifiche di encoding.

Eclipse-Link consente l’interazione tra BEEing ed il datastore. Perchè possa essere utilizzato all’interno dal framework è necessario configurare, per ogni progetto, il file persistence.xml. All’interno di questo file è possibile definire il tipo di codifica da utilizzare per la comunicazione con il database:

Encoding-eclipselink

AUTORE: Roberto Fratti

La flessibilità di BEEing

flexible2

In questo articolo “Cos’è BEEing” avevo già introdotto a grandi linee le potenzialità del Framework e l’idea del percorso evolutivo della piattaforma verso un sistema applicativo, per così dire, “pronto all’uso”.

Cosa posso farci con BEEing? Posso realizzare un CRM? Posso utilizzarlo come wiki aziendale? Posso utilizzare il datastore come sistema di archiviazione o condivisione documentale? Posso utilizzarlo per l’implementazione di un sistema di configurazione commerciale? Posso pubblicare report aziendali? Posso gestire i profili professionali dei miei dipendenti?

La risposta a queste domande è sì. BEEing racchiude una serie di funzionalità base ed alcune predisposizioni a funzionalità che possono essere sviluppate ad-hoc o che verranno sviluppate in futuro. Come già detto in piu’ occasioni, BEEing si sta evolvendo di giorno in giorno e quotidianamente presenta nuovi plug-in e nuove funzionalità

Ad oggi viene utilizzato con grande successo come piattaforma sociale di livello enterprise, integrando funzionalità tipiche di una extranet aziendale, di un wiki intra/extra aziendale, di un sistema di archiviazione/condivisione documentale, di una piattaforma a supporto di soluzioni commerciali di configurazione.

Perchè utilizzare BEEing per lo sviluppo di soluzioni Enterprise?

Potrei rispondere perchè è Open Source, il codice rispetta tutti i principali standard tecnologici e fa largo uso di molti altri progetti Open Source (es: ZK, JSON, Velocity, Rome, EclipseLink, Jakarta Commons, ecc..). Inoltre si appoggia ad uno dei migliori Application Server Open Source, Glassfish (oggi supportato da Oracle).

Ma il motivo principale deve essere che BEEing è stato progettato appositamente per l’implementazione di soluzioni sociali a livello Enterprise. Che si tratti di mettere in piedi un semplice wiki aziendale o un piu’ complesso sistema intra/extra aziendale, BEEing è sempre la scelta migliore.

Potete personalizzare ogni template grafico, configurare il profilo utente ai massimi dettagli (ruoli, attributi e gruppi), sfruttare la tecnologia wiki nativa, il datastore interno per l’archiviazione di files, oppure sviluppare internamente i vostri plug-in per fornire ai vostri utenti report sempre aggiornati, sistemi dispositivi integrati al vostro ERP, sistemi di configurazione commerciale o a supporto della progettazione tecnica.

In una sola parola, perchè BEEing è flessibile e quell’idea che avete in mente può facilmente diventare realtà.

Chi può trarre vantaggio nell’utilizzo di BEEing?

Aziende:

Tutte le aziende che trovino sufficienti le funzionalità applicative incluse (wiki, gestione profili, blog, archiviazione, sistema multilingue) o quelle che dispongono di una struttura tecnica interna in grado di personalizzare ed estendere la piattaforma.

Software House:

BEEing è facilmente integrabile con quasi tutti i piu’ moderni sistemi gestionali oggi presenti sul mercato (l’integrazione con SAP/R3, per esempio, avviene mediante BAPI e JCo) ed offre una semplice ma potente piattaforma di sviluppo che consente anche ai programmatori meno esperti di cimentarsi con lo svliluppo di applicazioni web solide e graficamente accattivanti. L’architettura a componenti, che coinvolge anche l’aspetto grafico del framework, consente la realizzazione di oggetti e widget riutilizzabili in ogni contesto.

Sviluppatori Liberi Professionisti:

Per chi già sviluppa in java e vuole una piattaforma economica, flessibile, robusta e semplice da implementare presso i propri clienti. Sviluppare su BEEing, Glassfish e MySQL non costa nulla ed offre potenzialità illimitate.
Potrete tranquillamente affrontare tutte le richieste dei vostri clienti.
Inoltre potreste diventare partner ed implementatori   certificati.

E l’assistenza?

Molti ci hanno già contattati, perciò non esitate se avete dubbi o quesiti di ogni tipo.
BEEing è giovane, e ci stiamo organizzando per istruire una rete di partner intenzionati ad investire in progetti Open Source e che siano in grado di diffonderne le conoscenze.
Molto presto pubblicheremo i nominativi delle prime Software House in grado di fornire assistenza tecnica a pagamento.
Per ora potete benissimo sfruttare l’assistenza gratuita che forniamo con piacere a tutti coloro che ne facciano richiesta.

AUTOREGian Angelo Geminiani

Quanta memoria assegnare a BEEing?

glassfish_momoryBEEing, per migliorare le performance applicative, fa largo uso di diversi sistemi di caching dei dati sia in memoria che su file.

La cache utilizza in parte la memoria ram della macchina host.
Per questo motivo è buona norma configurare Glassfish in modo che renda disponibile la memoria a BEEing nel minor tempo possibile.

Glassfish viene installato con un’impostazione base adatta ad un ambiente di sviluppo e debug.
Per ambienti di produzione occorre modificare alcune opzioni della macchina virtuale.
Per farlo dovete aprire la sezione “JVM Options” ed impostare le seguenti opzioni come di seguito:

  1. Cambiate l’opzione -client in -server.
  2. Impostate l’opzione Xms in questo modo: -Xms832m
  3. Impostate l’opzione Xmx in questo modo: -Xmx832m
  4. Assicuratevi che esista questa opzione: -XX:MaxPermSize=192m

AUTOREGian Angelo Geminiani

Impostare Glassfishv3 come daemon (servizio) in Linux

ubuntu_glassfish_beeingIntroduzione

Questo post spiega come configurare Glassfish su piattaforma Linux Ubuntu affinchè parta come daemon (servizio) al boot della macchina.
L’installer non esegue queste attività automaticamente, ma in un contesto di produzione è impensabile dover avviare manualmente l’Application Server.

Questo breve tutorial è dedicato agli utenti meno esperti.

Installazione di Glassfish

Prima di avventurarci nelle attività successive, dovete aver effettuato l’installazione di Glassfish e la configurazione di BEEing come da tutorial.

Dalla procedura di installazione dovete segnarvi il percorso in cui Glassfish è stato installato.
es: /home/administrator/glassfishv3

Creazione del file di avvio

La creazione del file di avvio è molto semplice.
Il file dovrà essere creato nella cartella /etc/init.d.
Chiameremo il file semplicemente GlassFish.

1. Avviare l’editor di testo in modalità amministrativa:

Eseguire il seguente comando da terminale:

sudo gedit /etc/init.d/GlassFish

glassfish_daemon_step1

Appena inserita la password di amministrazione (quella che avrete impostato in fase di installazione del sistema operativo) l’editor verrà aperto pronto alla modifica del file GlassFish (che naturalmente in questa fase sarà vuoto).
Copiate nel file il seguente contenuto:

GLASSFISHHOME=/home/administrator/glassfishv3/glassfish
case "$1" in
start)
 ${GLASSFISHHOME}/bin/asadmin start-domain domain1
 ;;
stop)
 ${GLASSFISHHOME}/bin/asadmin stop-domain domain1
 ;;
restart)
 ${GLASSFISHHOME}/bin/asadmin stop-domain domain1
 ${GLASSFISHHOME}/bin/asadmin start-domain domain1
 ;;
*)
 echo $"usage: $0 {start|stop|restart}"
 exit 1
esac

Salvate e Chiudete il file.

2. Rendere Avviabile il file GlassFish

Digitate a terminale il seguente comando:

sudo chmod a+x /etc/init.d/GlassFish

E’ possibile che vi venga richiesta nuovamente la password di amministratore.

3. Creare i links al file Glassfish per i diversi livelli di avvio.

Nelle fasi precedenti abbiamo creato un file, GlassFish, che consente l’avvio e l’arresto (ed il riavvio) dell’Application Server.
Poi lo abbiamo reso eseguibile, in modo che possa essere  lanciato come un qualsiasi altro programma.

Ora dobbiamo creare i link all’interno di apposite cartelle che invocheranno il nostro file GlassFish.
Per evitare di eseguire la procedura manualmente, possiamo utilizzare uno script che ho reperito sul blog di Sun e ho riadattato.
Dobbiamo innanzi tutto creare un file eseguibile contenente lo script che lanceremo successivamente.

Per creare il file eseguibile con lo script compiremo la stessa procedura descritta nei punti 1 e 2.

Avvio dell’editor di testo:

sudo gedit /home/administrator/Desktop/CreateLinks

Verrà creato un file CreateLinks sul desktop.

Copiate il seguente contenuto nel file e salvate. Potete poi chiudere l’editor.

#!/bin/bash

# Author: Ken Kranz - Sun Microsystems, Inc

TARGET=$1

NUMBER=$2

USAGE="$(basename $0) TARGET NUMBER"

if [[ $# != 2 ]]; then

    echo $USAGE

    exit 0

fi

if [[ x$TARGET = x ]]; then

    echo missing TARGET

    echo $USAGE

    exit 1

fi

if [[ x$NUMBER = x ]]; then

    echo missing NUMBER

    echo $USAGE

    exit 1

fi

if [[ ! -e /etc/init.d/$TARGET ]]; then

    echo cannot find $TARGET

    exit 1

fi

sudo chmod a+x /etc/init.d/$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc0.d/K${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc1.d/K${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc2.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc3.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc4.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc5.d/S${NUMBER}$TARGET

sudo ln -v -s /etc/init.d/$TARGET /etc/rc6.d/K${NUMBER}$TARGET

Rendere il file CreteLinks eseguibile.

sudo chmod a+x /home/administrator/Desktop/CreateLinks

Eseguire CreateLinks.

Siamo finalmente pronti ad eseguire CreteLinks, il file che si occuperà per noi di effettuare tutte le modifiche necessarie all’avvio, arresto e riavvio di Glassfish come daemon.

Da terminale dovrete digitare, uno alla volta, i seguenti comandi:

sudo /home/administrator/Desktop/CreateLinks GlassFish 2
sudo /home/administrator/Desktop/CreateLinks GlassFish 5
sudo /home/administrator/Desktop/CreateLinks GlassFish 0
sudo /home/administrator/Desktop/CreateLinks GlassFish 1
sudo /home/administrator/Desktop/CreateLinks GlassFish 6

Riavviate la macchina e verificate che Glassfish sia partito.

AUTORE: Gian Angelo Geminiani

Come installare BEEing

Impostazioni BEEingBEEing richiede, per funzionare, un Application Server compatibile con le specifiche Java EE 5 o superiori ed un Database.

Glassfish e MySQL

Noi abbiamo scelto Glassfish come Application Server, che potete scaricare dal sito ufficiale (https://glassfish.dev.java.net/public/downloadsindex.html#top).

Glassfish è un eccezionale application server ed ha una community molto vasta (https://glassfish.dev.java.net/public/users.html). Questo garantisce continuità nello sviluppo, supporto e documentazione sempre aggiornata.

Per l’installazione e la configurazione di Glassfish potete far riferimento al sito: https://glassfish.dev.java.net/public/getstarted.html

MySQL (http://dev.mysql.com/downloads/mysql/5.1.html) è un ottimo database adatto anche ad un utilizzo enterprise. Benchè BEEing supporti diversi database, MySQL è quello che preferiamo e che offre la migliore integrazione con la piattaforma.

Prima di partire con BEEing

Una volta completata l’installazione di Glassfish dovreste essere in grado di accedere alla console di amministrazione (vedi immagine seguente).
L’indirizzo dovrebbe essere simile a questo: http://localhost:4848/

glassfish console

Dalla console sarete in grado di identificare la cartella di installazione di Glassfish e quella che contiene i files di configurazione  (nel mio caso /opt/glassfish/domains/domain1/config). La radice del percorso potrebbe cambiare a seconda delle versioni e del Sistema Operativo utilizzato. L’immagine riporta il percorso per una macchina Linux.

domain1

Aprite la cartella contenente i files di configurazione e copiatevi all’interno il file login.config, sovrascrivendo la versione esistente,
Ora riavviate Glassfish. Siete quasi pronti per installare BEEing.

Installazione di MySQL

Se avete installato MySQL, ora potete creare l’utente database di sistema.
Aggiungete al database un utente beeing con password beeing (che potrete cambiare in seguito).
In questo modo BEEing è in grado di creare tutti i database e le tabelle necessarie automaticamente.
Inoltre, a fronte di un aggiornamento o dell’installazione di un nuovo plug-in, il sistema è in grado di effettuare i dovuti aggiornamenti ai database.

Installazione ed avvio di BEEing.

Scaricate i file binari da sourceforge (BEEing.war).
Aprite la console di amministrazione di Glassfish (http://localhost:4848/) e attivate la voce “Web Applications” dal menu ad albero presente sulla sinistra.
deploy

Cliccate su “Scegli file”, selezionate il file BEEing.war, e poi cliccate su “OK”.
A questo punto BEEing viene installato per la prima volta.
L’avvio di BEEing può richiedere anche alcuni minuti, a seconda della potenza di calcolo della macchina che lo ospita.
Non preoccupatevi anche se dovessero passare due o tre minuti.
Ad ogni avvio BEEing controlla l’integrità delle tabelle, provvede ad aggiornare gli schema se necessario, distribuisce o aggiorna i contenuti di sistema (utenti, ruoli, pagine, templates, ecc..), installa o aggiorna i temi grafici.

Al termine del caricamento dovreste visualizzare una videata simile a questa.
launch

Cliccate su “Launch”, oppure digitate nel browser l’indirizzo http://localhost:8080/BEEing

login

Potete effettuare il primo login utilizzando l’utente amministratore di sistema administrator con password administrator (la password potete cambiarla quando volete).

Note:

Per ulteriori informazioni su come installare BEEing 3.x su Glassfish 3.x, fate riferimento al post “Come installare la versione 3.x di BEEing” .