Tutorials

  • Presto on-line...

About ...

  • ... questo sito
  • ... me


Introduzione a WebObjects [2]

WebObjects
Il concetto di framework è ben descritto in inglese come "Hollywood design" (vale a dire: "non chiamarci tu, ti chiameremo noi!"). Vediamo come questo slogan si applica al codice di WebObjects.

WebObjects Frameworks

La simpatica definizione di framework, come un "Hollywood design", vuol significare che le librerie di WebObjects si occupano di tutti i comportamenti di default della nostra applicazione e al programmatore tocca solo il compito di sovrascrivere (override) o di estendere le funzionalità di base che si desiderano modificare. In altre parole WO è dotato di un framework solido, stabile e ben testato negli anni che permette di costruire potenti applicazioni Java facilmente scalabili e di installarle (deploy) virtualmente su qualsiasi server grazie alla perfetta aderenza agli standard J2EE.

HTTP Adaptor

Cominciamo con uno sguardo di insieme sui concetti base di una Applicazione Web e analizziamo come questi vengono affrontati con WebObjects.

Alla base di tutti i ragionamenti c`è quello che viene chiamato il "Request-Response Cycle" (il ciclo di richiesta-risposta) che vediamo qui rappresentato nella forma più semplice e schematica.

Nel momento in cui viene chiesto ad un browser di caricare una pagina web tramite l’indicazione di una URL (esempio: http://www.apple.com/store), il browser interroga il web server (che nell’esempio tra le parentesi ospita le pagine del negozio on-line della Apple).

Il WebServer risponde immediatamente al browser con la pagine o l’immagine richiesta (nel caso si tratti di elementi statici) oppure gira la richiesta a WebObjects (nel caso in cui venga riconosciuta una richiesta alle parti dinamiche del sito).

In quest’ultimo caso, la richiesta viene processata dall’applicazione (Web Application), la quale, terminata l’elaborazione, passa a ritroso il risultato al Web Server che a sua volta risponde (finalmente) al Browser.

L’HTTP Adaptor è il primo componente di WO che incontriamo e serve a gestire la comunicazione tra il Web Server e l’Application Server. Da notare che l’HTTP Adaptor non è un processo separato ma un plug-in del WebServer e come tale è diverso a seconda del tipo di Web Server che si andrà ad utilizzare. Sono supportate 3 versioni: per MacOS X (Apache), per Windows (NSAPI/ISAPI) e per Solaris. Caso a parte è la possibilità di pubblicare un’Applicazione WO all’interno di un server J2EE tipo JBOSS, in questo caso non serve un HTTP Adaptor e possiamo quindi anche utilizzare altri sistemi operativi, come ad esempio una qualsiasi distribuzione di linux.

Enterprise Objects

Raffiniamo ulteriormente il discorso tenendo conto che un’applicazione dinamica in genere deve attingere i propri dati da un DB:
Questa volta WebObjects ci viene in aiuto con l’Enterprise Objects Framework. E` un fantastico e potente sistema che permette di astrarre e di gestire in maniera trasparente un DataBase, quale che esso sia. Rimuove l’obbligo di dover utilizzare unicamente l’SQL per interrogare i DB e ci permette di progettare la nostra Applicazione senza dover tenere conto, in anticipo, su quale DB verrà appoggiata.

L’EO Adaptor si preoccupa della generazione ottimizzata delle chiamate SQL e di gestire per noi l’interfaccia verso il data store.

WO, essendo scritto in Java, utilizza JDBC per collegarsi ai DB ed è quindi possibile interfacciarsi ad un vastissimo insieme di soluzioni. Giusto per citare alcuni nomi tra i più famosi: Oracle, FrontBase, OpenBase, Microsoft SQL Server, Sybase, mySQL, PostgreSQL… e c’è anche chi utilizza con successo FileMaker!!!

Ma l’Enterprise Objects Frameworks è un sistema complesso che fa molto di più che semplicemente comunicare con un data source:
• gestisce le transazioni JDBC e JNDI;
• mappa il contenuto di un DB verso oggetti Java;
• aiuta la scrittura di codice indipendente dalla piattaforma pur permettendo di sfruttare eventuali particolarità di uno specifico data-source;
• permette di scrivere le applicazioni nel rispetto del paradigma Model-View-Controller e dei principi di design object-oriented;
• fornisce un sistema automatico di tracking delle modifiche e di undo / redo;

Le classi principali

Concludiamo questa introduzione dando uno sguardo alle classi Java più importanti che sono coinvolte nel funzionamento di una Applicazione WebObjects: WOApplication, WOSession e WOComponent.
• Il ruolo principale della classe WOApplication è quello di coordinare la gestione delle richieste HTTP. Ogni Applicazione ha una sola istanza (= un solo oggetto) della classe WOApplication che riceve le richieste dai client (dai browser) attraverso l’HTTP Adaptor. Nella gestione delle richieste, la classe WOApplication utilizza oggetti della classe WOSession, uno per ogni client, in modo da poter gestire uno stato persistente per ogni utente che si collega alla Web Application (al sito).

• Un oggetto della classe WOSession rappresenta quel periodo di tempo nel quale viene garantito l’accesso a determinate risorse da parte di un particolare utente (tipicamente un browser). E’ grazie a questa classe che viene reso possibile registrare lo stato di un utente mentre interagisce tra le diverse pagine del sito… stato che viene mantenuto separato tra i vari utenti che contemporaneamente accedono alle risorse del Web Server.

• In fine si arriva all’oggetto della classe WOComponent che si occupa di renderizzare la pagina dinamica richiesta.

Da queste tre classi vengono ereditate le classi effettivamente utilizzate dalla nostra applicazione e in ogni progetto (vedi foto) tipicamente avremo:
- una sola classe Application.java ereditata dalla classe WOApplication;
- una sola classe Session.java ereditata dalla classe WOSession;
- diverse classi (almeno una per pagina) ereditate dalla classe WOComponent che rappresentano le singole pagine dinamiche del sito che stiamo realizzando. Nella foto del riquadro, la classe Main.java è ereditata dalla classe WOComponent.

Per approfondimenti

Tre ottimi documenti ufficiali :


Posted on Nov 28, 2003 - 04:40 AM


Ricerca:


Adv:

ApplePro :
Vuoi acquistare un prodotto dalla Apple? Sei un utente Pro (cioè hai la partita IVA)? Se vuoi supportare il nostro sito, passa da qui: apple pro.