484 resultados para Ballerina,Cloud Native,API,Linguaggio di Programmazione
Resumo:
Nell'ambito dello sviluppo software, la concorrenza è sempre stata vista come la strada del futuro. Tuttavia, questa è stata spesso ignorata a causa del continuo sviluppo dell'hardware che ha permesso agli sviluppatori di continuare a scrivere software sequenziale senza doversi preoccupare delle performance. In un'era in cui le nuove architetture hardware presentano processori multi-core, tutto questo non è più possibile. L'obiettivo di questa tesi è stato quello di considerare il Modello ad Attori come valida alternativa allo sviluppo di applicazioni in ambito mobile e quindi di progettare, sviluppare e distribuire un nuovo framework sulla base di tale modello. Il lavoro parte quindi da una panoramica di Swift, il nuovo linguaggio di programmazione presentato da Apple al WWDC 2014, in cui vengono analizzati nel dettaglio i meccanismi che abilitano alla concorrenza. Successivamente viene descritto il modello ad attori in termini di: attori, proprietà, comunicazione e sincronizzazione. Segue poi un'analisi delle principali implementazioni di questo modello, tra cui: Scala, Erlang ed Akka; quest'ultimo rappresenta la base su cui è stato ispirato il lavoro di progettazione e sviluppo del framework Actor Kit. Il quarto capitolo descrive tutti i concetti, le idee e i principi su cui il framework Actor Kit è stato progettato e sviluppato. Infine, l'ultimo capitolo presenta l'utilizzo del framework in due casi comuni della programmazione mobile: 1) Acquisizione dati da Web API e visualizzazione sull'interfaccia utente. 2) Acquisizione dati dai sensori del dispositivo. In conclusione Actor Kit abilita la progettazione e lo sviluppo di applicazioni secondo un approccio del tutto nuovo nell'ambito mobile. Un possibile sviluppo futuro potrebbe essere l'estensione del framework con attori che mappino i framework standard di Apple; proprio per questo sarà reso pubblico con la speranza che altri sviluppatori possano evolverlo e renderlo ancora più completo e performante.
Resumo:
Questa tesi si pone l'obiettivo di implementare in ambiente Linux un'applicazione di sincronizzazione, chiamata DTNbox, che permetta lo scambio di file tra due nodi di una rete classificabile come Delay-/Disruption-Tolerant Network (DTN), ossia una rete in cui a causa di ritardi, interruzioni, partizionamento, non sia possibile utilizzare l'usuale architettura di rete TCP/IP. E' evidente che i problemi menzionati rendono estremamente più complessa la sincronizzazione fra cartelle rispetto ad Internet, da cui le peculiarità di DTNbox rispetto ad altre applicazioni in rete visto che, ad esempio, non è possibile la sincronizzazione tramite un nodo centrale, come in Dropbox e similari, ma occorre basarsi su comunicazioni peer-to-peer. L'oggetto della mia tesi si è quindi sviluppato principalmente su tre direzioni: • Implementare, utilizzando il linguaggio di programmazione C, le funzionalità previste dal nuovo progetto per Linux • Integrarne e modificarne le parti ritenute carenti, man mano che i test parziali ne hanno mostrato la necessità • Testarne il suo corretto funzionamento Si è deciso pertanto di dare precedenza alla scrittura delle parti fondamentali del programma quali i moduli di controllo, la struttura e gestione del database e lo scambio di messaggi tra due nodi appartenenti ad una rete DTN per poter arrivare ad una prima versione funzionante del programma stesso, in modo che eventuali future tesi possano concentrarsi sullo sviluppo di una interfaccia grafica e sull'aggiunta di nuovi comandi e funzionalità accessorie. Il programma realizzato è stato poi testato su macchine virtuali grazie all'uso dello strumento Virtualbricks.
Resumo:
Con la crescita in complessità delle infrastrutture IT e la pervasività degli scenari di Internet of Things (IoT) emerge il bisogno di nuovi modelli computazionali basati su entità autonome capaci di portare a termine obiettivi di alto livello interagendo tra loro grazie al supporto di infrastrutture come il Fog Computing, per la vicinanza alle sorgenti dei dati, e del Cloud Computing per offrire servizi analitici complessi di back-end in grado di fornire risultati per milioni di utenti. Questi nuovi scenarii portano a ripensare il modo in cui il software viene progettato e sviluppato in una prospettiva agile. Le attività dei team di sviluppatori (Dev) dovrebbero essere strettamente legate alle attività dei team che supportano il Cloud (Ops) secondo nuove metodologie oggi note come DevOps. Tuttavia, data la mancanza di astrazioni adeguata a livello di linguaggio di programmazione, gli sviluppatori IoT sono spesso indotti a seguire approcci di sviluppo bottom-up che spesso risulta non adeguato ad affrontare la compessità delle applicazione del settore e l'eterogeneità dei compomenti software che le formano. Poichè le applicazioni monolitiche del passato appaiono difficilmente scalabili e gestibili in un ambiente Cloud con molteplici utenti, molti ritengono necessaria l'adozione di un nuovo stile architetturale, in cui un'applicazione dovrebbe essere vista come una composizione di micro-servizi, ciascuno dedicato a uno specifica funzionalità applicativa e ciascuno sotto la responsabilità di un piccolo team di sviluppatori, dall'analisi del problema al deployment e al management. Poichè al momento non si è ancora giunti a una definizione univoca e condivisa dei microservices e di altri concetti che emergono da IoT e dal Cloud, nè tantomento alla definzione di linguaggi sepcializzati per questo settore, la definzione di metamodelli custom associati alla produzione automatica del software di raccordo con le infrastrutture potrebbe aiutare un team di sviluppo ad elevare il livello di astrazione, incapsulando in una software factory aziendale i dettagli implementativi. Grazie a sistemi di produzione del sofware basati sul Model Driven Software Development (MDSD), l'approccio top-down attualmente carente può essere recuperato, permettendo di focalizzare l'attenzione sulla business logic delle applicazioni. Nella tesi viene mostrato un esempio di questo possibile approccio, partendo dall'idea che un'applicazione IoT sia in primo luogo un sistema software distribuito in cui l'interazione tra componenti attivi (modellati come attori) gioca un ruolo fondamentale.
Resumo:
Il Machine Learning si sta rivelando una tecnologia dalle incredibili potenzialità nei settori più disparati. Le diverse tecniche e gli algoritmi che vi fanno capo abilitano analisi dei dati molto più efficaci rispetto al passato. Anche l’industria assicurativa sta sperimentando l’adozione di soluzioni di Machine Learning e diverse sono le direzioni di innovamento che ne stanno conseguendo, dall’efficientamento dei processi interni all’offerta di prodotti rispondenti in maniera adattiva alle esigenze del cliente. Questo lavoro di tesi è stato realizzato durante un tirocinio presso Unisalute S.p.A., la prima assicurazione in ambito sanitario in Italia. La criticità intercettata è stata la sovrastima del capitale da destinare a riserva a fronte dell’impegno nei confronti dell’assicurato: questo capitale immobilizzato va a sottrarre risorse ad investimenti più proficui nel medio e lungo termine, per cui è di valore stimarlo appropriatamente. All'interno del settore IT di Unisalute, ho lavorato alla progettazione e implementazione di un modello di Machine Learning che riesca a prevedere se un sinistro appena preso in gestione sarà liquidato o meno. Dotare gli uffici impegnati nella determinazione del riservato di questa stima aggiuntiva basata sui dati, sarebbe di notevole supporto. La progettazione del modello di Machine Learning si è articolata in una Data Pipeline contenente le metodologie più efficienti con riferimento al preprocessamento e alla modellazione dei dati. L’implementazione ha visto Python come linguaggio di programmazione; il dataset, ottenuto a seguito di estrazioni e integrazioni a partire da diversi database Oracle, presenta una cardinalità di oltre 4 milioni di istanze caratterizzate da 32 variabili. A valle del tuning degli iperparamentri e dei vari addestramenti, si è raggiunta un’accuratezza dell’86% che, nel dominio di specie, è ritenuta più che soddisfacente e sono emersi contributi non noti alla liquidabilità dei sinistri.
Resumo:
Con le crescenti esigenze di personalizzazione, la capacità di prevedere con precisione la domanda di un numero sempre maggiore di prodotti è diventata una delle caratteristiche fondamentali che l’azienda manufatturiera moderna deve possedere. L’esigenza dunque di fornire una gamma di prodotti sempre più vasta, contenendo i costi associati alla realizzazione e alla giacenza dei prodotti finiti e contemporaneamente riducendo al minimo i tempi di risposta alla domanda, non viene pienamente soddisfatta da nessuna delle due politiche produttive che rappresentano i due approcci più classici, ossia le due strategie Make-To-Stock (MTS) e Make-To-Order (MTO). Per rispondere a questa esigenza di personalizzazione è stata proposta un’ulteriore politica produttiva nota come Delayed Product Differentiation (DPD) basata sul concetto delle piattaforme di prodotto, ossia delle strutture comuni a più prodotti diversi che, tramite l’aggiunta dei componenti, permettono di ottenere la gamma di prodotti finali richiesti. Il seguente lavoro di tesi si pone lo scopo di studiare, tramite un algoritmo ideato e sviluppato con l’ausilio del linguaggio di programmazione di Matlab, il caso di un sistema che già adotta l’approccio DPD per riuscire a trovare una soluzione al problema di estendere il catalogo iniziale degli articoli presenti, avendo una lista di prodotti nuovi da analizzare e dovendo scegliere quali aggiungere e quali invece eliminare, stabilendo come modificare le piattaforme per l’aggiunta di essi.
Resumo:
Lo scopo di questo lavoro è lo sviluppo, mediante il linguaggio di programmazione Python, di un applicativo per il calcolo e la visualizzazione di frequenze naturali per strutture e cavità. L’applicativo consiste di un’interfaccia grafica e di una libreria nella quale si trovano le diverse tipologie di strutture e cavità presenti in letteratura. I vari sistemi possono essere vincolati da diverse condizioni al contorno e sono inoltre costituiti da materiali isotropi, nel caso di strutture, e fluidi, nel caso di cavità. La prima parte del lavoro comprende la codifica delle soluzioni analitiche per l’analisi modale. La seconda fase è, invece, incentrata sulla validazione del codice, utilizzando un software commerciale per la comparazione di frequenze naturali e forme dei modi.
Resumo:
In questa tesi viene trattata la problematica di determinare le migliori K soluzioni per due problemi di ottimizzazione, il Knapsack Problem 0-1 e lo Shortest Path Problem. Tali soluzioni possono essere impiegate all'interno di metodi di column generation per la risoluzione di problemi reali, ad esempio Bin Packing Problems e problemi di scheduling di veicoli ed equipaggi. Sono stati implementati, per verificarne sperimentalmente le prestazioni, nuovi algoritmi di programmazione dinamica, sviluppati nell’ambito di un programma di ricerca. Inizialmente, per entrambi i problemi, è stato descritto un algoritmo che determinasse le migliori K soluzioni per ogni possibile sottoproblema; partendo da uno zaino con capacità nulla, nel caso del Knapsack Problem 0-1, e dalla determinazione di un cammino dal vertice sorgente in se stesso per lo Shortest Path Problem, l’algoritmo determina le migliori soluzioni di sottoproblemi via via sempre più grandi, utilizzando le soluzioni costruite per gli stati precedenti, fino a ottenere le migliori soluzioni del problema globale. Successivamente, è stato definito un algoritmo basato su un approccio di ricorsione backward; in questo caso si utilizza una funzione ricorsiva che, chiamata a partire dallo stato corrispondente al problema globale, viene richiamata solo sugli stati intermedi strettamente necessari, e per ognuno di essi non vengono determinate soluzioni superflue.
Resumo:
L’Internet of Things (IoT) è un termine utilizzato nel mondo della telecomunicazione che fa riferimento all’estensione di Internet al mondo degli oggetti, che acquisiscono una propria identità, venendo così definiti “intelligenti”. L’uomo in questo ambito avrà sempre meno incidenza sul campo poiché sono le macchine ad interagire tra loro scambiandosi informazioni. Gli ambiti applicativi che comprendono IoT sono innumerevoli ed eterogenei; pertanto, non esiste un'unica soluzione tecnologica che possa coprire qualsiasi scenario. Una delle tecnologie che si prestano bene a svolgere lavori in IoT sono le LoRaWAN. Un punto e una sfida essenziali nell'applicazione della tecnologia LoRaWAN è garantire la massima autonomia dei dispositivi ottenendo il più basso consumo di energia possibile e la ricerca di soluzioni di alimentazione efficienti. L'obiettivo in questo elaborato è quello di realizzare un sistema capace di trasmettere un flusso continuo di informazioni senza l'ausilio e il costante monitoraggio dell'uomo. Viene trattato come controllare dei sensori da remoto e come garantire una migliore autonomia dei dispositivi ottenendo un più basso consumo energetico.
Resumo:
L’elaborato di tesi è frutto di un percorso di tirocinio svolto in Gruppo Montenegro S.r.l., il cui obiettivo risiede nello sviluppo di un algoritmo per la pallettizzazione e la saturazione del mezzo di trasporto per la Divisione Food. Nello specifico viene proposto un algoritmo euristico elaborato nel linguaggio di programmazione Python. La divisione Food è costituita da tre categorie: Cannamela, Cuore e Vitalia.Queste comprendono prodotti molto eterogenei. Attraverso il coinvolgimento delle funzioni aziendali di Packaging e Qualità, sono stati stabiliti i vincoli da rispettare per la pallettizzazione dei prodotti. L’algoritmo proposto viene descritto suddividendo il processo in tre macro-step. La prima parte affronta il problema del 3D Bin Packing Problem, utilizzando e modificando un programma già presente in letteratura per soddisfare le esigenze della categoria Cannamela. Quest’ultima a differenza delle altre categorie, viene allestita in groupage preallestito poiché gli ordini Cannamela possono contenere quantità non-multiple rispetto alle quantità contenute nell’imballo secondario. La seconda parte dell’algoritmo si occupa della creazione dei pallet per le categorie Cuore e Vitalia. Attraverso l’utilizzo dell’algoritmo di clustering K-means sono state create famiglie di codici che permettessero l’allestimento di pallet con prodotti considerati simili. Di conseguenza, l’algoritmo per la pallettizzazione delle due categorie viene sviluppato ex-novo basandosi sulla percentuale di occupazione del prodotto nel pallet. L’ultima parte dell’algoritmo studia la possibilità di sovrapporre i pallet precedentemente creati. Infine, viene effettuata un’analisi di un periodo strategico confrontando i risultatidell’algoritmo Python con quelli dell’algoritmo presente nel gestionale aziendale. I risultati vengono poi analizzati in relazione a due impatti importanti per l’azienda:economici e ambientali.
Resumo:
La tesi tratta aspetti relativi all'ottimizzazione strutturale. Algoritmi di ottimizzazione scritti in linguaggio di programmazione Python, sia basati sul metodo del simplesso che di tipo gentico, sono stati integrati in ambiente Salome-Meca/CAE ed applicati ad esempi di interesse strutturale.
Resumo:
Il presente lavoro di tesi ha come punto focale la descrizione, la verifica e la dimostrazione della realizzabilità dei Workflow Patterns di Gestione del Flusso(Control-Flow) e Risorse (Resource) definiti da parte della Workflow Pattern Initiative (WPI)in JOLIE, un innovativo linguaggio di programmazione orientato ai servizi nato nell'ambito del Service Oriented Computing. Il Service Oriented Computing (SOC) è un nuovo modo di pensare la programmazione di applicazioni distribuite, i cui concetti fondamentali sono i servizi e la composizione. L’approccio SOC definisce la possibilità di costruire un’applicazione in funzione dei servizi che ne realizzano il comportamento tramite una loro composizione, definita secondo un particolare flusso di lavoro. Allo scopo di fornire la necessaria conoscenza per capire la teoria, le meccaniche e i costrutti di JOLIE utilizzati per la realizzazione dei pattern, il seguente lavoro di tesi è stato diviso in quattro parti, corrispondenti ad altrettanti capitoli. Nel primo capitolo viene riportata una descrizione generale del SOC e della Business Process Automation (BPA), che costituisce l’ambiente in cui il SOC è inserito. Per questo viene fatta una disamina della storia informatica sui sistemi distribuiti, fino ad arrivare ai sistemi odierni, presentando in seguito il contesto del BPA e delle innovazioni derivanti dalle sue macro-componenti, di cui il SOC fa parte. Continuando la descrizione dell’approccio Service Oriented, ne vengono presentati i requisiti (pre-condizioni) e si cerca di dare una definizione precisa del termine “servizio”, fino all'enunciazione dei principi SOC declinati nell’ottica delle Service Oriented Architectures, presentando in ultimo i metodi di composizione dei servizi, tramite orchestrazione e coreografia. L’ultima sezione del capitolo prende in considerazione il SOC in un’ottica prettamente industriale e ne evidenzia i punti strategici. Il secondo capitolo è incentrato sulla descrizione di JOLIE, gli aspetti fondamentali dell’approccio orientato ai servizi, che ne caratterizzano profondamente la definizione concettuale (SOCK), e la teoria della composizione dei servizi. Il capitolo non si pone come una descrizione esaustiva di tutte le funzionalità del linguaggio, ma considera soprattutto i concetti teorici, le strutture di dati, gli operatori e i costrutti di JOLIE utilizzati per la dimostrazione della realizzabilità dei Workflow Pattern del capitolo successivo. Il terzo capitolo, più lungo e centrale rispetto agli altri, riguarda la realizzazione dei workflow pattern in JOLIE. All'inizio del capitolo viene fornita una descrizione delle caratteristiche del WPI e dei Workflow Pattern in generale. In seguito, nelle due macro-sezioni relative ai Control-Flow e Resource pattern vengono esposte alcune nozioni riguardanti le metodologie di definizione dei pattern (e.g. la teoria sulla definizione delle Colored Petri Nets) e le convezioni adottate dal WPI, per passare in seguito al vero e proprio lavoro (sperimentale) di tesi riguardo la descrizione dei pattern, l’analisi sulla loro realizzabilità in JOLIE, insieme ad un codice di esempio che esemplifica quanto affermato dall'analisi. Come sommario delle conclusioni raggiunte sui pattern, alla fine di ognuna delle due sezioni definite in precedenza, è presente una scheda di valutazione che, con lo stesso metodo utilizzato e definito dalla WPI, permette di avere una rappresentazione generale della realizzabilità dei pattern in JOLIE. Il quarto capitolo riguarda gli esiti tratti dal lavoro di tesi, riportando un confronto tra le realizzazioni dei pattern in JOLIE e le valutazioni del WPI rispetto agli altri linguaggi da loro considerati e valutati. Sulla base di quanto ottenuto nel terzo capitolo vengono definite le conclusioni del lavoro portato avanti sui pattern e viene delineato un’eventuale scenario riguardante il proseguimento dell’opera concernente la validazione ed il completamento della studio. In ultimo vengono tratte alcune conclusioni sia riguardo JOLIE, nel contesto evolutivo del linguaggio e soprattutto del progetto open-source che è alla sua base, sia sul SOC, considerato nell’ambito del BPA e del suo attuale ambito di sviluppo dinamico.
Resumo:
La crescente disponibilità di dispositivi meccanici e -soprattutto - elettronici le cui performance aumentano mentre il loro costo diminuisce, ha permesso al campo della robotica di compiere notevoli progressi. Tali progressi non sono stati fatti unicamente per ciò che riguarda la robotica per uso industriale, nelle catene di montaggio per esempio, ma anche per quella branca della robotica che comprende i robot autonomi domestici. Questi sistemi autonomi stanno diventando, per i suddetti motivi, sempre più pervasivi, ovvero sono immersi nello stesso ambiente nel quale vivono gli essere umani, e interagiscono con questi in maniera proattiva. Essi stanno compiendo quindi lo stesso percorso che hanno attraversato i personal computer all'incirca 30 anni fa, passando dall'essere costosi ed ingombranti mainframe a disposizione unicamente di enti di ricerca ed università, ad essere presenti all'interno di ogni abitazione, per un utilizzo non solo professionale ma anche di assistenza alle attività quotidiane o anche di intrattenimento. Per questi motivi la robotica è un campo dell'Information Technology che interessa sempre più tutti i tipi di programmatori software. Questa tesi analizza per prima cosa gli aspetti salienti della programmazione di controllori per robot autonomi (ovvero senza essere guidati da un utente), quindi, come l'approccio basato su agenti sia appropriato per la programmazione di questi sistemi. In particolare si mostrerà come un approccio ad agenti, utilizzando il linguaggio di programmazione Jason e quindi l'architettura BDI, sia una scelta significativa, dal momento che il modello sottostante a questo tipo di linguaggio è basato sul ragionamento pratico degli esseri umani (Human Practical Reasoning) e quindi è adatto alla implementazione di sistemi che agiscono in maniera autonoma. Dato che le possibilità di utilizzare un vero e proprio sistema autonomo per poter testare i controllori sono ridotte, per motivi pratici, economici e temporali, mostreremo come è facile e performante arrivare in maniera rapida ad un primo prototipo del robot tramite l'utilizzo del simulatore commerciale Webots. Il contributo portato da questa tesi include la possibilità di poter programmare un robot in maniera modulare e rapida per mezzo di poche linee di codice, in modo tale che l'aumento delle funzionalità di questo risulti un collo di bottiglia, come si verifica nella programmazione di questi sistemi tramite i classici linguaggi di programmazione imperativi. L'organizzazione di questa tesi prevede un capitolo di background nel quale vengono riportare le basi della robotica, della sua programmazione e degli strumenti atti allo scopo, un capitolo che riporta le nozioni di programmazione ad agenti, tramite il linguaggio Jason -quindi l'architettura BDI - e perché tale approccio è adatto alla programmazione di sistemi di controllo per la robotica. Successivamente viene presentata quella che è la struttura completa del nostro ambiente di lavoro software che comprende l'ambiente ad agenti e il simulatore, quindi nel successivo capitolo vengono mostrate quelle che sono le esplorazioni effettuate utilizzando Jason e un approccio classico (per mezzo di linguaggi classici), attraverso diversi casi di studio di crescente complessità; dopodiché, verrà effettuata una valutazione tra i due approcci analizzando i problemi e i vantaggi che comportano questi. Infine, la tesi terminerà con un capitolo di conclusioni e di riflessioni sulle possibili estensioni e lavori futuri.
Resumo:
In questa tesi si indaga come è possibile strutturare in modo modulare programmi e prove in linguaggi con tipi dipendenti. Il lavoro è sviluppato nel linguaggio di programmazione con tipi dipendenti Agda. Il fine è quello di tradurre l'approccio Datatypes à la carte, originariamente formulato per Haskell, in Type Theory: puntiamo ad ottenere un simile embedding di una nozione di sottotipaggio per tipi ricorsivi, che permetta sia la definizione di programmi con side-effect dove i diversi effetti sono definiti modularmente, che la modularizzazione di sintassi, semantica e ragionamento relativi a descrizioni di linguaggi.
Resumo:
L'obiettivo su cui è stata basata questa Tesi di Laurea è stato quello di integrare la tecnologia delle Wireless Sensor Networks (WSN) al contesto dell'Internet delle cose (IoT). Per poter raggiungere questo obiettivo, il primo passo è stato quello di approfondire il concetto dell'Internet delle cose, in modo tale da comprendere se effettivamente fosse stato possibile applicarlo anche alle WSNs. Quindi è stata analizzata l'architettura delle WSNs e successivamente è stata fatta una ricerca per capire quali fossero stati i vari tipi di sistemi operativi e protocolli di comunicazione supportati da queste reti. Infine sono state studiate alcune IoT software platforms. Il secondo passo è stato quindi di implementare uno stack software che abilitasse la comunicazione tra WSNs e una IoT platform. Come protocollo applicativo da utilizzare per la comunicazione con le WSNs è stato usato CoAP. Lo sviluppo di questo stack ha consentito di estendere la piattaforma SensibleThings e il linguaggio di programmazione utilizzato è stato Java. Come terzo passo è stata effettuata una ricerca per comprendere a quale scenario di applicazione reale, lo stack software progettato potesse essere applicato. Successivamente, al fine di testare il corretto funzionamento dello stack CoAP, è stata sviluppata una proof of concept application che simulasse un sistema per la rilevazione di incendi. Questo scenario era caratterizzato da due WSNs che inviavano la temperatura rilevata da sensori termici ad un terzo nodo che fungeva da control center, il cui compito era quello di capire se i valori ricevuti erano al di sopra di una certa soglia e quindi attivare un allarme. Infine, l'ultimo passo di questo lavoro di tesi è stato quello di valutare le performance del sistema sviluppato. I parametri usati per effettuare queste valutazioni sono stati: tempi di durata delle richieste CoAP, overhead introdotto dallo stack CoAP alla piattaforma Sensible Things e la scalabilità di un particolare componente dello stack. I risultati di questi test hanno mostrato che la soluzione sviluppata in questa tesi ha introdotto un overheadmolto limitato alla piattaforma preesistente e inoltre che non tutte le richieste hanno la stessa durata, in quanto essa dipende dal tipo della richiesta inviata verso una WSN. Tuttavia, le performance del sistema potrebbero essere ulteriormente migliorate, ad esempio sviluppando un algoritmo che consenta la gestione concorrente di richieste CoAP multiple inviate da uno stesso nodo. Inoltre, poichè in questo lavoro di tesi non è stato considerato il problema della sicurezza, una possibile estensione al lavoro svolto potrebbe essere quello di implementare delle politiche per una comunicazione sicura tra Sensible Things e le WSNs.
Resumo:
Questa ricerca affronta in maniera interdisciplinare il tema delle funzioni polinomiali definite sugli anelli degli interi modulo la potenza di un numero primo. In primo luogo è stato esaminato il caso particolare del campo Zp, dimostrando che in esso tutte le funzioni sono polinomiali. In seguito è stato calcolato il numero delle funzioni polinomiali negli interi modulo 9 e modulo 25, mostrando un procedimento che può essere esteso a qualsiasi potenza di un numero primo. Esso fa uso di alcuni risultati di teoria dei numeri e di aritmetica e affronta il tema da un punto di vista prettamente algebrico. A queste dimostrazioni è stato affiancato un esperimento di tipo statistico, il cui obiettivo è cercare una regolarità che permetta, dati il numero primo p e il suo esponente n, di calcolare immediatamente il numero delle funzioni polinomiali nell'anello degli interi modulo p^n. Sono state presentate due congetture, ottenute utilizzando strumenti di tipo informatico: un software di calcolo e un linguaggio di programmazione ad alto livello. Gli strumenti della statistica descrittiva, in particolare il test di Pearson, si sono rivelati essenziali per verificare l'adeguatezza delle supposizioni. Questa ricerca può essere considerata il punto di partenza per dimostrare (o confutare) quello che è stato ipotizzato attraverso un'analisi di tipo sperimentale.