Page 1

INDICE: 1. Descrizione del Progetto

pagina 2

a. Obiettivi b. Scelta c. Possibilità di impiego

2. Descrizione del Software (Sistemi & Informatica)

pagina 3

a. Analisi del programma creato per il telefono cellulare (Invio Dati) b. Analisi del programma creato per il computer collegato alla macchina “taglia polistirolo” (Gestione Ordini) 3. Descrizione del sistema GSM (Elettronica) pagina 16 a. Analisi di base del sistema GSM b. Analisi della codifica e della trama del sistema GSM. c. Analisi della modulazione del sistema GSM

4. Descrizione del sistema “Tempo di attesa degli ordini” (Calcolo delle probabilità) pagina 19 a. Analisi teorica del sistema “Tempo di attesa degli ordini” b. Analisi descrittiva del sistema “Tempo di attesa degli ordini” 5. Cenni alla serie Geometrica (Matematica) pagina 22 a. Introduzione alla serie geometrica

1


2. Descrizione del Progetto • Obiettivi Il progetto è stato realizzato con il primo scopo di dimostrare che informatica ed elettronica non sono più due realtà scisse tra loro ma complementari e interdipendenti. L’informatico e l’elettronico sono due figure che non guardano più solamente alle loro singole occupazioni ma persone in grado di collaborare e di ampliare le conoscenze nell’ambito che hanno in comune, ovvero quello dell’automazione industriale. In secondo luogo il progetto è atto a dimostrare che l’automazione non conosce limiti, perciò è possibile integrare sistemi sempre più complessi che garantiscono un minor costo di produzione, una maggior rapidità, un controllo istantaneo del processo produttivo e che quindi nell’insieme contribuiscono ad aumentare la produttività aziendale.

• Scelta È stato scelto come progetto la realizzazione di un sistema controllato tramite SMS (Short Message Service) perché esso è stato da noi ideato, perché permetteva a ciascuno di dimostrare le proprie conoscenze e le proprie potenzialità, in quanto è un’idea nuova e realizzabile anche all’interno di vere aziende. Il sistema comprende un programma all’interno del cellulare nel quale è possibile digitare una larghezza da 0 a 25 cm ±2 mm che viene in seguito inviata ad un numero. A tale numero è associata una SIM (subscriber's identity module o modulo d'identità del sottoscrittore) collegato ad un PC attraverso un modulo Telit con un cavo USB. All’interno del PC è in esecuzione un programma che memorizza la misura e che la trasmette tramite porta seriale ad una macchina che provvede a tagliare un pezzo di polistirolo della larghezza scelta e ad aggiornare in tempo reale un display LCD posto sulla scatola di comando, dal quale è possibile monitorare lo stato del processo. Dal programma contenuto nel cellulare si possono inoltre inserire dati riguardanti l’azienda - come: titolare, indirizzo, numero telefonico e partita iva – che, una volta inviati, possono essere rielaborati dal computer per stendere un’eventuale fattura o per conoscere in quale luogo i pezzi devono essere spediti.

• Possibilità di impiego Il nostro progetto è solo a titolo dimostrativo; non esistono aziende che tagliano polistirolo da 0 a 25 cm, ma se per un istante facessimo finta che ne esistesse una, proviamo ad immaginare l’organizzazione interna senza l’introduzione di un sistema come quello da noi pensato. Il rappresentante dell’azienda deve recarsi dai vari clienti i quali richiedono le diverse quantità di prodotto, dopodiché rientrerà in azienda e passerà l’ordine agli uffici amministrativi che registreranno la domanda inoltrandola in un secondo momento all’operaio addetto che fornirà alla macchina le misure e che procederà con i vari tagli. Introducendo invece un sistema come quello dai noi studiato, il rappresentante, dopo aver scaricato il programma di invio dei dati nel proprio cellulare - via bluetooth ad esempio - sarà in grado di ordinare le quantità desiderate dall’azienda, che la macchina provvederà in tempo reale (just in time) a produrre, e di aggiornare il database amministrativo. In tal modo abbiamo ridotto i consumi (non sarà più necessario che il rappresentante ritorni in azienda per poter avviare l’ordine, portare i dati in ufficio e all’operatore che prima aveva il compito di inserire i dati alla macchina) e aumentato la velocità di produzione, oltre al fatto che si potrebbe ampliare l’area di mercato essendo internet aperto a tutto il mondo. Come detto precedentemente, però, il progetto è solo a dimostrazione della nostra tesi; applicare un sistema simile in un vero complesso industriale non è cosa da poco, ma nemmeno impossibile. Tenendo conto delle ripercussioni positive in termini di economicità e di rendita, a nostro parere le imprese che vorranno essere più competitive e più tecnologiche installeranno sistemi di questo tipo in un prossimo futuro.

2


