Tierless Software Development with ScalaLoci

Tierless Software Development with ScalaLoci

Bachelor Thesis, Master Thesis

Distributed applications are traditionally developed as separate modules, often in different languages, which react to events, like user input, and in turn produce new events for the other modules. Separation into components requires time-consuming integration. Manual implementation of communication forces programmers to deal with low-level details. The combination of the two results in obscure distributed data flows scattered among multiple modules, hindering reasoning about the system as a whole.

The ScalaLoci distributed programming language addresses these issues with a coherent model based on placement types that enables reasoning about distributed data flows, supporting multiple software architectures via dedicated language features and abstracting over low-level communication details and data conversions. In ScalaLoci, the components of the distributed system are developed in the same compilation unit and the compiler automatically spits them and generates the deployment units. ScalaLoci simplifies developing distributed systems, reduces error-prone communication code and favors early detection of bugs.

The thesis investigates new features in the ScalaLoci language. For example we are interested in improving performance, in mechanisms for event-based communication among the peers of the distributed systems, in a module systems that supports incremental development and in security features that protect the distributed application from malicious adversaries.

Publications

  • Pascal Weisenburger, Mirko Köhler, and Guido Salvaneschi. 2018. Distributed system development with ScalaLoci. Proc. ACM Program. Lang. 2, OOPSLA, Article 129 (October 2018)

Comment

Please contact Prof. Salvaneschi for further information.