MagiCum S.r.l. Progetto Inno-School

Похожие документы
(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Corso di Reti di Calcolatori L-A

Architettura Client-Server

Introduzione ai (Java) socket

Programmare con le Socket TCP in java. 2: Application Layer 1

Programmare con le Socket

Programmare con le Socket TCP

Parte II: Reti di calcolatori Lezione 10

Guida rapida all uso di Moodle per gli studenti

Applicazioni distribuite

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Programmare in Java. Olga Scotti

Un esercizio d esame. Flavio De Paoli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel , dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Sincronizzazione con Java

MagiCum S.r.l. Progetto Inno-School

Cifratura simmetrica

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Reti di Calcolatori:

Introduzione alle applicazioni di rete

Corso sul linguaggio Java

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Guida rapida all uso di Moodle per gli studenti

Guida all utilizzo di Moodle per gli studenti

Programmazione distribuita in Java. Socket & Client-Server

Socket & RMI Ingegneria del Software - San Pietro

Corso di Informatica Modulo T3 B2 - Database in rete

Manuale del Docente - Scienze Politiche

appunti delle lezioni Architetture client/server: applicazioni server

Corso Eclipse. Prerequisiti. 1 Introduzione

Corso di PHP. Prerequisiti. 1 - Introduzione

Sockets in Java. Lorenzo Gallucci

Esercitazione 6. Tutor: Ing. Diego Rughetti. Anno Accademico 2007/2008

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Guida rapida per i corsisti

Corso di Informatica

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Corso di Telematica II

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Caratteristiche di una LAN

appunti delle lezioni Architetture client/server: applicazioni client

Specifiche tecniche e funzionali del Sistema Orchestra

Minerva. Un ambiente integrato per la Didattica e la Divulgazione. dr. Augusto Pifferi. dr. Guido Righini.

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Altri tipi di connessione

Versione Installazione GSL. Copyright 2014 All Rights Reserved

RADAR. Raccolta e Analisi Dati per Attribuzione Rating

Guida rapida per i docenti all'uso della piattaforma di e-learning dell'istituto Giua

hi-com software realizzato da Hi-Think

Apprendimento 2.0: fare e-learning con Moodle

Applicazioni web. Parte 5 Socket

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

Programmazione di rete in Java

A cura del Prof. Pasquale Vastola. Iscrizione alla piattaforma virtuale MOODLE FASE 1. 1) Accedere al seguente indirizzo internet :

TERMINE SUPPORTO DA PARTE DI MICROSOFT DEL SITEMA OPERATIVO WINDOWS XP: 8 Aprile 2014

Installazione & Configurazione Php e MySQL su Mac Os X. Php

Cosa è un foglio elettronico

Piattaforma FaD Formazione a distanza. Manuale di consultazione rapida per l utilizzo della piattaforma di. formazione a distanza di EFA srl

Manuale di utilizzo della piattaforma e-learning

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

Sistema di Gestione dei Contenuti Multimediali

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Main System Monitor Keyboard

InitZero s.r.l. Via P. Calamandrei, Arezzo

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

FPf per Windows 3.1. Guida all uso

WBT Authoring. Web Based Training STUDIO

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Mac Application Manager 1.3 (SOLO PER TIGER)

Database e reti. Piero Gallo Pasquale Sirsi

Gestione delle Eccezioni

01/05/2013 Istruzioni per l installazione

Programma per l elaborazione delle buste paga. dei collaboratori domestici VERSIONE /07/2010

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Appunti di Informatica 1

FASE 1: Definizione del tema, degli obiettivi e del target con il cliente... (da cui dipendono le scelte successive!)

Il tutor è a disposizione per ogni chiarimento

Corso di Reti di Calcolatori. java.net.url

I tutorial di MadLabs.. Installazione e prima configurazione

La piattaforma e-learning Informazioni e strumenti principali

ICARO Terminal Server per Aprile

Hardware delle reti LAN

E-learning Guida pratica all utilizzo

MOBILE WEB DESIGN TUTORIAL ANDROID METAIO AUGMENTED REALITY

Транскрипт:

MagiCum S.r.l. Progetto Inno-School

Area Sviluppo Web Autore: Alessio Bernardo Revisione: 1 Data: 23/05/13 Titolo: Sviluppo piattaforma e-learning e sviluppo siti web File: Documentazione tecnica Sito: http://inno-school.netsons.org/

