SMADL – The social machines architecture description language - Nascimento, Leandro Marques do (2014)
We are experiencing a high growth in the number of Web applications being developed. This is happening mainly because the Web is going into a new phase, called programmable Web, where several Web-based systems make their APIs publicly available. In order to deal with the complexity of this emerging Web, we define the notion of a Social Machine and envisage a language that can describe networks of such. To start with, we define a Social Machine (SM) as a “connectable and programmable building block that wraps (WI) an information processing system (IPS) and defines a set of required (RS) and provided services (PS), dynamically available under constraints (C) which are determined by, among other things, its relationships (Rel) with others”. In other words, a SM is a connected machine, usually to the Web, which dynamically provides and/or requires a set of services according to its established relationships. Any application in the Web can be seen as a SM. In order to make feasible the practical application of the aforementioned Social Machine concept, we define SMADL – the Social Machines Architecture Description Language – as an attempt to be a completely different way to program the Web, mixing concepts from Architecture Description Languages (ADLs) and Domain-Specific Languages (DSLs). As an ADL, it allows the description of Social Machines (and networks of such) in terms of relationships (Rel) as high-level abstractions, without the need to specify details of communication (protocols) and/or authentication methods. As a DSL, it allows the implementation and integration of Web services using a dynamically typed syntax, fully integrated to the Java Virtual Machine and Eclipse IDE. Every element of the SM concept is directly mapped into the language. In few words, SMADL can be defined as a relationship-driven language which can be used to describe the interactions between any number of machines in a multitude of ways, as a means to represent real machines interacting in the real Web and, obviously, as a means to represent interactions with other social machines too. Several other efforts have been done to define ADLs, and a few of them were someway applied to the Web domain. However, there is a clear lack of fundamental base to provide high-level abstractions that the Social Machine concept does. SMADL has been implemented in two versions, one textual and one visual. Both versions have been evaluated through a case study and an expert’s opinion survey and demonstrated to be good solutions for practical problems.