901 |
Comparing Android Runtime with native : Fast Fourier Transform on Android / Jämförelse av Android Runtime och native : Fast Fourier Transform på AndroidDanielsson, André January 2017 (has links)
This thesis investigates the performance differences between Java code compiled by Android Runtime and C++ code compiled by Clang on Android. For testing the differences, the Fast Fourier Transform (FFT) algorithm was chosen to demonstrate examples of when it is relevant to have high performance computing on a mobile device. Different aspects that could affect the execution time of a program were examined. One test measured the overhead related to the Java Native Interface (JNI). The results showed that the overhead was insignificant for FFT sizes larger than 64. Another test compared matching implementations of FFTs between Java and native code. The conclusion drawn from this test was that, of the converted algorithms, Columbia Iterative FFT performed the best in both Java and C++. A third test, evaluating the performance of vectorization, proved to be an efficient option for native optimization. Finally, tests examining the effect of using single-point precision (float) versus double-point precision (double) data types were covered. Choosing float could improve performance by using the cache in an efficient manner. / I denna studie undersöktes prestandaskillnader mellan Java-kod kompilerad av Android Runtime och C++-kod kompilerad av Clang på Android. En snabb Fourier Transform (FFT) användes under experimenten för att visa vilka användningsområden som kräver hög prestanda på en mobil enhet. Olika påverkande aspekter vid användningen av en FFT undersöktes. Ett test undersökte hur mycket påverkan Java Native Interface (JNI) hade på ett program i helhet. Resultaten från dessa tester visade att påverkan inte var signifikant för FFT-storlekar större än 64. Ett annat test undersökte prestandaskillnader mellan FFT-algoritmer översatta från Java till C++. Slutsatsen kring dessa tester var att av de översatta algoritmerna var Columbia Iterative FFT den som presterade bäst, både i Java och i C++. Vektorisering visade sig vara en effektiv optimeringsteknik för arkitekturspecifik kod skriven i C++. Slutligen utfördes tester som undersökte prestandaskillnader mellan flyttalsprecision för datatyperna float och double. float kunde förbättra prestandan genom att på ett effektivt sätt utnyttja processorns cache.
|
902 |
Generell DDL-Generering: metodik för olika databashanterare : Undersökning av metoder för generisk DDL-kod-generering över olika databassystemGabrielsson, Andreas January 2023 (has links)
Syftet med denna studie var att utveckla en generell applikation som kan generera DDL-skript från tre olika databaser: Oracle, SQL Server och DB2, genom att enbart använda en JDBC-uppkoppling. Behovet av denna studie kommer från att databasadministratörer och utvecklare effektivt ska kunna hantera databaser med olika system med varierande syntax och struktur. Processen genomfördes i IDEAn IntelliJ med java.sql-APIt för databasoperationer. Resultatet visade att trots skillnaderna mellan dessa databaser var det möjligt att utveckla en generell process för att extrahera DDL-kod med endast en JDBCuppkoppling. Dock krävdes vissa specifika anpassningar för varje databassystem. En observation var hanteringen av primärnycklar och index mellan systemen. Denna applikation har potential att vidareutvecklas till ett kraftfullt verktyg för databashantering, vilket sparar tid och resurser. Områden för framtida undersökning inkluderar hantering av komplexa datatyper och strukturer, samt prestanda med stora databaser. / This study was aimed at developing a generic application capable of generating DDL-code from three different databases: Oracle, SQL Server and DB2 by using JDBC. This research necessity origins from database administrators and developers need to effectively manage databases across different systems with different syntax and structure. The process was conducted in the IDEA IntelliJ using the java.sql-API for database operations. The result showed that despite the differences between these databases it was possible to develop a generic process for extracting DDL-code only using a JDBC connection. However, some specific adaptions were required for each database system. An observation was the managing of primary keys and indexes across the systems. This application has the potential to be developed further into a powerful tool for database management that saves time and resources. Areas for further investigation is handling of complex data types and structures and performance with large databases.
|
903 |
A Performance Comparison of Java Streams and Imperative Loops / En prestandajämförelse av Java streams och imperativa looparÅkerfeldt, Magnus January 2023 (has links)
The Stream API was added in Java 8. With the help of lambda expressions (anonymous functions), streams enable functional-style operations on sequences of elements. In this project, we evaluate how streams perform in comparison to imperative loops in terms of execution time, from the perspective of how streams are commonly used in public GitHub repositories. Additionally, two algorithms are implemented with and without streams, to assess the impact of stream usage on algorithmic performance. Parallel streams are only examined briefly due to their infrequent usage. We find that sequential streams in general are slower than imperative loops. However, stream performance heavily relies on how many elements are being processed, which is referred to as input size. For input sizes smaller than 100, most stream pipelines are several times slower than imperative loops. Meanwhile, for input sizes between 10 000 and 1 000 000, streams are on average only 39% to 74% slower than loops, and in some cases, they even slightly outperform them. Additionally, we observe that using streams when implementing algorithms in some cases leads to much slower execution times, while in other cases, it barely affects the execution time at all. We conclude that stream performance primarily depends on input size, presumably because of the high overhead abstraction cost of creating streams, but their performance also depends on other factors, such as operation type and pipeline length. / Med Java 8 introducerades streams. Med hjälp av lambda-uttryck (anonyma funktioner) möjliggör streams användandet av funktionella operationer på sekvenser av element. I detta projekt mäter vi hur streams presterar i jämförelse med imperativa loopar med hänsyn till exekveringstid, från perspektivet av hur streams vanligen används i publika GitHub-projekt. Parallella streams undersöks endast i begränsad utsträckning, på grund av hur sällan de används. Resultaten visar att streams överlag är långsammare än imperativa loopar. Skillnaden i prestanda beror dock starkt på indatastorleken, det vill säga hur många element som streamen bearbetar. För indatastorlekar mindre än 100 element är streams ofta flera gånger långsammare än deras imperativa motsvarigheter. Samtidigt är streams i genomsnitt endast 39% till 74% långsammare än imperativa motsvarigheter för indatastorlekar mellan 10 000 och 1 000 000 element, och i några fall är de till och med något snabbare än imperativ kod. Vidare observerar vi att användning av streams vid implementation av algoritmer i vissa fall leder till mycket längre exekveringstider, medan det i andra fall knappt påverkar exekveringstiden alls. Vi drar slutsatsen att prestandan av streams främst beror på indatastorlek, men också på andra faktorer, såsom operationstyp och hur många operationer som används i en pipeline.
|
904 |
Client-server based statistical computingLehmann, Heiko 18 May 2004 (has links)
Viele statistische Problemstellungen erfordern in der heutigen Zeit den Einsatz von Computern. Der von uns in dieser Dissertation vorgestellte Ansatz kombiniert die Fähigkeiten der statistischen Softwareumgebung XploRe, mit den Vorteilen einer verteilten Client/Server Anwendung und den Möglichkeiten, die sich durch das Internet eröffnen. Um den Client einer großen Gruppe von Anwendern zugänglich zu machen, wurde Java zu seiner Realisierung verwendet. Das Ergebnis ist ein Statistikpaket, nutzbar via World Wide Web, das wie ein herkömmliches statistisches Softwarepaket verwendet werden kann, ohne die Notwendigkeit, das gesamte Softwarepaket zu installieren. Die vorliegende Arbeit gibt einen Überblick über die notwendige Softwareumgebung und erläutert die generelle Struktur der XploRe Quantlet Client/Server Architektur. Die Arbeit zeigt außerdem Anwendungen, in die diese Architektur bereits integriert wurde. / In today’s world, many statistical questions require the use of computational assistance. Our approach, presented in this thesis, combines the possibilities of a powerful statistical software environment, with the advantages of distributed client/server applications, and the opportunities offered by the Internet. In order to offer the client access to a large community, the Java language is used to implement the client’s functionalities. The result is a statistical package - usable via the World Wide Web - that can be used like a traditional statistical software package, but without the need for installing the entire software package on the user’s computer. This thesis provides an overview of the desired software environment, and illustrates the general structure with the implementation of the XploRe Quantlet Client/Server architecture. It also shows applications, in which this architecture has already been integrated.
|
905 |
Trace Visualization with Java Pathfinder using Theia Trace ViewerBesseling, Johan January 2022 (has links)
Java Pathfinder (JPF) is a tool to debug Java-based software running multiple threads or processes, with a textual output that be may hard to understand. Recent development introduced the possibility to generate a trace from JPF and visualize it in Trace Compass (TC), a general-purpose trace viewing application. Due to difficulties in maintaining and developing new features for TC, Theia Trace Viewer (TTV) has emerged as the replacement for TC. TTV is a browser-based trace viewer and makes it possible to visualize traces without any download or installation by the user. In this work, we migrate the existing functionality of JPF Trace from TC to TTV and conduct a user study on how TTV supports users analyzing JPF traces. Our results show that TTV is a good start and has great potential, but requires further development before replacing JPF results in textual format. / Java Pathfinder (JPF) är ett verktyg för att hitta fel i Javabaserad mjukvara som exekverar med flera trådar eller processer, där resultat skickas ut som text och kan vara svårt att förstå. Nyligen utvecklades möjligheten att generera ett spår och visualisera i Trace Compass (TC), ett program som kan visualisera olika typer av spårformat. På grund av svårigheter med att underhålla och utveckla nya funktioner för TC, så har Theia Trace Viewer (TTV) vuxit fram som ersättaren för TC. TTV är en webbläsare-baserad traceviewer, där det är möjligt att visualisera spår utan att användaren behöver ladda ner eller installera något. I detta arbete, migrerar vi den befintliga funktionaliteten för JPF Trace i TC till TTV och genomför en användarstudie för att ta reda på hur TTV hjälper användare analysera JPF spår. Vårat resultat visar att TTV är en bra början med god potential, men behöver utvecklas vidare innan det går att ersätta JPF resultat i textformat.
|
906 |
Implementing a telemedicine system for remote medical consultationEnlund, Simon, Jourkovski, Alexander January 2016 (has links)
Telemedicine is the combination of information technology (IT) and health care and is an area that has seen increase during the last few decades due to breakthroughs in IT. Today there are still parts of the health care system that can be counterproductive with regards to the time and commitment necessary. One such part is medical consultations for private individuals where many of the simpler ones are still carried out in-person. Presented in this thesis is the implementation of a prototype telemedicine system that could be used as a substitute for in-person doctor-patient consultation. Necessary 3rd party components and their implementations into one system are described on a general use level. The result is a web application that supports login and payment via trusted sources, booking of meetings and carrying them out with video and audio. The prototype is a continuation of a telemedicine web application idea that was put on ice by a company that already provides solutions for health controls and blood analysis. / Telemedicin är kombinationen av informationsteknik (IT) och hälsovård och är ett område som har sett en ökning de senaste årtiondena på grund av genombrott inom IT. Idag finns det fortfarande delar av hälsovården som kan vara kontraproduktiva med avseende på den tid och det åtagandet som krävs. En sådan del är medicinska konsultationer för privatpersoner där många av de simplare mötena fortfarande sker i person. Presenterat i denna avhandling är implementationen av ett distribuerat telemedicinsystem som kan användas som ett substitut för de konsultationer mellan doktor och patient som sker i person. Nödvändiga tredjeparts komponenter och deras implementationer in ett system är beskrivna på en allmän användningsnivå. Resultatet är en webbapplikation som stödjer login och betalning via en pålitligt källa, bokning av möten och utförandet av dem med bild och ljud. Den presenterade prototypen är en fortsättning på en telemedicinsk webbapplikationsidé som lagts på is av ett företag som redan erbjuder lösningar för hälsokontroll och blodanalys.
|
907 |
Assessing the Effectiveness of Strict Java Third-Party Library Management in Software Supply Chain on Product Security : A software supply chain vulnerability challengeSandsjö, Carl, Manjusak, Medin January 2023 (has links)
Background: Recent trends indicates that attackers are shifting focus to more vulnerable targets; the software supply chain, which has consequently resulted in one of the top security challenges faced by organizations. One specific aspect of the software supply chain that has garnered significant attention is the use of third-party libraries and the high degree of impact exploited vulnerabilities have in relation to third-party libraries, such as Log4Shell. Objectives: The objective of this thesis is to determine the impact of removing unused Java third-party library classes in terms of security vulnerabilities and business value. Methods: A Gradle plugin was developed consisting of three coupled tasks to be used in the experiment where the primary objective is identifying and removing unused third-party classes. The experiment was conducted on 11 production-grade projects. For each of the 11 projects, approximately 12 versions were tested. The plugin was executed on each of the versions and a manual analysis of the result was conducted. The manual analysis consisted of finding the vulnerabilities connected to the respective vulnerable class. Subsequently, the result was analyzed and calculated. Results: The results from the tested projects showed a low overall impact on the number of vulnerabilities before and after the removal of unused classes. However, the vulnerability results differed greatly among the projects. A pattern between all projects was that the vulnerabilities increased in earlier versions. In the projects where there was an effect of removing unused classes, the average CVSS score increased which represents the severity of the vulnerabilities. This suggests that low severity vulnerabilities were more prevalent in the set of removed vulnerabilities. Over all projects, there was a 40-50% decrease in the total number of classes before and after removing classes which from a security perspective lowers the project’s overall attack surface. On average 85% of the vulnerabilities were found after the release of the project versions. Conclusions: Based on the results we can see that the removal of unused third-party library classes does not have a significant impact on the number of vulnerabilities in the analyzed Java applications. However, this may not reflect all Java projects as we could see a greater impact on certain projects. The removal of vulnerabilities post release date of a Java component was seen to have minimal to no business value for the analyzed projects. In contrast, a pilot study on a different project from another team within the same company demonstrated a higher level of business value. The reduction of the attack surface was assessed to 40-50% on all conducted projects, which would indicate a significant business value. Before incorporating such a solution, each project would need to be evaluated to determine the balance between security and complexity. / Bakgrund: De senaste trenderna tyder på att attackerare flyttar fokus till mer sårbara mål; mjukvaruförsörjningskedjan, vilket har blivit en av de största säkerhetsutmaningarna som organisationer står inför. En specifik aspekt av mjukvaruförsörjningskedjan som har fått stor uppmärksamhet är användningen av tredjepartsbibliotek och den höga graden av påverkan som exploaterade sårbarheter har i förhållande till tredjepartsbibliotek, såsom Log4Shell. Syfte: Syftet med denna studie är att fastställa effekten av att ta bort oanvända Java-klasser från tredjepartsbibliotek ur en sårbarhet och företagsvärde -perspektiv. Metod: Ett Gradle-plugin utvecklades bestående av tre beroende uppgifter som ska användas i experimentet där det primära målet är att identifiera och ta bort oanvända tredjepartsklasser. Experimentet genomfördes på 11 projekt av produktionskvalitet. För vart och ett av dessa 11 projekt testades cirka 12 versioner. Gradle-pluginet kördes på var och en av versionerna samt en manuell analys av resultatet utfördes. Den manuella analysen bestod i att hitta sårbarheterna kopplade till respektive sårbar klass. Därefter analyserades och beräknades resultatet. Resultat: Resultatet av de testade projekten visade en låg total inverkan på antalet sårbarheter före och efter borttagningen av oanvända klasser. Dessa resultat skilde sig dock mycket mellan projekten. Ett specifikt mönster mellan alla projekt var att sårbarheterna ökade i tidigare versioner. I de projekt där borttagning av klasser gjorde en inverkan, ökade genomsnittet av CVSS-poängen vilket representerar allvarlighetsgraden av sårbarheterna. Detta tyder på att svagheter med låga poäng var vanligare i uppsättningen av borttagna sårbarheter. Över alla projekt så togs 40-50% av det totala antalet klasser bort, vilket ur ett säkerhetsperspektiv sänker projektets totala attackyta. I genomsnitt hittades 85% av sårbarheterna efter lanseringen av projektversionerna. Slutsatser: Baserat på resultaten kan vi se att borttagningen av oanvända klasser från tredjepartsbibliotek inte har någon betydande påverkan på antalet sårbarheter i de analyserade Java-applikationerna. Men detta kanske inte speglar alla Java-projekt då vi kunde se en större påverkan på vissa projekt. Borttagning av sårbarheter efter releasedatum för ett Java-projekt visade sig ha minimalt till noll företagsvärde för de analyserade projekten. En pilotstudie på ett projekt som hanteras av ett annat team i samma företag, resulterade i ett större företagsvärde. Reduceringen av attackytan uppskattas till 40-50% för alla genomförda projekt, vilket innebär ett större företagsvärde. Innan man integrerar en sådan lösning, bör varje projekt utvärderas för att fastställa balansen mellan säkerhet och komplexitet.
|
908 |
En säker digital CV-hantering med TOTP- och HOTP-algoritmer : Jämförelse mellan TOTP- och HOTP-algoritmerMarzban, David January 2024 (has links)
Projektet syftade till att erhålla en djupgående förståelse för OTP-, TOTP- och HOTP-algoritmer samt deras tillämpningar inom säkerhet och integration, särskilt med avseende på digitala CV och PDF-filsäkerhet. För att uppnå detta genomfördes en noggrann undersökning av algoritmernas funktion och lämplighet för att säkerställa en robust säkerhetsinfrastruktur för digitala dokument. Metoden innefattade först en omfattande insamling av relevant information och teoretisk bakgrund för att etablera en grundläggande förståelse för ämnet. Därefter utvecklades en webbapplikation med Java, Java Create PDF med iText, JSF och JSP, som möjliggjorde skapandet av PDF-CV och testning av de olika algoritmerna. Implementeringen av algoritmerna på PDF-filen möjliggjorde en empirisk jämförelse av deras effektivitet och säkerhetsnivåer. Under projektets gång utvärderades både tekniska utmaningar och potentiella säkerhetsrisker. Arbetet krävde en noggrannhet och metodiskt tillvägagångssätt för att säkerställa att algoritmerna fungerade enligt förväntningarna och att integriteten hos den digitala informationen bevarades. Sammanfattningsvis har projektet bidragit till en fördjupad förståelse för OTP-, TOTP- och HOTP-algoritmer och deras tillämpningar inom digital säkerhet. TOTP-algoritmen generellt är mer säker på grund av sin tidsbaserade natur, medan HOTP-algoritmen kan vara fördelaktig i situationer där tidsynkronisering är utmanade. Dessa resultat visade att TOTP-algoritmen är mest lämplig för att välja för detta projekt och kan användas som grund för framtida utveckling av säkra digitala kommunikations- och dokumenthanteringsplattformar. / This project aimed to acquire a deep understanding of OTP, TOTP, and HOTP algorithms and their applications in security and integration, particularly concerning digital CVs and PDF file security. To achieve this, a thorough examination of the algorithms functionality and suitability for ensuring a robust security infrastructure for digital documents conducted. The methodology first involved comprehensive collection of relevant information and theoretical background to establish a foundational understanding of the subject. Subsequently, a web application developed using Java, Java Create PDF with iText, JSF, and JSP, enabling the creation of PDF CVs and testing of the different algorithms. The implementation of the algorithms on the PDF file facilitated an empirical comparison of their efficiency and security levels. Throughout the project, both technical challenges and potential security risks evaluated. The work required precision and a methodical approach to ensure that the algorithms functioned as expected and that the integrity of the digital information ware preserved. In summary, the project has contributed to a deeper understanding of OTP, TOTP, and HOTP algorithms and their applications in digital security. The TOTP algorithm is generally more secure due to its time-based nature, while the HOTP algorithm may be advantageous in situations where time synchronization is challenging. These results showed that the TOTP algorithm is the most suitable choice for this project and can serve as a basis for the future development of secure digital communication and document management platforms.
|
909 |
An android application for the USDA structural design softwareKannikanti, Rajesh January 1900 (has links)
Master of Science / Department of Computing and Information Sciences / Mitchell L. Neilsen / People are more inclined to use tablets instead of other computing devices due to their portability and ease of use. A number of desktop applications are now becoming available as tablet applications, with increasing demand in the market. Android is one of the largest and most popular open source platforms that offer developers complete access to framework APIs in order to develop innovative tablet applications.
The objective of this project is to develop an Android application for the U.S. Department of Agriculture (USDA) Structural Design Software. The GUI for this software is developed to run on tablet devices powered by Android platform. The main features provided by the User Interface include:
• Allowing the input to be saved in ASCII text format and displaying the simulation results in PDF format
• Allowing the user to select the type of project or view help contents for the projects
• Allowing the user to build the simulation for the selected type of project
• Allowing the user to send the simulation results to an e-mail
The backend for this software is supposed to replace the old FORTRAN source files with Java source files. FORTRAN to Java translation is performed using the FORTRAN to Java (F2J) translator. F2J is intended to translate old FORTRAN math libraries, but was not completely successful in translating these FORTRAN programs. To accomplish successful translation, some features (such as Common Blocks, IO operations) were removed from the FORTRAN source files before translation. After successful translation, the removed features were added again to the translated Java source files.
The simulation results provided by the software are useful to design engineers to develop new structural designs.
|
910 |
JForlan toolUppu, Srinivasa Aditya January 1900 (has links)
Master of Science / Department of Computing and Information Sciences / Alley Stoughton / Forlan is a computer toolset for experimenting with formal languages. Forlan is implemented as a set of Standard ML (a functional programming language) modules. Forlan presently includes a tool named ‘JFA’ (Java Finite Automata Editor) which is a Java GUI tool for creating and editing ‘Finite Automata’ and a tool named ’JTR’ (Java Trees Graphical Editor) which is used for creating and editing ‘Parse Trees’ or ’Regular Expression Trees’.
The JForlan tool is an attempt to unify the ‘JFA’ and the ‘JTR’ tools into one single tool so as to make it more robust, efficient and easy to use. Apart from integrating the tools a lot more functionality like creating and editing ‘Regular Expression Finite Automata’ and ’Program Trees’ (special kinds of Forlan trees which are used to represent Programs in Forlan) has been added to the tool which were not present in the ‘JFA’ and the ‘JTR’ tools. As the ‘Automata’ and the ‘Trees’ are closely related concepts it is highly beneficial to combine the tools into one single tool.
The JForlan tool can be invoked either from Forlan or can be run as a standalone Application. Due to the integration of the ‘JFA’ and the ‘JTR’ tools the user can now view the regular expression which was entered as a transition label in the ‘Automata’ mode as a tree structure in the ‘Tree’ mode. Another important feature which is added to the tool is that during the creation of the trees the user need not follow the top down approach only (i.e. creating first the root and then adding children to it) but can create the nodes of the tree in any order the user wishes. An important feature of the tool is that after drawing the necessary automaton or tree the user can save it directly as an ‘image’ or a JForlan project or can select the option of saving it in Forlan syntax, which translates the figures drawn into the Forlan code automatically. The main purpose of developing this tool is to provide a user friendly, easy to use tool which would be ideal for students as educational software which would help them to learn and understand the
basic concepts of automata and tree structure.
|
Page generated in 0.0361 seconds