Indice Prefazione XV Introduzione XVII PARTE TE PRIMA PREPARAZIONE 1 Capitolo 1 Architettura 3 1.1 Communication Services 5 1.2 Content Management Services 9 1.3 Business Logic Services 11 1.4 Presentation Services 12 1.5 Business Intelligence Services 15 1.6 Portal Services 16 1.7 Kit per sviluppatori 17 1.8 Caching Services 20 1.9 System Services 24 1.10 Database Services 26 1.11 Riepilogo 32 Capitolo 2 Installazione 33 2.1 Operazioni preliminari 33 2.2 Installazione di 9iAS 35 2.3 Trucchi e insidie dell installazione 43 2.4 Dopo l installazione: gli assistenti alla configurazione 45 2.5 Disinstallazione 47 2.6 Riepilogo 49
VI INDICE Capitolo 3 Configurazione e messa a punto di ias 51 3.1 Messa a punto rapida e suggerimenti per la configurazione 51 3.2 Primi passi 53 3.3 Introduzione alle porte 57 3.4 Avvio, arresto e riavvio di ias (Apache) 59 3.5 Configurazione di ias (Apache) 61 3.6 Interfaccia grafica per la configurazione di ias 67 3.7 Gestione e configurazione dei moduli 69 3.8 Configurazione della sicurezza di ias 78 3.9 Monitoraggio del Web Server di ias 85 3.10 Messa a punto di ias 90 3.11 Messa a punto dei moduli delle applicazioni 93 3.12 Messa a punto dell hardware e del sistema operativo 100 3.13 Riepilogo 106 Capitolo 4 Funzionamento 24 ore su 24, 7 giorni su 7 107 4.1 Oracle Real Application Clusters 111 4.2 Transparent Application Failover 117 4.3 Oracle Data Guard 118 4.4 Advanced Replication 122 4.5 Internet Application Server 125 4.6 Soluzioni di terzi 127 4.7 Soluzioni combinate 127 4.8 Strategie di massima disponibilità personalizzate 127 4.9 Riepilogo 128 Capitolo 5 Strategie antidisastri 129 5.1 Primi passi e definizioni iniziali 130 5.2 Classificazione dei disastri 132 5.3 Domande chiave cui rispondere nell analisi di un piano antidisastri relativo a Oracle 134 5.4 Solida documentazione e pratiche migliori 140 5.5 Riepilogo generale: formulazione del piano vero e proprio (CFSA) 148 5.6 Test seri e frequenti: analisi, pianificazione, test, ripetizione 153 5.7 Partecipazione, formazione e preparazione di utenti finali e clienti 154 5.8 Riepilogo 155
INDICE VII PARTE SECONDA CONCETTI FONDAMENTALI ALI 159 Capitolo 6 Sviluppo HTML 161 6.1 Come scrivere codice HTML 162 6.2 Aggiunta di un icona per il sito Web 168 6.3 Come fornire un collegamento per il sito Web 168 6.4 Visualizzazione del sorgente HTML senza i risultati 169 6.5 Determinazione del browser 169 6.6 Uso delle metatag 170 6.7 Uso delle tabelle HTML 172 6.8 Creazione di un modulo HTML 177 6.9 Uso di URL e di collegamenti ipertestuali 186 6.10 Moduli forzatamente affiancati 191 6.11 Cascading Style Sheet 192 6.12 Creazione dell oggetto e/o del testo per i messaggi di posta elettronica 196 6.13 Invio di posta elettronica da un modulo HTML 197 6.14 Rientro del testo 197 6.15 Inserimento di due titoli nella stessa riga 198 6.16 Determinazione del frame 198 6.17 Regole di etichetta nell uso dei frame 199 6.18 Come creare l aspetto di una finestra con cornice 200 6.19 Riferimento agli script CGI 200 6.20 Come tenere traccia dei visitatori del sito 202 6.21 Riepilogo 203 Capitolo 7 Sviluppo JavaScript 205 7.1 Confronto tra JavaScript e PL/SQL 207 7.2 Difficoltà di ias 214 7.3 Incompatibilità tra browser 215 7.4 Codice specifico del browser a partire dal codice dinamico 218 7.5 Riutilizzo del codice JavaScript 219 7.6 Uso di procedure in package PL/SQL 223 7.7 Elaborazione di avvisi personalizzati 223 7.8 Visualizzazione delle proprietà sullo schermo 224 7.9 Nuove finestre e passaggio di parametri 230 7.10 Assegnazione di variabili JavaScript 231 7.11 Uso del pulsante Submit 232 7.12 Convalida di campi del modulo 233 7.13 Uso del codice PL/SQL e di vari browser 235 7.14 Array bidimensionali in JavaScript 235 7.15 Assegnazione di variabili JavaScript 236
VIII INDICE 7.16 Richiamo di una procedura PL/SQL da un elenco di selezione 237 7.17 Modifica contemporanea dei frame 238 7.18 Errore di accesso negato 238 7.19 Passaggio di spazi come parte dell URL 239 7.20 Il debug di onfocus con avvisi non funziona 239 7.21 Uso di typeof per evitare l errore object expected 240 7.22 La funzione eval 242 7.23 Argomenti di funzione dinamici 243 7.24 Array di oggetti per simulare tabelle e righe 244 7.25 Iscrizione alla newsletter onfocus 245 7.26 Strumenti JavaScript visuali 246 7.27 Riepilogo 247 Capitolo 8 XML 249 8.1 Introduzione alle regole di base di XML 250 8.2 Analisi della struttura e della sintassi di un documento XML 252 8.3 Analisi di XML Schema 1.0 259 8.4 Analisi delle API di documento XML più comuni 268 8.5 Analisi di XPath 271 8.6 Uso dei fogli di stile XML per formattare e visualizzare i documenti XML 279 8.7 Supporto XML in Oracle9i 281 8.8 Oracle9i e Oracle Text 282 8.9 Analisi di Oracle XML Parser 283 8.10 Analisi di Oracle XML Class Generator 296 8.11 Analisi di Oracle XML SQL Utility 301 8.12 Potenzialità di Oracle XSQL Servlet 310 8.13 XML e Advanced Queuing 316 8.14 Rimozione del documento XML dalla coda di messaggi 327 8.15 Analisi di XML 330 8.16 Uso regolare di SOAP 336 8.17 Riepilogo 338 Capitolo 9 Sviluppo per dispositivi wireless 339 9.1 Programmazione del database per telefoni cellulari compatibili con il Web e per dispositivi portatili wireless 340 9.2 Programmazione di PDA wireless 359 9.3 Oracle9iAS Wireless Edition 361 9.4 Riepilogo 377
INDICE IX Capitolo 10 Migrazione da OAS a ias 379 10.1 Perché fare l aggiornamento? 379 10.2 Apache, Apache, Apache 382 10.3 Cosa funzionerà 383 10.4 Cosa non funzionerà 385 10.5 Cosa deve cambiare 386 10.6 Novità di ias 389 10.7 Prima di iniziare: cosa mi occorre davvero? 391 10.8 Effetti di ias sulle applicazioni PL/SQL già in uso 392 10.9 Riepilogo 393 Capitolo 11 Package PL/SQL incorporati 395 11.1 Cifratura di dati importanti con DBMS_OBFUSCATION_TOOLKIT 396 11.2 Lettura di altri siti Web con UTL_HTTP 403 11.3 Query e codice PL/SQL dinamici con DBMS_SQL, EXECUTE IMMEDIATE e cursori di riferimento 411 11.4 Invio di posta elettronica dal database con UTL_SMTP 422 11.5 Comunicazione attraverso i socket TCP/IP con UTL_TCP 424 11.6 Pianificazione dal database con DBMS_JOB 429 11.7 Invio di messaggi tramite il database con DBMS_PIPE 430 11.8 Impostazione delle proprietà di sessione con DBMS_SESSION 435 11.9 Recupero dell ora in millesimi di secondo con DBMS_UTILITY.GET_TIME 436 11.10 Riepilogo 438 Capitolo 12 Sicurezza 439 12.1 Concetti generali di sicurezza e approcci fondamentali alla sicurezza 439 12.2 Sicurezza del RDBMS 450 12.3 Virtual Private Database 450 12.4 Sicurezza a livello di applicazione 463 12.5 Sicurezza della rete 470 12.6 Riepilogo 482
X INDICE PARTE TERZA MODULI 483 Capitolo 13 Java 485 13.1 J2xE 488 13.2 Java per lo sviluppatore PL/SQL 489 13.3 La Java Virtual Machine (JVM) di Oracle 506 13.4 Servlet Java 510 13.5 JDBC (Java Database Connectivity) 515 13.6 SQLJ 518 13.7 JavaServer Pages (JSP) 521 13.8 Java Stored Procedure 559 13.9 Business Components for Java (BC4J) 563 13.10 JDeveloper 568 13.11 PL2JAVA: uso di PL/SQL in Java 584 13.12 Riepilogo 586 Capitolo 14 Il modulo PL/SQL 587 14.1 Passaggio da PL/SQL e HTML allo sviluppo Web 588 14.2 Installazione del Web Toolkit 596 14.3 Passaggio di parametri alle procedure PL/SQL 596 14.4 PL/SQL Server Pages (PSP) 600 14.5 Recupero delle variabili ambientali CGI 610 14.6 Mantenimento della cronologia del codice sorgente 611 14.7 Memorizzazione dei cookie 612 14.8 Riferimenti alle pseudocolonne 613 14.9 Calcolo del tempo in centesimi di secondo 614 14.10 Chiamate esterne da PL/SQL 614 14.11 Wrapping o protezione delle procedure contro la visualizzazione del sorgente 615 14.12 Reindirizzamento degli utenti a un altro URL 616 14.13 Query su più selezioni di una casella di riepilogo 617 14.14 Testo a capo senza ricorrere a <PRE> 619 14.15 Cancellazione del buffer 620 14.16 Debug di PL/SQL 620 14.17 Deautenticazione degli utenti 621 14.18 Scomparsa delle sessioni 621 14.19 Cifratura delle informazioni chiave 622 14.20 Ordinamento dei dati in base alle richieste dell utente 622 14.21 Modifica del codice PL/SQL 624 14.22 Nomi di dominio da indirizzi IP 625 14.23 Pulsanti di opzione mancanti 626 14.24 Definizione eccessiva delle azioni 626
INDICE XI 14.25 Conversione di numeri in parole 627 14.26 Come ottenere informazioni sugli utenti 628 14.27 Utilità di htp.linkrel 633 14.28 Ottimizzazione di PL/SQL 634 14.29 Riepilogo 639 PARTE QUARTA GLI STRUMENTI DI ORACLE 641 Capitolo 15 Designer 643 15.1 Esplorazione delle opzioni di layout dei moduli di Web PL/SQL Generation 646 15.2 Accesso ai valori degli elementi dei componenti master dai componenti detail 652 15.3 Creazione di componenti LOV 653 15.4 Definizione degli elementi di azione 655 15.5 Package generati da Designer 657 15.6 Viste nei moduli generati 664 15.7 Costruzione di un efficace schema di sicurezza del database quando si usano moduli generati 665 15.8 Uso di eventi e routine denominate 666 15.9 Preferenze e attributi chiave di Web PL/SQL Generator 668 15.10 Uso di frame e fogli di stile 670 15.11 Uso di elementi non limitati 676 15.12 Area del testo utente 677 15.13 Uso di JavaScript 681 15.14 Sovrascrittura della funzionalità predefinita di Designer 685 15.15 Uso degli argomenti 687 15.16 Gestione del ciclo di sviluppo del software con gli strumenti di gestione della configurazione 688 15.17 Generazione di oggetti di database con sorgente Java 690 15.18 Riepilogo 693 Capitolo 16 Oracle9iAS Portal 695 16.1 Da WebDB a Oracle Portal 696 16.2 Architettura di Oracle Portal 696 16.3 Installazione di Oracle Portal 699 16.4 Le basi di Oracle Portal 714 16.5 Sicurezza di Oracle Portal 743 16.6 Monitoraggio di Oracle Portal 748 16.7 Concetti avanzati di Oracle Portal 750 16.8 Riepilogo 764
XII INDICE Capitolo 17 Oracle Developer: moduli e report 765 17.1 Oracle Forms 766 17.2 Funzionamento di Forms Server 767 17.3 Oracle Reports 798 17.4 Riepilogo 823 Capitolo 18 IFS: Internet File System 825 18.1 Documentazione in linea 826 18.2 Installazione di IFS 826 18.3 Riconfigurazione di IFS 830 18.4 Avvio di IFS 830 18.5 Come accedere a IFS 831 18.6 Gestione dell unità IFS 840 18.7 Riepilogo 840 Capitolo 19 Caching del Web e del database 841 19.1 Che cos è la cache? 842 19.2 Tipi di cache 844 19.3 Vantaggi e svantaggi del caching 850 19.4 Come controllare il caching dalle applicazioni 851 19.5 Oracle9iAS Web Cache 856 19.6 Oracle9iAS Database Cache 895 19.7 Riepilogo 897 Capitolo 20 Oracle Enterprise Manager 899 20.1 Gli Intelligent Agent 901 20.2 I Management Server 905 20.3 Console 912 20.4 Accesso alla console mediante un browser Web 935 20.5 Installazione del server di paging e di posta elettronica 936 20.6 Riepilogo 938 PARTE QUINTA SUPPORTO TECNICO 939 Capitolo 21 Risoluzione dei problemi 941 21.1 Conoscete la risposta 941 21.2 Sapete come trovare la risposta 942 21.3 Sapete chi conosce la risposta 944 21.4 Sapete quando è il momento di chiedere aiuto 945 21.5 Riepilogo 945
INDICE XIII Capitolo 22 Debug del codice 947 22.1 Tecniche generali di debug 948 22.2 Visualizzazione di schermate HTML con le applicazioni PL/SQL 949 22.3 Determinazione di chi detiene il lock su una riga 949 22.4 Acquisto di strumenti di debug PL/SQL 951 22.5 Debug senza interferire con la vista dell utente 951 22.6 Ricerca degli errori generali di Oracle 951 22.7 Analisi dei file log 952 22.8 Tecniche di gestione degli errori per ridurre il tempo di recupero 952 22.9 Invio di messaggi di errore con raise_application_error 962 22.10 Progettazione della logica di debug/trace in un applicazione 967 22.11 Presentazione contemporanea di tutti gli errori di convalida con un array di errori 971 22.12 Uso dei package di report di versione 975 22.13 Marcatura del percorso con il trace dell applicazione 978 22.14 Wrapping del codice di produzione 981 22.15 Riepilogo 981 Capitolo 23 Log e analisi dei siti 983 23.1 Introduzione ai log di uso di ias 985 23.2 Ripristino o rolling del file log 993 23.3 Recupero di ulteriori informazioni sui formati dei file log 995 23.4 Ricerca di strumenti per la gestione dei siti Web 995 23.5 Analisi della soluzione SM WebTrends 996 23.6 Riepilogo 1001 Capitolo 24 Motori di ricerca: come guadagnare posizioni in classifica 1003 24.1 Scelta delle parole chiave 1005 24.2 Posizionamento delle parole chiave 1006 24.3 Dialogare con i robot 1012 24.4 Come acquisire popolarità da collegamento 1013 24.5 Come acquisire popolarità da clic 1015 24.6 Evitare lo spamming 1016 24.7 Costruzione di pagine doorway Trojan 1018 24.8 Sottomissione manuale 1020
XIV INDICE 24.9 Classificazione a pagamento 1021 24.10 Acquisto di software e servizi di sottomissione 1022 24.11 Come evitare problemi legali 1024 24.12 Importanza della promozione offline 1025 24.13 Altre insidie 1026 24.14 Riepilogo 1028 24.15 Bibliografia 1028 Capitolo 25 Oracle Text e Ultra Search 1031 25.1 Oracle Text 1031 25.2 Oracle Ultra Search 1033 25.3 Master.com 1041 25.4 Riepilogo 1043 Capitolo 26 Test del carico e dell applicazione 1045 26.1 Software per il test del carico e dell applicazione 1045 26.2 Scrittura del proprio programma di test del carico 1049 26.3 Servizi di test del carico 1058 26.4 Riepilogo 1061 Indice analitico 1063