3. Descrizione del Software • Analisi del programma creato per il telefono cellulare (Invio Dati) Analisi a livello utente: Il programma creato per il telefono cellulare è stato progettato innanzitutto pensando alle esigenze, alla manualità e soprattutto alla confidenza che ciascun utente può avere con il dispositivo telefonico. L’applicazione è quindi stata ideata per qualsiasi genere di utenza: dal giovane, bravo e veloce nell’utilizzare l’apparecchio, alla persona meno veloce e capace nell’utilizzo. Da ciò si può dedurre che si tratta di un programma semplice, povero di elementi grafici ma molto veloce ed efficiente. In particolare ho cercato di eliminare menù ed elementi visualizzabili superflui poiché possono destare esitazioni e incertezze. Il programma è strutturato nel modo seguente: 1. Quando il programma “Invio Dati” è avviato dall’utente, si possono subito inserire i dati riguardanti l’azienda e l’ordine, nonché il nominativo dell’azienda e la larghezza del pezzo di polistirolo (compresa tra 1 e 25 cm ± 2 mm), come rappresentato in figura1. In questa visualizzazione ho inserito due possibili scelte: la prima di conferma dell’ordine, mentre la seconda di uscita dall’applicazione senza poter inviare nessun ordine. Premendo il tasto di conferma vengono effettuati i seguenti controlli: inizialmente viene controllato se il nome dell’azienda è stato inserito, quindi viene verificato se la larghezza del pezzo da ordinare risulta inferiore a 25 cm. In caso contrario, per ciascun controllo, l’utente visualizzerà un messaggio di avviso che specificherà quale sarà la mancanza tralasciata, come rappresentato in figura2.

Fig1: Interfaccia utente dell’applicazione “INVIODATI”, Form di inserimento del nome dell’azienda e della larghezza del pezzo da ordinare.

3


Fig2: Interfaccia utente dell’applicazione “INVIODATI”, avviso di mancato inserimento in un campo.

2. Una volta premuto il tasto di conferma e verificati tutti i controlli precedentemente citati, l’applicazione accede ad un database interno al telefono cellulare che verifica se il nome dell’azienda è presente in questo contenitore di dati; in caso contrario verrà aperto un Form di inserimento di questi specifici dell’azienda, in quanto risulterà la prima richiesta di un ordine da parte della stessa utilizzando questo sistema informatizzato, quali: via, nome del titolare, numero di telefono e Partita IVA, come rappresentato in figura3. In questo Form sono presenti due possibili azioni: la conferma d’inserimento (specificata al punto 3) nel database interno al cellulare della nuova azienda e dell’aggiunta dei dati riguardanti l’azienda nel messaggio che in un secondo momento verrà inviato o la possibilità di poter tornare indietro nel Form descritto al punto 1.

4


Fig3: Interfaccia utente dell’applicazione “INVIODATI”, Form di inserimenti di una nuova azienda.

3. Se, in un caso contrario al precedente, il nome dell’azienda è già presente all’interno del database nel telefono cellulare, l’applicazione visualizzerà direttamente un Form di conferma in cui sono ribaditi i dati relativi al nome dell’azienda e alla larghezza del pezzo da ordinare per fare in modo di poter visualizzare e controllare i dati da eventuali errori di scrittura, come rappresentato in figura4. Questa parte del programma consentirà di poter inviare il messaggio contenente l’ordine ed eventualmente i dati aggiuntivi dell’azienda, nel caso si tratti di un nuovo acquirente (descrizione punto 2), o di poter tornare indietro, nel caso l’utente abbia commesso un errore di scrittura relativamente al nome dell’azienda o alla larghezza del pezzo da ordinare.

5


Fig4: Interfaccia utente dell’applicazione “INVIODATI”, Form di conferma dei dati inseriti.

4. Premuto il pulsante d’invio, l’applicazione chiede all’utente, come rappresentato in figura5, la possibilità di poter inviare il messaggio al numero di telefono (già memorizzato internamente al programma) corrispondente nella scheda SIM ricevente gli ordini; in caso contrario il programma rimarrà stazionato nell’ultimo Form di conferma in attesa di nuovi comandi (invio dell’ordine o indietro come descritto in precedenza).

6


Fig5: Interfaccia utente dell’applicazione “INVIODATI”, conferma d’invio dei dati inseriti.

Analisi a livello codice: Il programma d’invio dei dati è stato creato utilizzando il linguaggio di programmazione Java utilizzando la sintassi di Java Script. Java è un linguaggio di alto livello e orientato agli oggetti. Si può usare per scrivere varie applicazioni di diversa natura, ed è quindi considerato un linguaggio per usi generali. Java nasce all’interno di un progetto di ricerca molto ampio che aveva lo scopo di creare software avanzato per vari sistemi. Inoltre Java è un linguaggio di programmazione orientato agli oggetti. Questo significa che sono messi a disposizione dei costrutti per trattare i concetti fondamentali di oggetto, classe ed ereditarietà. Un’altra caratteristica importante è la capacità di costruire applicazioni che sono portabili su differenti piattaforme, come ad esempio il Symbian, utilizzato da moltissime case telefoniche, come ad esempio la Nokia. Nel mio caso particolare mi sono servito dell’ambiente di sviluppo JDK (Java Development Kit), distribuito gratuitamente dalla Sun Microsystem, con il quale si possono scrivere e compilare applet e applicazioni Java. È un ambiente senza interfacce grafiche nel senso che il compilatore e l’interprete sono eseguiti da riga di comando, come rappresentato in figura6.

7


Fig6: Interfaccia utente Java Development Kit.

Per poter, però, utilizzare l’ambiente del telefono cellulare mi sono servito del compilatore, messo sempre a disposizione agli utenti dalla Sun Microsystem, Java Wireless Toolkit versione 2.5.2, che consente di poter compilare e ricercare errori sintattici attraverso un’interfaccia semplice e chiara, come rappresentato in figura7.

Fig7: Interfaccia utente Java Wireless Toolkit.

