Scala Web Application Toolkit
Scala Web Application Toolkit
diploma thesis (DEFENDED)

View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/52015Identifiers
Study Information System: 129417
Collections
- Kvalifikační práce [11325]
Author
Advisor
Referee
Kruliš, Martin
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
9. 9. 2013
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Excellent
Keywords (Czech)
Scala, JavaScript, RIA, JSON, RPCKeywords (English)
Scala, JavaScript, RIA, JSON, RPCPráce nejdříve popisuje nevýhody JavaScriptu v kontextu rozsáhlých webových aplikací a představuje, jak se tyto problémy obvykle řeší pomocí kompilátoru z jiného vyššího programovacího jazyka do JavaScriptu. Práce dále ukazuje, jaké problémy je nutné řešit v rámci implementace takového kompilátoru a jak překonat další překážky (interoperabilita, distribuce knihoven) vyplývající z toho, že programy nejsou napsány přímo v JavaScriptu, nýbrž ve Scale. Na vyvinutém kompilátoru a jednoduchém běhovém prostředí pak dále staví infrastrukturu, která umožňuje vzdálené volání metod (RPC). Tato infrastruktura zahrnuje mimo jiné i dynamické načítaní skriptů ze serveru a (de)serializér grafů objektů. V závěru pak porovnává vyvinutý toolkit s jinými podobnými projekty a představuje několik zajímavých směrů, kterými by se celý projekt dále mohl ubírat. Powered by TCPDF (www.tcpdf.org)
The thesis describes disadvantages of JavaScript in the context of big web applications and presents how they can be eliminated by compilation from a different language to JavaScript. With Scala as the source language, the thesis shows what it takes to implement such a compiler and how to solve issues that arise with the compilation process (interoperability, library distribution). On top of the compiler with a simple runtime a remote metod invocation (RPC) infrastructue is built. It also involves a dynamic client side script loader and an object graph (de)serializer. Finally the work compares the implemented toolkit to similar projects and proposes several interesting directions the toolkit can evolve into. Powered by TCPDF (www.tcpdf.org)