INDICE 1.0 Introduzione... 1 2.0 Piattaforme e-learning... 1 3.0 Moodle... 1 4.0 Requisiti d installazione... 1 4.1 hardware... 1 4.2 software... 2 5.0 DBMS MySQL... 2 6.0 Modello client-server... 2 6.1 Server iterativo... 2 6.1.1 Esempio server iterativo... 3 6.2 Server concorrente... 3 6.2.2 Esempio server concorrente... 4 6.3 Esempio client... 6 INDICE FIGURE Figura 1... 4

1.0 Introduzione Questo progetto mira a rinnovare il metodo di insegnamento, a partire dalle scuole elementari fino ad arrivare all università. Si tratta di un nuovo metodo di insegnamento, online. Attraverso delle piattaforme è possibile caricare online lezioni, slaid, immagini, filmati, quiz riguardanti le lezioni con possibilità di valutazione e molto altro ancora. Tutto ciò porta sempre più ad un informatizzazione della scuola. Infatti se uno studente dovesse risultare assente, potrà studiare la lezione da casa. Basta una connessione ad internet ed un Pc. 2.0 Piattaforme e-learning Tutto ciò è possibile grazie alle cosiddette piattaforme e-learning. Si tratta di piattaforme basate su database in grado di raccogliere e salvare dati, rendendoli disponibili in ogni momento agli utenti registrati. L utente, una volta fatto il login, è in grado di accedere ai dati, alle lezioni, ai quiz. Inoltre esiste la possibilità di creare dei forum o chat con i quali si può comunicare con gli altri utenti. Ci sono varie piattaforme e-learning disponibili, come ad esempio moodle, cloudcourse (google), macromedia authorware (adobe). 3.0 Moodle Moodle consente una gestione stratificata della piattaforma con i ruoli (admin, docente, editor, tutor, cotutor, ecc.) e una ampia offerta delle attività previste per il corso (Forum, Diari, Blog, Quiz, Risorse, Sondaggi, Compiti, Chat, Workshop, ecc.). Consente a docenti e tutor valide possibilità di tracciamento delle attività degli allievi e crea in automatico report dettagliati. Il suo punto di forza maggiore sta nello sviluppo più rapido e significativo di tutte le altre piattaforme e-learning. Ciò è dovuto al fatto che la sua community è una delle più numerose e partecipate a livello internazionale. 4.0 Requisiti di installazione Per poter installare moodle su un Pc o su un server sono richiesti dei requisiti minimi, sia hardware, sia software. 4.1 Hardware Moodle necessita di circa 150 MB di spazio sul disco fisso, ma va considerato che è necessario ulteriore spazio per l'upload del materiale da distribuire, e un minimo di 256 MB di memoria RAM. Stando alle linee guida formulate dalla community, è consigliabile disporre di almeno 1 GB di memoria RAM, e tenere conto che per ogni 50 utenti connessi il sistema può richiedere fino ad 1 GB di RAM. 1