8


Il compilatore consente di provare e testare, semplicemente premendo l’apposito pulsante nell’interfaccia (Run), il programma creato, che viene caricato all’interno di un cellulare virtuale, come rappresentato in figura8, con tutte le funzionalità di un telefono cellulare, escluso l’invio di SMS o chiamate. Fig8: Telefono cellulare virtuale creato da Java Wireless Toolkit.

Nel codice del programma Invio Dati ho prima di tutto inserito, utilizzando il comando “import”, tutti i vari package utilizzati dall’applicazione. Contenuto dei vari package: •

javax.microedition.lcdui: è il cosi detto User Interface Package che contiene le classi per creare delle interfacce utente sul display.

javax.microedition.rms: utilizzato per la memorizzazione persistente, fornisce dei meccanismi che permettono di memorizzare e recuperare dati in modo persistente.

javax.microedition.midlet: definisce le interfacce i il ciclo di vita delle MIDlet.

javax.microedition.io: detto anche il package del Networking include dei supporti per la connessione alla rete da un Connected Limited Device Configuration. Contiene molte interfacce ma una sola classe Connector utilizzata per creare gli oggetti connection.

java.io: si occupa di gestire l'input e l'output da un generico stream di dati.

javax.wireless.messaging: consente di utilizzare tutti i protocolli di comunicazione di tipo messaggio (sms o e-mail ad esempio).

Subito, sempre con il comando “import”, ho specificato per il package “java.io” di poter gestire un flusso di dati in ingresso e in uscita con il comando “IOException” e di poter elaborare una sequenza di dati in ingresso (i dati provenienti dai campi d’inserimento grafici dei dati) con il comando “InputStream”. Dopo essermi creato, utilizzando la serie citata di librerie, ho dichiarato la classe “InvioDati”, che estende la classe MIDlet e implemento l’interfaccia CommandListener che appartiene al package

9


javax.microedition.lcdui e possiede il solo metodo “commandAction” che consentirà di abilitare alcuni tipi di comandi programmandoli in base alle esigenze del programmatore. Per creare dei campi d’inserimento testo, e i vari pulsanti mediante i quali garantire l’interazione con il programma da parte dell’utenza finale, occorre prima di tutto creare l’oggetto che ho chiamato “display” di tipo “Display”, che identifica appunto il piccolo display del telefono cellulare, sul quale è possibile creare una serie di “Form” o visualizzazioni diverse in cui sarà possibile inserire le varie “TextField” o aree d’inserimento dati (testo di tipo String e numeri interi di tipo Int) e i vari “Command” o comandi bottone. I metodi “pauseApp” e “destroyApp”, inseriti subito dopo la dichiarazione dei vari oggetti che saranno impiegati nell’applicazione, sono utilizzati dall’applicazione in caso di blocco o di errori di varia natura. Nel metodo “StartApp” ho specificato tutti i comandi e i campi di testo che inizialmente avevo dichiarato, dopodiché ho assegnato ciascun bottone e area d’inserimento dati al corrispondente Form. Il metodo “startApp” viene invocato una volta aperta l’applicazione, infatti esso contiene anche il comando “display.setCurrent(fmMain)” che consente di utilizzare un determinato Form, nel mio caso il “fmMain”, come visualizzazione principale all’avvio del programma. Dopo aver completato il metodo che viene avviato all’inizio del programma, è possibile dichiarare tutti i metodi utilizzati dall’applicazione come, in questo caso, i metodi di gestione del database interno al telefono cellulare, quali apertura, chiusura, inserimento, lettura del “recordset” o insieme di record che costituiscono il database. Altro metodo inserito, fondamentale in quest’applicazione, è il metodo d’invio del messaggio, “invia Messaggio”, che consente, data una stringa contenente alcuni dati, di poterla inviare a un numero di telefono specificato, che in questo caso corrispondente al numero di telefono presente nella scheda SIM contenuta nel modulo di ricezione dei dati. Il metodo “commandAction” è il metodo che occupa più righe di codice all’interno del programma ed ha due parametri, il primo di tipo Command rappresenta il pulsante che è stato premuto, il secondo, di tipo Displayable, rappresenta invece il contenitore a cui appartiene il comando. L’unico scopo di cui dispone il metodo è di intercettare eventi come il premere un pulsante, ad esempio, in questa particolare applicazione. Nel metodo “commandAction” ho cercato, prima di tutto, di eseguire dei controlli come, ad esempio, un dato non inserito in un’area d’inserimento testo, oppure il controllo del dato “tfNomeDitta” nel database interno, nel caso sia premuto il tasto di conferma, e, per concludere, l’utilizzo del metodo “invioMessaggio” nel caso sia premuto il pulsante “INVIA”.

10


