Combinazioni principali
Quando ci si trova di fronte alla necessita' di realizzare un applicativo server side bisogna valutare alcune variabili importanti.
- Il codice disponibile. In molti casi il compito che ci prefiggiamo non e' cosi' diverso da compiti che gia' altri hanno svolto. La possibilita' di utilizzare codice (proprio o di altri) e' un ottimo motivo per scegliere un linguaggio di programmazione. Probabilmente e' molto piu' rapido prepare un forum in PHP/MySQL piuttosto che non in ASP/Access.
- Le prestazioni. In alcuni casi e' necessario valutare attentamente le prestazioni che una piattaforma e' in grado di offrire. Tipicamente, un sito di e-commerce ambizioso non puo' utilizzare Access. Allo stesso modo, se si necessita di utilizzare funzioni come l'integrita' referenziale, non e' consigliabile utilizzare MySQL.
- Il grado di conoscenza della piattaforma di sviluppo. Non e' un fattore da sottovalutare: se per un progetto semplice si puo' scegliere una qualunque piattaforma con cui si abbia una qualche familiarita', non e' cosi' per progetti avanzati e impegnativi, o per progetti che richiedano un rapido sviluppo.
- Le risorse hardware e software. In alcuni casi ci si trova di fronte ad alcune situazioni di fatto che rappresentano dei chiari vincoli di cui non si puo' non tenere conto. Per quanto riguarda l'hardware, i vincoli principali sono di "disponibilita'" (ex: non e' possibile installare IIS su Solaris...) o di prestazioni (ex: non e' possibile installare IIS su un vecchio Pentium). Analogamente la disponibilita' o la necessita' di alcuni tool di sviluppo puo' consigliare una determinata scelta. I principali tool visuali per la programmazione web sono per ASP e/o JSP. Per PHP non esistono tool visuali particolarmente utili per velocizzare la programmazione, risultando dunque una scelta consigliabile per chi ha familiarita' con la programmazione ed e' disposto a scrivere la totalita' del suo codice a mano.
- Le risorse economiche. Non si puo' dimenticare che alcune piattaforme hanno un costo non differente, sia per quanto riguarda le licenze, sia per quanto riguarda supporto, assistenza e upgrade. Valutare attentamente questi aspetti (ex: Oracle costa svariati milioni all'anno)
In breve: in molti casi ci sono alcuni vincoli nella scelta della piattaforma per un applicativo. Se i vincoli sono su web server, linguaggio di programmazione e database, non resta altro da fare e si puo' iniziare a lavorare. Altrimenti e' necessario scegliere, e con attenzione, gli elementi non dati. Probabilmente inoltre potrebbe essere opportuno scegliere una piattaforma per lo sviluppo e una, differente, per la pubblicazione. E' pero' necessario controllare costantemente la compatibilita' del codice utilizzato nella piattaforma di sviluppo con la piattaforma di pubblicazione.
Un esempio puo' rendere tutto piu' chiaro. A una persona e' stato chiesto di creare un codice in PHP/MySQl per una intranet. Come piattaforma di sviluppo si e' utilizzato win 98 con Apache/PHP/MySQL. La piattaforma di pubblicazione era Redhat 6.2 con PHP 4.03 pl1, e aveva un baco su alcune funzioni degli array, che hanno fatto perdere parecchio tempo.
Apache/PHP/MySQL
Il sistema che ne risulta e', oltre che stabile e sicuro, particolarmente economico. Nessuno di questi software e' a pagamento e il supporto ottenibile in mailing list e newsgroup, oltre che tramite la documentazione on line, e' comunemente riconosciuto come molto buono. E' la combinazione maggiormente utilizzata dai piccoli-medi server.
Il sistema operativo utilizzato e' generalmente UNIX-like, per il cui uso sono stati progettati Apache, PHP e MySQL, anche se sono disponibili per tutte le principali piattaforme. E' segnalata come particolarmente performante l'installazione di Apache su BSD UNIX e di MySQL su Linux.
Lo svantaggio principale e' nel supporto di un subset di SQL limitato (in particolare mysql non supporta right join e select di select).
La variante piu' comune e' Apache/PHP/PosgreSQL, scelta in particolare da chi necessita di un database totalmente libero e potente. E' pero' una soluzione molto meno performante. La soluzione Apache/PHP/mSQL, un tempo abbastanza diffusa, oggi e' raramente usata, in particolare dopo la scelta open source di MySQL.
Apache/PHP/Oracle
E' una soluzione usata generalemente in ambiente Unix, e piu' in particolare con Solaris. E' una scelta comune nel momento in cui, in piattaforma Unix, si richiede un database con un supporto di SQL piu' esteso di MySQL e non si vogliono sacrificare le prestazioni.
Il sistema ha un forte vantaggio competitivo dato da un dabase robusto come Oracle, e offre delle ottime prestazioni. Il problema principale e' nel costo del database, che non e' alla portata di molti progetti.
Apache/JSP/Oracle
E' una soluzione utilizzata per applicazioni complesse. Il suo punto di forza e' in un linguaggio a oggetti molto versatile, e la sua principale debolezza e' nella maggiore lentezza di sviluppo e nei forti costi economici.
IIS/ASP/ODBC
I limiti piu' comuni di questo tipo di scelta risiedono nella gestione della sicurezza (i sistemi UNIX-like sono comunemente riconosciuti come piu' sicuri di quelli Microsoft), nella performance (i sistemi basati su Apache, a parita' di piattaforma hardware e in particolare in caso di piattaforme economiche, sono sensibilmente piu' veloci) e nei costi (sono essenzialmente prodotti commerciali il cui costo puo' influire piu' che significativamente nei bilanci di un'impresa).
I sistemi operativi utilizzati sono esclusivamente quelli Microsoft e comunemente Windows NT e Windows 2000
Il vantaggio principale e' in un'interfaccia comune, familiare e semplice, come sono comunemente quelle Microsoft. L'installazione e la gestione di un server IIS e' molto piu' semplice di quella di un server Apache.
Inoltre, come accennato precedentemente, esistono numerosi applicativi per lavorare su questa piattaforma. Applicativi di questo tipo possono sgravare notevolmente il compito dello sviluppatore, anche se ovviamente non possono sopperire a carenze eccessive. Una query complessa in Access puo' essere creata molto piu' velocemente che in interfacce testuali come MySQL o Oracle in cui il codice deve essere scritto interamente a mano e in cui e' richiesta un'ottima padronanza di SQL. Allo stesso modo Dreamweaver o Interdev permettono di creare con semplicita' codice ASP.
IIS/PHP/MySQL
E' una buona soluzione per lo sviluppo. Permette di utilizzare l'interfaccia user friendly dei sistemi operativi Microsoft. E' una soluzione meno buona in ambiente di produzione perche' tanto PHP quanto MySQL sono meno performanti nei sistemi operativi Microsoft.
IIS/PHP/ODBC
E' una soluzione poco attestata, ma ha alcuni punti di forza, fra cui il fatto che e' supportata, mediante un modulo aggiuntivo, in Dreamweaver Ultradev. Porta ad alcuni sacrifici nelle prestazioni. E' in effetti oggi l'unica piattaforma per PHP che permette di utilizzare strumenti visuali avanzati per lo sviluppo.