Jboss Hosting: introduzione e caratteristiche principali

Un'introduzione a Jboss, Application Server Open Source particolarmente utile e conosciuto per le caratteristiche dei componenti, dal clustering al load balancing all'implementazione del noto sistema Java Message Service. L'Ing. Montemagno spiega brevemente a cosa servono i componenti di JBoss e le possibilita di utilizzo. Questo articolo ha lo scopo di fornire una panoramica sulle caratteristiche principali e sulle funzionalita applicative di JBoss, l'Application Server open source che implementa l'intera suite di servizi J2EE.

Un’introduzione a Jboss, Application Server Open Source particolarmente utile e conosciuto per le caratteristiche dei componenti, dal clustering al load balancing all’implementazione del noto sistema Java Message Service. L’Ing. Montemagno spiega brevemente a cosa servono i componenti di JBoss e le possibilità di utilizzo.

Questo articolo ha lo scopo di fornire una panoramica sulle caratteristiche principali e sulle funzionalità applicative di JBoss, l’Application Server open source che implementa l’intera suite di servizi J2EE.

Articolo offerto da:

hosty_logo.jpg

Hosty.it utilizza strumenti tecnologicamente avanzati e seri professionisti per la miglior gestione dei vostri siti web.

L’azienda è specializzata nei più importanti tipi di hosting. Assistenza eccezionale, ottimo prezzo e soluzioni preconfigurate rendono Hosty.it il partners ideale per tutti coloro che pensano al web come una grande opportunità di crescita e guadagno. L’azienda offre piani hosting Java, Ruby on Rails con la possibilità di aggiungere altri servizi, oltre ad una soluzione ecommerce e un piano rivenditori.

Precedentemente abbiamo analizzato alcune delle reali potenzialità di Apache Tomcat. Qualcuno potrà restare stupito dal fatto che quest’ultimo in realtà può venir considerato in tale contesto, come una delle tanti parti che formano JBOSS.

Maggiori informazioni su JBoss: www.jboss.com

Comunità degli sviluppatori: www.jboss.org

