Oracle
 sql >> Database >  >> RDS >> Oracle

Moduli Oracle in R12/R12.2

Qui spieghiamo le funzionalità di Oracle Forms Architecture in R12/R12.2

Sommario

Caratteristiche dei moduli in R12

-forms vengono distribuiti come un'unica istanza One OC4J di 10.1.3 Oracle home
-Utilizza l'utilità da 10.1.2 Oracle home/bin
-Forms.EAR 10.1.2 viene distribuito nel contenitore OC4J in Application Server 10.1.3
-L'eseguibile del modulo runtime f60webmx è stato sostituito da frmweb
-Forms Servlet è la modalità di distribuzione/comunicazione predefinita
-FORMS_ variabili di ambiente sostituiscono FORMS60_
-Nuovo variabili d'ambiente, ad es. FORMS_TRACE_DIR
-$ORACLE_HOME/bin/frmbld.sh sostituisce f60desm per la progettazione
-frmcmp.sh e frmcmp_batch per la generazione

Caratteristiche dei moduli in R12.2

-i moduli vengono distribuiti come un server gestito  in  Oracle weblogic server
-Utilizza l'utilità di 10.1.2 Oracle home/bin
-Forms.EAR 10.1.2 viene distribuito al server gestito in Oracle weblogic Application Server
-Il modulo runtime f60webmx è stato sostituito da frmweb
-Forms Servlet è la modalità di distribuzione/comunicazione predefinita
-FORMS_ variabili di ambiente sostituiscono FORMS60_
-Nuove variabili di ambiente, ad es. FORMS_TRACE_DIR
-$ORACLE_HOME/bin/frmbld.sh sostituisce f60desm per la progettazione
-frmcmp.sh e frmcmp_batch per la generazione

Architettura dei servlet dei moduli

Il servlet Forms Listener è responsabile della gestione dei processi di Forms Runtime e dell'instradamento di tutte le comunicazioni con i client. Tutto il traffico tra l'applet del client Forms e il processo di runtime del server Forms viene ora instradato tramite il listener Apache e il servlet Forms Listener.

-L'URL generato dall'applet moduli eseguirà il servlet ascoltatore moduli. Il listener del server http Oracle (Apache) riceve la richiesta, la riconosce come richiesta per eseguire un servlet e la delega a mod_oc4j per l'esecuzione.
-Mod_oc4j trasmette la richiesta al servlet Forms Listener (istanza di Forms OC4J). Il servlet Forms Listener esegue il fork di un nuovo processo di runtime dei moduli (frmweb).
-Il livello di messaggi Forms restituisce un messaggio contenente i metadati del modulo e i dati necessari per visualizzare l'interfaccia utente. La struttura del messaggio è la stessa utilizzata dal processo di ascolto dei moduli, tuttavia questa volta viene restituito tramite il servlet del listener dei moduli e il listener di apache.
-Il servlet dei moduli esegue il wrapping dei dati del messaggio dei moduli come http (utilizzando il tunneling http) e invia torna al client tramite il listener di Apache.

Tutte le successive comunicazioni del client Forms con il server Forms seguono lo stesso percorso.

Vantaggio della modalità servlet

  1. Il traffico HTTP e HTTPS è facilmente riconoscibile dai router, mentre le comunicazioni in modalità socket sono generalmente considerate sospette e trattate in via eccezionale.
  2. L'hardware di rete esistente può essere utilizzato per supportare funzioni di base come il bilanciamento del carico e la crittografia dei pacchetti per il transito in rete.
  3. Più resiliente alle riconfigurazioni di rete e firewall.
  4. Più robusto:le connessioni servlet possono essere ristabilite se le connessioni di rete si interrompono in modo imprevisto per moduli, framework e pagine basate su JSP.
  5. È l'unico metodo supportato per i clienti Oracle Forms generici e pertanto è testato in modo più approfondito dai gruppi di prodotti Forms ed E-Business Suite.
  6. Il traffico sulle prestazioni può essere monitorato tramite strumenti come Oracle Real User Experience Insight (RUEI).
  7. La modalità socket non è supportata su piattaforme server basate su Windows.
  8. Nessuna porta deve essere aperta per accedere ai moduli nel firewall in caso di servlet.
  9. Semplice configurazione SSL in caso di servlet (poiché non è richiesta una configurazione SSL separata per i moduli poiché le connessioni avvengono tramite server web/http)
  10. Il servlet Forms Listener comunica tramite la porta del server HTTP e non necessita di porte aggiuntive per gestire la comunicazione tra il client e Oracle Application Server Forms Services. L'architettura Forms Servlet è inoltre compatibile con gli standard del settore delle applicazioni Web e supporta diverse configurazioni di rete avanzate come il bilanciamento del carico.

Architettura socket moduli

Le versioni iniziali del prodotto Oracle Forms Server utilizzavano un metodo semplice per connettere il client al server. La connessione dal client desktop al processo Forms Listener è stata eseguita utilizzando una connessione socket diretta.

Fondamentalmente la connessione desktop client viene stabilita con il processo Forms Listener. Viene eseguito il fork di un nuovo processo di runtime di Forms o, se applicabile, viene utilizzato il successivo processo di pool gratuito. La connessione socket tra Forms Applet e Forms Listener viene trasferita al processo di runtime di Forms, quindi l'applet comunica direttamente con il processo di runtime. A meno che non venga utilizzato HTTP, il listener non è più necessario, tranne che per servire altre nuove connessioni.

