Advertisement

phpday 2006 - SEA case study

Web Architect at Kaliop
Dec. 22, 2020
Advertisement

More Related Content

Advertisement

Recently uploaded(20)

phpday 2006 - SEA case study

  1. SEA Aeroporti di Milano & PHP Case study Ing. Gaetano Giunta – SEA (Direzione Sistemi Informativi di Gruppo) Elena Brambilla – SIDI S.r.l. PHP Day 2006 Canale Enterprise Bari – 20 maggio 2006
  2. Chi è SEA? Diamo i numeri... Nel 2005: ● Oltre 29 milioni di passeggeri ● 321 mila movimenti ● Circa 6500 dipendenti ● Malpensa: secondo HUB in Europa per puntualità ● Primo hub in Europa per bagagli consegnati senza disguidi
  3. Ancora numeri... Sistemi Informativi: ● 115 persone (di cui 40 helpdesk) ● server: 80 a Linate, 100 a Malpensa (in 6 sale server) ● wan: 500 switch ● postazioni desktop: 2000 client, 900 postazioni di front-end ● wi-fi: 110 access points, 120 palmari, 50 veicolari ● sistemi operativi: DOS, Windows 95, 98, NT, 2000, 2003, DOS, AIX, HP-UX, Solaris, Linux... ● database: oracle 8 e 9, Sybase, SQLServer, MySQL
  4. PHP in SEA ● Primo deploy: nel 2001 su SCO Unix ● Oggi: su Solaris, Windows, Linux ● Utilizzato per creazione di custom web apps e come linguaggio di scripting “all-purpose” ● Utilizzo di applicazioni open-source “di mercato” per funzioni non business-critical (gestione biblioteca, etc...), successivamente integrate nei sistemi di scalo
  5. PHP ed i sistemi legacy: “che colla!” ● Siti basati su db sybase, oracle, mysql e sqlserver ● Autenticazione integrata con dominio windows 2000 via LDAP ● Webservices: pubblicazione e consumo di servizi XML-RPC e SOAP ● Windows: utilizzo trasparente di oggetti COM ● Interazione con server remoti via FTP, HTTP
  6. Case study: “datamover” ● “ETL in a BOX” ● Collega sistemi core di scalo da vari anni ● 2-phase commit ● per HA: messo in inittab ● Utilizza ADODB come data access layer ● File di configurazione = codice PHP!!! sybase oracle php “exec procs.sp_get_dati” “begin sp_in_dati(to_date('&&1&&'), &&2&&); end;” Per ogni riga esegui
  7. Case study: “datamover evolution” ● Problema: occorre un server su cui siano installati i driver dei 2 database da collegare ● Idea: dividere il processo in due, utilizzando web- services per comunicare ● Soluzione: un nuovo driver per ADODB: adob_xmlrpc che si connette al db via webservices DB sybase oracle php Apache php Apache php J2 EE
  8. Richiesta: creazione di report PDF da web apps esistenti ● Proposta 1: utilizzare le librerie PHP per generare 'programmaticamente' i pdf tempi lunghi, poca flessibilità ● Proposta 2: riscrivere le applicazioni per produrre XML e quindi trasformarlo in PDF tempi lunghi, buona flessibilità ● Proposta 3: implementare una “stampante HTML to PDF” accessibile via webservice da qualunque applicazione intranet tempi brevi, flessibilità massima Case study: pdf printer server
  9. Case study: pdf printer server PDF server ClientWeb server Richiesta iniziale Richiesta al ws: URL da convertire Richiesta della pagina Risposta al ws: URL del pdf Risposta al client (link) Richiesta del pdf Stampa html su pdf Verifica accesso
  10. Case study: SMS server ● Integrazione di un sistema di messaggistica SMS preesistente ● Espone interfacce web-service in SOAP ed XMLRPC per invio di SMS (es: allarme su fermo sistemi) e ricezione di messaggi per applicazioni diverse (es: editing homepage del sito in situazioni di mancanza di connettività web, interrogazione della rubrica telefonica) ● Evoluzione futura: servizi al pubblico?
  11. Case study: SMS server Modem GSM Applicazione SMS Apache, PHP processo PHP schedulato Client app. invio + ricez. PULL SOAP / xmlrpc Client app. con ricezione PUSH classi comuni
  12. Case study: SMS server +rubrica+giunta SEA Directory Nome: Gaetano Giunta Tel: 3595 (lin) E-mail: giunta.gaetano @sea-aeroportimilano.it ● Esempi di interazione +rubrica+tel 3595 SEA Directory Nome: Gaetano Giunta Tel: 3595 (lin) E-mail: giunta.gaetano @sea-aeroportimilano.it info arrivi mxp SEA Info Voli Volo:IB 03636 Previsto:15:35 Volo:KL 01627 Previsto:15:35 Volo:AZ 07721 Previsto:15:35 Volo:RJ 00103 Previsto:15:15 www.sea-aeroportimilano.it
  13. Case study: FOX Applicazione utilizzata dagli agenti rampa per coordinare tutte le operazioni sottobordo. 60 palmari, un centinaio di postazioni web attive ad ogni momento
  14. Case study: FOX ● DB Oracle, PHP per il front-end, applicazioni C per l'accesso via palmare (emulazione di terminale con librerie custom Psion-Teklogix), per flussi dati verso altri sistemi sia script PHP (verso sybase) che applicazioni Java (verso mainframe – librerie tcAccess) ● App design del 2000: codice php ed html mixati liberamente, accesso a db via libreria custom ● Centralizzazione della business logic: interamente scritta in PLSQL all'interno del db vantaggi: si può riutilizzare lo stesso codice per i diversi front-end; performances; scalabilità
  15. Case study: FOX Meccanismi adottati per l'alta disponibilità: ● Oracle, Apache in configurazione di cluster (2 nodi, attivo/passivo) ● I processi di gestione dei palmari e dei flussi sono gestiti dal cluster ● Duplicazione di tutto l'hardware coinvolto (firewall, server radius, network controller) tranne gli AP ● Sessioni PHP memorizzate nel DB ● Stabilità della piattaforma: applicazione utilizzata anche con un segmentation fault per pagina (causato da un acceleratore php)
  16. Case study: sito internet sito bilingue (italiano e inglese) 160.000 pagine al giorno (oltre 1.700.000 hits) servizi: voli di oggi, tracking voli, meteo, contattaci, rassegna stampa, tracking bagagli smarriti, motore di ricerca sui contenuti, etc...
  17. Case study: sito internet ● App. design del 2004: separazione tra business logic e presentation logic (Smarty); accesso a DB via libreria 'di mercato' (AdoDB), accesso tra DMZ e LAN via web-services (xmlrpc) ● Altre librerie open source: PEAR_weather per i dati meteo, phpmailer per il tracking ● Migrazione da piattaforma Microsoft (IIS, ASP, SqlServer su windows 2000) a mista (IIS, PHP, SqlServer su windows 2003) ● Next steps: migrazione a PHP 5, Oracle, Apache su Linux (Red Hat ES 4)
  18. Case study: sito internet Performance tuning: ● gestione del CMS “offline” ● utilizzo di caching di Smarty ● Una singola pagina ad altissimo traffico: pre- generazione della versione HTML tramite batch job ● Interfaccia ISAPI o fastCGI verso IIS ● Opcode caches: ce ne sono di free precompilate per windows? ● ADODB: utilizzo di adodb.dll
  19. Case study: corporate intranet ● Da cosa siamo partiti – Strumento inadeguato – Sistema obsoleto ● Scelta strumenti – CMS Open Source – Base dati Mysql – Ez-Publish – Modulo LDAP
  20. Case study: corporate intranet Studio del problema ● complessità organizzativa del contesto aeroportuale ● criticità del sistema di check-in ● gestione di documentazione in formato PDF/html ● garanzia supporto tecnico
  21. Case study: corporate intranet Stato dell'attuale implementazione ● Primo periodo di approfondimento eZ publish ● Progettati layout e alberatura dei contenuti ● Automatismo batch per l’aggiornamento delle anagrafiche utenti “fuori dominio” ● Sistema di feedback per il customer care del gruppo ● Una gestione di dialogo tra reparti ● Pubblicazione aggiornamenti normative voli
  22. Case study: corporate intranet Implementazioni future ● ogni giorno emergono nuove richieste di personalizzazione. ● fornire uno strumento che diventi la “scrivania virtuale” di ogni dipendente del gruppo SEA
  23. Ma funziona davvero così bene? Alcune problematiche riscontrate: ● difficoltà della compilazione sotto unix ● bachi che appaiono e scompaiono nelle varie release ● alcuni driver di database godono di supporto “limitato” rispetto ad altri ● non disponibilità di alcune estensioni in ambiente windows ● difficoltà nel reperire programmatori esperti
  24. Conclusioni Domande ? Dov'è finito il mio bagaglio? ...arrivederci e grazie
Advertisement