876 resultados para tucson, cloud, tuple, java, sistemi distribuiti, cloudify
Resumo:
Al giorno d’oggi è sempre maggiore la richiesta di sistemi software affidabili, in grado cioè di adempiere alle proprie funzioni nel modo corretto anche qualora si dovessero verificare dei problemi interni o esterni al sistema. I sistemi informatici complessi sono sempre più chiamati a svolgere compiti altamente critici, che coinvolgono la sicurezza e l’incolumità delle persone. Si pensi per esempio ai sistemi di controllo di aerei, delle centrali nucleari, dei sistemi ferroviari o anche solo ai sistemi di transazioni monetarie. É importante per questi sistemi adottare tecniche in grado di mantenere il sistema in uno stato correttamente funzionante ed evitare che la fornitura del servizio possa essere interrotta dal verificarsi di errori. Tali tecniche possono essere implementate sia a livello hardware che a livello software. È tuttavia interessante notare la differenza che intercorre tra i due livelli: l’hardware può danneggiarsi e quindi la semplice ridondanza dei componenti è in grado di far fronte ad un eventuale malfunzionamento di uno di questi. Il software invece non può rompersi e quindi la semplice ridondanza dei moduli software non farebbe altro che replicare il problema. Il livello software necessita dunque di tecniche di tolleranza ai guasti basate su un qualche tipo di diversità nella realizzazione della ridondanza. Lo scopo di questa tesi è appunto quello di approfondire le varie tipologie di diversità utilizzabili a livello software e il funzionamento delle tecniche appartenenti a queste tipologie.
Resumo:
Generic programming is likely to become a new challenge for a critical mass of developers. Therefore, it is crucial to refine the support for generic programming in mainstream Object-Oriented languages — both at the design and at the implementation level — as well as to suggest novel ways to exploit the additional degree of expressiveness made available by genericity. This study is meant to provide a contribution towards bringing Java genericity to a more mature stage with respect to mainstream programming practice, by increasing the effectiveness of its implementation, and by revealing its full expressive power in real world scenario. With respect to the current research setting, the main contribution of the thesis is twofold. First, we propose a revised implementation for Java generics that greatly increases the expressiveness of the Java platform by adding reification support for generic types. Secondly, we show how Java genericity can be leveraged in a real world case-study in the context of the multi-paradigm language integration. Several approaches have been proposed in order to overcome the lack of reification of generic types in the Java programming language. Existing approaches tackle the problem of reification of generic types by defining new translation techniques which would allow for a runtime representation of generics and wildcards. Unfortunately most approaches suffer from several problems: heterogeneous translations are known to be problematic when considering reification of generic methods and wildcards. On the other hand, more sophisticated techniques requiring changes in the Java runtime, supports reified generics through a true language extension (where clauses) so that backward compatibility is compromised. In this thesis we develop a sophisticated type-passing technique for addressing the problem of reification of generic types in the Java programming language; this approach — first pioneered by the so called EGO translator — is here turned into a full-blown solution which reifies generic types inside the Java Virtual Machine (JVM) itself, thus overcoming both performance penalties and compatibility issues of the original EGO translator. Java-Prolog integration Integrating Object-Oriented and declarative programming has been the subject of several researches and corresponding technologies. Such proposals come in two flavours, either attempting at joining the two paradigms, or simply providing an interface library for accessing Prolog declarative features from a mainstream Object-Oriented languages such as Java. Both solutions have however drawbacks: in the case of hybrid languages featuring both Object-Oriented and logic traits, such resulting language is typically too complex, thus making mainstream application development an harder task; in the case of library-based integration approaches there is no true language integration, and some “boilerplate code” has to be implemented to fix the paradigm mismatch. In this thesis we develop a framework called PatJ which promotes seamless exploitation of Prolog programming in Java. A sophisticated usage of generics/wildcards allows to define a precise mapping between Object-Oriented and declarative features. PatJ defines a hierarchy of classes where the bidirectional semantics of Prolog terms is modelled directly at the level of the Java generic type-system.
Resumo:
This thesis deals with Context Aware Services, Smart Environments, Context Management and solutions for Devices and Service Interoperability. Multi-vendor devices offer an increasing number of services and end-user applications that base their value on the ability to exploit the information originating from the surrounding environment by means of an increasing number of embedded sensors, e.g. GPS, compass, RFID readers, cameras and so on. However, usually such devices are not able to exchange information because of the lack of a shared data storage and common information exchange methods. A large number of standards and domain specific building blocks are available and are heavily used in today's products. However, the use of these solutions based on ready-to-use modules is not without problems. The integration and cooperation of different kinds of modules can be daunting because of growing complexity and dependency. In this scenarios it might be interesting to have an infrastructure that makes the coexistence of multi-vendor devices easy, while enabling low cost development and smooth access to services. This sort of technologies glue should reduce both software and hardware integration costs by removing the trouble of interoperability. The result should also lead to faster and simplified design, development and, deployment of cross-domain applications. This thesis is mainly focused on SW architectures supporting context aware service providers especially on the following subjects: - user preferences service adaptation - context management - content management - information interoperability - multivendor device interoperability - communication and connectivity interoperability Experimental activities were carried out in several domains including Cultural Heritage, indoor and personal smart spaces – all of which are considered significant test-beds in Context Aware Computing. The work evolved within european and national projects: on the europen side, I carried out my research activity within EPOCH, the FP6 Network of Excellence on “Processing Open Cultural Heritage” and within SOFIA, a project of the ARTEMIS JU on embedded systems. I worked in cooperation with several international establishments, including the University of Kent, VTT (the Technical Reserarch Center of Finland) and Eurotech. On the national side I contributed to a one-to-one research contract between ARCES and Telecom Italia. The first part of the thesis is focused on problem statement and related work and addresses interoperability issues and related architecture components. The second part is focused on specific architectures and frameworks: - MobiComp: a context management framework that I used in cultural heritage applications - CAB: a context, preference and profile based application broker which I designed within EPOCH Network of Excellence - M3: "Semantic Web based" information sharing infrastructure for smart spaces designed by Nokia within the European project SOFIA - NoTa: a service and transport independent connectivity framework - OSGi: the well known Java based service support framework The final section is dedicated to the middleware, the tools and, the SW agents developed during my Doctorate time to support context-aware services in smart environments.
Resumo:
Con il termine Smart Grid si intende una rete urbana capillare che trasporta energia, informazione e controllo, composta da dispositivi e sistemi altamente distribuiti e cooperanti. Essa deve essere in grado di orchestrare in modo intelligente le azioni di tutti gli utenti e dispositivi connessi al fine di distribuire energia in modo sicuro, efficiente e sostenibile. Questo connubio fra ICT ed Energia viene comunemente identificato anche con il termine Smart Metering, o Internet of Energy. La crescente domanda di energia e l’assoluta necessità di ridurre gli impatti ambientali (pacchetto clima energia 20-20-20 [9]), ha creato una convergenza di interessi scientifici, industriali e politici sul tema di come le tecnologie ICT possano abilitare un processo di trasformazione strutturale di ogni fase del ciclo energetico: dalla generazione fino all’accumulo, al trasporto, alla distribuzione, alla vendita e, non ultimo, il consumo intelligente di energia. Tutti i dispositivi connessi, diventeranno parte attiva di un ciclo di controllo esteso alle grandi centrali di generazione così come ai comportamenti dei singoli utenti, agli elettrodomestici di casa, alle auto elettriche e ai sistemi di micro-generazione diffusa. La Smart Grid dovrà quindi appoggiarsi su una rete capillare di comunicazione che fornisca non solo la connettività fra i dispositivi, ma anche l’abilitazione di nuovi servizi energetici a valore aggiunto. In questo scenario, la strategia di comunicazione sviluppata per lo Smart Metering dell’energia elettrica, può essere estesa anche a tutte le applicazioni di telerilevamento e gestione, come nuovi contatori dell’acqua e del gas intelligenti, gestione dei rifiuti, monitoraggio dell’inquinamento dell’aria, monitoraggio del rumore acustico stradale, controllo continuo del sistema di illuminazione pubblico, sistemi di gestione dei parcheggi cittadini, monitoraggio del servizio di noleggio delle biciclette, ecc. Tutto ciò si prevede possa contribuire alla progettazione di un unico sistema connesso, dove differenti dispositivi eterogenei saranno collegati per mettere a disposizione un’adeguata struttura a basso costo e bassa potenza, chiamata Metropolitan Mesh Machine Network (M3N) o ancora meglio Smart City. Le Smart Cities dovranno a loro volta diventare reti attive, in grado di reagire agli eventi esterni e perseguire obiettivi di efficienza in modo autonomo e in tempo reale. Anche per esse è richiesta l’introduzione di smart meter, connessi ad una rete di comunicazione broadband e in grado di gestire un flusso di monitoraggio e controllo bi-direzionale esteso a tutti gli apparati connessi alla rete elettrica (ma anche del gas, acqua, ecc). La M3N, è un’estensione delle wireless mesh network (WMN). Esse rappresentano una tecnologia fortemente attesa che giocherà un ruolo molto importante nelle futura generazione di reti wireless. Una WMN è una rete di telecomunicazione basata su nodi radio in cui ci sono minimo due percorsi che mettono in comunicazione due nodi. E’ un tipo di rete robusta e che offre ridondanza. Quando un nodo non è più attivo, tutti i rimanenti possono ancora comunicare tra di loro, direttamente o passando da uno o più nodi intermedi. Le WMN rappresentano una tipologia di rete fondamentale nel continuo sviluppo delle reti radio che denota la divergenza dalle tradizionali reti wireless basate su un sistema centralizzato come le reti cellulari e le WLAN (Wireless Local Area Network). Analogamente a quanto successo per le reti di telecomunicazione fisse, in cui si è passati, dalla fine degli anni ’60 ai primi anni ’70, ad introdurre schemi di rete distribuite che si sono evolute e man mano preso campo come Internet, le M3N promettono di essere il futuro delle reti wireless “smart”. Il primo vantaggio che una WMN presenta è inerente alla tolleranza alla caduta di nodi della rete stessa. Diversamente da quanto accade per una rete cellulare, in cui la caduta di una Base Station significa la perdita di servizio per una vasta area geografica, le WMN sono provviste di un’alta tolleranza alle cadute, anche quando i nodi a cadere sono più di uno. L'obbiettivo di questa tesi è quello di valutare le prestazioni, in termini di connettività e throughput, di una M3N al variare di alcuni parametri, quali l’architettura di rete, le tecnologie utilizzabili (quindi al variare della potenza, frequenza, Building Penetration Loss…ecc) e per diverse condizioni di connettività (cioè per diversi casi di propagazione e densità abitativa). Attraverso l’uso di Matlab, è stato quindi progettato e sviluppato un simulatore, che riproduce le caratteristiche di una generica M3N e funge da strumento di valutazione delle performance della stessa. Il lavoro è stato svolto presso i laboratori del DEIS di Villa Grifone in collaborazione con la FUB (Fondazione Ugo Bordoni).