• Analisi del programma creato per il computer collegato alla macchina “taglia polistirolo” (Gestione Ordini) Analisi a livello utente: Il programma di ricezione dei dati non ha lo scopo di avere un’interfaccia agevole e funzionale all’utente, bensì quello di essere il meno ingombrante possibile all’utenza in termini grafici. L’applicazione è costituita da due Form: 1. Il primo viene visualizzato immediatamente all’apertura del programma ed ha lo scopo di inserire manualmente dall’utente il numero in cifre della porta COM (seriale di tipo RS-232), come rappresentato in figura9. Per questo genere di operazione è necessario che l’utente sia a conoscenza della corretta procedura per verificare il giusto numero della porta COM virtuale del computer con la corrispondente fisica. In modo semplice è possibile, cliccando con il tasto destro del mouse su “Risorse Del Computer”, visualizzare le proprietà del sistema ; selezionando il campo “Hardware”, è possibile, andando a cliccare sul pulsante “Gestione Periferiche” e scorrendo il menù “Porte (COM e LPT)”, conoscere il numero delle porte COM e in particolare la porta COM collegata alla periferica (Macchina taglia polistirolo, in questo caso specifico). Una volta impostato il numero della porta COM sarà possibile avviare il programma di ricezione degli ordini premendo il corretto pulsante “AVVIA”; in caso contrario, non avendo inserito nessun genere di tipologia di comunicazione, l’applicazione visualizzerà un messaggio di avviso sollecitando l’utente a inserire il numero di porta seriale, come rappresentato in figura10. Fig9: Interfaccia utente dell’applicazione “Gestione Ordini”, inserimento del numero della porta seriale collegata alla macchina.

Fig10: Interfaccia utente dell’applicazione “Gestione Ordini”, avviso di mancato inserimento della porta seriale collegata alla macchina.

2. Avviato il programma di ricezione, l’utente visualizzerà un’applicazione che disporrà del pulsante di uscita e di una piccola area (di colore azzurro più chiaro), come rappresentato in figura11, in cui, man mano che gli ordini vengono ricevuti e verificato che si tratti effettivamente di un ordine, verranno visualizzati il nome dell’azienda intestataria dell’ordine e la larghezza del pezzo richiesto. Fig11: Interfaccia utente dell’applicazione “Gestione Ordini”, inserimento del numero della porta seriale collegata alla macchina.

11


La procedura principale che utilizza il programma di ricezione dati è la seguente: • Il messaggio, una volta inviato dal programma descritto per il telefono cellulare, viene ricevuto dal modulo “Telit” nel quale è contenuta una SIM Card uguale a quelle presenti all’interno dei telefoni. • Il programma di ricezione dei dati, attraverso il cavo USB che collega il modulo “Telit” con il computer, a sua volta collegato alla macchina “Taglia polistirolo”, provvede a visualizzare il messaggio-ordine e a: a. Verificare se il numero di telefono del rappresentante, mittente del messaggio, è presente all’interno del database nel computer in cui sono create tre tabelle: Aziende, Ordini e Rappresentanti. Viene quindi cercato all’interno di quest’ultima tabella il numero di telefono corrispondente al rappresentante. b. In caso positivo l’ordine può passare a una fase successiva, cioè l’SMS ricevuto può essere aperto e internamente al messaggio vengono confrontati dei caratteri di “controllo” (“#*#” o “A#*#”, nel caso ci siano anche dati aggiuntivi dell’azienda, in quanto nuovo acquirente). Ho opportunamente individuato “#*#” e “A#*#” come caratteri di controllo poiché hanno una probabilità nettamente inferiore di comparire in sequenza all’interno dell’SMS. c. Se i caratteri di controllo sono presenti all’inizio del messaggio, allora l’SMS può essere scomposto e, come già accennato in precedenza, viene aggiornata la tabella riguardante le aziende, nel caso la stringa di controllo iniziale fosse “A#*#” individuando l’inserimento di una nuova azienda e verificato comunque che l’azienda da inserire non sia già presente nella tabella “Aziende”. d. Aggiornata la tabella “Aziende”, se necessario, viene aggiornata la tabella “Ordini” inserendo i dati riguardanti l’ordine come: codice identificativo, larghezza del pezzo di polistirolo, data e ora di aggiornamento, corrispondente alla data di arrivo del messaggio, codice corrispondente identificativo del rappresentante che ha commissionato l’ordine e dell’azienda intestataria dello stesso. e. Subito dopo aver aggiornato i dati nel database, invierà un messaggio di conferma di ricezione dell’ordine all’utente intestatario dello stesso e inoltre l’applicazione trasmetterà il dato “larghezza del pezzo da tagliare” alla macchina taglia polistirolo, che provvederà a tagliare il pezzo di polistirolo della larghezza specificata dall’azienda intestataria nell’ordine inviato con il programma del telefono cellulare.

Analisi a livello codice: Il programma di ricezione e gestione degli ordini è stato creato utilizzando il linguaggio di programmazione messo a disposizione da Visual Basic, utilizzando la sintassi di Visual Basic Script. Com’è suggerito dal nome stesso Visual Basic è un ambiente di programmazione visuale che consente di eliminare una parte consistente di codice agevolando il lavoro del programmatore che dovrà semplicemente individuare l’oggetto adatto al suo scopo e inserirlo nel Form, anch’esso di tipo grafico. Il codice per poter programmare ciascun oggetto visuale è possibile inserirlo posizionandosi con il mouse sopra di esso e, con un “doppio click”, si aprirà una finestra in cui saranno già elencati, in una barra di scorrimento, tutti i possibili metodi appartenenti all’oggetto da programmare), come rappresentato in figura12.

12


Fig12: Interfaccia utente Visual Basic.

