Java Servlet & EJB

La seguente documentazione traccia un percorso formativo sintetico per apprendere la specifica J2EE 5.

Si parte dalle Servlet e dalle jsp, per arrivare fino agli EJB, che si consiglia di affrontare dopo aver ben appreso i concetti alla base della programmazione web.

Web Programming on Java Way: Getting Started With Servlet!

Enterprise Java Beans

Leggiamo dal tutorial sugli EJB

Enterprise beans are Java EE components that implement Enterprise JavaBeans (EJB) technology. Enterprise beans run in the EJB container, a runtime environment within the Application Server Although transparent to the application developer, the EJB container provides system-level services such as transactions and security to its enterprise beans. These services enable you to quickly build and deploy enterprise beans, which form the core of transactional Java EE applications.

Le parole chiave qui sono sottolineate in italico. L’aspetto più importante degli EJB è la loro capacità di fornire al Cliente Finale (cioé al commitente del nostro software) le seguenti feature, tutte contemporaneamente:

  • Load Balancing
    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.
  • Fault Tolerance
    La tolleranza ai guasti (o fault-tolerance, dall’inglese) è la capacità di un sistema di non subire fallimenti (cioè intuitivamente interruzioni di servizio) anche in presenza di guasti. La tolleranza ai guasti è uno degli aspetti che costituiscono l’affidabilità. È importante notare che la tolleranza ai guasti non garantisce l’immunità da tutti i guasti, ma solo che i guasti per cui è stata progettata una protezione non causino fallimenti.
    Normalmente la Fault Tolerance si realizza in hadrware e/o in software.
    Per esempio un sistema di dischi RAID5 è un sistema hardware in grado di funzionare anche se uno o più dei dischi che lo compongono si rompa.
    La specifica EJB si concentra sulla tolleranza ai guasti hardware e software, nel senso che fornisce una tecnologia che consente di replicare i componenti server (=cioé del software) su più piattaforme hardware identiche (e che quindi possono compensarsi a vicenda).
  • Scalabilità
    Nelle telecomunicazioni, nell’ingegneria del software e in altre discipline, il termine scalabilità si riferisce, in termini generali, alla capacità di un sistema di “crescere” o “decrescere” (aumentare o diminuire di scala) in funzione delle necessità e delle disponibilità. Un sistema che gode di questa proprietà viene detto scalabile.L’uso più tradizionale si riferisce alla scalabilità di carico, ovvero la capacità di un sistema di incrementare le proprie prestazioni (il proprio throughput nel caso di sistemi trasmissivi) se a tale sistema vengono fornite nuove risorse (per esempio, nel caso del software, maggiore potenza di processore o processori aggiuntivi). Quanto un determinato sistema sia scalabile dipende dalla sua architettura; per esempio, la presenza di uno o più colli di bottiglia potrebbe rendere ininfluente l’aumento della potenza di calcolo complessiva. Questa dipendenza dall’architettura vale anche, in termini generali, per le altre accezioni in cui si può intendere il termine “scalabile”. Nota Bene:
    E’ non banale creare un sistema scalabile. Facciamo un esempio: normalmente il Commitente si aspetta che aggiungendo ad un computer altri tre computer identici, le prestazioni (almeno) quadrupichino.
    La tecnologia hardware/software sviluppata dai grandi player garantisce questo sulla carta fino ad un certo punto.
    Anche ora vi sono elementi software e hardware che non possono scalare linearmente, poiché solitamente i bottleneck si spostano appena un’area applicativa viene migliorata.
    Approfonodimento: legge di Amdahl