Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

JBoss application server: Tutorial, installazione e nozioni di base

Impariamo a conoscere l'architettura generale di JBoss e ad installare e configurare il server in maniera semplice, per essere subito operativi (su Windows o Unix).
Impariamo a conoscere l'architettura generale di JBoss e ad installare e configurare il server in maniera semplice, per essere subito operativi (su Windows o Unix).
Link copiato negli appunti

In questo articolo presenteremo l'architettura generale dell'application server JBoss AS 7.1. Passeremo poi ad illustrare in maniera semplice l'installazione e la configurazione, per essere subito operativi, su Windows o Unix.
Prima di procedere con la lettura dell'articolo assicuratevi di avere installata una JDK versione 1.6 o superiore.

Caratteristiche del server JBoss

Velocità

Il processo di boot è molto ben ottimizzato: i servizi sono avviati in modo concorrente per ridurre notevolmente i tempi di attesa e per sfruttare al meglio le caratteristiche multi-core ormai presenti da tempo nei processori. I servizi non critici vengono attivati in modalità lazy, al loro primo utilizzo.

Modulare

I classloaders gerarchici sono spesso problematici, e possono causare il fallimento di deploy e in generale comportamenti inaspettati. Jboss AS 7.1 abbandona questa modalità di tipo parent delegation model, per passare invece ad una struttura modulare.

I moduli JBoss forniscono quindi una vero isolamento delle applicazioni, nascondono le classi che fanno parte dell'implementazione del server e caricano esclusivamente le classi di cui necessita la nostra applicazione. I moduli realizzati come package di classi rimangono pertanto isolati se non esplicitamente indicati come dipendenze verso altri moduli.

Leggerezza

É stato implementato un approccio alla gestione della memoria "aggressivo", e al fine di minimizzare le pause del garbage collector vengono caricati soltanto i jar di cui si ha bisogno. Tutto questo mantiene la quantità della memoria utilizzata eccezionalmente ridotta.

Amministrazione

L'interfaccia di amministrazione è semplice ed intuitiva, focalizzata sull'utente, come vedremo tra poco.

Portabilità

Quanto alla portabilità: Jboss AS 7.1 raggiunge la Java EE 6 Full Profile certified.

Installazione di JBoss

Possiamo scaricare l'ultima versione ( Brontes) al seguente url:

http://www.jboss.org/jbossas/downloads/ 

L'installazione è semplicissima: è sufficiente infatti aprire l'archivio zip o tar nella nostra directory dedicata a JBoss. Dopo l'estrazione, possiamo proseguire a dare subito un'occhiata alla struttura della directory principale.

Struttura delle directory

AS 7 Directory Structure

Directory Descrizione
bin Script di avvio e configurazione per Unix e Windows
bundles Locazione degli OSGi bundles
docs/schema Qui si trovano le definizioni dei file XML Schema utilizzati dal server
domain Directory dei file di configurazione e deploy di applicazioni per una configurazione di cluster JBoss
modules AS 7 è basato su una architettura di classloading a moduli. I vari moduli utilizzati dal server sono presenti in questa directory.
standalone File di configurazione, area di deploy utilizzata da una singola istanza di server
welcome-content Welcome page di default

Standalone Directory Structure

Nella modalità standalone ogni istanza di application server è un processo indipendente. La directory standalone contiene tutti i file di configurazione e l'area di deploy per questa modalità.

In questo articolo di introduzione non consideriamo domini cluster, per cui omettiamo la descrizione della directory domain concentrandoci quindi sulla modalità standalone.

Directory Descrizione
configuration Tutte le informazioni di configurazione per la modalità standalone sono contenute in questa directory
data Directory utilizzata dall'application server per salvare dati necessari in caso di riavvio del server
deployments Directory di deploy delle applicazioni. I file WAR o EAR delle applicazioni vengono posti in questa in questa directory per consentirne l'installazione.
lib/ext Qui troviamo librerie jar referenziate dalle applicazioni utilizzando il meccanismo Extension-List
log File di log del server
tmp File temporanei del server