Inizialmente, per prima cosa, ho ideato il database di un’ipotetica azienda che producesse pezzi di polistirolo personalizzati per singole aziende. Si tratta, appunto, di un’azienda che necessita delle informazioni relative a degli ordini e per ciascuno di essi si deve garantire: • La possibilità di individuare l’azienda intestataria (attraverso un codice identificativo personale dell’azienda). • Il rappresentante che ha commissionato l’ordine (attraverso un codice identificativo personale dell’azienda). • La larghezza di ciascun pezzo Si deve, inoltre, poter conoscere il nominativo, il codice identificativo e il numero di telefono di ciascun rappresentante e, per ogni azienda, il nome, il codice identificativo, il luogo (città, via , numero civico), il nominativo del titolare e la partita IVA. Ipotizzato e definito il problema ho creato, utilizzando il database “Access”, un database che ho chiamato “ordini.mdb” nel quale ho inserito tre tabelle rispettivamente “aziende”, “ordini”, “rappresentanti” collegate tra loro in relazione uno a molti, come rappresentato in figura13. Fig13: Schema relazionale esteso delle tabelle del database “ordini”.

Aziende ID_azienda Nome Via Titolare Telefono Parita_IVA

Ordini ID_ordine Larghezza Data ID_rappresentante ID_azienda

1

Rappresentanti 1

ID_rappresentante Nome Cognome Telefono

13


In questo modo è possibile gestire ed indirizzare al meglio tutte le informazioni provenienti dal messaggio SMS. Per ricevere il messaggio, però, è necessario che il computer sia collegato via USB al modulo Telit (rappresentato in figura14) che necessita quindi di appositi driver che consentano di collegarlo. Fig14: Immagine relativa al modulo “Telit” utilizzato per la ricezione e l’invio di messaggi.

Collegare il modulo correttamente al computer non basta; è necessario scaricare l’applicazione che consenta di poter usufruire di tutte le potenzialità dell’oggetto ricevente anche in ambiente di programmazione, in questo caso con Visual Basic. Il programma che ho utilizzato in questo caso specifico è “ActiveSMS” Versione 5.0 messo a disposizione da IntelliSoftware Ltd, azienda informatica che produce software e, come in questo caso, per poterlo gestire attraverso Visual Basic, librerie che contengono una serie di metodi che consentono la comunicazione con questo genere di dispositivi in una serie di linguaggi di programmazione. Attraverso questo software è possibile, prima di tutto configurare al meglio il dispositivo, come rappresentato in figura15, e, come già accennato, poter, in ciascun linguaggio di programmazione, accedere a delle librerie che consentono di controllare molte funzioni interne all’apparecchio. Fig15: Interfaccia utente ActiveSMS.

14


Con Visual Basic ho utilizzato la libreria “ACTIVESMSCLIENTLib” che mi ha automaticamente implementato il metodo “msgListener_OnMessageReceived”, metodo che viene attivato ogni qualvolta viene ricevuto un messaggio dal dispositivo. Oltre a preoccuparmi del collegamento con l’apparecchio per la ricezione dei messaggi, ho instaurato una comunicazione seriale con la macchina taglia polistirolo importando nel Form il componente “MSComm”, che consente di poter aprire, chiudere inviare o ricevere (la ricezione generalmente viene effettuata utilizzando la proprietà MSComm.input nell’evento “OnComm”) dati utilizzando semplici comandi predefiniti. Anche il database necessita di una comunicazione, in questo caso virtuale, che viene impostata importando la libreria “ADO” (ActiveX Data Objects) che gestisce otto tipi di oggetti anche se in questo caso ho utilizzato i due principali: • Oggetto connection: consente di stabilire una connessione con una “sorgente dati” (database), esso fornisce un meccanismo per inizializzare il collegamento, eseguire query,… • Oggetto recordset: contiene tutti o parte dei records di una tabella del database indicato nell’oggetto Connection. Avviato il programma, prima di tutto viene impostato il valore scelto come numero di porta seriale nel primo Form, vengono quindi attuate le impostazioni della porta COM decise, assieme al mio collega (realizzatore della macchina taglia polistirolo), per una comunicazione efficiente e chiara tra computer e macchina, dopodiché viene attivata la ricezione attraverso l’apparecchio Telit. Infine viene creata la connessione con il database per l’aggiornamento degli ordini man mano che giungono i messaggi. Il problema principale che può sussistere nel programma è relativo alla concorrenza. Se, ad esempio, nell’arco di tempo in cui l’ordine è in fase di produzione giunge un messaggio, teoricamente l’SMS dovrebbe finire in una coda di attesa in cui vengono memorizzati gli ordini da inviare alla macchina, quando libera, e aggiornare il database. Il concetto teorico non discosta dalla realtà perché tutti i messaggi ricevuti vengono salvati in un file di testo (.txt); perciò ho inserito nel programma l’oggetto Timer che, trascorso un minuto di tempo, verifica se internamente a questo file vi sono ordini da evadere. In caso positivo vengono prelevati i dati del messaggio per poter essere elaborati, come descritto precedentemente, e svuotato il file-coda.

15


