Oracle Application Server 10g

Oracle Application Server 10g (OAS) e' un infrastruttura completa che permette il deploy e la gestione di applicazioni Web realizzate con strumenti Oracle e di terze parti. Le tipologie di applicazioni supportate sono molteplici. Possono essere semplici pagine realizzate come JSP, applicazioni piu' complesse sviluppate con EJB, portali realizzati con Oracle Portal, applicazioni di data entry costituite con Developer (eg. Forms), ...

Dal punto di vista funzionale OAS e' uno degli ambienti per applicazioni web piu' completi disponibili sul mercato e la sua integrazione presenta vantaggi per un utilizzo a livello di Enterprise. Questo documento cerca di presentarne gli elementi fondamentali accennando alle principali funzionalita' e riportando qualche elemento dell'architettura.

OAS architecture

Principali componenti

I componenti di OAS sono molteplici... descriverli in dettaglio tutti non e' utile in un testo introduttivo come questo. Pertanto ci limiteremo a descrivere i principali cercando di fornire un'idea d'insieme delle funzionalita' presenti.

Prima di descrivere singolarmente i componenti e' necessario introdurre le due tipologie di Server che OAS utilizza:

Ogni installazione attiva di OAS prende il nome di OAS Instance. I Mid Tier fanno riferimento ad una singola instance di infrastruttura. L'insieme dell'istanza di infrastruttura e di tutte le istanze di Mid Tier ad essa associate prendono il nome di OAS Farm.

I servizi su entrambe le tipologie di Server sono realizzati con componenti di base analoghi adattati con configurazioni specifiche. I principali componenti sono:

Vediamo ora quali sono alcune delle funzionalita' di OAS indicando i Tier ed i componenti coinvolti:

Tutto chiaro? Me lo auguro! In effetti le possibilita' sono molte...
La figura seguente riporta una semplice configurazione su due server. Sono presenti due istanze OAS, una di Mid Tier e la seconda di Infrastructure. Sono indicati anche alcuni componenti applicativi come Portal, il Forms Server ed un OC4J contenente applicazioni Java. Oltre alla base dati per i Metadati e' indicata un'istanza contente dati applicativi.

OAS architecture

C'e' dell'altro? Ovviamente si! Non abbiamo parlato della Certificate Authority, di Wireless, ... ma sarebbe troppo lungo (e poi non ne so quasi nulla ndr)!

Architettura

Una prima prima visione dell'architettura e' gia' stata riportata nel capitolo precedente che ha elencato i componenti di OAS e come questi vengono utilizzati nelle diverse funzioni. Descrivere la struttura interna di un server Apache o di un Java Container e' troppo lungo per questo documento. Per tanto ci limiteremo a qualche accenno a come i diversi componenti vengono integrati in un'architettura comune.

Poiche' OAS e' costituito da un'insieme complesso di componenti Oracle, per semplificarne la gestione ed il controllo, ha inserito un elemento di coordinamento di tutti i processi. L'opmn (Oracle Process Manager and Notification) si occupa dell'attivazione, restart, controllo, ... di tutti i componenti di OAS. Quindi tutti i processi risultano essere "figli" ed ereditare le caratteristiche di "ambiente" del processo opmn.
Ogni componente di OAS ha una propria configurazione con directory e file dedicati. Il dcm (Distributed Configuration Manager) si occupa di salvare tali configurazioni sul Metadata Repository e permetterne la gestione via web con l'Enterprise Manager.
I log dei vari componenti possono essere filtrati e analizzati in modo comune con un semplice strumento di gestione.

Ora che abbiamo capito (vero?) come dialogano componenti e processi in una singola istanza OAS possiamo vedere come possono coordinarsi tra loro...
I container OC4J possono essere clusterizzati. In questo modo il loro contenuto applicativo viene sincronizzato.
Le web cache possono essere poste in cluster. In questo modo i messaggi di invalidation possono essere gestiti in modo comune e la cache risulta piu' "allargata".

L'ultimo elemento da analizzare e' quello relativo all'architettura dei server e delle reti di collegamento.
Le possibili topologie sono molte. Si puo' avere un'installazione su un singolo server comprendente gli elementi necessari di OAS oppure un'installazione piu' complessa con Mid Tier multipli (eg. con un load balancer per separare il carico), server di infrastruttura implementati in cluster, RDBMS Oracle con RAC... Una possibile topologia di riferimento e' rappresentata nella seguente figura:

OAS Topology

La comprensione dell'architettura di OAS e' importante anche per impostare correttamente la parte di networking. Nella seguente figura sono riportate le configurazioni piu' tipiche da impostare sui Firewall per isolare correttamente i servizi nella DMZ:

OAS Firewalls

Amministrazione

La console dell'Enterprise Manager di OAS permette di gestire ogni aspetto relativo all'amministrazione.

OAS EM1
Con EM, in modo semplice ed intuitivo, possono essere attivati e disattivati i componenti delle diverse istanze dell'intera Farm. Il marketing Oracle afferma che si tratta di una potente applicazione del concetto di grid... in ogni caso e' semplice e funziona bene!
Oltre all'attivazione dei singoli componenti e' possibile monitorare l'utilizzo di risorse (eg. CPU, memoria) e configurare ogni componente delle istanze OAS della Farm.

OAS EM2

E' anche possibile agire su linea di comando... con opmnctl startall si fanno partire tutti i componenti dell'istanza OAS, con opmnctl stopproc ias-component=HTTP_Server si interrompe l'attivita' di Apache e con emctl start iasconsole si fa partire la console dell'Enterprise Manager!