JBOSS è infatti essenzialmente costituito da diversi componenti, ognuno dei quali implementa un servizio J2EE:

  • Clustering
  • Failover (including sessions)
  • Load balancing
  • Caching Distribuito (JBoss Cache)
  • Deployment Distribuito (farming)
  • Enterprise Java Beans versione 3 (EJB)
  • Supporto Aspect-Oriented Programming(AOP)
  • Integrazione con Hibernate ( per la gestione della persistenza;JPA)
  • Supporto per gli J2EE-Web Services come JAX-RPC (Java API for XML for Remote Procedure Call)
  • Integrazione con Java Message Service
  • Integrazione con JCA (Java Connector Architecture)
  • Integrazione JACC (Java Authorization Contract for Containers)
  • Specifiche EJB 2.1
  • JSP/Servlet (Tomcat)
  • RMI-IIOP (JacORB, alias Java e CORBA)
  • JTA (Java Transaction API)
  • JDBC
  • SAAJ (SOAP)
  • JNDI (Java Naming and Directory Interface)
  • JAAS (Java Authentication and Authorization Service)
  • JavaMail
  • Deployment API
  • Management API
  • Analizziamo brevemente i servizi fondamentali e le eventuali caratteristiche di rilievo che tale Application Server ci offre, tra l’altro gratuitamente.

    Clustering e Load Balancing

    Il clustering ci consente di eseguire applicazioni su server in parallelo ( chiamati anche nodi ). Ciò porta benefici alle elaborazioni, consentendo di distribuire il carico in modo uniforme. Il clustering è cruciale per applicazioni di livello enterpise, che hanno bisogno di scalabilità estrema.

    Il Load Balancing è una tecnica informatica che consiste nel distribuire il carico di un servizio, ad esempio la fornitura di un sito web, tra più server. Si aumentano in questo modo la scalabilità e l’affidabilità dell’architettura nel suo complesso. In pratica se arrivano 10 richieste per una pagina web su un cluster di tre server a tre risponderà il primo server, a tre il secondo ed a 4 il terzo.

    EJB 3 (e supporto per EJB 2.1)

    Gli Enterprise JavaBean (EJB) sono i componenti che implementano, lato server, la logica di business all’interno dell’architettura J2EE. Le specifiche per gli EJB definiscono diverse proprietà che questi devono rispettare, tra cui la persistenza, il supporto alle transazioni, la gestione della concorrenza e della sicurezza e l’integrazione con altre tecnologie, come JMS, JNDI, e CORBA. Lo standard attuale, EJB 3, differisce notevolmente dalle versioni precedenti.

    Una delle grosse differenze relative al passaggio tra EJB 2 ed EJB 3 è stata l’eliminazione delle classi utilizzate come Factory per istanziare concretamente il bean. Ciò significa che nella versione 3 non dovremo più creare una classe Home per ogni bean creato, né dovremo preoccuparci di estendere altre classi o interfacce. Inoltre il descrittore di deploy è ora praticamente inutile.

    Supporto Aspect-Oriented Programming(AOP)

    La programmazione orientata agli aspetti (AOP) è un paradigma di programmazione basato sulla creazione di entità software – denominate aspetti – che soprintendono alle interazioni fra oggetti finalizzate ad eseguire un compito comune.

    Un programma aspect-oriented è costituito essenzialmente da due insiemi di costrutti: gli aspetti e gli oggetti. Gli aspetti sono delle entità esterne agli oggetti che osservano il flusso del programma generato dalle interazioni tra oggetti, modificandolo quando opportuno.

    Integrazione con Hibernate

    Hibernate (talvolta abbreviato in H8) è una piattaforma middleware open source per lo sviluppo di applicazioni Java che fornisce un servizio di Object-relational mapping (ORM), ovvero che gestisce la rappresentazione e il mantenimento su database relazionale di un sistema di oggetti Java.

    Lo scopo principale di Hibernate è quello di fornire un mapping delle classi Java in tabelle di un database relazionale; sulla base di questo mapping Hibernate gestisce il salvataggio degli oggetti di tali classi su database. Si occupa inoltre del reperimento degli oggetti da database, producendo ed eseguendo automaticamente le query SQL necessarie al recupero delle informazioni e la successiva reistanziazione dell’oggetto precedentemente “ibernato” (mappato su database).

    Hibernate in pratica esonera lo sviluppatore dal lavoro inerente la persistenza dei dati. Fortunatamente Hibernate gestisce una persistenza trasparente per “Plain Old Java Object”.

    Supporto per gli J2EE-Web Services

    Cos’è in realtà un web service? Secondo la definizione data dal World Wide Web Consortium (W3C) un Web Service (servizio web) è un sistema software progettato per supportare l’interoperabilità tra diversi elaboratori su di una medesima rete offrendo un’interfaccia software attivabile tramite appositi “messaggi” inclusi in una “busta” (la più famosa è SOAP): tali messaggi sono, solitamente, trasportati tramite il protocollo HTTP e formattati secondo lo standard XML.

    La ragione principale per la creazione e l’utilizzo di Web Service è il “disaccoppiamento” che l’interfaccia standard esposta dal Web Service rende possibile fra il sistema utente ed il Web Service stesso.

    L’implementazione del servizio è indipendente dal modo in cui esso verrà erogato, quindi potrebbe essere prevista semplicemente una classe java con relativi metodi. Il descrittore definisce in che modo si dovrà accedere alla classe che fornisce il servizio. Tutto quello che sta in mezzo (trasformazione del messaggio SOAP in comando java e viceversa) è a carico del middleware, che creerà l’opportuna infrastruttura.

    Che necessità c’è di scomodare l’architettura J2EE? La necessità risiede negli stessi motivi per cui utilizzare gli ejb: performance, scalabilità, sicurezza, affidabilità. Cose che una semplice classe java, da sola, non garantisce.

    Integrazione con Java Message Service

    Java Message Service (o JMS) è un insieme di API che consente alle applicazioni Java presenti in una rete di scambiarsi messaggi tra loro.

    Con tale sistema è possibile implementare un sistema distribuito di notifica eventi.

    In pratica è data la possibilità allo sviluppatore di realizzare uno scambio peer2peer (point-to-point) tra i client tramite il gestore della messaggistica.

    Integrazione con Tomcat

    Apache Tomcat (o semplicemente Tomcat) è un web container open source che implementa le specifiche JSP e Servlet di Sun Microsystems, fornendo quindi una piattaforma per l’esecuzione di applicazioni Web sviluppate nel linguaggio Java. La sua distribuzione standard include anche le funzionalità di web server tradizionale, che corrispondono al prodotto Apache.

    JBoss utilizza tomcat per l’esecuzione delle applicazioni web basate su JSP e Servlet.

    JTA

    Seguendo la documentazione Sun, JTA “definisce le interfacce Java standard tra un transaction manager e tutte le componenti coinvolte in un distributed transaction system: resource manager, application server, e applicazioni transazionali.”

    In altre parole, JTA riguarda la gestione delle transazioni che coinvolgono più application server.

    JNDI

    Il JNDI definisce un sistema per identificare e elencare risorse generiche, come componenti software o sorgenti di dati.

    Mediante JNDI è possibile rimappare tutti i percorsi fisici a cui è necessario puntare nelle proprie applicazioni, utilizzando una sorta di tabella chiave-valore ( una specie di HashTable ) che rende facilmente configurabili, e quindi portabili, i nostri software.

    Conclusioni

    Con questo articolo spero di aver illustrato, seppur brevemente, alcune delle caratteristiche salienti dell’Application Server open source che reputo più completo e di rilievo al momento esistente.

    Seppur quest’ultimo sembri essenzialmente indirizzato alla gestione di applicazioni di una certa entità, consiglio anche a coloro che non avessero tali esigenze di dargli un occhiata.

    A cura dell’Ing. Luca Montemagno per www.hostingtalk.it