<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9"> <TITLE>Database-SQL-RDBMS HOW-TO document for Linux (PostgreSQL Object Relational Database System): Web-Application-Server per PostgreSQL</TITLE> <LINK HREF="PostgreSQL-HOWTO-19.html" REL=next> <LINK HREF="PostgreSQL-HOWTO-17.html" REL=previous> <LINK HREF="PostgreSQL-HOWTO.html#toc18" REL=contents> </HEAD> <BODY> <A HREF="PostgreSQL-HOWTO-19.html">Avanti</A> <A HREF="PostgreSQL-HOWTO-17.html">Indietro</A> <A HREF="PostgreSQL-HOWTO.html#toc18">Indice</A> <HR> <H2><A NAME="s18">18. Web-Application-Server per PostgreSQL</A></H2> <P>Svariati Web-Application-Server funzionano con PostgreSQL, sia nelle versioni open-source che in quelle commerciali. I Web-Application-Server open-source diffusi, sono gli Application Server basati su Perl come Mason, WIRM, Velocigen, Enhydra(Java) e Zope(Python); gli Web-Application-Server commerciali sono IBM Websphere, BEA Weblogic. <P>È consigliato l'uso di un web server sicuro come Apache + mod_ssl + OpenSSL. Vedere il server sicuro Redhat StrongHold, presso <A HREF="http://www.c2.net/products/sh3">http://www.c2.net/products/sh3</A>. <P>I Web Application Server possono essere classificati in base al linguaggio di programmazione supportato. Scegliete un Web Application server in base al linguaggio di programmazione che <B>vi piace di più</B>. <P>Una classificazione dei Web Application server è: <UL> <LI> Basati sul linguaggio <B>PERL</B></LI> <LI> Basati sul linguaggio <B>PHP</B> (che è simile al PERL, e un po' somigliante a Java)</LI> <LI> Basati sul linguaggio <B>Python</B> (linguaggio di scripting orientato agli Oggetti)</LI> <LI> Basati sul linguaggio <B>Java</B> (Java della Sun Microsystems)</LI> <LI> Basati sul linguaggio <B>Tcl</B> (linguaggio di scripting Tcl/Tk, chiamato "Tickle")</LI> <LI> Basati sul linguaggio <B>C++</B> (C++ e CORBA)</LI> <LI> Basati sul linguaggio <B>Pike</B> (linguaggio di scripting simile al C++)</LI> </UL> <H2><A NAME="server perl"></A> <A NAME="ss18.1">18.1 Web Application Server in PERL </A> </H2> <P>Il linguaggio Perl, come il linguaggio "C", ha una storia molto lunga, e sarà usato per <B>migliaia di anni</B> nel futuro! Perl gira <B>10 volte</B> più rapidamente di Java, e qualche volta è più rapido anche del "C". Java è un sistema molto complesso; la sua macchina virtuale e l'interprete lo rendono estremamente lento, instabile ed inaffidabile. Perl è molto semplice, rapido, ed è orientato agli oggetti. <P>Inoltre, i programmi in Perl possono essere anche facilmente compilati per migliorarne le prestazioni. Usate Perl2Exe, una utility a riga di comando per convertire script perl in file eseguibili <A HREF="http://www.indigostar.com/perl2exe.htm">http://www.indigostar.com/perl2exe.htm</A><P>Per PERL sono disponibili i seguenti Web Application server: <UL> <LI> Mason <A HREF="http://www.masonhq.com">http://www.masonhq.com</A> è un potente motore per sviluppo e distribuzione di siti web, basato su Perl. Con Mason potete incorporare il codice Perl nel vostro HTML, e potete costruire pagine a partire da componenti riusabili e condivisibili. <P> </LI> <LI> BingoX <A HREF="http://opensource.cnation.com/projects/BingoX">http://opensource.cnation.com/projects/BingoX</A> è un Web Application Framework open source, orientato agli oggetti; è stato scritto in mod_perl, il che riduce drammaticamente il tempo richiesto per costruire siti web e applicazioni dinamici, funzionanti con database estesi. <P> </LI> <LI> SmartWorker è una collezione di classi Perl, che permette di costruire applicazioni web come se fossero vere applicazioni, e non solo modelli in HTML con codice incorporato in modo casuale. SmartWorker <A HREF="http://www.smartworker.org">http://www.smartworker.org</A> <P> </LI> <LI> Progetti di integrazione Apache-Perl. Con mod_perl è possibile scrivere moduli Apache interamente in Perl. In aggiunta a ciò, l'interprete, persistente ed incorporato nel server, si sottrae all'overhead dovuto all'avvio di un interprete esterno, e allo svantaggio dei tempi di avvio di Perl. Fate visita a <A HREF="http://perl.apache.org">http://perl.apache.org</A>, e date uno sguardo anche al progetto <B>mod_perl_garden</B>, presso <A HREF="http://modperl.sourcegarden.org">http://modperl.sourcegarden.org</A> <P> </LI> <LI> Apache::ASP <A HREF="http://www.apache-asp.org">http://www.apache-asp.org</A> , fornisce una versione delle Active Server Page per il Server Web Apache, utilizzando Perl come linguaggio di scripting ospitato. Apache::ASP consente ad uno sviluppatore di creare applicazioni web dinamiche, con gestione delle sessioni e l'incorporazione del codice perl. Esistono anche potentissime estensioni che comprendono librerie di tag XML, XSLT rendering, e nuovi eventi non facenti parte delle API ASP originarie. <P> </LI> <LI> WIRM (Web Interface Repository Manager) è un application server, basato su Perl, che fornisce un ambiente di programmazione d'alto livello per sviluppare sistemi informativi via web. WIRM consiste di un database relazionale ad oggetti, e di una suite di interfacce in Perl per la visualizzazione, l'integrazione e l'analisi di dati multimediali eterogenei. WIRM fornisce gli strumenti per creare punti di vista sensibili al contesto, a partire da un database multimediale; gli sviluppatori possono, quindi, costruire rapidamente siti web dinamici, che adattino il loro contenuto, e la presentazione, a classi multiple di utenti finali. Visitate <A HREF="http://www.wirm.org">http://www.wirm.org</A> <P> </LI> <LI> EmbPerl <A HREF="http://perl.apache.org/embperl">http://perl.apache.org/embperl</A>. Embperl vi dà la capacità di incorporare codice Perl nei vostri documenti HTML. Usare Perl significa essere capaci di usare un linguaggio di programmazione molto elaborato, largamente impiegato nell'ambito del WWW. Potete anche utilizzare le migliaia di moduli Perl che sono già state scritte - compreso DBI - per l'accesso a database di un numero sempre maggiore di sistemi di database. <P> </LI> <LI> ePerl <A HREF="http://www.engelschall.com/sw/eperl">http://www.engelschall.com/sw/eperl</A> , interpreta un file ASCII, riempito di istruzioni in Perl 5, passando al vaglio il codice Perl 5 durante la scansione dei dati in ASCII puro. Può operare in varie maniere: come filtro Unix a sé stante, come modulo Perl 5 integrato (per compiti di generazione di file di tutti i tipi), e come potente linguaggio di scripting da Webserver per programmazione di pagine HTML dinamiche. <P> </LI> <LI> XPP <A HREF="http://opensource.cnation.com/projects/XPP">http://opensource.cnation.com/projects/XPP</A> sta per "XPP Parses Perl" (XPP analizzatore sintattico di Perl), o anche "XPML Page Parser" (analizzatore di Pagina XPML), ed è un parser di HTML rapido/efficiente; XPP processa il codice perl incorporato, ma anche tag come quelli di HTML, a partire da pagine html dinamiche chiamate "pagine XPML". <P> </LI> <LI> Gamla - un RAD e application server basato su perl. Il progetto gamla aspira alla creazione di uno strumento per sviluppo rapido di applicazioni (RAD), e di un web application server basati su Perl. Tutto il codice sorgente, prodotto in seno al progetto Gamla, sarà di pubblico dominio. Gamla si trova presso <A HREF="http://gamla.iglu.org.il">http://gamla.iglu.org.il</A> <P> </LI> <LI> AxKit <A HREF="http://www.axkit.org">http://www.axkit.org</A> è un Application Server XML per Apache (e mod_perl). Esso permette di convertire al volo XML in qualsiasi altro formato, come HTML, WAP o testo puro; per far questo, si impiegano tecniche standard W3C, oppure si usa codice flessibile realizzato allo scopo. AxKit utilizza anche un interprete Perl incorporato per fornire alcune tecniche, sorprendentemente potenti, per trasformazioni di XML. AxKit mette l'accento sulla separazione tra il contenuto e la sua presentazione. La tecnica di filtraggio, impiegata da AxKit, permette la conversione del contenuto in un formato presentabile a stadi; in questo modo si permette, a certe piattaforme, di vedere i dati differentemente da come vengono visti da altre. AxKit permette ai web designer di concentrarsi sulla progettazione del sito web, per lavorare sul solo contenuto di base; i webmaster, invece, potranno concentrarsi sulle loro competenze di fondo.</LI> </UL> <P>Web Application Server Commerciali per Perl: <UL> <LI>Zelerate AllCommerce <A HREF="http://www.zelerate.org/html/eng/home.shtml">http://www.zelerate.org/html/eng/home.shtml</A> è un sistema di gestione delle relazioni commerciali, dei volumi, dei clienti. Quest'applicazione per Internet, scalabile e dalle elevate prestazioni, è scritta in Perl, ed impiega un database di backend. <P> </LI> <LI> VelociGen serve contenuto dinamico archiviato in XML, o su database, o a partire da dati liberi, e lo fa alla stessa velocità con cui vengono servite pagine HTML statiche: fino a 60 volte più velocemente della CGI, e senza dover modificare le vostre applicazioni pre-esistenti. VelociGen, inoltre, rende più facile sviluppare nuovi programmi con l'uso di tag XML dal lato server, fornisce protezione dai crash, ed equilibra il carico su macchine multiple. VelociGen si inserisce in maniera identica all'interno di qualsiasi Web server di qualsiasi piattaforma; con esso vengono incrementate le prestazioni del server, e velocizzati i tempi di risposta del sito web, funzionante con contenuto dinamico. VelociGen può elaborare grandi volumi di richieste simultanee, fino a 10 volte più rapidamente dei Servlet Java, e 4 volte più rapidamente di Cold Fusion. Velocigen <A HREF="http://www.binevolve.com/velocigen">http://www.binevolve.com/velocigen</A></LI> </UL> <H2><A NAME="midgard"></A> <A NAME="ss18.2">18.2 Web Application Server per PHP </A> </H2> <P>Per PHP sono disponibili i seguenti Web Application server <UL> <LI> Midgard PHP Web Application server è basato sul linguaggio di scripting PHP, e PHP gira estremamente rapido: più rapidamente di Java. Il sito principale di Midgard si trova presso <A HREF="http://www.midgard-project.org">http://www.midgard-project.org</A>. Gli script PHP possono essere compilati con il compilatore ed ottimizzatore Zend <A HREF="http://www.zend.com">http://www.zend.com</A>. PHP gira molto velocemente, ed è da 5 a 10 volte più veloce di Java. Vedere <A HREF="PostgreSQL-HOWTO-41.html#installamidgard">Installazione di Midgard</A>, e anche il PHP HOWTO presso <A HREF="http://www.linuxdoc.org/HOWTO/PHP-HOWTO.html">http://www.linuxdoc.org/HOWTO/PHP-HOWTO.html</A> <P> </LI> <LI>Ariadne <A HREF="http://www.muze.nl/software/ariadne">http://www.muze.nl/software/ariadne</A> è un sistema per applicazioni web. Esso consiste di una infrastruttura completa, volta a facilitare sviluppo e gestione di applicazioni web, impiegando il PHP. Il sistema usa un approccio modulare, utilizzando allo scopo interfacce astratte per tutte le transazioni. Ne deriva la massima libertà di cambiare alcune parti dei sistemi, modificandole o aggiungendo nuove funzionalità, senza dover riprogrammare le altre parti. </LI> </UL> <H2><A NAME="Enhydra"></A> <A NAME="ss18.3">18.3 Lutris Corp "Enhydra Enterprise" (Java) </A> </H2> <P>Enhydra supporta il database PostgreSQL. Enhydra è un Web-Application-Server per Java/XML enormemente diffuso, creato dalla 'Lutris Corporation'. È il miglior server per Applicazioni Web in Java/XML. Supporta EJB, Servlets, JSP, JNDI, JDBC, JTA, CORBA, XMLC/Rocks, DODS e l'internazionalizzazione. È usato da molte delle 500 maggiori compagnie a grande capitalizzazione di USA ed Europa; queste compagnie (come "France Telecom") stanno finanziando direttamente Enhydra. È stato scritto in Java puro al 100%, ed è prelevabile presso <A HREF="http://www.enhydra.org">http://www.enhydra.org</A>. Enhydra è un progetto realizzato con codice open source, ma è venduto e supportato commercialmente da Lutris Corp. Visitate il sito <A HREF="http://www.lutris.com">http://www.lutris.com</A><P>Leggete il tutorial sulla configurazione di <A HREF="http://www.enhydra.org/software/documentation/enhydra/NewApp-DODS-Tutorial-PGSQL.html">PostgreSQL con Enhydra</A> , e leggete anche come effettuare la <A HREF="http://www.enhydra.org/software/documentation/enhydra/Enhydra-NewApp-DODS-Tutorial.htm">Configurazione del database con Enhydra</A>. <P>Con Enhydra dovreste usare JBuilder della Borland Corp.. Jbuilder si trova presso <A HREF="http://www.inprise.com">http://www.inprise.com</A><P>Leggete anche l'Enterprise-Java-HOWTO presso <A HREF="http://www.linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html">http://www.linuxdoc.org/HOWTO/Enterprise-Java-for-Linux-HOWTO.html</A><H2><A NAME="Zope"></A> <A NAME="ss18.4">18.4 Zope (in linguaggio Python) </A> </H2> <P>Tra i linguaggi di scripting "puramente" orientati agli oggetti, Python sta diventando molto diffuso. Zope è un server Web-Application, e fornisce un'interfaccia a PostgreSQL. Zope è disponibile presso <A HREF="http://www.zope.org">http://www.zope.org</A> Python si trova presso <A HREF="http://www.python.org">http://www.python.org</A><P> <H2><A NAME="OpenACS"></A> <A NAME="ss18.5">18.5 OpenACS (in linguaggio Tcl) </A> </H2> <P>OpenACS (Open ArsDigita Community System) <A HREF="http://openacs.org">http://openacs.org</A> è un toolkit avanzato per costruire applicazioni web scalabili, orientate alle community. Funziona su AOLserver, un server per applicazioni web, e PostgreSQL, un RDBMS che rispetta le proprietà ACID. Questi due prodotti sono di alta qualità, e sono disponibili gratuitamente sotto licenze open-source. <P>ACS è stato creato da ArsDigita, <A HREF="http://www.arsdigita.com">http://www.arsdigita.com</A>, e questo loro ACS (ArsDigita Community System) mira ad essere indipendente dal database per quanto possibile, benché sia basato su Oracle (ed è quindi chiaro che Open ACS deve prendersi tutto il tempo necessario per effettuare il porting). <P>Vedere anche <A HREF="http://www.appserver-zone.com">http://www.appserver-zone.com</A><H2><A NAME="corba"></A> <A NAME="ss18.6">18.6 Web Application Server CORBA in C++ </A> </H2> <P> <UL> <LI> il Web Application Server PortalSphere è realizzato in C++ , e gira sotto Unix (e Linux) per l'estrema velocità e stabilità. Aderendo strettamente allo standard CORBA, PortalSphere supporta sia HTTP (il protocollo di comunicazione standard in Internet) che il protocollo punto-a-punto IIOP, adatto a comunicazioni client-server a velocità ultra rapida. Queste caratteristiche di PortalSphere, associate ad un accesso diretto (nativo) a tutti i database diffusi, gli conferiscono prestazioni lampo, e l'eccezionale capacità intrinseca di gestire eventi in tempo reale su internet. PortalSphere è oltre 100 volte più veloce di HTTP/CGI, Munito di accesso diretto (nativo) ai database più diffusi, Scalabile fino a più di 10'000 sessioni-utente concorrenti. Visitate PortalSphere presso il sito <A HREF="http://www.portalsphere.com/overview.html">http://www.portalsphere.com/overview.html</A>. <P> </LI> <LI> FlashPoint è un progetto di Web Application Server in C++,C,PERL; è in grado di supportare servizi con applicazioni web ad alta velocità in un ambiente multi-thread, può supportare svariati linguaggi di sviluppo inclusi C & C++; inoltre supporta buone procedure di ingegneria del software, che in altri ambienti sarebbero terribilmente ardue da implementare. Flashpoint può essere usato a fianco di Apache, e in qualche caso può sostituirlo, a seconda delle vostre necessità. Visitate <A HREF="http://www.bouldersoftware.com/products/flashpoint">http://www.bouldersoftware.com/products/flashpoint</A>, e scaricate il pacchetto da <A HREF="http://www.bouldersoftware.com/products/flashpoint/download.html">FlashPoint Redhat RPM</A>. <P> </LI> <LI> "C Server Pages" <A HREF="http://cserverpages.20m.com">http://cserverpages.20m.com</A> è un Application Server, scritto in C/C++, efficiente e scalabile; permette di potenziare le pagine web server, ed i Template scritti in C++, con Elementi Dinamici incorporati. Potete usare l'approccio che preferite. Potete costruirvi i vostri oggetti di lavoro usando il C++. Le vostre pagine possono essere i client CORBA per qualsiasi ORB sulla piazza. È presente connettività a tutti i database SQL.</LI> </UL> <H2><A NAME="pike"></A> <A NAME="ss18.7">18.7 Pike, Roxen Web Application Server</A> </H2> <P>Pike è un linguaggio di programmazione dinamico, con una sintassi simile al quella del C++. È semplice da apprendere, non richiede lunghi passi di compilazione, e ha potenti tipi di dati incorporati che ne permettono una gestione semplice e rapida. Pike è stato rilasciato sotto la licenza GNU/GPL, o general public license. <P>Pike è un potentissimo linguaggio di scripting orientato agli oggetti; poiché ha una sintassi identica a quella del C++, se ne prevede una diffusione <B>esploderà</B>, nei prossimi anni. <P>Pike si trova presso il sito <A HREF="http://pike.roxen.com">http://pike.roxen.com</A>, e il web server Roxen è presso <A HREF="http://www.roxen.com">http://www.roxen.com</A>. <P>Roxen è un web server modulare con un'interfaccia DB completa, ed include supporto a Postgres. Ha pieno supporto per SSL, ed è stato rilasciato sotto la GPL. Roxen è stato scritto utilizzando il linguaggio di scripting Pike. <H2><A NAME="webappdir"></A> <A NAME="ss18.8">18.8 Web Application Servers Directory </A> </H2> <P>Visitate <A HREF="http://198.85.71.76/html.html">Web Application Servers</A>. Recatevi nella directory con "Yellow Pages". <P> <HR> <A HREF="PostgreSQL-HOWTO-19.html">Avanti</A> <A HREF="PostgreSQL-HOWTO-17.html">Indietro</A> <A HREF="PostgreSQL-HOWTO.html#toc18">Indice</A> </BODY> </HTML>