Se visualizziamo il contenuto della directory configuration vedremo in essa diversi file di configurazione che iniziano per standalone: si tratta di file che avviano l'application server, tenendo in considerazione una particolare configurazione definita.

Vediamo cosa attiva ciascun file in termini di servizi:

La configurazione, tramite profili

standalone.xml (default)

La configurazione web profile Java Enterprise Edition 6 certified, include tecnologie richieste dalla specifica Web Profile con in più Java Connector 1.6 Architecture, Java XML API for RESTFul Web Services, e OSGi.

standalone-full.xml

Java Enterprise Edition 6 full profile contiene tutte le tecnologie della configurazione di default con in più Java API for XML-Based Web Services (JAX-WS) 2.2 e Java Message Service 1.1.

standalone-ha.xml

Web profile di default con capacità cluster.

standalone-full-ha.xml

Full profile con capacità cluster.

Concentriamoci adesso sulla modalità standalone base: questo vuol dire che avvieremo il server con il file di configurazione standalone.xml.

Configurazione di base ed avvio di JBoss

Come indicato precedentemente la directory bin, situata nella directory root dell'application server, contiene i file di avvio del server per Unix e Windows: standalone.sh e standalone.bat.

Scelta della jdk

Prima di procedere con l'avvio, è fondamentale configurare il server in modo tale che sappia quale JDK utilizzare installata sul vostro pc. All'interno delle directory bin trovate il file standalone.conf, apritelo con un editor di testo ed individuate la linea relativa alla variabile JAVA_HOME, togliete lo # di commento ed inserite il path alla vostra JDK.

Ad esempio: se la JDK sotto Windows si trova nel percorso C:Program FilesJavajdk1.6.0_26 editeremo nel seguente modo:

# Windows
JAVA_HOME=C:/Program Files/Java/jdk1.6.0_26
# Linux
JAVA_HOME=/opt/Java/jdk1.6.0_26

Avvio

Per avviare il server:

# Windows
standalone.bat –server-config=standalone.xml
# Linux
./standalone.sh –server-config=standalone.xml

Dove al parametro server-config possiamo dare in input i diversi file standalone visti precedentemente. Se si utilizza la modalità base (standalone.xml) non è necessario specficare il file attraverso il parametro server-config, in quanto il file standalone.xml viene selezionato di default se non specifichiamo nulla.

Inoltre sotto Windows per avviare il server con la modalità base è sufficiente avviare il file bat come fosse un normale programma Windows (click o doppio click).

Se tutto è andato bene dovremmo vedere un processo di startup estremamente veloce e con una schermata simile alla seguente:

avvio di JBoss

Finalmente possiamo aprire il browser e digitare l'url http://localhost:8080 per visualizzare la pagina di welcome di JBoss:

welcome page di JBoss

Il metodo più semplice (per ora) per effetturare lo shutdown è quello di digitare CTRL+C.

Abbiamo terminato con successo l'installazione, configurazione e avvio di JBoss in modalità standalone, tuttavia per poter operare con il server a livello di amministrazione, è necessario conoscere i concetti fondamentali per una ammistrazione di base, quindi vediamoli brevemente.

Estensioni per JBoss

Un'estensione è un modulo che estende che le capacità del server. Il core dell'application server è molto leggero e semplice, e molte delle funzionalità associate all'application server sono quindi fornite attraverso le estensioni.

Un'estensione è un modulo package inserito nella directory module a livello delle directory root del server. L'amministratore rende disponibile un modulo attraverso la configurazione dello stesso nel file standalone utilizzato, attraverso i tag extensions ed extension:

<extensions>
<extension module="org.jboss.as.transactions"/>
<extension module="org.jboss.as.web" />
<extension module="org.jboss.as.webservices" />
<extension module="org.jboss.as.weld" />
</extensions>

Profili e sottosistemi

La parte più significativa della configurazione sia in modalità standalone che cluster è il concetto di profilo.

