1 |
Performance of frameworks for declarative data fetching : An evaluation of Falcor and Relay+GraphQLCederlund, Mattias January 2016 (has links)
With the rise of mobile devices claiming a greater and greater portion of internet traffic, optimizing performance of data fetching becomes more important. A common technique of communicating between subsystems of online applications is through web services using the REpresentational State Transfer (REST) architectural style. However, REST is imposing restrictions in flexibility when creating APIs that are potentially introducing suboptimal performance and implementation difficulties. One proposed solution for increasing efficiency in data fetching is through the use of frameworks for declarative data fetching. During 2015 two open source frameworks for declarative data fetching, Falcor and Relay+ GraphQL, were released. Because of their recency, no information of how they impact performance could be found. Using the experimental approach, the frameworks were evaluated in terms of latency, data volume and number of requests using test cases based on a real world news application. The test cases were designed to test single requests, parallel and sequential data flows. Also the filtering abilities of the frameworks were tested. The results showed that Falcor introduced an increase in response time for all test cases and an increased transfer size for all test cases but one, a case where the data was filtered extensively. The results for Relay+GraphQL showed a decrease in response time for parallel and sequential data flows, but an increase for data fetching corresponding to a single REST API access. The results for transfer size were also inconclusive, but the majority showed an increase. Only when extensive data filtering was applied the transfer size could be decreased. Both frameworks could reduce the number of requests to a single request independent of how many requests the corresponding REST API needed. These results led to a conclusion that whenever it is possible, best performance can be achieved by creating custom REST endpoints. However, if this is not feasible or there are other implementation benefits and the alternative is to resort to a "one-size-fits-all" API, Relay+GraphQL can be used to reduce response times for parallel and sequential data flows but not for single request-response interactions. Data transfer size can only be reduced if filtering offered by the frameworks can reduce the response size more than the increased request size introduced by the frameworks. / Alteftersom användningen av mobila enheter ökar och står för en allt större andel av trafiken på internet blir det viktigare att optimera prestandan vid datahämtning. En vanlig teknologi för kommunikation mellan delar internet-applikationer är webbtjänster användande REpresentational State Transfer (REST)-arkitekturen. Dock introducerar REST restriktioner som minskar flexibiliteten i hur API:er bör konstrueras, vilka kan leda till försämrad prestanda och implementations-svårigheter. En möjlig lösning för ökad effektivitet vid data-hämtning är användningen av ramverk som implementerar deklarativ data-hämtning. Under 2015 släpptes två sådana ramverk med öppen källkod, Falcor och Relay+GraphQL. Eftersom de nyligen introducerades kunde ingen information om dess prestanda hittas. Med hjälp av den experimentella metoden utvärderades ramverken beträffande svarstider, datavolym och antalet anrop mellan klient och server. Testerna utformades utifrån en verklig nyhetsapplikation med fokus på att skapa testfall för enstaka anrop och anrop utförda både parallellt och sekventiellt. Även ramverkens förmåga att filtrera svarens data-fält testades. Vid användning av Falcor visade resultaten på en ökad svarstid i alla testfall och en ökad datavolym för alla testfall utom ett. I testfallet som utgjorde undantaget utfördes en mycket omfattande filtrering av datafälten. Resultaten för Relay+GraphQL visade på minskad svarstid vid parallella och sekventiella anrop, medan ökade svarstider observerades för hämtningar som motsvarades av ett enda anrop till REST API:et. Även resultaten gällande datavolym var tvetydiga, men majoriteten visade på en ökning. Endast vid en mer omfattande filtrering av datafälten kunde datavolymen minskas. Antalet anrop kunde med hjälp av båda ramverken minskas till ett enda oavsett hur många som krävdes vid användning av motsvarande REST API. Dessa resultat ledde till slutsatsen att när det är möjligt att skräddarsy REST API:er kommer det att ge den bästa prestandan. När det inte är möjligt eller det finns andra implementations-fördelar och alternativet är att använda ett icke optimerat REST API kan användande av Relay+ GraphQL minska svarstiden för parallella och sekventiella anrop. Däremot leder det i regel inte till någon förbättring för enstaka interaktioner. Den totala datavolymen kan endast minskas om filtreringen tar bort mer data från svaret än vad som introduceras genom den ökade anrops-storleken som användningen av ett frågespråk innebär.
|
2 |
Communication with databases : Comparing GraphQL with REST / Kommunikation med databaser : Jämförelse mellan GraphQL och RESTShahwali, Ali, Mattsson, Lukas January 2022 (has links)
REST and GraphQL are the two dominant Application Programming Interface (API) architectures being used for communication with databases. They differ in a lot of aspects, and as such it is not immediately obvious which architecture is preferable. This thesis aims to shed some light onto this problem by exploring two aspects, developer experience, and performance. The method used to measure the developer experience was a case study, in which participants had to write code that communicates with a REST API and a GraphQL API and then answer questions that describe their experience communicating with both. To test the performance, a case study was done in which 5 different benchmarks were ran comparing the two. The results of the first case study show that GraphQL solutions were perceived to give a more overall picture of what is happening than REST solutions. REST was, however, viewed as easier to complete the tasks with. The results of the second case study show that a server that implements REST architecture has better performance during normal circumstances, but GraphQL shows better performance if data is being requested with specified fields. / REST och GraphQL är de två dominerande applikationsprogrammeringsgränssnitten (API) arkitekturerna som används för att kommunincera med databaser. De skiljer sig i många aspekter och därav är det inte uppenbart vilken arkitektur som föredras. Denna avhandling har som mål att reda ut detta problem genopm att utforska två aspekter, utvecklarupplevelsen och prestandan. Metoderna som användes för att mäta utvecklarupplevelsen var en fallstudie, där deltagarna fick skriva kod som kommunicerar med en REST server och en GraphQL server och sedan besvara frågor som beskriver deras upplevelse med att kommunicera med dessa. För att testa prestandan gjordes en fallstudie där 5 olika benchmarks kördes för att jämföra de två servrarna. Resultatet från våran första fallstudien visar på att GraphQL ansågs ha en bättre helhetbild av vad som händer gentemot REST, men när det kom till själva implementaionen av uppgifterna, ansågs REST vara lättare. Resultaten av den andra fallstudien visar att REST arkitekturen har bättre prestanda under normala omständigheter, men att GraphQL har bättre prestanda när datan efterfrågas med enbart specifika fält.
|
3 |
User controlled environmentPinninti, Ashish January 1900 (has links)
Master of Science / Department of Computing and Information Sciences / Mitchell L. Neilsen / The mobile world is rapidly changing: Smartphones have gone from portable messaging and email devices to streaming-video machines that surf the Web at blazing speed. Now-a-days a smartphone can provide computing capabilities, wireless communication capabilities, run software and perform other tasks just like any traditional computer. These amazing features of a smartphone and Open Source Android market helped in the development of this project. The purpose of this project is to develop an Android application for controlling various elements of user environment.
User Controlled Environment is an Android application for home. The environment consists of smart lights, an Android mobile devices for playing music and a display. The application sends the user’s preferred settings to the environment and the respective settings are applied. The preferences are displayed on the screen. The user will be able to view and adjust a variety of environmental preferences. The preferences include the light’s color, light intensity, and the music. When the user exits the application the environment goes to a default state. The users can set preferences which include moods, seven colors of light, three levels of light intensity and songs that the users can select.
|
4 |
Evolvability Analysis Method for Open Source Software SystemsChauhan, Muhammad Aufeef January 2011 (has links)
Software systems evolve over the life span to accommodate changes in order to meet technical and business requirements. Evolution of open source software (OSS) is challenging because of involvement from a large number of independent teams and developers who make modifications in the systems according to their own requirements. It is required to evaluate these changes as these are being incorporated into the system against the long term evolvability objectives. This paper presents the analysis of the Hackystat, an OSS framework; against analyzability, changeability, extensibility, testability domain specific quality attributes. The analysis of the processes used during the development of the OSS systems is also discussed. On the basis of the analysis and the early research conducted to evaluate software evolvability, an evolvability analysis method for OSS evolution is presented in this report. Guidelines of the model suggest that the requirements identification and analysis, identification of the system components that are to be affected as a result of the change, identification and prioritization of the potential solutions, evaluation of the potential solutions with respect to evolvability characteristics, use of test driven development and automated build tools are the important steps that should be performed to evaluate system changes. Evolvability analysis model also suggests that the team which is responsible to for system overall architecture (project control group) should also evaluate changes submitted by different teams. A case study to modify a service oriented architecture bases system into software as a service cloud model following the guidelines of evolvability analysis model is also presented.
|
5 |
Providing continuous edge computation service delivery and minimizing application state divergenceAlvarsson, Axel January 2022 (has links)
Edge Computation aims to bring the functionality of hyperscale datacenters closer to the end-user as to offer reliable low-latency communication through distributed compute power. With the ongoing rise of 5G standalone promis-ing low latency and high capacity, the possibility of running user real-time applications in a distributed setting has never been closer. The focus of this master’s thesis is to analyze and evaluate the limitation and solution alternatives for application state migration, whilst maintaining service continuity. By employing migration strategies and custom application specific methods, this thesis proposes avenues of minimizing application state divergence and viable, distributed Edge Compute specific, modifications of an orchestration system applicable without breaking core functionality.
|
6 |
Designing An Ajax-Based Web Application RestfullyDaggolu, Benjamin 01 May 2010 (has links)
The development of an AJAX-based web application involves several challenges as the webpage is updated by using the AJAX calls without reloading the entire page as in any traditional webpage. This prevents one from going back to the previous view of the page as the browser does not reload the entire page; instead it only updates the page. My hypothesis is that if an AJAX-based application is designed by using the software architecture style called the Representational State Transfer (REST), then it is possible to overcome these challenges, which cannot be handled by using web-services. In order to investigate this, the Material Properties Repository, an AJAX-based application was redesigned by using REST. The results support my initial hypothesis. In this process of designing MPR using REST, a generalized software engineering process was created for designing an AJAX-based application RESTfully.
|
7 |
Development of a tool allowing to create and use JSON schemas so as to enhance the validation of existing projectsCharles-Elie, Simon January 2017 (has links)
A mobile application is typically divided into two sides that communicate with each other: the front-end (i.e. what the user can see and interact with on the phone) and the back-end (the hidden ”server” side, which processes requests from the front-end). Ways to improve their production cycle are constantly investigated by corporations such as Applidium, which is a French startup company specialized in mobile applications. For instance, the firm often has to deal with external back-ends that are not properly documented, which makes the development of products intricate. Furthermore, test and documentation files for certain parts of projects are manually written, which is time consuming, and are all largely based on the same information (back-end descriptions). Hence, this information frequently finds itself scattered in different files, sometimes in different versions. Having identified issues that most regularly disrupt the work of the company’s employees, a certain number of goals to solve these are set, such as, notably, centralizing all back-end-related information into one authoritative source, and automatizing the generation of test and documentation files. A tool (in the form of a web application) allowing users to describe back-ends, called Pericles, is then proposed as the outcome of the master thesis, to deal with the described problems and materialize the defined objectives. Finally, a qualitative evaluation is performed through a questionnaire designed to assess how users feel the tool helps them in their work, which constitutes the metric for this project. The evaluation suggests that the implemented tool is relevant with respect to the fixed goals, and allows to infer its propensity to help Applidium’s developers and project managers by making the development and validation of projects easier.
|
8 |
Issues of control and causation in quantum information theoryMarletto, Chiara January 2013 (has links)
Issues of control and causation are central to the Quantum Theory of Computation. Yet there is no place for them in fundamental laws of Physics when expressed in the prevailing conception, i.e., in terms of initial conditions and laws of motion. This thesis aims at arguing that Constructor Theory, recently proposed by David Deutsch to generalise the quantum theory of computation, is a candidate to provide a theory of control and causation within Physics. To this end, I shall present a physical theory of information that is formulated solely in constructor-theoretic terms, i.e., in terms of which transformations of physical systems are possible and which are impossible. This theory solves the circularity at the foundations of existing information theory; it provides a unifying relation between classical and quantum information, revealing the single property underlying the most distinctive phenomena associated with the latter: the unpredictability of the outcomes of some deterministic processes, the lack of distinguishability of some states, the irreducible perturbation caused by measurement and the existence of locally inaccessible information in composite systems (entanglement). This thesis also aims to investigate the restrictions that quantum theory imposes on copying-like tasks. To this end, I will propose a unifying, picture-independent formulation of the no-cloning theorem. I will also discuss a protocol to accomplish the closely related task of transferring perfectly a quantum state along a spin chain, in the presence of systematic errors. Furthermore, I will address the problem of whether self-replication (as it occurs in living organisms) is compatible with Quantum Mechanics. Some physicists, notably Wigner, have argued that this logic is in fact forbidden by Quantum Mechanics, thus claiming that the latter is not a universal theory. I shall prove that those claims are invalid and that the logic of self-replication is, of course, compatible with Quantum Mechanics.
|
9 |
Collective dynamics of solid-state spin chains and ensembles in quantum information processingPing, Yuting January 2012 (has links)
This thesis is concerned with the collective dynamics in different spin chains and spin ensembles in solid-state materials. The focus is on the manipulation of electron spins, through spin-spin and spin-photon couplings controlled by voltage potentials or electromagnetic fields. A brief review of various systems is provided to describe the possible physical implementation of the ideas, and also outlines the basis of the adopted effective interaction models. The first two ideas presented explore the collective behaviour of non-interacting spin chains with external couplings. One focuses on mapping the identical state of spin-singlet pairs in two currents onto two distant, static spins downstream, creating distributed entanglement that may be accessed. The other studies a quantum memory consisting of an array of non-interacting, static spins, which may encode and decode multiple flying spins. Both chains could effectively `enhance' weak couplings in a cumulative fashion, and neither scheme requires active quantum control. Moreover, the distributed entanglement generated can offer larger separation between the qubits than more conventional protocols that only exploit the tunnelling effects between quantum dots. The quantum memory can also `smooth' the statistical fluctuations in the effects of local errors when the stored information is spread. Next, an interacting chain of static spins with nearest-neighbour interactions is introduced to connect distant end spins. Previously, it has been shown that this approach provides a cubic speed-up when compared with the direct coupling between the target spins. The practicality of this scheme is investigated by analysing realistic error effects via numerical simulations, and from that perspective relaxation of the nearest-neighbour assumption is proposed. Finally, a non-interacting electron spin ensemble is reviewed as a quantum memory to store single photons from an on-chip stripline cavity. It is then promoted to a full quantum processor, with major error effects analysed.
|
10 |
Laufzeitadaption von zustandsbehafteten DatenstromoperatorenWolf, Bernhard 04 December 2013 (has links) (PDF)
Änderungen von Datenstromanfragen zur Laufzeit werden insbesondere durch zustandsbehaftete Datenstromoperatoren erschwert. Da die Zustände im Arbeitsspeicher abgelegt sind und bei einem Neustart verloren gehen, wurden in der Vergangenheit Migrationsverfahren entwickelt, um die inneren Operatorzustände bei einem Änderungsvorgang zu erhalten. Die Migrationsverfahren basieren auf zwei unterschiedlichen Ansätzen - Zustandstransfer und Parallelausführung - sind jedoch aufgrund ihrer Realisierung auf eine zentrale Ausführung beschränkt.
Mit wachsenden Anforderungen in Bezug auf Datenmengen und Antwortzeiten werden Datenstromsysteme vermehrt verteilt ausgeführt, beispielsweise durch Sensornetze oder verteilte IT-Systeme. Zur Anpassung der Anfragen zur Laufzeit sind existierende Migrationsstrategien nicht oder nur bedingt geeignet. Diese Arbeit leistet einen Beitrag zur Lösung dieser Problematik und zur Optimierung der Migration in Datenstromsystemen.
Am Beispiel von präventiven Instandhaltungsstrategien in Fabrikumgebungen werden Anforderungen für die Datenstromverarbeitung und insbesondere für die Migration abgeleitet. Das generelle Ziel ist demnach eine möglichst schnelle Migration bei gleichzeitiger Ergebnisausgabe. In einer detaillierten Analyse der existierenden Migrationsstrategien werden deren Stärken und Schwächen bezüglich der gestellten Anforderungen diskutiert.
Für die Adaption von laufenden Datenstromanfragen wird eine allgemeine Methodik vorgestellt, welche als Basis für die neuen Strategien dient. Diese Adaptionsmethodik unterstützt zwei Verfahren zur Bestimmung von Migrationskonfigurationen - ein numerisches Verfahren für periodische Datenströme und ein heuristisches Verfahren, welches auch auf aperiodische Datenströme angewendet werden kann. Eine wesentliche Funktionalität zur Minimierung der Migrationsdauer ist dabei die Beschränkung auf notwendige Zustandswerte, da in verteilten Umgebungen eine Übertragungszeit für den Zustandstransfer veranschlagt werden muss - zwei Aspekte, die bei existierenden Verfahren nicht berücksichtigt werden. Durch die Verwendung von neu entwickelten Zustandstransfermethoden kann zudem die Übertragungsreihenfolge der einzelnen Zustandswerte beeinflusst werden.
Die Konzepte wurden in einem OSGi-basierten Prototyp implementiert und zudem simulativ analysiert. Mit einer umfassenden Evaluierung wird die Funktionsfähigkeit aller Komponenten und Konzepte demonstriert. Der Performance-Vergleich zwischen den existierenden und den neuen Migrationsstrategien fällt deutlich zu Gunsten der neuen Strategien aus, die zudem in der Lage sind, alle Anforderungen zu erfüllen.
|
Page generated in 0.0678 seconds