In 11i, CGI è stato utilizzato per generare la pagina iniziale che aiuta a creare la connessione socket

In Oracle E-Business Suite Release 12, la richiesta iniziale che genera dinamicamente la pagina HTML per avviare l'applet dei moduli viene elaborata dal servlet dei moduli, sebbene il servlet riceva solo una richiesta per sessione dei moduli

Vantaggio della modalità socket

1.Utilizza fino al 40% di larghezza di banda in meno rispetto alla modalità servlet Forms. Questo potrebbe essere percepito dagli utenti di WAN (Wide Area Network) come una causa di reattività più lenta, a seconda della latenza della rete.
2.Utilizza meno risorse JVM a livello di applicazione rispetto alla modalità servlet, a causa del minor numero di turni TCP e della mancanza di sovraccarico associato a Gestione HTTP POST.

Differenza tra la versione 11i e la R12

Abbiamo Oracle form 6i in 11i Oracle E-buisness Suite mentre Oracle forms 10g in R12.0/R12.1/R12.2 Oracle E-buisness Suite.

Le basi rimangono le stesse in tutti questi. L'eseguibile differisce tra le diverse versioni

Definizioni degli artefatti dei moduli

-Il .fmb file è un file di origine del modulo. È un file binario, che contiene metadati, sorgente e PLSQL compilato.
-Il .fmx file è la versione generata del modulo utilizzato in fase di esecuzione
-Il .mmb file è il file di origine del menu. È un file binario.
-Il .mmx file è la versione generata del Menu utilizzato in fase di esecuzione
-Il .pll file è il file di origine della libreria allegato lato client. Può essere utilizzato anche in fase di esecuzione, sebbene le applicazioni Oracle debbano utilizzare file plx. Contiene sorgente e PLSQL compilato.
-Il .plx file è una versione con eliminazione del codice sorgente di .pll, utilizzata in fase di esecuzione. Contiene PLSQL compilato.
f60webmx è il processo di runtime dei moduli di livello intermedio su Unix. (11i)
frmweb   è il processo di runtime dei moduli di livello intermedio su Unix. (R12.0/R12.1/R12.2)
f60srvm is the Forms Listener Process su Linux
-L'applet Forms è generica per tutte le piattaforme. L'applet Forms è anche generica in quanto viene utilizzata un'unica applet per eseguire tutti i moduli.
-I fagioli Java vengono utilizzati per implementare la logica lato client di Oracle Applications estendendo l'applet Forms.

Moduli, librerie e menu

  • Nel livello intermedio, un'applicazione Moduli è composta da moduli, menu e librerie. Ci sono anche oggetti database e pacchetti e procedure lato server sull'RDBMS, ma questi non saranno presi in considerazione in questo documento.
  • Un file sorgente del modulo è un file binario e ha un suffisso .fmb, ad es. XYZ.fmb. Contiene tutti i metadati rilevanti, le unità di programma PL/SQL e il PL/SQL compilato. Il file fmb non viene utilizzato a runtime, ma può essere aperto nel Form Builder o utilizzato per generare la versione runtime (.fmx) del form.
  • Il file .fmx è essenzialmente un file di parametri binari che viene letto dall'eseguibile di runtime di Forms. Non è un eseguibile in sé, anche se la generazione di .fmx viene talvolta definita "compilazione" e .fmx è spesso chiamato "eseguibile".
  • Non è possibile eseguire il reverse engineering di un file .fmx nel corrispondente .FMB.
  • I moduli di richiesta vengono tradotti, quindi ogni lingua ha il proprio insieme di moduli. Ad esempio, ~/forms/US è per gli utenti in cui la lingua del livello intermedio (NLS_LANG) è impostata sull'inglese americano.
  • Principi simili si applicano ai menu, dove un suffisso mmb denota un file sorgente e un suffisso mmx una versione generata. Applicazioni utilizza solo un menu, FNDMENU. Come un modulo, questo menu è tradotto in diverse lingue, situato in ~/resource/US.
  • Le biblioteche seguono regole leggermente diverse per moduli e menu. Il file di origine ha un suffisso .pll e l'origine spogliata ha un suffisso .plx. Il .pll può essere caricato nel Builder, generato e utilizzato in fase di esecuzione; contiene sia il sorgente che il PL/SQL compilato. Il .plx ha il sorgente rimosso e contiene solo PL/SQL compilato, quindi può essere utilizzato solo in fase di esecuzione. Oracle Applications utilizza .plx in fase di esecuzione, poiché è molto più piccolo e quindi più efficiente.
  • Le librerie non contengono stringhe traducibili, quindi esiste una versione per tutte le lingue, che viene salvata nella directory ~/resource.
  • Le librerie sono collegate dinamicamente in fase di esecuzione. Lo standard delle applicazioni prevede che lo sviluppatore alleghi una libreria senza percorso o suffisso .pll/.plx. Forms cerca una libreria prima nella directory corrente e poi in ogni directory specificata in FORMS60_PATH. Cerca prima un .plx, poi un .pll.
  • Come affermato, Applications utilizza il .PLX perché è più piccolo e richiede meno memoria. Tuttavia, a volte problemi con l'ambiente, soprattutto se utilizzato per lo sviluppo personalizzato, possono portare a trovare prima il .PLL. Anche in questo caso, il truss può identificare rapidamente questo tipo di problema.

Legge anche
Oracle HTTP Server in EBS
Contenitore OC4J