Refine
Document Type
- Bachelor Thesis (13)
- Master's Thesis (4)
Has Fulltext
- yes (17)
Is part of the Bibliography
- no (17)
Keywords
- JavaScript (17) (remove)
Institute
Open Access
- Closed Access (11)
- Closed (3)
- Open Access (3)
- Diamond (1)
JavaScript-Frameworks (JSF) sind im Bereich der Webentwicklung seit längerem prominent. Jährlich werden neue JSF entwickelt, um spezifische Probleme zu lösen. In den letzten Jahren hat sich der Trend entwickelt, bei der Wahl des JSF verstärkt auch auf die Performanz der entwickelten Webseite zu achten. Dabei wird versucht, den Anteil an JavaScript auf der Webseite zu reduzieren oder ganz zu eliminieren. Besonders neu ist der Ansatz der "Island Architecture", die erstmals 2019 vorgeschlagen wurde. In dieser Thesis soll die Performanz der meistbenutzten und des performantesten JSF mit dem JSF "Astro" verglichen werden, welches die "Island Architecture" von sich aus unterstützt. Der Schwerpunkt liegt beim Vergleichen der Webseitenperformanz, jedoch werden auch Effizienz und Einfachheit während der Entwicklung untersucht. Das Ziel dieser Arbeit ist es, potenzielle Frameworks zu untersuchen, die die Effizienz und Produktivität für den Nutzer und während der Entwicklung steigern können.
Encryption techniques allow storing and transferring of sensitive information securely by using encryption at rest and encryption in transit, respectively. However, when computation is performed on these sensitive data, the data needs to be decrypted first and encrypted again after performing the computations. During the computations, the sensitive data becomes vulnerable to attackers as it's in decrypted form. Homomorphic encryption, a special type of encryption technique that allows computation on encrypted data can be used to solve the above-mentioned problem. The best way to achieve maximum security with homomorphic encryption is to perform at least the homomorphic encryption and decryption on the client side (browser) of a web application by not trusting the server. At present time there are many libraries with different homomorphic schemes available for homomorphic encryption. However, there are very few to no JavaScript libraries available to perform homomorphic encryption on the client side of any web application. This thesis mainly focuses on the JavaScript implementation of client-side homomorphic encryption. The fully homomorphic encryption scheme BFV is selected for the implementation. After implementing the fully homomorphic encryption scheme based on the “py-fhe” library, tests are also carried out in order to determine the applicability (in terms of time consumption, security and correctness) of this implementation in a web application by comparing the performance and security for different test cases and different settings.
On a regular basis, we hear of well-known online services that have been abused or compromised as a result of data theft. Because insecure applications jeopardize users' privacy as well as the reputation of corporations and organizations, they must be effectively secured from the outset of the development process. The limited expertise and experience of involved parties, such as web developers, is frequently cited as a cause of risky programs. Consequently, they rarely have a full picture of the security-related decisions that must be made, nor do they understand how these decisions affect implementation accurately.
The selection of tools and procedures that can best assist a certain situation in order to protect an application against vulnerabilities is a critical decision. Regardless of the level of security that results from adhering to security standards, these factors inadvertently result in web applications that are insufficiently secured. JavaScript is a language that is heavily relied on as a mainstream programming language for web applications with several new JavaScript frameworks being released every year.
JavaScript is used on both the server-side in web applications development and the client-side in web browsers as well.
However, JavaScript web programming is based on a programming style in which the application developer can, and frequently must, automatically integrate various bits of code from third parties. This potent combination has resulted in a situation today where security issues are frequently exploited. These vulnerabilities can compromise an entire server if left unchecked. Even though there are numerous ad hoc security solutions for web browsers, client-side attacks are also popular. The issue is significantly worse on the server side because the security technologies available for server-side JavaScript application frameworks are nearly non-existent.
Consequently, this thesis focuses on the server-side aspect of JavaScript; the development and evaluation of robust server-side security technologies for JavaScript web applications. There is a clear need for robust security technologies and security best practices in server-side JavaScript that allow fine-grained security.
However, more than ever, there is this requirement of reducing the associated risks without hindering the web application in its functionality.
This is the problem that will be tackled in this thesis: the development of secure security practices and robust security technologies for JavaScript web applications, specifically, on the server-side, that offer adequate security guarantees without putting too many constraints on their functionality.
Diese Arbeit befasst sich mit der Entwicklung von Full-Stack-Anwendungen im Bereich des Internets der Dinge mit JavaScript. Grundlegende Wissensbereiche, die für diese Entwicklung notwendig sind, werden vorgestellt und erklärt. Es werden ausgewählte JavaScript-Frameworks und -Interpreter im Bereich des Internets der Dinge vorgestellt, bewertet und miteinander verglichen. Mikrocontroller und Einplatinencomputer, welche von den vorgestellten JavaScript-Frameworks und -Interpretern unterstützt werden, werden vorgestellt.
Um die Entwicklung von Full-Stack-Anwendungen im Bereich des Internets der Dinge mit JavaScript bewerten zu können wird eine Anwendung zur Erfassung, Speicherung und Darstellung von Umgebungsvariablen mit Moddable SDK und dem MERN-Stack entwickelt. Vor der Entwicklung werden Anforderungen über eine Anforderungsanalyse definiert und die Anwendung konzipiert. Im Anschluss wird die Anwendung anhand der Anforderungen bewertet. Probleme, die während der Entwicklung der Anwendung auftreten, werden zusammen mit möglichen Lösungen vorgestellt und Full-Stack-Anwendungen im Bereich des Internets der Dinge mit JavaScript werden in diesem Schritt evaluiert.
JavaScript ist für die Entwicklung von Mikrocontrollern zum aktuellen Stand noch nicht ausgereift genug, jedoch bestehen aktuelle Anstrengungen die Entwicklung von JavaScript APIs für Embedded Systems zu vereinheitlichen und voranzutreiben. Dadurch hat die Entwicklung von Full-Stack-Anwendungen im Bereich des Internets der Dinge mit JavaScript Zukunftspotenzial.
Zu Beginn dieser Arbeit wurde das Problem beschrieben, dass das Ersetzen von einzelnen Modulen innerhalb TYPO3s durch React bisher nicht möglich war. Dadurch ergab sich die Aufgabe eine Lösung zu finden, mit der die Vorteile von React in TYPO3 eingebracht werden können, möglichst ohne große Veränderungen und Aufwände zu betreiben. Als zusätzliche Anforderung wurde definiert, dass React in TypeScript geschrieben werden soll.
Um dem Leser dieser Arbeit die Möglichkeit zu geben, den angefertigten Code verstehen und interpretieren zu können, wurden zunächst Grundlagen in TypeScript, React und TYPO3 geschaffen. Daraufhin wurde der Ist-Stand beschrieben, welcher ein simples TYPO3-Plugin beschreibt. Dies wurde für die grundsätzliche Umwandlung in React möglichst simpel gehalten, war dennoch mit einigen Grundsätzen wie AJAX und Rerendering ausgestattet, um gewisse Vorteile und Problematiken bei der Umsetzung aufzeigen zu können. Daraus ergab sich ein Soll-Stand, welcher zugleich weitere Anforderungen an die spätere Lösung definierte.
Um ein mögliches Lösungskonzept erarbeiten zu können wurden im Kapitel „Stand der Technik“ 2 verwandte Arbeiten und Möglichkeiten vorgestellt. Daraufhin wurden die beiden zu entwickelnden Plugins beschrieben, zunächst das Dummy-TYPO3-Plugin, gefolgt vom in React entwickelten Äquivalent.
In Kapitel 8 wurde ein Konzept erstellt und daraufhin die Umsetzung Schritt für Schritt durchgeführt. Dabei konnte erfolgreich React in TYPO3 aufgesetzt und zur Entwicklung genutzt werden. Das Dummy-Plugin konnte ohne größere Probleme umgesetzt werden und zeigte somit eine mögliche Lösung für die Umwandlung von TYPO3 zu React auf. Um diese Lösung zu validieren, wurde im Folgekapitel das ProofOfConcept entwickelt. Dabei handelte es sich um ein produktiv eingesetztes Projekt, welches auf einer älteren Version basiert und verschiedene Anforderungen mitbrachte. Dies wurde nach Vorstellung des Projektes und Lösungskonzept Schritt für Schritt umgesetzt.
Diese Thesis umfasst mit dem hybriden Rendering, Headless CMS und Progressive Web Apps drei moderne technologische Ansätze aus dem Bereich der Webentwicklung. Ziel der vorliegenden Arbeit ist es dabei, auf Basis eines Einblicks in die Grundlagen des modernen Web Developments zunächst die drei Konzepte einzeln zu betrachten, zu analysieren, Vor- und Nachteile herauszustellen und deren technologische Möglichkeiten zu erklären, um schließlich auch das Zusammenspiel dieser, derzeit relevanten Entwicklungsansätze im Hinblick auf die zugrunde liegende Forschungsfrage zu untersuchen: Ist es möglich verschiedene, aktuelle Trends der Webentwicklung sinnvoll miteinander zu kombinieren und so auf Basis eines Headless CMS, einem Frontendframework für verschiedene Renderingmethoden und der Idee der Progressive Web Apps eine performante und benutzerfreundliche protoytpsiche Web-applikation zu implementieren? Um dies zu überprüfen, wurde auf den zuvor erarbeiteten theoretischen Grundlagen mit MovieRec eine WebApp als interaktives Filmportal konzipiert und schlussendlich mit einem entsprechenden Technologiestack implementiert. Diese Schritte sowie die Umsetzung der Kernfunktionen der Anwendung wurden dabei anhand von Codeausschnitten erklärt.
This thesis evaluates and compares current Full-Stack JavaScript Technologies. Through extensive research on the state of the art of JavaScript and its related frameworks, different aspects of FullStack Development are analysed to judge the popularity of technologies.
The language JavaScript and the idea of Full-Stack Development are presented with the functionality of different frameworks. The JavaScript runtime Node.js was examined and marked as the most influential JavaScript technology, which opened up many opportunities.
As technology stacks MERN, MEAN and MEVN were investigated, featuring the base technologies Node.js, MongoDB and Express.js. It was discovered that front-end frameworks have the most influence on which variant of Full-Stack can be chosen. Comparison criteria between the technology stacks were the learning curve, the maintainability, modularity and media integration. These criteria were extracted from research and a questionnaire conducted with students of the University of Applied Sciences Offenburg.
For the purposes of testing and experiencing a Full-Stack JavaScript application, the game RemArrow, based on the 1979s game Simon, was designed and implemented. The comparison with predefined criteria shows the result that the MERN stack with React.js is the best to learn and promises the most potential. Arising JavaScript technologies and their popularity are very dependent on the industry and skill set of the developer.
In conclusion, it can be established that the concept of Full-Stack Development is currently very interesting and more than just a trend. It has potential of becoming a new kind of web development, and part of the curriculum taught at universities. Expert knowledge is needed but there is a high demand and much potential for Full-Stack JavaScript Developers.
Diese Arbeit befasst sich mit dem Thema Internet of Things und darin insbesondere mit dem Bereich Smart Home und Smart Mobile Home. Wesentliche Aspekte werden zu diesen Gebieten herausgearbeitet und analysiert. Es wird festgestellt, dass kaum Möglichkeiten existieren, Mobile Homes um smarte Systeme zu erweitern, wie es im herkömmlichen Smart Home Bereich der Fall ist.
Die Low-Code Entwicklungsplattform Node-RED wird als Tool für IoT-Anwendungen im Detail vorgestellt und die Funktionsweise wird ausführlich analysiert. Die Vorgehensweise bei der Anwendungsentwicklung, nach welcher einzelne Bausteine zu aneinanderhängenden Abläufen verkettet werden, wird aufgezeigt.
Der in diesem Rahmen entwickelte Prototyp Smart Van setzt dort an, wo die aktuellen Beschränkungen für Smart Mobile Home Systeme sitzen. Planung, Konzeption und die Implementierung mithilfe von Node-RED werden dokumentiert. Die Ergebnisse werden präsentiert und die Umsetzung des Prototyps wird als Erfolg ausgewertet.
Zusammenfassend wird festgehalten, dass Node-RED gegenwärtig und voraussichtlich auch in Zukunft ein wichtiges Werkzeug für Anwendungen im Bereich IoT ist. Für den Prototyp Smart Van werden die nächsten notwendigen Schritte festgehalten, mit deren Umsetzung der Prototyp auf dem Markt von Smart Mobile Home Systemen ein gewisses Potenzial besitzt.
Mit der kontinuierlichen Weiterentwicklung des World Wide Web, der steigenden Anforderungen an beispielsweise Ladege-schwindigkeit (in Millisekunden!) und Nutzungserlebnis und der Einführung moderner Jamstack-Frameworks mit verschiedenen Rendering-Methoden, wird der Prozess bei der Entwicklung von Webanwendungen immer komplexer.
Das Ziel der vorliegenden Arbeit ist es, die Funktionsweise der einzelnen Rendering-Methoden von Webanwendungen und de-ren Vor- und Nachteile zu untersuchen, um anschließend mit dem gewonnenen Wissen entscheiden zu können, welcher Ansatz für bestimmte Projekttypen der richtige ist. Dazu wird die folgende Forschungsfrage gestellt:
Wie kann unter Verwendung neuster Webtechnologien und Ansätze eine performante, nutzungsfreundliche und für Suchmaschinen optimierte Webanwendung erstellt werden, die den heutigen Standards (Core Web Vitals) gerecht wird?
Um die Forschungsfrage zu beantworten, wurde zunächst die Webanwendung selbst und nachfolgend der Stand der Technik bei der Entwicklung von Webanwendungen erläutert. Um ver-schiedene Ansätze und Funktionsweisen bei der Entwicklung einer Webanwendung beurteilen zu können, wurden diese ge-genübergestellt, auf Anwendbarkeit geprüft und die für den Rahmen dieser Arbeit geeigneten Technologien ausgewählt.
Die erarbeiteten theoretischen Grundlagen dienen zur Konzeption und Umsetzung einer interaktiven, multimedialen Präsentations- und Kollaborationsplattform mit dem Namen Collab. Hierbei ist es Benutzer:innen möglich sich über Dienstanbieter:innen und deren Leistungen zu informieren oder sich selbst als Dienstanbieter:in zu registrieren. Zudem können registrierte Personen eigene Projekte erstellen oder an existierenden Projekten teilnehmen, um diese zusammen in Form einer Kollaboration umzusetzen.