4.2 Software Moodle è compatibile con qualsiasi computer che supporti PHP (con sistemi operativi come Unix, Linux, Windows, Mac OS X) e si integra con diversi tipi di database (anche se la soluzione ottimale è anch'essa open: MySQL). Inoltre si tratta di un software open source. 5.0 DBMS MySQL Come accennato in precedenza il DBMS ottimale da utilizzare è MySQL. Per poterlo utilizzare è necessario l installazione di un web server come easyphp o XAMPP. L importante è che supportino PHP5. Prima di iniziare l installazione della piattaforma è necessario quindi creare il database in MySQL, sul quale poi opererà la nostra piattaforma e-learning (in questo caso moodle). 6.0 Modello client-server Tutte le piattaforme e-learning sono basate sul modello client-server. Il client (utente) accedendo al server, accede a tutte le informazioni contenute da esso. Dopodiché il client si disconnette chiudendo la sessione. La presenza di un server permette ad un certo numero di client di condividerne le risorse, lasciando che sia il server a gestire gli accessi alle risorse per evitare conflitti di utilizzazione. Figura 1 6.1 Server iterativo I server iterativi sono quei server in grado di comunicare con un client alla volta. Viene usato il protocollo UDP. 2

6.1.1 Esempio server iterativo import java.io.*; import java.net.*; public class serveriterativo{ public static void main(string[] args) throws Exception{ StringBuffer revline; int len; String line; ServerSocket listen_socket = new ServerSocket(6789); System.out.println("in attesa sulla porta 6789"); while(true){ Socket conn = listen_socket.accept(); System.out.println("Ricevuta richiesta di servizio"); // preparazione degli stream di input e output InputStream sin = conn.getinputstream(); BufferedReader in = new BufferedReader(new InputStreamReader(sin)); PrintStream out = new PrintStream(conn.getOutputStream()); //lettura riga line = in.readline(); if(line == null) {System.out.println("Ricevuta linee vuota"); else{ //rovesciamento riga len = line.length(); revline = new StringBuffer(len); for(int i = len-1; i>=0;i--) revline.insert(len-1-i,line.charat(i)); //stampa linea rovesciata out.println(revline); System.out.println("Inviata risposta"); conn.close(); 6.2 Server concorrente Il server è in grado di soddisfare più richieste contemporaneamente ricevute da diversi client 3

6.2.2 Esempio server concorrente import java.io.*; import java.net.*; public class server extends Thread { public final static int DEFAULT_PORT = 6789; protected int port; protected ServerSocket listen_socket; //Crea un ServerSocket che attende la connessione; inizia il thread public server(int port) { if (port == 0) port = DEFAULT_PORT; this.port = port; try {listen_socket = new ServerSocket(port); catch (IOException e) {fail(e, "Ex creating server socket"); System.out.println("Server: listening on port" + port); this.start(); //Body del thread del server. Aspetta ed accetta connessioni da //client. Per ogni connessione, crea un oggetto Connection per //gestire la comunicazione attraverso il nuovo socket. public void run(){ try { while(true) { Socket client_socket = listen_socket.accept(); Connection c = new Connection(client_socket); catch(throwable t){; //Fa partire il server, in attesa su una porta opzionalmente // specificata public static void main(string[] args) { int port = 0; if (args.length == 1) { try {port = Integer.parseInt(args[0]); catch (NumberFormatException e) {port = 0; new server(port); // fine classe server 4

//La classe seguente e' il thread che gestisce tutta la comunicazione col //client class Connection extends Thread { protected Socket client; protected BufferedReader in; protected InputStream sin; protected PrintStream out; //Inizializza gli stream e avvia il thread public Connection(Socket client_socket) { client = client_socket; try { sin = client.getinputstream(); in = new BufferedReader(new InputStreamReader(sin)); out = new PrintStream(client.getOutputStream()); catch (IOException e) { try {client.close(); catch (IOException e2){; System.err.println("Ex. while getting socket streams:" + e); return; this.start(); //Legge una linea, la rovescia e la rimanda indietro public void run() { String line; StringBuffer revline; int len; try { for(int i=len-1;i>=0;i--) { //Legge una linea line = in.readline(); if(line == null) break; //la rovescia len = line.length(); revline = new StringBuffer(len); for(int i=len-1;i>=0;i--) revline.insert(len-1-i,line.charat(i)); //scrive la linea rovesciata out.println(revline); 5

catch (IOException e){ finally {try {client.close(); catch (IOException e2){; 6.3 Esempio client import java.io.*; import java.net.*; public class client{ public static final int DEFAULT_PORT = 6789; public static void usage(){ System.out.println("Usage: java client <hostname> [<port>]"); System.exit(0); public static void main(string args[]){ int port = DEFAULT_PORT; Socket s = null; if((args.length!= 1 ) && (args.length!= 2 )) usage(); if(args.length == 1 ) port = DEFAULT_PORT; else { try {port = Integer.parseInt(args[1]); catch (NumberFormatException e) {usage(); try{ //ESEGUE RICHIESTE E LE ELABORA finally{ try{if(s!= null) s.close(); catch(ioexception e2){ try{ s = new Socket(args[0],port); InputStream sin = s.getinputstream(); BufferedReader fromserver = new BufferedReader(new InputStreamReader(sin)); OutputStream sout = s.getoutputstream(); PrintWriter toserver = new PrintWriter(new OutputStreamWriter(sout)); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Connected to " + s.getinetaddress() + ":"+s.getport()); String line; while(true){ 6

System.out.print(">"); line = null; line = in.readline(); if(line.equals(""))break; toserver.println(line); toserver.flush(); line = fromserver.readline(); if(line == null){ System.out.println("Connection closed by server"); break; System.out.println(line); catch (IOException e){system.err.println(e); 7