<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>SMADL: The Social Machines Architecture Description Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Leandro Marques do Nascimento</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vinicius Cardoso Garcia</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Silvio R. L. Meira</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Informatics - Federal Rural University of Pernambuco</institution>
          ,
          <addr-line>UFRPE</addr-line>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Informatics Center - Federal University of Pernambuco</institution>
          ,
          <addr-line>UFPE</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>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 webbased systems make their APIs publicly available. In order to deal with the complexity of this emerging web, we de ne a notion of social machine and envisage a language that can describe networks of such. To start with, social machines are de ned as tuples of input, output, processes, constraints, states, requests and responses; apart from de ning the machines themselves, the language de nes a set of connectors and conditionals that 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. This work presents a preliminary version of the Social Machine Architecture Description Language (SMADL).</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Software systems are built upon programming languages. A programming
language is a notation for expressing computations (algorithms) in both machine
and human readable form. Appropriate languages and tools may drastically
reduce the cost of building new applications as well as maintaining existing ones
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        In the context of programming languages, a Domain-Speci c Language (DSL)
is a language that provides constructs and notations tailored toward a particular
application domain [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Usually, DSLs are small, more declarative than
imperative, and more attractive than General-Purpose Languages (GPL) for their
particular application domain.
      </p>
      <p>
        However, in software engineering several di erent artifacts are developed
besides code and one of the most important is the software architecture. Most
developers agree that architecture is needed in some way, shape, or form, but, they
can't agree on a de nition, don't know how to manage it e ciently in nontrivial
projects, and usually can't express a system's architectural abstractions precisely
and concisely [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. When asking a developer to describe a system's architecture
Voelter [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] says \I get responses that include speci c technologies, buzzwords
such as AJAX (asynchronous JavaScript and XML) or SOA (service-oriented
architecture), or vague notions of \components" (such as publishing, catalog, or
payment). Some have wallpaper-sized UML diagrams in which the meanings of
the boxes and lines aren't clear."
      </p>
      <p>These answers mention aspects that are actually related to a system's
architecture, but none of them represent an unambiguous and/or \formal"
description of a system's core abstractions. Indeed, it is not surprising because,
although there are languages that directly express software architectures, they
are not quite common among software developers.</p>
      <p>In order to better de ne software architectures, it is worthy using DSLs and
taking advantage of their expressiveness in a limited domain. Our proposal relies
on top of an Architecture Description Language (ADL) for describing web based
software systems in terms of Social Machines, a new concept developed by our
research group which tries to increase the abstraction level for comprehending
the web. Next, we present the context and the details about Social Machines.
2</p>
    </sec>
    <sec id="sec-2">
      <title>An Emerging Web of Social Machines</title>
      <p>
        The traditional concept of software has been changing during the last decades.
Since the rst de nition of a computing machine described by Turing in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
software started to become part of our lives and has been turned pervasive and
ubiquitous with the introduction of personal computers, the internet,
smartphones and recently the internet of things. In fact, one can say that software
and the internet changed the way we communicate, the way business is done
and the way software is developed, deployed and used. Nowadays, computing
means connecting [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and sometimes it is said that developing software is the
same as connecting services [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], since there are several up and running software
services available.
      </p>
      <p>Recently, we all can clearly see that a new phase is emerging, the web \3.0",
the web as a programming platform, the network as an infrastructure for
innovation, on top of which all and sundry can start developing, deploying and
providing information services using the computing, communication and control
infrastructures in a way fairly similar to utilities such as electricity.</p>
      <p>
        An overview of this Web 3.0 scenario can be seen in the ProgrammableWeb
website1. It gathers around 6500 publicly available APIs and more than 6700
mashups using them (last visit in July 2012). Although there have been many
studies about the future of the internet and concepts such as web 3.0,
programmable web [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ], linked data [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and semantic web [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ], the
segmentation of data and the issues regarding the communication among systems
obfuscates the interpretation of this future. Unstructured data, unreliable parts and
non-scalable protocols are all native characteristics of the internet that needs a
unifying view and explanations in order to be developed, deployed and used in
a more e cient and e ective way.
      </p>
      <sec id="sec-2-1">
        <title>1 www.programmableweb.com</title>
        <p>
          Furthermore, the Web concepts, as we know, are recent enough to represent
many serious di culties while understanding their basic elements and how they
can be e ciently combined to develop real, practical systems in either personal,
social or enterprise contexts. Therefore, we developed a new concept called Social
Machine (SM), in order to provide a common and coherent conceptual basis
for understanding this still immature, upcoming and possibly highly innovative
phase of software development. SM concept was rstly conceived in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and later
demonstrated with a case study in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
        </p>
        <p>So, we de ne a SM as a tuple, as following:</p>
        <p>SM = &lt;Rel, WI, Req, Resp, S, Const, I, P, O&gt;</p>
        <p>
          In general, a SM represents a connectable and programmable entity
containing an internal processing unit (P) and a wrapper interface (WI) that waits for
requests (Req) from and replies [with responses (Resp)] to other social
machines. Its processing unit receives inputs (I), produces outputs (O) and has
states (S); and its connections de ne intermittent or permanent relationships
(Rel) with other SMs. These relationships are connections established under
speci c sets of constraints (Const). Our goal with this concept of a Social
Machine is not to formally describe software services as can be seen in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ], but
instead we want to describe the programmable web in a higher level of
abstraction, thus increasing the power of new programming structures or paradigms
dedicated to this context. Figure 1 illustrates a basic representation of a Social
Machine.
        </p>
        <p>The idea behind Social Machines is to take advantage of the networked
environment they are in to make it easier to combine and reuse exiting services
from di erent SMs and use them to implement new ones. Hence, we can
highlight some of its main characteristics, as following: Sociability, Compositionality,
Platform and Implementation independency, Self-awareness, Discoverability and
last, but not least, Programmability.</p>
        <p>There may be di erent types of social machines, but one way to classify
them is through the simple taxonomy shown in Figure 2, based on the types of
interactions they have with each other, as follows:
{ Isolated - Social Machines that have no interaction with other Social
Machines;
{ Provider - Social Machines that provide services for other Social Machines
to consume;
{ Consumer - Social Machines that consume services that other Social
Machines provide;
{ Prosumer - Social Machines that both provide and consume services.</p>
        <p>In this work, we envisage an Architecture Description Language that can
describe networks of SMs. Apart from de ning the machines themselves, the
ADL de nes a set of connectors and conditionals that 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. Details are presented next.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>The Social Machines Architecture Description Language - SMADL</title>
      <p>This work is an attempt to answer the following research questions: \Is it possible
to integrate diverse web applications using a standard architecture description
language? ". In order to answer it, this work purposes a new ADL for de ning
social machines: SMADL.</p>
      <p>Social Machines can be connected (or establish a relationship) in basically
two phases: in the rst phase, the SMs must nd each other, and a there must
be a SM registry service much likely Internet DNS; in the second phase the SMs
actually connect to each other and exchange information for a limited period
of time. The SM registry service is out of the scope of this proposal. We are
assuming SMs can nd each other without much e ort.</p>
      <p>In order to comprise these two phases, SMADL is composed by two
minilanguages:
{ VCL (Visitor Card Language): presents the externally visible properties
of a SM, i.e., which requests and responses it accepts, which types of
inputs/outputs it handles, if an internal state is maintained and/or how many
requests it can handle per amount of time. A vCard is provided by the SM
registry to the consumer SM, so it can decide if the relationship is
interesting or not. Business issues are also present in a SM vCard, such as, billing
information and service level agreements. Nowadays, popular web APIs do
not make available such business information in a programmatic way.
Usually, there are only few lines in reduced font size contracts mentioning that
important information.
{ WIL (Wrapper Interface Language): we are assuming every SM has a vCard
with which the wrapper interface is fully complaint. This language is
responsible for actually connecting SMs, establishing pre and post conditions,
applying di erent connectors in a SM composition, and implementing business
rules associated with a given set of SMs. Our proposal is to use WIL not as
substitute for the currently available technologies. Instead it increases the
level of abstraction of these technologies, freeing the programmer to
concentrate on business issues of the SM relationships.</p>
      <p>To understand better how these mini-languages are used, Figure 3 shows the
steps for establishing a relationship between two SMs, as following:
1. Initially, the requester SM, in this case represented by Evernote (upper left
icon), searches for some SM registered as a micro blog, in our case
Twitter (upper right icon). Note that Evernote presents its vCard to DNS while
searching for a service, once the responder may or may not accept
connections with that speci c SM.
2. The SM DNS nds Twitter and requests its vCard.
3. Twitter responds with its vCard, accepting the relationship.
4. The SM DNS replies back to Evernote with the Twitter vCard, which
includes its address.
5. Using Twitter vCard and knowing its wrapper interface, Evernote establishes
a relationship with Twitter, following all conditions imposed.</p>
      <p>
        There are several popular technologies for integrating web based or service
oriented systems, such, REST [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and OSGi [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The current version of SMADL
generates code for REST based apps, as it is becoming the most popular on
the web, adopted by big players such as Facebook and Google. According to
ProgrammableWeb site 4300 out of approximately 6500 APIs uses REST as
base technology.
      </p>
      <p>
        SMADL is being developed on Xtext language workbench [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. As this is a
work in progress, we are preliminarily evaluating alpha versions of the language
and planning an experiment using the approach proposed by [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
We performed a systematic mapping study [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] for better understanding the
DSL/ADL research eld as shown in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Initially, 4450 studies were identi ed,
and, after ltering, 1440 primary studies were selected and categorized. Among
all those primary studies, di erent methods/techniques for handling DSLs
(creating, evolving, maintaining, testing) could be listed and several DSLs applied
to several di erent domains could be identi ed. The domain where DSLs are
most frequently applied is the Web domain. Other domains such as embedded
systems, data intensive apps, and control systems where quite common too.
      </p>
      <p>
        In our study we could enumerate 30 publications directly related to ADL.
Amongst them, only two of them mention the Web domain, both from 2010. In
the rst one [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], the authors propose to formalize the architectural model using
domain-speci c language, an ADL which supports the description of dynamic,
adaptive and evolvable architectures, such as SOA itself. Their ADL allows the
de nition of executable ver-sions of the architecture. The second one is [?] which
presents a framework for the implementation of best practices concerning the
design of the software architecture. The authors present an implementation of the
framework in the Eclipse platform and an ADL dedicated to Web applications.
      </p>
      <p>In addition, practical examples, such as Yahoo! Pipes2 and IfThisThenThat 3
can be seen as related work. The former uses a graphical tool for customizing
data ows from di erent sources. The latter allows end users to program the web
based on pre-de ned events red by a set of channels, for example, if someone
tags you on a given social network (channel 1), then save this photo in the
person's virtual drive (channel 2). The user can choose among di erent events
from di erent channels, which are, in practice, websites that make available
their APIs. Our work is an attempt to be a completely di erent way to program</p>
      <sec id="sec-3-1">
        <title>2 http://pipes.yahoo.com 3 http://ifttt.com/</title>
        <p>the Web, not based on pre-de ned parameters. The idea behind SMADL is to
actually de ne every public API in the Web and the relationships among them.
This way, composition possibilities for several SMs can be in nite.</p>
        <p>As can be seen, this is a relatively new research eld and we believe we can
make a considerable contribution by establishing the concept of a Social Machine
and developing an ADL for supporting it.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Concluding Remarks and Future Work</title>
      <p>This work presents SMADL \The Social Machines Architecture Description
Language" as a possible solution for modeling web-based software systems.</p>
      <p>In general, a Social Machine (SM) represents a connectable and programmable
entity containing an internal processing unit (P) and a wrapper interface (WI)
that waits for requests (Req) from and replies [with responses (Resp)] to other
social machines. Its processing unit receives inputs (I), produces outputs (O)
and has states (S); and its connections de ne intermittent or permanent
relationships (Rel) with other SMs. These relationships are connections established
under speci c sets of constraints (Const).</p>
      <p>Our main goal is to use SMADL to describe SM relationships and then we
can have one unique way to program the web, independently of what
technology/platform is being used. The current version (alpha) of SMADL generates
code for REST based apps, as it is becoming the most popular on the web,
adopted by big players such as Facebook and Google. Nowadays, we are
working on several sample apps which have their architecture written in SMADL.
These apps are basically consumer SMs, it means they do not make available
public features, but only consumes other public APIs. These apps are going to
be distributed as open source.</p>
      <p>
        Our next steps include writing fully prosumer social machines, i.e.
applications that connects to others, process their data, and someway make this data
available for others to consume. At this phase, we are planning to perform an
experiment, following the methodology described in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>Acknowledgments. This work was partially supported by the National
Institute of Science and Technology for Software Engineering (INES ), funded
by CNPq and FACEPE, grants 573964/2008-4, APQ-1037-1.03/08 and
APQ1044-1.03/10 and Brazilian Agency (CNPq processes number 475743/2007-5 and
140060/2008-1).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Pressman</surname>
            ,
            <given-names>R.S.:</given-names>
          </string-name>
          <article-title>Software engineering: a practitioner's approach (2nd ed</article-title>
          .).
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          , Inc., New York, NY, USA (
          <year>1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Mernik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heering</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sloane</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          :
          <article-title>When and how to develop domain-speci c languages</article-title>
          .
          <source>ACM Comput. Surv</source>
          .
          <volume>37</volume>
          (
          <issue>4</issue>
          ) (
          <year>December 2005</year>
          )
          <volume>316</volume>
          {
          <fpage>344</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Volter, M.:
          <article-title>Architecture as language</article-title>
          .
          <source>IEEE Software 27(2)</source>
          (
          <year>2010</year>
          )
          <volume>56</volume>
          {
          <fpage>64</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Turing</surname>
            ,
            <given-names>A.M.</given-names>
          </string-name>
          :
          <article-title>On computable numbers, with an application to the entscheidungsproblem</article-title>
          .
          <source>Proceedings of the London Mathematical Society</source>
          <volume>42</volume>
          (
          <year>1936</year>
          )
          <volume>230</volume>
          {
          <fpage>265</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Roush</surname>
            ,
            <given-names>W.: Social</given-names>
          </string-name>
          <string-name>
            <surname>Machines. Technology Review</surname>
          </string-name>
          (
          <year>2006</year>
          )
          <volume>1</volume>
          {
          <fpage>18</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Turner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Budgen</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brereton</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Turning software into a service</article-title>
          .
          <source>Computer</source>
          <volume>36</volume>
          (
          <issue>10</issue>
          ) (
          <year>October 2003</year>
          )
          <volume>38</volume>
          {
          <fpage>44</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Woodard</surname>
            ,
            <given-names>C.J.</given-names>
          </string-name>
          :
          <article-title>Service-oriented computing | icsoc 2008 workshops</article-title>
          . Springer-Verlag, Berlin, Heidelberg (
          <year>2009</year>
          )
          <volume>136</volume>
          {
          <fpage>147</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hwang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Altmann</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kim</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>The structural evolution of the web 2.0 service network</article-title>
          .
          <source>Online Information Review</source>
          <volume>33</volume>
          (
          <issue>6</issue>
          ) (
          <year>2009</year>
          )
          <volume>1040</volume>
          {
          <fpage>1057</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heath</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Linked data - the story so far</article-title>
          .
          <source>Int. J. Semantic Web Inf. Syst</source>
          .
          <volume>5</volume>
          (
          <issue>3</issue>
          ) (
          <year>2009</year>
          )
          <volume>1</volume>
          {
          <fpage>22</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lassila</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>The Semantic Web</article-title>
          .
          <source>Scienti c American</source>
          <volume>284</volume>
          (
          <issue>5</issue>
          ) (
          <year>2001</year>
          )
          <volume>34</volume>
          {
          <fpage>43</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hitzler</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krtzsch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudolph</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Foundations of Semantic Web Technologies. 1st edn</article-title>
          . Chapman &amp; Hall/CRC (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Meira</surname>
            ,
            <given-names>S.R.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buregio</surname>
            ,
            <given-names>V.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nascimento</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>de Figueiredo</surname>
            ,
            <given-names>E.G.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neto</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Encarnaca~o,
          <string-name>
            <given-names>B.P.</given-names>
            ,
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <surname>V.C.</surname>
          </string-name>
          :
          <article-title>The Emerging Web of Social Machines</article-title>
          .
          <source>CoRR abs/1010</source>
          .3 (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Meira</surname>
            ,
            <given-names>S.R.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buregio</surname>
            ,
            <given-names>V.A.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nascimento</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Figueiredo</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Neto</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Encarnacao</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garcia</surname>
            ,
            <given-names>V.C.</given-names>
          </string-name>
          :
          <article-title>The Emerging Web of Social Machines</article-title>
          .
          <source>In: 2011 IEEE 35th Annual Computer Software and Applications Conference</source>
          , IEEE (
          <year>July 2011</year>
          )
          <volume>26</volume>
          {
          <fpage>27</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Kruger,
          <string-name>
            <given-names>I.H.</given-names>
            ,
            <surname>Meisinger</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A formal model of services</article-title>
          .
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>16</volume>
          (
          <issue>1</issue>
          ) (
          <year>February 2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Richardson</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruby</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Restful web services</article-title>
          .
          <source>First edn. O'Reilly</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Hall</surname>
            ,
            <given-names>R.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pauls</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCulloch</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Savage</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>OSGi in Action: Creating Modular Applications in Java</article-title>
          . Volume
          <volume>188</volume>
          .
          <string-name>
            <surname>Manning</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Eysholdt</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Behrens</surname>
          </string-name>
          , H.:
          <article-title>Xtext: implement your language faster than the quick and dirty way</article-title>
          .
          <source>In: Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion</source>
          .
          <source>SPLASH '10</source>
          , New York, NY, USA, ACM (
          <year>2010</year>
          )
          <volume>307</volume>
          {
          <fpage>309</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Juristo</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Moreno</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <source>Basics of Software Engineering Experimentation</source>
          . Springer (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Petersen</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feldt</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mujtaba</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mattsson</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Systematic mapping studies in software engineering</article-title>
          .
          <source>In: Proceedings of the 12th international conference on Evaluation and Assessment in Software Engineering. EASE'08</source>
          ,
          <string-name>
            <surname>Swinton</surname>
          </string-name>
          , UK, UK, British Computer Society (
          <year>2008</year>
          )
          <volume>68</volume>
          {
          <fpage>77</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Nascimento</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Viana</surname>
            ,
            <given-names>D.L.</given-names>
          </string-name>
          , da Mota Silveira Neto,
          <string-name>
            <given-names>P.A.</given-names>
            ,
            <surname>Souto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.F.</given-names>
            ,
            <surname>Martins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.A.O.</given-names>
            ,
            <surname>Garcia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.C.</given-names>
            ,
            <surname>Meira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.R.L.M.</given-names>
            :
            <surname>Domain-Speci c Languages - A Systematic Mapping</surname>
          </string-name>
          <article-title>Study</article-title>
          .
          <source>In: Proceeedings of 7th International Conference on Software Engineering Advances (ICSEA)</source>
          .
          <article-title>(</article-title>
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Lopez-Sanz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cuesta</surname>
            ,
            <given-names>C.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marcos</surname>
          </string-name>
          , E.:
          <article-title>Formalizing high-level service-oriented architectural models using a dynamic adl</article-title>
          .
          <source>In: Proceedings of the 2010 international conference on On the move to meaningful internet systems. OTM'10</source>
          , Berlin, Heidelberg, Springer-Verlag (
          <year>2010</year>
          )
          <volume>57</volume>
          {
          <fpage>66</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>