abstract
The problems of distributed systems are well-known and have been studied for decades. The main challenges are related to the fact that distributed systems are inherently concurrent, asynchronous and that they are composed of multiple components that communicate over a network. Using a multitier architecture is advantageous for distributed systems, as it allows for separating the different components of the system and for having a clear separation of concerns. For example, a 3-tier (or 3-layer) application is organized into three major parts usually presentation, application processing, and data management residing in different network locations. By organizing a system into tiers, the functionality that is encapsulated into one of the tiers can be modified independently, instead of redesigning the entire application.
However, writing multitier applications is still a challenging task as it usually requires to use different programming languages for different tiers, to make the tiers communicate with each other, and it usually makes the programmer consider one tier at a time, instead of the system as a whole.
Multitier languages’ purpose is to simplify the development of distributed applications by bringing the development of code closer to programming single-host applications.
The project’s purpose is to analyze and illustrate how multitier languages (ScalaLoci1 in particular) work and how they can be used to solve some of the aforementioned problems.
Examples of distributed systems written in ScalaLoci will be provided and analyzed. A comparison with the same systems written in a “standard” programming language will be provided to highlight the advantages of using ScalaLoci.
outcomes