932 resultados para Java platfomr
Resumo:
Grazie al progresso dell'elettronica, ai giorni nostri, è possibile costruire dispositivi elettronici molto piccoli, che col passare del tempo lo sono sempre più. Questo ci permette di poter imboccare nuove strade nel mondo dell'informatica, sfruttando proprio questo fatto. Le dimensioni ridotte dei dispositivi in commercio, come sensori, attuatori, tag e tanto altro, sono particolarmente adatte a nuovi scenari applicativi. Internet of Things è una visione in cui Internet viene esteso alle cose. Facendo largo uso di dispositivi come sensori e tag è possibile realizzare sistemi intelligenti che possono avere riscontri positivi nella vita di tutti i giorni. Tracciare la posizione degli oggetti, monitorare pazienti da remoto, rilevare dati sull'ambiente per realizzare sistemi automatici (ad esempio regolare automaticamente la luce o la temperatura di una stanza) sono solo alcuni esempi. Internet of Things è la naturale evoluzione di Internet, ed è destinato a cambiare radicalmente la nostra vita futura, poichè la tecnologia sarà sempre più parte integrante della nostra vita, aumentando sempre più il nostro benessere e riducendo sempre più il numero delle azioni quotidiane da compiere. Sempre più sono middleware, le piattaforme e i sistemi operativi che nascono per cercare di eliminare o ridurre le problematiche relative allo sviluppo di sistemi di questo genere, e lo scopo di questa tesi è proprio sottolinearne l'importanza e di analizzare gli aspetti che questi middleware devono affrontare. La tesi è strutturata in questo modo: nel capitolo uno verrà fatta una introduzione a Internet of Things, analizzando alcuni degli innumerevoli scenari applicativi che ne derivano, insieme però alle inevitabili problematiche di tipo tecnologico e sociale. Nel secondo capitolo verranno illustrate le tecnologie abilitanti di Internet of Things, grazie alle quali è possibile realizzare sistemi intelligenti. Nel terzo capitolo verranno analizzati gli aspetti relativi ai middleware, sottolineandone l'importanza e prestando attenzione alle funzioni che devono svolgere, il tutto riportando anche degli esempi di middleware esistenti. Nel quarto capitolo verrà approfondito il middleware Java Embedded di Oracle.
Resumo:
I laghi vulcanici sono corpi idrici che si posizionano all’interno di crateri originatisi da eruzioni idrotermali, idrovulcaniche o magmatiche. Dato il particolare ambiente di formazione di questi bacini, le condizioni fisico-chimiche delle loro acque riflettono l’influenza dei diversi “input” vulcanici quali gas e fluidi che risultano dall’interazione tra le acque sotterranee e i fluidi rilasciati da un corpo magmatico in profondità. Il presente lavoro consiste nella caratterizzazione geochimica delle acque del lago craterico del Kawah Ijen e nella definizione dei principali processi che la controllano, come i processi di diluizione, degassamento e precipitazione di fasi minerali. Tale definizione è la base conoscitiva necessaria per una più realistica interpretazione delle eventuali variazioni geochimiche spazio-temporali
Resumo:
All’interno di questa tesi è stata affrontata la tematica della realizzazione di comuni- cazioni sicure, in modo da ottenere l'indipendenza di queste ultime dal canale utilizzato, con l'ausilio di strumenti in grado di fornire supporto per la creazione di applicativi orientati allo scambio di dati e messaggi, quali i linguaggi di programmazione Java e Jolie, il quale è basato sul precedente. Sono state inizialmente analizzate le principali caratteristiche e le problematiche più importanti che è necessario dover risolvere in modo da poter arrivare al risultato desiderato. Successivamente, è stato dato un ampio sguardo ad una delle scienze più applicate per risolvere i problemi tipici che affliggono questo tipo di comunicazioni, la crittografia. Sono stati elencati gli strumenti messi a disposizione ed il loro funzionamento. La crittografia viene poi applicata al protocollo SSL, il quale rappresenta la soluzione maggiormente diffusa, sia sul Web che in altri ambiti, per proteggere le informazioni personali che transitano tra gli end-point di una comunicazione. Sono state elencate le principali caratteristiche, alcuni cenni riguardanti la nascita e lo sviluppo ed è stato descritto il funzionamento di questo protocollo, soprattutto per quanto riguarda la sua fase preliminare, che è una delle parti che lo caratterizzano maggiormente. In seguito, è stata analizzata la soluzione fornita all’interno delle librerie del linguaggio Java per realizzare comunicazioni indipendenti dal mezzo di comunicazione che soddisfino le politiche dettate dal protocollo SSL. Questa soluzione è rappresentata dalla classe SSLEngine, che è quindi stata esaminata, a partire dal ciclo di vita e dall'inizializzazione, fino ad arrivare all'interazione all'interno di un applicazione. Quanto esplorato in precedenza viene poi applicato a Jolie, un linguaggio di programmazione basato sulle comunicazioni e sviluppato in Java, all'interno dell'Università di Bologna. Dopo uno sguardo generale alle sue caratteristiche è stata approfondita la gestione dei protocolli, e di conseguenza, l'introduzione di SSL all'interno di essi, realizzata tramite la classe SSLProtocol. Questa classe contiene ed implementa i concetti analizzati nel capitolo riguardante Java, adattandoli all'architettura ed alla progettazione pensata appositamente per Jolie; è stata quindi effettuata un'analisi del codice e della gestione della classe SSLEngine per realizzare comunicazioni sicure. Infine, per verificare l’effettivo funzionamento, sono stati creati due semplici casi d’uso per poter sfruttare i vantaggi offerti da Jolie, il quale è particolarmente indicato per la creazione di applicazioni orientate ai servizi.
Resumo:
La tesi ha lo scopo di indagare le tecnologie disponibili per la realizzazione di linguaggi di programmazione e linguaggi domain specific in ambiente Java. In particolare, vengono proposti e analizzati tre strumenti presenti sul mercato: JavaCC, ANTLR e Xtext. Al termine dell’elaborato, il lettore dovrebbe avere un’idea generale dei principali meccanismi e sistemi utilizzati (come lexer, parser, AST, parse trees, etc.), oltre che del funzionamento dei tre tools presentati. Inoltre, si vogliono individuare vantaggi e svantaggi di ciascuno strumento attraverso un’analisi delle funzionalità offerte, così da fornire un giudizio critico per la scelta e la valutazione dei sistemi da utilizzare.
Resumo:
In Java 8, ultimo aggiornamento ufficiale del linguaggio Java, sono state introdotte alcune nuove funzionalità che permettono l’integrazione di alcuni meccanismi legati ai linguaggi dinamici o funzionali, come le espressioni lambda, l’utilizzo degli stream e la dichiarazione di metodi statici all’interno di interfacce. Se si volesse installare un’applicazione scritta in Java 8 su Android, Dalvik VM, la JVM in esso presente, fallirà il processo di traduzione del bytecode. In questa tesi quindi esplorerò, sia ad alto livello che a basso livello, l’origine del problema e presenterò una soluzione di backporting per un’applicazione esistente.
Resumo:
Java Enterprise Applications (JEAs) are large systems that integrate multiple technologies and programming languages. Transactions in JEAs simplify the development of code that deals with failure recovery and multi-user coordination by guaranteeing atomicity of sets of operations. The heterogeneous nature of JEAs, however, can obfuscate conceptual errors in the application code, and in particular can hide incorrect declarations of transaction scope. In this paper we present a technique to expose and analyze the application transaction scope in JEAs by merging and analyzing information from multiple sources. We also present several novel visualizations that aid in the analysis of transaction scope by highlighting anomalies in the specification of transactions and violations of architectural constraints. We have validated our approach on two versions of a large commercial case study.
Resumo:
After decades of development in programming languages and programming environments, Smalltalk is still one of few environments that provide advanced features and is still widely used in the industry. However, as Java became prevalent, the ability to call Java code from Smalltalk and vice versa becomes important. Traditional approaches to integrate the Java and Smalltalk languages are through low-level communication between separate Java and Smalltalk virtual machines. We are not aware of any attempt to execute and integrate the Java language directly in the Smalltalk environment. A direct integration allows for very tight and almost seamless integration of the languages and their objects within a single environment. Yet integration and language interoperability impose challenging issues related to method naming conventions, method overloading, exception handling and thread-locking mechanisms. In this paper we describe ways to overcome these challenges and to integrate Java into the Smalltalk environment. Using techniques described in this paper, the programmer can call Java code from Smalltalk using standard Smalltalk idioms while the semantics of each language remains preserved. We present STX:LIBJAVA - an implementation of Java virtual machine within Smalltalk/X - as a validation of our approach
Resumo:
With today's prevalence of Internet-connected systems storing sensitive data and the omnipresent threat of technically skilled malicious users, computer security remains a critically important field. Because of today's multitude of vulnerable systems and security threats, it is vital that computer science students be taught techniques for programming secure systems, especially since many of them will work on systems with sensitive data after graduation. Teaching computer science students proper design, implementation, and maintenance of secure systems is a challenging task that calls for the use of novel pedagogical tools. This report describes the implementation of a compiler that converts mandatory access control specification Domain-Type Enforcement Language to the Java Security Manager, primarily for pedagogical purposes. The implementation of the Java Security Manager was explored in depth, and various techniques to work around its inherent limitations were explored and partially implemented, although some of these workarounds do not appear in the current version of the compiler because they would have compromised cross-platform compatibility. The current version of the compiler and implementation details of the Java Security Manager are discussed in depth.
Resumo:
Java Enterprise Applications (JEAs) are complex systems composed using various technologies that in turn rely on languages other than Java, such as XML or SQL. Given the complexity of these applications, the need to reverse engineer them in order to support further development becomes critical. In this paper we show how it is possible to split a system into layers and how is possible to interpret the distance between application elements in order to support the refactoring of JEAs. The purpose of this paper is to explore ways to provide suggestions about the refactoring operations to perform on the code by evaluating the distance between layers and elements belonging those layers. We split JEAs into layers by considering the kinds and the purposes of the elements composing the application. We measure distance between elements by using the notion of the shortest path in a graph. Also we present how to enrich the interpretation of the distance value with enterprise pattern detection in order to refine the suggestion about modifications to perform on the code.
Resumo:
W. Reuschenbach
Resumo:
von Dr. R. Teuscher