• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Lucio Zambon: PHP@Elettra
 

Lucio Zambon: PHP@Elettra

on

  • 3,495 views

 

Statistics

Views

Total Views
3,495
Views on SlideShare
3,486
Embed Views
9

Actions

Likes
0
Downloads
42
Comments
0

1 Embed 9

http://www.phpday.it 9

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Lucio Zambon: PHP@Elettra Lucio Zambon: PHP@Elettra Presentation Transcript

    • Elettra: Sincrotrone Trieste S.C.p.A. Ente di ricerca: Ente di diritto privato, finanziamento pubblico Importante laboratorio di fisica sperimentale Acceleratore di particelle di terza generazione Scopo di Elettra è l’accelerazione di elettroni, il loro immagazzinamento, la produzione con essi di luce di sin- crotrone che viene utilizzata per osservazioni o interazioni a livello di singole molecole o di atomi. 1 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Elettra: Sincrotrone Trieste S.C.p.A. Linac: Vengono generati ed accelerati dei pacchetti di elettroni Storage Ring: anello dove viene accumulato il fascio di elettroni per 24-48 ore Beam Lines: Linee di luce di sincrotrone dove ven- gono svolti esperimenti di fisica della materia, microfabbricazione (nano tubi), medicina (corona virus, mammografia), chimica, etc. 2 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Elettra: Sincrotrone Trieste S.C.p.A. Problematiche ad Elettra:  Gestione personale (staff) e utenti (temporanei)  Gestione acceleratore (magneti, pompe, alimentatori, cavità RF etc)  Sistema di controllo gestisce circa 20000 variabili 3 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Sistema di Controllo Ad Elettra si utilizza e sviluppa TANGO  Collaborazione con ESRF (Grenoble) SOLEIL (Parigi) e ALBA (Barcellona)  Basato su CORBA  Linguaggi supportati (API): C++, Java, Python  OS: Linux (anche con estensione real time RTAI), Windows Altri sistemi di controllo:  Epics: usato da circa cento istituti, basato su WxWorks  Tine: sviluppato a DESY (Amburgo)  etc 4 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Applicativi PHP ad Elettra Esistono varie applicazioni indipendenti:  Homepage: http://www.elettra.trieste.it/index.php  Servizi interni: web update, clockin, myphoto, people, ordini, it_support, ecologia, gimmeFTP  CANONE: interfaccia verso il sistema di controllo  E-GIGA: interfaccia verso il sistema di archiviazione 5 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • E-Giga: Electronic Graphic Interface for Global Archiving Tecnologia: PHP, MySQL, JavaScript, JPGraph, etc Periodo di sviluppo: 25 luglio 2003 – fino ad oggi Versioni: più di 110 versioni Niente di nuovo sotto il sole:  Esistono innumerevoli programmi per produrre grafici  Solo ad Elettra ce ne sono altri 2 su web  L’unica novità sta nei dettagli 1 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Architettura a pagina singola Requisiti: Web browser   Pop-ups  Cookies 2 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Aree principali Selezione  Disegno Menu 3 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Selezione Seleziona variabili per l’asse Y1   Seleziona variabili per l’asse Y2 (opzionale)  Seleziona variabili multistato (opzionale)  Seleziona variabili ON/OFF (opzionale)  Data e ora d’inizio + calendario  Data e ora di fine + calendario  Bottone di zoom inverso  Bottone di disegno 4 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Calendario Data e ora in un clic   Presenza di dati  Periodo relativo (ultimi N minuti / ore / giorni)  Informazioni aggiuntive (run) 5 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Grafico Clic sull’ immagine per ottenere uno zoom 6 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu File  New elimina tutti i parametri nei cookies  Load… legge dei parametri da un file sul server  Open… legge dei parametri da un file sul client  Save… scrive i parametri su un file sul client 7 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu Export  PDF™ grafici e tabelle in formato A4 o A3  XLS usa XML per Excell™ XP o 2003  MAT formato binario di Matlab™  CSV comma separated values  Mail con protocollo multipart mime 8 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu Bookmarks Le preferenze sono salvate nei cookies  Create salva configurazione in bookmark  Load carica una configurazione  Default setta un bookmark come default  Delete cancella un bookmark 9 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu Format  Hide Events nasconde/mostra gli eventi  Plot size modifica le dimensioni del grafico  Zoom cambia due modalità di zoom  Style a gradini / lineare / a punti sparsi  Y axis scala logaritmica, etichetta, max/min  Y2 axis attiva o nascondi l’asse Y2  Correlation correlazioni fra 2 variabili  Show Raw Data mostra dati in una tabella 10 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu Options  Groups mostra solo le variabili in un gruppo  Period seleziona un periodo di tempo  Advanced solo per utenti avanzati  FastPlot usa plot rapido di JPGraph 1.17  Formulae… modifica una formula 11 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Editor di Formule  Composizione  Caricamento  Cancellazione  Grafica MathML  auto – completamento delle variabili 12 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Menu Help  Help Contents alcune pagine di aiuto  About E-Giga versione e autore 13 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Conclusioni Sviluppi futuri  Debugging: nessuno è perfetto  Gestione variabili: selezione colore delle variabili etc  Utenti: gestione utenti e configurazioni tutto sul lato server  Multi-plot: più grafici nella stessa pagina  Variabili vettoriali: selezioni di elementi e viste nello spazio Ringraziamenti  Sono state utilizzate 8 librerie open-source PHP e JavaScript  Molte persone hanno contribuito con suggerimenti e segnalazioni di malfunzionamenti 14 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Sommario Canone è un’interfaccia web grafica e animata verso il sistema di controllo di un acceleratore di particelle. Connessioni: socket testo Tecnologia: PHP, JavaScript, SQL. Grafica: sia in PHP che in JavaScript Pannelli: riuniscono uno o più elementi grafici in una pagina Animazione: con l’utilizzo di una libreria Ajax Gestione risorse: utenti e permessi 1 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Canone: un'interfaccia PHP verso i sistemi di controllo web libreria Canone Gestione core Utenti Widget animazione Front-end Buffer DB Widget Multi-port channel socket Socket server Interfaccia DAL Epics Tango … Sistema di controllo 2 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Connessioni Socket: la comunicazione col sistema di controllo avviene attraverso un protocollo di tipo testo su un socket TCP/IP. Più comunicazioni contemporanee possono avvenire su più porte Disaccoppiamento: il sistema di controllo deve essere il più possibile separato dal web, non deve essere influenzato da un sovraccarico sul web (attacchi DoS) Letture bufferizzate: tutte le letture sono memorizzate temporaneamente in un database (SQLite o MySQL) con limitazioni di sicurezza (banda limitata). 3 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Tecnologia PHP: tutta l’elaborazione sul lato server viene svolta in PHP (circa 85% del codice complessivo), le classi sono utilizzate solo nelle librerie (widget, interfaccia SQL), supporta sia PHP4 che PHP5. Utilizza GD, Socket e MySQL o SQLite JavaScript: Ajax, menù a tendina, disegno di elementi grafici e trascinamento col mouse (drag-and-drop) Python: un socket server Java: un altro socket server (più generico) 4 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Grafica Esiste un insieme di elementi grafici generici (widget) http://www.elettra.trieste.it/~tango/Canone/widgets_example.html Un widget consiste in: Una classe che estende una generica classe “widget” Uno sfondo disegnato in PHP Una grossa quantità di parametri passati anche a JavaScript 5 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Grafica Configurazione di un Widget Variabile associata Anteprima Parametri 6 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Pannelli I pannelli sono composti da un insieme di widget 7 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Pannelli Pannelli: le configurazioni vengono salvate in file XML 8 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Pannelli Designer: i widget possono essere spostati con il mouse (drag-and-drop) e possono essere ridimensionati tenendo premuto il tasto shift e muovendo il mouse 9 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Grafica Grafica e JavaScript JavaScript è privo di funzionalita grafiche, ma esiste una libreria che realizza gli elementi grafici come colore di sfondo di tag HTML opportuni (vectorgraphics library). L’imagine desiderata viene scomposta nel minor numero possibile di rettangoli e per ognuno di questi viene creato un <div>. http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm 10 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Animazione AJAX: Asynchronous JavaScript and XML http://it.wikipedia.org/wiki/Ajax JavaScript fa una chiamata XMLHttpRequest() per scambiare dati in modo asincrono con il web server usando XML. Questa tecnica ha circa due anni ed ha già un’enorme popolarità. Dalla versione 2.0 Canone supporta Ajax! Ma c’è ancora molto da fare! 11 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Animazione GAJAX = Graphical Asynchronous JavaScript and XML Animazione + grafica: Sfondo costruito sul lato server (PHP + GD) Animazione aggiunta Sul lato client (JavaScript + AJAX) 12 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Animazione Frequenza di acquisizione Frequenza regolabile a livello di pannello Interpolazioni Si possono inserire fra due letture “vere” una o più interpolazioni che rendono l’animazione molto più fluida a parità di banda. Il prezzo da pagare è un ritardo nella visualizzazione e la non perfetta veridicità di tutti i dati mostrati. 13 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Gestione risorse Permessi utente read - solo lettura operator - lettura e comandi expoert – configurazione 14 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Sviluppi Futuri Solo alcuni dei possibili miglioramenti: Upgrade del Designer creare la possibilità di aggiungere nuovi widget Estensione della libreria di widget Utilizzo del formato grafico SVG (XML del W3C) http://www.w3.org/Graphics/SVG/ Utilizzo del linguaggio JavaFX script (??) http://www.sun.com/software/javafx/ 15 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon
    • Conclusioni Ringraziamenti Miha Pelko (Lubiana, Slovenia) http://www.cosylab.com Socket server in Java per altri sistemi di controllo e debug Anthony J. Green (Cambridge, UK) http://www-mdp.eng.cam.ac.uk Stili, sicurezza e debug Documentazione, demo e sorgenti: http://luciozambon.altervista.org/canone 16 PHP Day 2007, Verona 18 maggio 2007 Lucio Zambon