Posts tagged ‘Jboss’

Hosting Java di qualità ai massimi livelli ed ai minimi prezzi

Offrire Hosting Java ad un prezzo davvero contenuto e nello stesso tempo conservare una buona qualità di servizio risulta per le aziende sempre più difficile.
Ultimamente però nel panorama degli hoster dedicati a questo tipo di piani HostingDreams.it si sta imponendo come soluzione di punta davvero affidabile oltre che soprattutto a basso costo.

Il servizio è curato, completo e soprattutto gestito da sistemisti ed analisti programmatori J2EE con anni alle spalle di sviluppo su tale piattaforma.

HostingDreams.it e' Hosting JAVA di qualita' professionale offerto da professionisti JAVA ed ad oggi intende affermarsi come l'Hosting JAVA più evoluto del web mediante l'utilizzo di automazioni da web 2.0 ( pannelli di contollo basati su ajax e sulla massima interazione tra server ed utente ).

Tutti i piani di Hosting JAVA supportano pienamente i piu' recenti framework come Struts, Hibernate, GWT, EJB (anche la versione 3), JSF e si basano sui più accreditati server come Tomcat e JBoss.

A differenza di altri hoster si segnala anche il supporto per Jetty ( al momento supportato addirittura sino alla versione 7 ).

Da notare poi come il sito offra all'utente più diffidente la possibilità di testare il servizio di punta: l'hosting java basato su tomcat.

L'attivazione dell'account demo, che richiede davvero pochi dati di registrazione e non vincola all'acquisto, viene completata in pochi minuti.
E dopo ancora qualche minuto l'utente è già in grado di testare le funzionalità scelte per 5 giorni.

In definitiva HostingDreams.it è un servizio da provare ( gratis ) e da tenere davvero in seria considerazione per esigenze basate su spazio web java.

Cosa sono i Portlet?

Da Wikipedia, l'enciclopedia libera.

portlet sono moduli web riusabili all'interno di un portale Web. Tipicamente, una pagina di un portale è suddivisa in una collezione di finestre, il contenuto di ciascuna delle quali viene definito da un diverso portlet. Ciascun portlet è destinato ad una semplice applicazione, ad esempio servizi di news, previsioni meteo, o funzionalità legate a forum o email. In quanto finestre, i portlet possono essere chiusi o ridotti o spostati. L'utente che accede al portale può così personalizzare la sua pagina personale, adattando i contenuti della stessa alle proprie esigenze.

La tecnologia dei portlet e dei portali utilizza un insieme di standard allo scopo di consentire lo sviluppo di portlet portabili, ovvero che possano essere usati nel contesto di portali sviluppati con tecnologie differenti.

Standard

Lo standard WSRP (Web Services for Remote Portlets) definisce un protocollo standard per il dialogo fra il portale e i portlet. La Java Portlet Specification (JSR168) definisce un insieme di interfacce applicative (API) per l'interazione fra un portlet containe re i portlet; una implementazione molto diffusa della specifica JSR168 è Apache Pluto; altre implementazioni sono state sviluppate da IBMOracle e BEA Systems. Fra le implementazioni open source di portali conformi allo standard ci sono anche Jetspeed 2 Portal Server (ancora sviluppato da Apache), JBoss PortalLiferay Portal e Stringbeans Portal.

Portlet e Servlet

I portlet sono un tipo speciale di servlet, progettati per essere inseriti facilmente in un portal server ed essere eseguiti. A differenza dei servlet, i portlet non hanno comunicazione diretta con il browser, non possono dunque inviare redirect o errori, inoltrare richieste o scrivere markup al flusso in uscita.

I portlet sono componenti più semplici e quindi più leggeri. Ciò consente una maggior facilità di gestione: possono essere impostati, installati o rimossi, creati o cancellati e impostati direttamente dall'amministratore usando l'interfaccia del portale.

A differenza dei servlet, che possono rappresentare pagine web complete, i portlet rappresentano singoli componenti, aggregati dal portale che svolge la funzione di Web container. Ne consegue che il portlet container del portale ha un ruolo più determinante del servlet container, poiché attraverso di esso i portlet comunicano tra loro, accedono a contenuti remoti e a dati persistenti. Inoltre i portlet non possono essere raggiunte da un URL specifico, in quanto è il portale intero ad avere associato l'indirizzo.


Il testo è disponibile secondo la licenza Creative Commons Attribuzione-Condividi allo stesso modo; possono applicarsi condizioni ulteriori. Vedi le condizioni d'uso per i dettagli. Wikipedia® è un marchio registrato della Wikimedia Foundation, Inc. 

Jboss e gli EJB