4. Descrizione del sistema GSM • Analisi di base del sistema GSM Il sistema GSM è il primo sistema cellulare radiomobile completamente digitale che sia entrato in funzione in Italia. I vantaggi del sistema GSM di tipo digitale sull’ETACS (l’ETACS è un sistema radiomobile di seconda generazione di tipo analogico funzionante nella gamma dei 900 MHz) di tipo analogico sono molti, di questi, i principali sono i seguenti: 1. Possibilità di individuare e correggere gli errori di trasmissione via etere. 2. Quasi totale immunità ai disturbi, per cui la trasmissione è più pulita. 3. Ne discende la necessità di un minore rapporto segnale/disturbo (S/N) che comporta la possibilità di trasmettere con potenza inferiore e il riutilizzo delle frequenze a breve distanza e quindi, in ultima analisi, la possibilità di avere nello stesso territorio un maggior numero di utenti. 4. L’uso delle modulazioni digitali (di tipo numerico) consente di utilizzare il sistema GSM, oltre che per le trasmissioni telefoniche, anche per la trasmissione dati, per il FAX, per il collegamento fra computer, con INTERNET e con le banche dati per realizzare un grandissimo numero di servizi. 5. Si garantisce la riservatezza delle trasmissioni telefoniche perché queste avvengono in codice e non in chiaro come nell’ETACS. Pertanto se si intercetta la trasmissione di un ETACS, la si ascolta integralmente in chiaro, mentre se si intercetta la trasmissione di un GSM si ascolta solo una sequenza di bit codificati, senza alcun nesso logico apparente anche perché il codice è noto solo al trasmettitore e al ricevitore e la frequenza cambia continuamente.

• Analisi della codifica e della trama del sistema GSM. Il segnale microfonico di tipo analogico, viene convertito in digitale campionandolo, secondo il teorema di Shannon, essendo la banda telefonica 4 KHz, ad una frequenza di Fc = 2B = 8 KHz, Vengono quindi rilevati 8.000 campioni al secondo del segnale microfonico ed ogni campione è codificato con 13 bit ottenendo una velocità di trasmissione di: vT = 8.000 · 13 = 104 KBit/sec Questi bit, immessi in un codificatore /compressore vengono compressi a 13 Kbit/sec senza perdere nulla nelle caratteristiche informative. Nel tempo di 20 msec vengono costituiti dei blocchi di bit in numero di:

Questo blocco viene scomposto dal microprocessore incorporato nel cellulare in tre parti, cui a loro volta vengono aggiunti parecchi bit necessari per l’identificazione e correzione degli errori in ricezione, fino ad arrivare al numero di 456, divisi in 8 sottoblocchi di 57 ciascuno. Ogni due sottoblocchi di 57 bit informativi si costituisce un TIME SLOT che però deve comprendere, per la ricostruzione della portante in ricezione, 26 bit di sincronismo, poi, per la determinazione dell’inizio e della fine del time slot, tre bit di intestazione all’inizio e alla fine del time slot, ed in più 8,25 bit di guardia finali come blanking fra i vari time slot, come rappresentato in figura16. I 2 bit a sinistra e a destra dei 26 bit di sincronismo servono poi per distinguere i canali vocali da quelli di servizio.

16


Fig16: Schematizzazione del Time Slot.

8 time slot consecutivi costituiscono poi la trama del GSM, che viene trasmessa con un’unica frequenza, scelta da 1 a 124 nella gamma dei 900 MHz, come già detto. Infine 26 trame consecutive, costituiscono la supertrama del GSM, come rappresentato in figura17. Fig17: Schematizzazione del Time Slot.

La trama fra la numero undici e la numero dodici è detta SACCH (Slow Associate Contro Cannule) ed è usata per verificare la bontà del collegamento, mentre l’ultima, la numero 24 è prevista altri servizi. Lo scrambling viene fatto prima della formazione dei sottoblocchi al fine di ridurre gli errori di trasmissione che potrebbero concentrarsi in un sottoblocco e rendere impossibile la correzione con i normali metodi a correzione di errore in quanto si può correggere solo un numero minimo di errori fra bit che non devono essere consecutivi. Un ulteriore metodo usato per ridurre gli errori di trasmissione è detto frequency hopping, cioè a salto di frequenza. Durante la trasmissione in GSM, viene continuamente misurata l’intensità di campo dovuta ai vari canali e viene scelto continuamente, al variare del time slot, il canale con campo e rapporto S/N migliore. Si ottiene quindi che la frequenza di trasmissione è continuamente variabile, aggiungendo questa caratteristica allo scrambling, cioè al mescolamento continuo dei bit si capisce quanto nello standard GSM sia praticamente impossibile decifrare una trasmissione intercettata.

17


• Analisi della modulazione del sistema GSM Il messaggio SMS da inviare è ricondotto ad una sequenza di bit, a questi vengono aggiunti parecchi altri bit, detti ridondanti, per il controllo degli errori. I bit vengono quindi mescolati con una logica (scrambling, vedi il punto precedente “analisi della codifica e della trama”) secondo un codice noto solo al trasmettitore ed al ricevitore, ma non trasmesso via etere al fine di garantirne la segretezza e la ricezione senza errori. La sequenza viene infine modulata con una tecnica detta MSK (Minimum Shift Keying), indicata in figura18, e trasmessa via etere. Per la modulazione in pratica si utilizzano due frequenze portanti trasmettendone una in corrispondenza del bit uno, e l’altra in corrispondenza del bit zero facendo in modo però che non ci sia mai discontinuità di fase nel passare da una portante all’altra, come rappresentato in figura18. Fig18: Schematizzazione della modulazione MSK.

18