Configurazione

La console dell'Enterprise Manager di OAS permette anche di gestire la maggioranza degli aspetti relativi alla configurazione.
Ma restano sempre dei vecchi nostalgici che vogliono modificare l'httpd.conf con il vi come il sottoscritto! A parte questi casi patetici vi sono alcune condizioni in cui risulta comunque piu' comodo agire direttamente sui file di configurazione dei vari componenti.

Se vengono modificati direttamente i file di configurazione e' necessario sincronizzare il contenuto del Metadata Repository con il comando dcmctl updateconfig

Detto questo ora sarebbe necessario descrivere la struttura di ogni file di configurazione (eg. httpd.conf e i relativi include, opmn.xml, ...) ma ... sarebbe troppo lungo.

Installazione

L'installazione di Oracle Application Server 10g e' divisa in due parti. Nella prima viene installato il server di Infrastruttura creandone la relativa OAS instance. Quindi vengono installati uno o piu' Middle Tier.
Sull'installazione di OAS 10g e' stato preparato uno specifico documento web.

Configurazioni particolari

L'architettura flessibile di OAS consente di realizzare un numero notevole di configurazioni e topologie per rispondere alle differenti esigenze di applicazioni e di utenti.
Possibili variazioni sul tema sono:

Naturalmente in questi casi le modalita' di installazione variano di conseguenza...

Storia

Oracle ha dedicato subito ad Internet un'attenzione notevole realizzando da subito prodotti adatti a tale utilizzo.
OWS e' stato il primo Web Server sviluppato da Oracle. Si trattava di un "normale" Web Server cui era stata inserita la possibilita' di accedere a stored procedures dell'RDBMS Oracle. OWS ha raggiunto la versione 3.0.
Successivamente 4.5, 6i, 9i, 9i R2 (9.0.2) sono state le versioni piu' significative del mondo "Developer" e "Web Server"... con nomi di prodotti ed ambienti via via aggiornati.
La versione OAS 10g (9.0.4), presentata in questo documento, ha molteplici funzionalita' ed ha raggiunto un notevole grado di affidabilita' integrando tutti i componenti. Nelle prossime releases (attualmente e' disponibile come production la OAS 10g R2 (10.1.2.0.2)) sono previste estensioni delle funzionalita' di grid, supporto a J2EE 1.4, ... Anche se il consiglio e' quello di controllare sul sito ufficiale (eg. Oracle Application Server 10g R2/R3 new features, OracleAS Portal new features, matrice di certificazione, FAQ OAS 10g, ...).

Nel tempo in parte per ragioni commerciali, ma anche per la forte evoluzione che hanno avuto Internet e le architetture delle applicazioni, Oracle Application Server ha cambiato piu' volte nome. A volte la versione corrispondeva alle release di RDBMS o degli ambienti di sviluppo altre volte no... la seguente tabellina forse puo' aiutare!

ReleaseVersioneNote
OWS1.0, 2.0, 2.1, 3.0, ... Web Server proprietario
iAS 8i1.0Apache, OSE (Oracle Servlet Engine), JVM nel DB
1.0.2 
9i1.0.2.2.2Forms Server (up to 6.0.8 as in Developer 6), Portal (up to 3.0.9)
9iAS R29.0.2JDK 1.2, 1.3, 1.4 EJB 1.1, OC4J, alcune features EJB 2.0; Developer 9i
9.0.2.1Patch set: 9.0.2.1-4
9.0.3EJB 2.0
9.0.3.1 
OAS 10g9.0.4Motore + robusto ed efficiente, Web Cache ottimizzata
9.0.4.1OPatch
9.0.4.2 
OAS 10g R210.1.2Discoverer, installazione piu' semplice, topologia della farm, JDK 1.5
OAS 10g SE10.1.2.0.1Versione SEO (per SMI)
10.1.2.0.2Forms, Struts x Portlet, HA Migration, piu' piattaforme (eg. AIX)
OAS 10g R310.1.3OC4J full J2EE 1.4, EJB 3.0, ADF Struts 1.2, SOAP 1.1 e 1.2, LDAP completo e scalabile, Oblix NB Solo OC4J
10.1.4Molteplici nuove funzionalita' su Portal, WSRP consumer NB Solo Portal
Fusion11Fusion Middleware 11g... Vedremo!

Naturalmente bisogna tenere conto che i numeri di versione sono specifici di ogni prodotto (e con OAS ve ne sono a decine). Ad esempio con la versione OAS 10g R2 - 10.1.2.0.2 vengono distribuiti un RDBMS 10.1.0.4.2 e quasi un centinaio di altri oggetti aggiornati alla 10.1.2. Naturalmente e' possibile utilizzare anche altre versioni di RDBMS tra cui le piu' recenti Oracle 10g R2 (10.2): e' solo un poco piu' complessa la procedura di installazione che richiede l'utilizzo del REPCA. Inoltre e' possibile effettuare un upgrade per la parte Portal alla 10.1.4 e per la parte OC4J alla 10.1.3!
Sulla compatibilita' delle diverse versioni OAS non c'e' un documento: c'e' un libro intero! Infine per lo sviluppo delle applicazioni vengono utilizzati i prodotti Forms Developer che hanno anch'essi una lunga storia e sono ora raccolti nella Developer Suite (Designer Nota 176515.1, Developer Nota 74145.1, ...)


Testo: Oracle Application Server 10g
Data: 15 Maggio 2005
Versione: 1.0.9 - 31 September 2009
Autore: mail@meo.bogliolo.name