Applicazioni server-side in Python. Sebastiano Viviani
|
|
- Erico Maggio
- 8 anni fa
- Visualizzazioni
Transcript
1 Applicazioni server-side in Python Sebastiano Viviani
2 Cenni storici Progettato e creato da Guido van Rossum viene pubblicato nel 1991 Nel 1994 raggiunge la versione 1.0 (CWI istituto nazionale olandese per la ricerca nelle scienze informatiche e matematiche) Dal 1995 al 2001 viene sviluppato presso il CNRI (organizzazione no-profit di ricerca con sede in Virginia) salvo una piccola parentesi in BeOpen.com Dal 2001 ad oggi è proprietà della Python Software Foundation (organizzazione no-profit)
3 Caratteristiche tecnologiche Linguaggio di scripting Object oriented (con ereditarietà multipla) Gestione delle eccezioni Dynamic typing / strong typing Elementi di programmazione funzionale Utilizzo di una VM con relativo bytecode Definizione dei blocchi di codice attraverso l'indentazione
4 Implementazioni esistenti Cpython (implementazione di riferimento con relativi sorgenti) disponibile per Linux/Windows/OSX Porting esistenti per Solaris/AIX/iSeries(AS400)/zOS(MVS) Windows CE Jython (VM su JVM) interprete e con traduzione in Java Byte Code IronPython (VM in ambiente.net) PyPy (Python on Python)
5 Performance Da Computer Language Benchmarks Game Rapporto 1,00 1,50 17,00 21,00 23,00 48,00 linguaggio C gcc Java 6 -server Python Perl PHP Ruby
6 Come valutare le performances Java -> Pure Java Python -> Librerie native (C) Estensibilità: C nativo, SWIG, PyREX
7 Batterie incluse Estesa libreria fornita assieme al base system Package per gestione , parser xml, internazionalizzazione, embedded db su sql-lite Client per i più diffusi protocolli internet: IMAP, POP3, SMTP, HTTP, XML-RPC, FTP, TELNET, NNTP Oggetti server: HTTP, SMTP, XML-RPC Sistema di logging, Profiler API per accesso SQL (DB-API) Documentazione relativa a librerie, API, tutorial
8 Tipi di dati (1) Gestisce nativamente tipi scalari (booleani, caratteri, interi, float, complessi) Iteratori Sequenze (stringhe, stringhe unicode, liste, t- uple) Insiemi Dizionari Files I metodi possono restituire qualunque di questi dati
9 Tipi di dati (2) Classi e metodi sono tipi nativi Prevede l'introspezione Prevede la serializzazione Thread Meccanismi di sincronizzazione
10 Qualche esempio from datetime import datetime from xml.etree import ElementTree def date_adder(doc): tree = ElementTree.XML(doc) pags = [float(a.text) for a in tree.findall("./pag")] return (datetime.now(), sum(pags)) print date_adder("""<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>""") >>> (datetime.datetime(2007, 11, 19, 18, 41, 56, ), 31.5)
11 XML-RPC Request POST / HTTP/1.0 User-Agent: PEAR XML_RPC Host: localhost Content-Type: text/xml Content-Length: 332 <?xml version="1.0" encoding="utf-8"?> <methodcall> <methodname>date_adder</methodname> <params> <param> <value><string><?xml version="1.0"?> <document><pag>10.0</pag><pag> 12.0</pag><pag> 9.5</pag></document></string></value> </param> </params> </methodcall>
12 XML-RPC Response HTTP/ OK Server: BaseHTTP/0.3 Python/2.5.1 Date: Fri, 23 Nov :50:52 GMT Content-type: text/xml Content-length: 245 <?xml version='1.0'?> <methodresponse> <params> <param> <value><array><data> <value><datetime.iso8601> t10:50:52</datetime.iso8601></val ue> <value><double>31.5</double></value> </data></array></value> </param> </params> </methodresponse>
13 XML-RPC from SimpleXMLRPCServer import SimpleXMLRPCServer from datetime import datetime from xml.etree import ElementTree def date_adder(doc): Commento del metodo tree = ElementTree.XML(doc) pags = [float(a.text) for a in tree.findall("./pag")] return (datetime.now(), sum(pags)) srv = SimpleXMLRPCServer((' ',8080)) srv.register_function(date_adder) srv.serve_forever()
14 XML-RPC CLIENT import xmlrpclib clnt = xmlrpclib.server(" print clnt.date_adder("""<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>""") >>> [<DateTime ' T18:50:14' at b7cee20c>, 31.5]
15 Python vs C/C++ Estesa libreria standard fornita assieme al base system Management automatico degli oggetti (ref count) Tempo di sviluppo infinitamente minore Possibilità di integrare solo piccole componenti in C/C++ per migliorare le performances Multipiattaforma Sintassi più chiara
16 Python vs PHP Migliori performances Possibilità di distribuire il solo byte-code al posto di tutta l'applicazione Estesa libreria fornita con il sistema di base (anche se il gap si sta lentamente colmando grazie al framework PEAR) PHP è progettato più che altro per l'impiego in applicazioni WEB in abbinata con un Web Server come Apache 2
17 Esempio in PHP5 <?php function date_adder($doc){ $document = new DOMDocument(); $document->loadxml($doc); $xpath = new domxpath($document); $pags=$xpath->query('/document/pag'); $sum = 0.0; foreach ($pags as $pag){ $sum+=$pag->textcontent; } return array("date"=>getdate(),"sum"=>$sum); } print_r( date_adder('<?xml version="1.0" encoding="utf-8"?> <document> <pag>10.0</pag> <pag>12.0</pag> <pag>9.5</pag> </document>'));?>
18 XML-RPC server <?php require_once 'XML/RPC/Server.php'; function date_adder($doc){ $document = new DOMDocument(); $document->loadxml($doc); $xpath = new domxpath($document); $pags=$xpath->query('/document/pag'); $sum = 0.0; foreach ($pags as $pag){ $sum+=$pag->textcontent; } return array("date"=>getdate(),"sum"=>$sum); } function date_adder_wrapper($params){ $res = date_adder($params->getparam(0)->scalarval()); return new XML_RPC_Response( new XML_RPC_Value($res['sum'],'double')); } $srv = new XML_RPC_Server(array("date_adder"=>array("function"=>"date_ adder_wrapper")));?>
19 XML-RPC client <?php include ('XML/RPC.php'); $client = new XML_RPC_Client("/srv.php", "localhost", 80); $msg = new XML_RPC_Message("date_adder",array(new XML_RPC_Value('<?xml version="1.0"?> <document><pag>10.0</pag><pag>12.0</pag><pag>9.5</pag></doc ument>',"string"))); $response = ($client->send($msg)); print_r($response->value());?>
20 Python vs Perl Estesa libreria fornita assieme al base system Migliori performances Sintassi chiara Object Oriented
21 Python vs Java (1) Con JSE 6.0 Sun ha aggiunto al sistema base Apache Derby (SQL db puro java) Per applicazioni web è necessario un container j2ee (Apache Geronimo) oppure un servlet container (Apache Tomcat) Java può venire utilizzato per applicazioni su piattaforma mobile Python può essere compilato per piattaforme ove non esiste Java (ad esempio Linux/Sparc)
22 Python vs Java (2) Jython è un'implementazione dell'ambiente Python 2.2 in Java Fornisce accesso alle strutture dati ed alle API della VM su cui viene utilizzato
23 Framework per accesso ai dati SQLAlchemy Django Twisted
24 Object-relational mapping Stabiliscono una relazione oggetto->tabella Offrono un livello di astrazione di livello superiore rispetto a SQL Permettono una più facile portabilità dell'applicazione rispetto al backend scelto per lo storage Gestiscono in maniera automatica gli oggetti riferiti da foreign-key o relazioni molti-a-molti
25 SQLAlchemy Supporta SQLite, Postgres, MySQL, MS-SQL e Oracle A livello sperimentale Firebird and Informix In fase di sviluppo un driver for DB2 Permette di operare su database già esistenti Gestisce la creazione delle tabelle a partire dal codice che ne definisce gli oggetti Permette di mappare un oggetto su più di una tabella
26 Django Supporta SQLite,MySQL, PostgreSQL e Oracle Il supporto Oracle è recente C'è in fase di sviluppo un supporto per MS-SQL (attualmente solo via ADO-DB e datato) Permette di operare su database già esistenti Gestisce la creazione delle tabelle a partire dal codice che ne definisce gli oggetti Offre una serie di framework tra cui la gestione delle transazioni e una raffinata amministrazione web creata dinamicamente dalla definizione degli oggetti È anche un framework per la creazione di web application
27 Twisted È un framework per la realizzazioni di servizi di rete ad elevate prestazioni È basato sul modello ad eventi tramite un oggetto ('reactor') che ne gestisce il passaggio dallo stato di riposo a quello di esecuzione appoggiandosi a specifiche primitive di sistema al posto di utilizzare il modello di programmazione concorrente basato su thread Offre l'implementazione lato server di molti protocolli (IMAP4/POP3/SMTP/DNS/HTTP/SSH/SFTP) Offre un ORM (meno sofisticato dei precedenti) basato sul modello ad eventi
28 Framework per il WEB CGI PSP Apache + mod_python CherryPy Django
29 Basic CGI Programming #!/usr/bin/python import cgi def main(): print Content type: text/html\n print <html>\n form_data = cgi.fieldstorage() if form_data.has_key( nome ) and form_data[ nome ].value!= : print <h2>ciao,form_data[ nome ].value, </h2> else: print <h2>errore</h2> print </html>\n main()
30 PSP (Apache+Mod python) <html> <head> <title>welcome</title> </head> <body> <% title = "<H1>Welcome to the world of Python</H1>" greeting = "If you lived here, you'd be home by now" res.write(title) res.write("<p>") res.write(greeting) %> </body> </html>
31 CherryPy Un differente approccio filosofico al protocollo HTTP Ogni richiesta da client viene trasformata in una chiamata a funzione i cui parametri di ingresso sono i campi passati nella richiesta GET o POST Ogni oggetto associato ad un URL viene esposto se deve essere accessibile Il metodo index viene invocato in assenza di altra specifica
32 import cherrypy Esempio class HelloWorld(object): def index(self): return """<html> <form action="test" method="post"> inserisci un valore <input type="text" name="valore"> <input type="submit" value="vai"/> </form> </html>""" index.exposed = def test(self,valore): return """<html> Hai scritto <h3>%s</h3> </html>""" % valore class Page2(object): def index(self): return "Page2" index.exposed = True cherrypy.root = HelloWorld() cherrypy.root.p2 = Page2() cherrypy.server.start()
33 Django (1) È un framework completo per lo sviluppo di web application Contiene un ORM molto avanzato Un template engine per il rendering delle pagine WEB Serializzatori per gli oggetti in formato JSON o XML Un sito di amministrazione molto flessibile e generato automaticamente dalla descrizione della web application
34 Django (2) Un framework per la gestione delle transazioni Un web server Un sistema di integrazione con Apache o con altri web server Gestione delle sessioni Gestione del Caching delle pagine Un sistema per la creazione e la validazione di form web a partire da descrizioni sintetiche oppure dalla descrizione dell'oggetto stesso
35 Django (3) Supporto multilingue Database introspection Limiti: un database<--->un'applicazione In corso di realizzazione porting su Jython
36 Qualche esempio > django-admin.py startproject sito > vi settings.py DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = '' DATABASE_USER = '' DATABASE_PASSWORD = '' DATABASE_HOST = '' DATABASE_PORT = '' # 'postgresql_psycopg2', # 'postgresql', 'mysql', # 'sqlite3' or 'ado_mssql'. # Or path to database file # if using sqlite3. # Not used with sqlite3. # Not used with sqlite3. # Set to empty string for # localhost. Not used with # sqlite3. # Set to empty string for # default. Not used with # sqlite3.
37 > cd esempio >./manage.py startapp news > cd news > vi models.py from django.db import models # Create your models here. class Argomento(models.Model): """Categoria articoli""" nome = models.charfield(maxlength="50",verbose_name="nome") descrizione = models.charfield(maxlength="255",verbose_name="descrizione",blank=true,null=true) def unicode (self): return self.nome def str (self): return self.nome class Admin: search_fields = ['nome'] save_on_top = True class Meta: verbose_name = "Argomento" verbose_name_plural = "Argomenti" class News(models.Model): """Notizia""" titolo = models.charfield(maxlength="100",verbose_name="titolo") testo = models.textfield(verbose_name="testo") argomento = models.foreignkey(argomento,verbose_name="argomento") immagine = models.filefield(verbose_name="img", upload_to="images") def str (self): return self.titolo class Admin: search_fields = ['titolo','testo'] save_on_top = True list_filter = ['argomento'] class Meta: verbose_name = "Notizia" verbose_name_plural = "Notizie"
38 > vi settings.py # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" MEDIA_ROOT = 'media-root/' # URL that handles the media served from MEDIA_ROOT. # Example: " MEDIA_URL = '/media-root/'... INSTALLED_APPS=( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'esempio.news', ) > vi urls.py # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), #contenuto statico (r'^media-root/(?p<path>.*)$', 'django.views.static.serve', {'document_root': '/esempio/media-root', 'show_indexes': True}), (r'/?$', 'news.views.site_page'), >./manage.py syncdb
39 Creazione di una view > vi views.py import models as news_models from django.template import Context, loader from django.http import HttpResponse def site_page(request): errors = [] try: cat_id = request.get['cat_id'] news = [i for i in news_models.news.objects.filter(argomento=cat_id)] cat_nome = news_models.argomento.get(cat_id).nome except: news = [i for i in news_models.news.objects.all()] cat_nome = "Tutti" categorie = [] for i in news_models.argomento.objects.all().order_by('nome'): categorie+= [i] t = loader.get_template("page.html") c = Context({ 'categorie': categorie, 'news': news, 'cat_nome': cat_nome, }) return HttpResponse(t.render(c))
40 Creazione di un template > mkdir templates > vi templates/page.html <html> <h3>on site news</h3> <h1>{{ cat_nome }}</h1> {% for categoria in categorie %} <a href="?cat_id={{ categoria.id }}">{{ categoria.nome }}</a><nbsp/> {% endfor %} {% for notizia in news%} <h2>{{ notizia.titolo }}</h2> {% if notizia.immagine %} <img src=" notizia.immagine }}"/> {% endif %} {{ notizia.testo }}<p/> {% endfor %} </html>
41 Bibliografia
Django: Python per il web
Django: Python per il web Sporchiamoci le mani! Di seguito è riportata la demo che è stata fatta durante la presentazione Django: Python per il web nel Linux Day 2008 di Perugia. L'esempio riportato e
DettagliProgrammazione server-side: Java Servlet
Programmazione server-side: Java Servlet Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.11 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Cos
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliSiti web centrati sui dati (Data-centric web applications)
Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente
Dettaglisito web sito Internet
Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile
DettagliJava Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet
Java Server Pages (JSP) Introduzione alle JSP Linguaggio di scripting lato server HTML-embedded Una pagina JSP contiene sia HTML sia codice Il client effettua la richiesta per la pagina JSP La parte HTML
DettagliApplicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi
Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java
DettagliApplicazioni web centrati sui dati (Data-centric web applications)
Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento
DettagliImplementazione di MVC. Gabriele Pellegrinetti
Implementazione di MVC Gabriele Pellegrinetti 2 Come implementare il pattern Model View Controller con le tecnologie JSP, ASP e XML Implementazione del pattern MVC in Java (JSP Model 2) SUN è stato il
DettagliOggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA
Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata
DettagliRegione Toscana. GeoSisma Documentazione tecnica Marzo 2011
Faunalia piazza Garibaldi 5 56025 Pontedera (PI) info@faunalia.it + 0587-213742 p. IVA: 01772020507 Regione Toscana GeoSisma Documentazione tecnica Marzo 2011 Indice GeoSisma...1 Documentazione schematica
DettagliDBMS e Linguaggi di programmazione nell'era di Internet
DBMS e Linguaggi di programmazione nell'era di Internet Crippa Francesco fcrippa@tiscalinet.it Crippa Francesco (GPL) 1 Programma del corso DBMS nati per il WEB: MySQL Postgres Il cuore del WWW, il web
DettagliScaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»
Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti
DettagliSistemi avanzati di gestione dei Sistemi Informativi
Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/
DettagliPanoramica: che cosa è necessario
Scheda 02 L installazione dell SDK G IOVANNI PULITI Panoramica: che cosa è necessario Per poter lavorare con applicazioni Java o crearne di nuove, il programmatore deve disporre di un ambiente di sviluppo
DettagliSistemi avanzati di gestione dei Sistemi Informativi
Esperti nella gestione dei sistemi informativi e tecnologie informatiche Sistemi avanzati di gestione dei Sistemi Informativi Docente: Email: Sito: Eduard Roccatello eduard@roccatello.it http://www.roccatello.it/teaching/gsi/
DettagliFlavio De Paoli depaoli@disco.unimib.it
Flavio De Paoli depaoli@disco.unimib.it 1 Il web come architettura di riferimento Architettura di una applicazione web Tecnologie lato server: Script (PHP, Pyton, Perl), Servlet/JSP, ASP Tecnologie lato
DettagliObiettivi d esame PHP Developer Fundamentals on MySQL Environment
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web
DettagliProtocolli e architetture per WIS
Protocolli e architetture per WIS Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di informazioni e servizi Le architetture moderne dei WIS
DettagliProtocolli applicativi: FTP
Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione
DettagliIntroduzione a PHP Gestione dei Dati e della Conoscenza
Introduzione a PHP Gestione dei Dati e della Conoscenza Diego De Cao, Roberto Basili {decao,basili}@info.uniroma2.it a.a. 2008/2009 PHP Overview PHP (acronimo ricorsivo per "PHP: Hypertext Preprocessor")
DettagliCorso di Informatica Modulo T3 B2 - Database in rete
Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual
DettagliIntroduzione alla programmazione Java. Dott. Ing. M. Banci, PhD
Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione
DettagliINFN Security Workshop Firenze 19-20 Settembre 2000. IMHO e IMP: una interfaccia Web sicura per la posta elettronica. Raffaele.Cicchese@pr.infn.
INFN Security Workshop Firenze 19-20 Settembre 2000 IMHO e IMP: una interfaccia Web sicura per la posta elettronica Raffaele.Cicchese@pr.infn.it Cosa significano i due acronimi IMHO e IMP? IMHO = IMAP
DettagliEsercitazione 8. Basi di dati e web
Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una
DettagliCorso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web
Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione
DettagliComponenti Web: client-side e server-side
Componenti Web: client-side e server-side side Attività di applicazioni web Applicazioni web: un insieme di componenti che interagiscono attraverso una rete (geografica) Sono applicazioni distribuite logicamente
DettagliInstallazione Alfresco Avanzata
QBR Novembre 2011 Installazione Alfresco Avanzata www.qbreng.it I Passi da compiere Installare Java SE Development Kit (JDK) 6.0 (http://it.sun.com/) Installare Database - RDBMS Open Source MySQL (http://dev.mysql.com/downloads)
DettagliIl Protocollo HTTP e la programmazione di estensioni Web
Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);
DettagliProposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi
Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile Pag.1 Obiettivi Il progetto, Portale delle fonti di energia rinnovabile, ha l obiettivo di facilitare lo scambio di informazioni e notizie
DettagliTecnologie per il Web. Il web: Architettura HTTP HTTP. SSL: Secure Socket Layer
Tecnologie per il Web Il web: architettura e tecnologie principali Una analisi delle principali tecnologie per il web Tecnologie di base http, ssl, browser, server, firewall e proxy Tecnologie lato client
DettagliStrumenti e linguaggi per lo sviluppo WEB su Linux. Scano Alessandro alescano@fastimap.com
Strumenti e linguaggi per lo sviluppo WEB su Linux Scano Alessandro alescano@fastimap.com Non solo su linux è possibile fare sviluppo web, ma quest'ultimo è una piattaforma privilegiata per tale compito
DettagliOffice e Applicativi sw
Associazione Nazionale Carabinieri Sezione Brugherio (MB) Segreteria da campo Office e Applicativi sw realizzato secondo gli Standard Regionali in materia di Formazione per la Protezione Civile come conforme
DettagliSommario. Introduzione Architettura Client-Server. Server Web Browser Web. Architettura a Due Livelli Architettura a Tre Livelli
Sommario Introduzione Architettura Client-Server Architettura a Due Livelli Architettura a Tre Livelli Server Web Browser Web Introduzione La storia inizia nel 1989 Tim Berners-Lee al CERN, progetto WWW
DettagliPort Community System del Porto di Ravenna CONFIGURAZIONE
Port Community System del Porto di Ravenna CONFIGURAZIONE SOMMARIO Indicazioni generali... 3 Dipendenze software... 4 Lato server... 4 Lato client... 4 Organizzazione del sistema... 5 Struttura delle directory...
DettagliLe command line di Java
Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,
DettagliCORSO DI PROGRAMMAZIONE JAVA
CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi
DettagliCorso di PHP. Prerequisiti. 1 - Introduzione
Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere
DettagliPROGRAMMA CORSO Analista Programmatore JAVA - ORACLE
PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori
DettagliLEZIONE 3. Il pannello di amministrazione di Drupal, configurazione del sito
LEZIONE 3 Il pannello di amministrazione di Drupal, configurazione del sito Figura 12 pannello di controllo di Drupal il back-end Come già descritto nella lezione precedente il pannello di amministrazione
DettagliServer-side Programming: Java servlets Parte II
Corso di Laurea Specialistica in Ingegneria Informatica Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Corso di Reti di Applicazioni Telematiche a.a. 2009-2010 Server-side Programming:
DettagliC o r s o L i b e r o d i. 2005 Emiliano Gabrielli <AlberT@SuperAlberT.it> GrUSP.it
C o r s o L i b e r o d i 2005 Emiliano Gabrielli GrUSP.it Licenza Corso Libero di PHP Copyright (c) 2005 Emiliano Gabrielli Quest'opera è stata rilasciata sotto la licenza Creative
DettagliLinguaggio HTML. Reti. Il Linguaggio HTML. Il Linguaggio HTML
Reti Linguaggio HTML 1 HTML = Hypertext Markup Language E il linguaggio usato per descrivere documenti ipertestuali Ipertesto = Testo + elementi di collegamento ad altri testi (link) Linguaggio di markup:
DettagliGuida all Installazione del ProxyFatturaPA
i Guida all Installazione del ii Copyright 2005-2014 Link.it srl iii Indice 1 Introduzione 1 2 Fase Preliminare 1 3 Esecuzione dell Installer 1 4 Fase di Dispiegamento 5 4.1 JBoss 5.x e 6.x....................................................
DettagliProgrammazione Java Avanzata Spring - JDBC
Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008
DettagliLuca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client
Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un
DettagliInformatica. Prof. A. Longheu. Introduzione a Java
Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su
DettagliSITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.
Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010
DettagliArchitetture Web: un ripasso
Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede
DettagliA. Lorenzi Pagine ASP
Pagine ASP Web server software per la gestione di un computer host Internet oppure di un server di rete, che mette a disposizione dati o applicativi per gli utenti della rete Web server IIS (Internet Information
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliIndice. Introduzione. PARTE PRIMA PHP: i fondamenti 1
Indice Introduzione XV PARTE PRIMA PHP: i fondamenti 1 Capitolo 1 Perché PHP e MySQL? 3 1.1 Cos è PHP? 3 1.2 Cos è MySQL? 4 1.3 La storia di PHP 5 1.4 La storia di MySQL 6 1.5 Le ragioni per amare PHP
DettagliJavaServer Pages: Introduzione
JavaServer Pages: Introduzione Gianluca Moro gianluca.moro@unibo.it Dipartimento di Elettronica, Informatica e Sistemistica Università di Bologna Sistemi reali in JSP!! ofoto.com: stampa e gestisce foto
DettagliScheda 15 Accedere ai DataBase con JDBC
Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali
DettagliApplicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche
Applicazioni Web: meccanismi per il passaggio di informazioni tramite HTTP Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.10 parte II Prof. Roberto Canonico Università degli Studi di Napoli Federico
DettagliCorso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)
Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dell ambiente di sviluppo, compilazione ed esecuzione 1 Introduzione Java è un linguaggio
Dettagli2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
DettagliLezione 9. Applicazioni tradizionali
Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere
DettagliEsercizi di JavaScript
Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio
Dettagliappunti delle lezioni Architetture client/server: applicazioni client
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente
DettagliXML e PHP. Gestire XML con PHP. Appendice
Appendice XML e PHP Tra tutti i linguaggi di programmazione esistenti PHP è tra quelli che meglio si adattano all elaborazione di documenti XML. PHP è un linguaggio di programmazione che consente di arricchire
DettagliServer Web. Apache Tomcat. Modalità di funzionamento. Autore: Roberto Fabbrica rfabbrica@libero.it. Diapo 1. Diapo 2. Diapo 3
1 Server Web In questo modulo verrà analizzato Tomcat, l application server di Apache che supporta JSP. Viste le caratteristiche di stabilità, aderenza alle specifiche JSP, configurabilità e supporto,
DettagliSimple & Efficient. www.quick-software-line.com
Cosa è XML? extensible Markup Language Linguaggio è una definizione limitativa XML serve a descrivere con precisione qualsiasi informazione XML è estensibile. Ovvero non ha tag predefiniti come HTML XML
DettagliMappare il DB senza XML. Introduzione alle annotation di Hibernate3
Introduzione alle annotation di Hibernate3 a cura di Lucio Benfante Hibernate Hibernate è un framework che realizza un object/relational mapping (ORM) fra oggetti Java e strutture di un database relazionale
DettagliContent Management Systems
Content Management Systems Gabriele D Angelo http://www.cs.unibo.it/~gdangelo Università degli Studi di Bologna Dipartimento di Scienze dell Informazione Aprile, 2005 Scaletta della lezione
DettagliCorso di Web programming Modulo T3 A2 - Web server
Corso di Web programming Modulo T3 A2 - Web server 1 Prerequisiti Pagine statiche e dinamiche Pagine HTML Server e client Cenni ai database e all SQL 2 1 Introduzione In questa Unità si illustra il concetto
DettagliTipi fondamentali di documenti web
Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non
DettagliProgrammazione ad Oggetti. Java Parte I
Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere
DettagliMagiCum S.r.l. Progetto Inno-School
MagiCum S.r.l. Progetto Inno-School Area Web Autore: Davide Revisione: 1.2 Data: 23/5/2013 Titolo: Innopedia File: Documentazione_tecnica Sito: http://inno-school.netsons.org/ Indice: 1. Presentazione
DettagliIntroduzione a XAMPP. Andrea Atzeni (shocked@polito.it) Marco Vallini (marco.vallini@polito.it) Politecnico di Torino Dip. Automatica e Informatica
Introduzione a XAMPP Andrea Atzeni (shocked@polito.it) Marco Vallini (marco.vallini@polito.it) Politecnico di Torino Dip. Automatica e Informatica Introduzione applicazione web richiede diversi componenti
DettagliApplication Server per sviluppare applicazioni Java Enterprise
Application Server per sviluppare applicazioni Java Enterprise Con il termine Application Server si fa riferimento ad un contenitore, composto da diversi moduli, che offre alle applicazioni Web un ambiente
DettagliStrutture di accesso ai dati
Strutture di accesso ai dati 1 A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Gestore dei metodi di accesso 2 E il modulo del DBMS che trasforma il piano di esecuzione
DettagliCompilatore risorse display grafico LCD serie IEC-line
Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente
DettagliGestione di un magazzino: sviluppo di un applicazione web-database
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria - Sede di Modena Corso di Diploma Universitario in Ingegneria Informatica Gestione di un magazzino: sviluppo di un applicazione web-database
DettagliArchitettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3
Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell
DettagliIndice. Introduzione. Capitolo 1
Indice Introduzione XI Capitolo 1 Pagine dei fornitori: applicazione dei fogli di stile CSS in XML 1 1.1 Introduzione a HTML e XHTML 1 1.2 Controllo della presentazione: fogli di stile CSS 8 1.3 Approfondimento
DettagliSito web parrocchiale: STRUMENTI E PROGRAMMI
Sito web parrocchiale: STRUMENTI E PROGRAMMI tratteremo di... DIOCESI DI BRESCIA Linguaggi HTML,CSS Siti STATICI Siti DINAMICI e codice PHP CMS JOOMLA! Linguaggio HTML HTML: è il linguaggio con cui potete
DettagliIl sistema informatico di trasmissione e analisi dei dati
PIANO TRIENNALE PER IL CONTROLLO E LA VALUTAZIONE DI EVENTUALI EFFETTI DERIVANTI DALL UTILIZZAZIONE DEI PRODOTTI FITOSANITARI SUI COMPARTI AMBIENTALI VULNERABILI Il sistema informatico di trasmissione
DettagliIl web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
DettagliMODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML
MODA-ML: Esempi di XSL (Extensible Stylesheet Language) Vocabolario di supporto alla creazione di un set di Schemi di documenti XML Thomas Imolesi imolesi@libero.it fti@bologna.enea.it XML un linguaggio
DettagliBasi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008
Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliIl Web-Service SDMX dell ISTAT
Il Web-Service SDMX dell ISTAT Versione: 1.0.0 Data: 26/06/2014 Autore: Approvato da: Modifiche Versione Modifiche Autore Data Indice dei contenuti 1 Introduzione... 4 2 Esempio d uso... 5 2.1 Riferimento
DettagliCONTENUTI 1. INTRODUZIONE...3 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 3. ACCESSO A EQUINOX CMS XPRESS...9 4. PAGINA D INIZIO...
CONTENUTI 1. INTRODUZIONE...3 DEFINIZIONE...3 ELEMENTI DEL SERVIZIO...3 TECNOLOGIA E OPERAZIONE...3 WORKFLOW E GRAFICO DI PROCESSI...4 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 STRUTTURA...5 OGGETTI...5
DettagliCostruzione di siti web. Il Content Management System Joomla
Costruzione di siti web Il Content Management System Joomla Definizione di un CMS Un Content Management System (CMS) è letteralmente un sistema di gestione dei contenuti E' uno strumento software utilizzato
DettagliVIVAIO LAUDENSE RELAZIONE
VIVAIO LAUDENSE RELAZIONE Consegna Un vivaio di Lodi vuole realizzare un sito Web per gestire le proprie attività di vendita di piante e le attività esterne. Si vogliono memorizzare, oltre alle informazioni
DettagliLorenzo Sarti sarti@dii.unisi.it Materiale didattico http://www.dii.unisi.it/~ sarti
Lorenzo Sarti sarti@dii.unisi.it Materiale didattico http://www.dii.unisi.it/~ sarti Obiettivi esercitazioni Utilizzare nella pratica un DBMS Apprendere il linguaggio SQL Apprendere come si accede ad un
DettagliIntroduzione ai tipi di dato astratti: applicazione alle liste
Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione
DettagliCandidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013
e di e di Candidato: Luca Russo Docente: Corso di laurea in Informatica Applicata Facoltá di Scienze e Tecnologie Programmazione su Reti 27 Marzo 2013 Traccia d esame Sviluppare multitier con disaccoppiamento
Dettaglib) Dinamicità delle pagine e interattività d) Separazione del contenuto dalla forma di visualizzazione
Evoluzione del Web Direzioni di sviluppo del web a) Multimedialità b) Dinamicità delle pagine e interattività c) Accessibilità d) Separazione del contenuto dalla forma di visualizzazione e) Web semantico
DettagliAVIPA 1. Presentazione generale dell'ambiente software
AVIPA 1. Presentazione generale dell'ambiente software Viterbo, 10 Dicembre 2008 Presentazione a cura di Slide n.1 AVIPA: l'ambiente software Queste slides rappresentano le prime indicazioni sul lavoro
DettagliSoluzioni per l'integrazione e l'accesso alle informazioni. Visus RAD. Andrea Rocchini
Soluzioni per l'integrazione e l'accesso alle informazioni Visus RAD Andrea Rocchini Obbiettivo Raccogliere, elaborare e distribuire informazioni in modo diretto, puntuale e capillare E' lo scopo ultimo
DettagliEsercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)
Sapienza - Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica, Ingegneria dei Sistemi Informatici Esercitazioni
DettagliStrumenti per la programmazione
Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un
DettagliCORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity
CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso
DettagliCorso: Informatica+ Andrea Cremonini. Lezione del 09/02/2015
Corso: Informatica+ Andrea Cremonini Lezione del 09/02/2015 1 Office Automation 1/2 Con la definizione di Office Automation ci riferiamo a computer e software usati per creare digitalmente, raccogliere,
DettagliContent Management Systems
Content Management Systems L o Guido Porruvecchio Tecnologia e Applicazioni della Rete Internet Definizione Un Content Management System (CMS) è letteralmente un sistema per la gestione dei contenuti Definisce
DettagliArchitettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)
Architettura del WWW World Wide Web Sintesi dei livelli di rete Livelli di trasporto e inferiori (Livelli 1-4) - Connessione fisica - Trasmissione dei pacchetti ( IP ) - Affidabilità della comunicazione
DettagliCONTENT MANAGEMENT SYSTEM
CONTENT MANAGEMENT SYSTEM P-2 PARLARE IN MULTICANALE Creare un portale complesso e ricco di informazioni continuamente aggiornate, disponibile su più canali (web, mobile, iphone, ipad) richiede competenze
Dettagli