Un profilo è il nome dato ad un insieme di configurazioni di sottosistemi. Un sottosistema è un insieme di funzionalità aggiunte al cuore del server attraverso le estensioni. Un sottosistema fornisce ad esempio la gestione delle servlet, un EJB container, il supporto JTA alle transazioni e cosi via.

Un profilo con un ampio numero di sottosistemi rappresenta quindi un server con numerose funzionalità attive. Un profilo viene configurato nei file standalone attraverso il tag profile mentre un sottosistema attraverso il tag subsystem.

Paths: jboss.server.log.dir

I paths sono nomi logici per percorsi di file system. Sia il file domain.xml che gli standalone.xml contengono una sezione in cui è possibile dichiarare i paths attraverso il tag path. Un esempio:

<path name="example" path="example" relative-to="jboss.server.data.dir"/>

Dove: name è il nome del path; path è il percorso del file system. É un path assoluto se non viene specificato l'attributo relative-to, in questo caso viene considerato come un path relativo; relative-to(opzionale) è il nome di un path precedentemente definito, oppure uno di quelli standard definiti dal sistema.

JBoss AS 7 automaticamente fornisce dei path standard:

  • jboss.home: root directory di Jboss
  • user.home: directory home dell'utente
  • user.dir: directory corrente utilizzata dall'utente
  • java.home: installazione della JDK
  • jboss.server.base.dir: root directory per una istanza di server
  • jboss.server.data.dir: directory utilizzata per la memorizzazione di file persistenti
  • jboss.server.log.dir: directory per i file di log
  • jboss.server.tmp.dir: directory per i file temporanei
  • jboss.domain.servers.dir: directory nella quale l'host controller crea la working area per le singole instanze di server (soltanto nella modalità domain)

Accesso all'interfaccia di amministrazione

Se facciamo click sul link Administration Console vedremo comparire una schermata di login e non un accesso diretto all'interfaccia di amministrazione: questo perchè in JBoss la sicurezza è abilitata di default.

login su jboss

Aggiunta di utenti al realm predefinito

Per poter accedere abbiamo bisogno di definire un utente di amministrazione. Ciò che ci permette di definire utenti è l'utility add-user.bat o add-user.sh.

Dobbiamo però fare attenzione perché per poter accedere all'interfaccia di amministrazione abbiamo la necessità di definire un utente nell'ambito del realm ManagementRealm già definito all'interno di JBoss. Un realm è un database di username e password che identifica utenti validi, ovvero utenti appartenti ad un determinato ruolo con determinati privilegi.

Il ManagementRealm è il realm che dobbiamo specificare quando vogliamo creare un utente con privilegi di amministratore.

Vediamo come creare un amministratore in ambiente Windows. Posizioniamoci nella directory bin di JBoss ed avviamo il file add-user.bat, si aprirà una console interattiva per la creazione di un nuovo utente:

jboss: creazione utente da console

Gli step da seguire sono i seguenti:

  1. Scegliere il tipo di utente: opzione (a) (Management User)
  2. Il realm : inserire ManagementRealm
  3. Lo username : username da voi scelto, ad esempio inseriamo HtmlDotIt
  4. La password: la password scelta, ad esempio inseriamo admin
  5. Conferma: digitiamo yes ed premiamo invio per confermare la creazione dell'utente

Torniamo alla console di amministrazione ed effettuiamo il login con le credenziali appena definite, dovremmo poter accedere e vedere l'interfaccia di amministrazione:

jboss: interfaccia di amministrazione

Conclusioni su JBoss

Abbiamo mosso i primi passi nel mondo JBoss, acquisendo le nozioni fondamentali che ci permettono di poter avere una visone di insieme delle funzionalità. Come suggerimento si invita a dare un'occhiata al contenuto del file standalone.xml, per poter collegare in modo più approfondito i concetti esposti e rendersi conto di come effettivamente JBoss organizzi la configurazione dei suoi moduli. Forti di queste nozioni di base, vedremo nel successivo articolo come muoverci all'interno dell'interfaccia di amministrazione.

Ti consigliamo anche