5. Descrizione del sistema “Tempo di attesa degli ordini” • Analisi teorica del sistema “Tempo di attesa degli ordini” Questo particolare sistema informatizzato di gestione degli ordini utilizzando il protocollo GSM, come la gran parte dei sistemi di comunicazione, trasmissione ed elaborazione delle informazioni, può essere visto quale applicazione di un particolare modello probabilistico. Ciò non toglie che si possa ipotizzare comunque la sorgente illimitata, per comodità di trattamento dei modelli matematici di riferimento. Se proviamo a suddividere il sistema in due porzioni, come fatto precedentemente, la prima annoverante l’invio dell’ordine, mentre la seconda comprendente la ricezione dello stesso, si può ben osservare che in quest’ultimo caso siamo in presenza di una domanda di un servizio quale la realizzazione del pezzo di polistirolo di una determinata larghezza. Quando, come in questo caso, la domanda stessa e la capacità di erogazione del servizio sono soggetti ad aleatorietà, si possono verificare, infatti, situazioni temporanee in cui chi fornisce il servizio, azienda produttrice di pezzi di polistirolo, nel nostro caso, non ha la possibilità di soddisfare immediatamente le richieste. La “Teoria Delle Code” o (file d’attesa) si propone, appunto, di sviluppare modelli per lo studio dei fenomeni d’attesa che si possono manifestare in presenza di una domanda di un servizio. È necessario, prima di tutto, creare uno schema a blocchi rappresentativo del sistema, come quello riprodotto in figura19, per poterlo analizzare in ogni sua parte. Fig19: Schema a blocchi del sistema “Tempo di attesa degli ordini”.

Sorgente: Rete GSM

Coda: File in cui vengono salvati i messaggi in ingresso.

Servizio: Elaborazione del messaggio e produzione del pezzo richiesto.

OUT: uscita dal servizio

SISTEMA

Sorgente: Si può notare che la coda in questione ha una sorgente molto grande, quale la rete GSM, ma, se pensiamo al caso particolare, solamente i rappresentanti operanti nell’azienda produttrice del servizio possono inviare l’ordine, quindi si deduce che la sorgente è di tipo limitato dato che l’azienda avrà sempre un numero finito di rappresentanti che potranno ordinare il materiale. Ciò non toglie che si possa ipotizzare comunque la sorgente illimitata, per comodità di trattamento dei modelli matematici di riferimento. Le modalità di arrivo dell’SMS all’interno del sistema sono di tipo casuale; si dovrà, quindi, studiare la distribuzione di probabilità degli arrivi dei messaggi, e verificare, mediante test chi-quadro, che per ciascuno di essi valga la modalità di arrivi di Poisson, che è la modalità più plausibile nella realtà.

Sistema: La tipologia del sistema risulta quindi essere M|M|1 perché l’arrivo dei messaggi segue una distribuzione di Poisson (prima “M”), la distribuzione del servizio è una funzione di tipo esponenziale negativa (seconda “M”) e l’attesa è composta da un’unica fila, di ordini, che si accaparrano un unico servizio, come, ad esempio, i pazienti in una sala d’attesa si uno studio medico, in cui il servizio consiste nella visita singola di ciascun paziente. La disciplina con cui ciascun ordine si accaparra il servizio è del tipo FIFO ossia: il primo SMS che giunge nella coda è il primo messaggio che si aggiudica il servizio (può essere prodotto il pezzo di polistirolo richiesto) o in altre parole “First – In, First – Out”.

19


Analisi descrittiva del sistema “Tempo di attesa degli ordini”

La durata del servizio, in questo caso, è variabile in quanto il tempo di realizzazione di un pezzo di polistirolo con una larghezza ridotta è inferiore al tempo di realizzazione di uno stesso con larghezza superione. Da ciò si deduce che l’unico strumento in grado di poter consentire lo studio del tempo di servizio è la funzione f(Ts), dove Ts è la variabile casuale “tempo di servizio”, che mediante un test chi-quadro, potrà essere valutata come una variabile casuale di tipo esponenziale negativa, come in figura20. Fig20:Funzione esponenziale negativa per lo studio del tempo di servizio.

0

per Ts < 0

F(Ts) - µTs

1-e

per Ts ≥ 0

La funzione sopra rappresentata ha i seguenti indici di sintesi: • MEDIA: E(Ts)= 1 / µ • VARIANZA: δ²(Ts)= 1 / µ² ~ • VALOR MEDIO: Ts=(ln2) / µ Ove µ si stima statisticamente come il numero medio di servizi nell’unità di tempo Prima di poter trarre delle conclusioni è necessario specificare cosa si intende per durata del servizio. Per durata del servizio si intende il tempo che intercorre tra due uscite successive, cioè, nel nostro caso, il tempo che intercorre tra la produzione terminata di un ordine quella del suo successivo. È possibile riassumere quest’ultima definizione in due variabili: • λ : numero medio di arrivi nell’unità di tempo • µ: numero medio di servizi offerti dal sistema nell’unità di tempo In conclusione: • Se il processo degli arrivi è rappresentabile con Poisson, allora gli inter-arrivi sono rappresentabili da una funzione esponenziale negativa, come dimostrato nella teoria dei processi di Poisson. o Se, quindi, il numero medio degli arrivi è λ, allora il tempo medio di inter-arrivo è 1/ λ. • Se il tempo di servizio è rappresentabile da una funzione esponenziale negativa, allora le partenze sono rappresentabili con Poisson, come dimostrato nella teoria dei processi di Poisson. o Se, quindi, la durata media del servizio è 1/µ, allora il tempo medio di inter-arrivo è µ. Si ha quindi che: • λ<µ se il numero medio di arrivi è minore del numero medio di partenze, la coda non congestiona. • λ=µ se il numero medio di arrivi è uguale al numero medio di partenze, la coda congestiona. • λ>µ se il numero medio di arrivi è maggiore del numero medio di partenze, la coda congestiona. O in altri termini: se ρ = λ / µ, allora: • ρ<1 se il numero medio di arrivi è minore del numero medio di partenze, la coda non congestiona. • ρ=1 se il numero medio di arrivi è uguale al numero medio di partenze, la coda congestiona.