Diamo un'occhiata agli EJB

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.
Gli EJB sono uno strumento molto potente e sono di solito utilizzati in applicazioni distribuite, in cui la necessità di ripartire il carico e le funzionalità, sono di sostanziale importanza.

Un EJB è una classe Java che segue determinate regole imposte dalla specifica che, una volta programmato, viene posto in un application server e da esso verrà gestito secondo le regole definite.

In un contesto Java puro, generalmente, i client di questi oggetti sono le pagine JSP e le servlet, che si poggiano agli EJB per definire il contenuto dinamico da mostrare all’utente (una ricerca, un carrello della spesa, ecc). In realtà, l’idea di questi componenti è nata per permettere a diverse tecnologie di usare lo stesso strato di logica, residente in un contesto distribuito.

Esistono tre tipi di EJB:

  • EJB di Entità (Entity EJB): il suo scopo è di inglobare gli oggetti sul lato server che memorizzano i dati. Gli EJB di entità forniscono la caratteristica della persistenza dei dati:
    • Persistenza gestita dal contenitore (CMP): il contenitore si incarica della memorizzazione e del recupero dei dati relativi a un oggetto utilizzando una tabella di una base di dati.
    • Persistenza gestita dal bean (BMP): in questo caso è il bean a occuparsi del salvataggio e recupero dei dati a cui fa riferimento, il salvataggio può avvenire in una base di dati o con qualsiasi altro meccanismo perché è il programmatore che si incarica di realizzare il meccanismo della persistenza dei dati.
  • EJB di sessione (Session EJB): gestiscono l’elaborazione delle informazioni sul server. Generalmente sono una interfaccia tra i client e i servizi offerti dai componenti disponibili sul server. Ne esistono di due tipi:
    • con stato (stateful). I bean di sessione con stato sono oggetti distribuiti che posseggono uno stato. Lo stato non è persistente, però l’accesso al bean è limitato ad un unico client.
    • senza stato (stateless). I bean di sessione senza stato sono oggetti distribuiti senza uno stato associato, questa carattestistica permette un accesso concorrente alle funzionalità offerte dal bean. Non è garantito che il contenuto delle variabili di istanza si conservi tra diverse chiamate ai metodi del bean.
  • EJB guidati da messaggi (Message driven EJBs): sono gli unici bean con funzionamento asincrono. Tramite il Java Message Service (JMS), si iscrivono a un argomento (topic) o a una coda (queue) e si attivano alla ricezione di un messaggio inviato all’argomento o alla coda a cui sono iscritti. Non richiedono una istanziazione da parte dei client.

Notevoli passi in avanti sono stati fatti dalla versione 2 alla 3.0

La grossa differenza nel passaggio da una versione ad un'altra è 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.

Gli EJB 3.0 hanno in pratica modificato radicalmente l'architettura, lasciando molta più libertà alla costruzione dell'application server che ospiterà i componenti. Sarà infatti il container e la maniera in cui esso è implementato a gestire il ciclo di vita del componente. Non importa come questo avvenga: importante è rispettare la specifica e garantire il corretto ciclo di vita dei componenti. Fondamentalmente nella versione 3 sarà sufficiente scrivere una classe POJO (Plain Old Java Object) che implementa l'interfaccia di business.

Questa cosa potrebbe non essere positiva, in quanto in questo modo perderemmo la possibilità di intervenire in particolari momenti del ciclo di vita dell'oggetto (ad esempio durante le operazioni di passivazione ed attivazione). Ciò viene risolto dalla possibilità di creare delle apposite classi callback oppure di scrivere i metodi per gestire gli eventi ed annotarli con le annotazioni.

A questo punto risulta piuttosto evidente che il descrittore di deploy è inutile. Attraverso le annotazioni, infatti, riusciamo a definire in maniera precisa il componente e le sue diverse funzionalità, il ciclo di vita (anche le transazioni o altre funzioni di middleware da implementare). Di tutti i componenti, probabilmente questo è stato quello meno amato per un semplice motivo: è XML. Difficile da scrivere, da leggere e da capire, attraverso le annotazioni, fortunatamente questo componente viene meno. Inoltre, la sua redazione avviene in una seconda fase rispetto allo sviluppo del componente, quindi, l'insidia può essere rappresentata dalle dimenticanze. La possibilità di definire già all'interno della classe il suo comportamento del componente (transazioni, sicurezza, riferimenti ad altri ejb, ecc) facilita (e non poco) il lavoro.

Come application server per gli EJB consigliamo certamente JBOSS.

Maggiori informazioni su JBoss: www.jboss.com
Comunità degli sviluppatori: www.jboss.org