20


ρ>1 se il numero medio di arrivi è maggiore del numero medio di partenze, la coda congestiona.

Attraverso quest’ultimo passaggio è possibile ricavare la seguente distribuzione di probabilità: P(0) = 1- ρ P(1) = ρ * P(0) P(2) = ρ * P(1) = ρ ² * P(0) P(3) = ρ * P(2) = ρ ² * P(1) = ρ ³ * P(0) … … P(n) = ρ ⁿ * P(0)

0

1

2

3 …………. n

P(0)

P(1)

P(2)

P(3) …………. P(n)

N=

Per verificare ciò che è stato detto sommo termine a termine ed avremo quindi: +∞

+∞

n=0

n=0

∑P(n) = ∑ ρ ⁿ * P(0)

+∞

P(0) *

∑ρⁿ n=0

In quanto somma di tutte le possibili probabilità della Poissoniana e per le proprietà della variabile continua so che la somma di tutte le probabilità converge ad 1, quindi procedendo nel modo seguente ho che:

+∞

1 = P(0) *

∑ρ ⁿ

È una serie geometrica di ragione ρ poiché 0 < ρ < 1, altrimenti la coda si congestiona, risulta dunque:

n=0

1 = P(0) * 1 / (1 – ρ )

P(0) = 1 – ρ

E per avere conferma: P(0) = 1- ρ P(1) = ρ * P(0) P(2) = ρ * P(1) = ρ ² * P(0) P(3) = ρ * P(2) = ρ ² * P(1) = ρ ³ * P(0) … … P(n) = ρ ⁿ * P(0)

0

1

2

3 …………. n

P(0)

P(1)

P(2)

P(3) …………. P(n)

N=

# Come Volevasi Dimostrare

21


6. Cenni alla serie Geometrica • Introduzione alla serie geometrica Per poter seguire i ragionamenti fatti precedentemente (pagine 18, 19) in ambito del calcolo delle probabilità con applicazioni in ambiente di analisi matematica è opportuno effettuare una breve introduzione alle serie e più in particolare alla serie geometrica.

Definizione generalizzata di serie: Data la successione , sequenza di numeri anche successione delle somme parziali :

La successione e si indica con il simbolo :

, possiamo costruire la seguente successione detta

(i puntini significano che l’indice tende a infinito) così ottenuta si chiama serie

essa equivale alla somma di tutti i termini della successione ovvero :

da cui abbiamo introdotto la definizione,

Definizione di serie convergente: Il problema è ora quello di vedere se una data serie converge, diverge o è indeterminata, cioè se la successione delle somme parziali tende ad un valore ben preciso che possiamo indicare con L, oppure tende a (diverge positivamente) o a (diverge negativamente) oppure è indeterminata. Esistono vari criteri per poter analizzare il carattere di una serie come, ad esempio il criterio del confronto, del confronto asintotico, il criterio della convergenza assoluta, il criterio della radice, il criterio dell’intergale, e molti altri.

Definizione di serie geometrica:

La serie geometrica di ragione x, dove x è un arbitrario numero reale, è definita come alternativamente come , dove è

,o

.

22


La serie geometrica ha il seguente carattere: La serie ammette somma sotto certe condizioni, che andiamo a determinare. Inizialmente la serie troncandola al termine k. Tale polinomio uguaglia l'espressione (1-x^(k+1))/(1-x) Sk=1+x+x^2+x^3+...+x^k=(1-x^(k-1))/(1-x) infatti calcolando il minimo comune multiplo e semplificando (per x diverso da 1) si ottiene (1-x)(1+x+x^2+x^3+...+x^k) = 1-x^(k-1) 1+x+x^2+x^3+...+x^k-x-x^2-x^3-...-x^(k-1) = 1-x^(k-1) 1-x^(k-1) = 1-x^(k-1) Quando si considera la serie infinita si possono verificare due casi; se |x| > 1 i termini xk diventano infinitamente grandi e la serie diverge; se |x| < 1 i termini xk diventano infinitamente piccoli e la serie converge. In tal caso poichè quando k tende all'infinito, xk tende a 0, si ottiene S=1+x+x^2+x^3+...+x^k+... = 1/(1-x) Si può concludere: • • •

divergente per perché si ha del confronto diverge. indeterminata nel caso x = 1 convergente quando

e per il teorema

Per poter trovare la somma della serie, se convergente, ovviamente, è possibile utilizzare il seguente metodo:

dove ad x sostituiamo la ragione della serie. Esempio di serie geometrica: Per esempio, se x = ½ , abbiamo :

perché se x = ½ < 1 cadiamo nel primo caso, secondo il quale dimostro che la serie in questione converge e la sua somma è: 1-x

23


GSM²  

GSM Machine Sistema che consente di sfruttare la RETE GSM a fini aziendali ed organizzativi, in particolar modo nell'agevolare il sistema d...

Advertisement
Read more
Read more
Similar to
Popular now
Just for you