<!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>Collaborative mashup development in Enterprise 2.0</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Devis Bianchini</string-name>
          <email>bianchin@ing.unibs.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Valeria De Antonellis</string-name>
          <email>deantone@ing.unibs.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Melchiori</string-name>
          <email>melchior@ing.unibs.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Università degli Studi di Brescia - Dip. di Ing.</institution>
          <addr-line>dell‟Informazione Via Branze 38 25123 Brescia</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Modern organizations support and promote internal collaboration to improve performances of their processes. In this paper, we focus on collaboration in software development processes where the process activities are simplified by discovering and exploiting specific knowledge available inside the organization. Specifically, we consider the mashup application development. Mashup has been recently introduced as a development approach for situational fast-to-implement Web-oriented applications. A mashup integrates software components, called Web APIs that can provide access to complex functionalities and rich data sources. Collaboration can simplify and make more effective the mashup development process, in terms of time and quality, by exploiting the knowledge of the developers operating inside the organization. To this aim, we propose a model as part of the Enterprise 2.0 paradigm that has been recently introduced as specialization of the Web 2.0 concepts and technologies to the enterprise. In the discussed model, a mashup developer is supported in searching for assistance from developers owning specific knowledge, according to typical collaboration patterns.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Modern organizations support and promote internal collaboration to improve
performances of their processes. In this software development, mashup has been recently
introduced as a development method inside organizations for situational
fast-toimplement applications. Enterprise 2.0 [1] is the specialization of Web 2.0 concepts
and technologies to the enterprise with the aim of boosting the collaboration both
inside and outside the enterprise. In this context, a number of collaboration platforms
is currently appearing [
        <xref ref-type="bibr" rid="ref1">2,3,4</xref>
        ] to provide enterprises with tools that allow for social
linking and tagging of resources, that support the user feedback/opinions, and
userproduced content management platforms (blogs and Wikis). For example, the
YAMMER Web platform1 allows an enterprise to create a private social network
implementing collaborative workspaces for project team members and external
selected partners. Another recent trend in enterprises is mashup [
        <xref ref-type="bibr" rid="ref2">5</xref>
        ] that has been
introduced as development approach for quick-to-build applications which are created to
      </p>
    </sec>
    <sec id="sec-2">
      <title>1 https://www.yammer.com/</title>
      <p>satisfy situational short term business needs by combining more Web APIs into a
single lightweight Web application.</p>
      <p>Mashup design and implementation may leverage on collaboration to discover,
understand and integrate Web APIs. In fact, collaboration supported by the Enterprise
2.0 tools can simplify and make more effective the development process, in terms of
required time and quality improvement, by exploiting the specialized knowledge of
developers operating inside the organization. On the one hand, developers can exploit
a large and always growing collection of Web APIs made available inside enterprises
by means of searchable catalogs (e.g., IBM Mashup Center Catalog2). Beside
technical documentation, Web registries provide also information about how APIs are used
in mashups and feedback from the user community. On the other hand, mashup
development is hindered by the heterogeneity of Web APIs and related documentation.</p>
      <p>
        Generally, the steps in mashup development that can be supported by collaboration
are: i) searching and identifying the most suitable API functionalities to build a new
application; ii) understanding functional and nonfunctional features of the selected
APIs with the purpose to compose them according to the requirements. Accordingly,
research has been done to define search tools based on semantic/functional/non
functional characterization of APIs [
        <xref ref-type="bibr" rid="ref3">6</xref>
        ], on their social characterization/tagging [
        <xref ref-type="bibr" rid="ref4 ref5">7,8</xref>
        ], on
past use/collective knowledge of APIs [
        <xref ref-type="bibr" rid="ref6">9</xref>
        ], on techniques that mix social and
functional features [
        <xref ref-type="bibr" rid="ref7">10</xref>
        ].
      </p>
      <p>The proposal described in this paper focuses on collaborative development in the
Enterprise 2.0 contexts. To this purpose we propose a model that includes: i)
description of Web APIs as typically found on sharing Web sites, ii) information about
developers based on a specialization of FOAF ontology and, iii) relationships among
developers and Web APIs.</p>
      <p>Specifically, the cited search tools focus on recommending Web APIs to the
developer. Our proposal is complementary to these approaches and comes as a successive
phase by recommending to the developer those colleagues inside the enterprise that
have specific knowledge about the Web APIs she/he has selected. To this purpose, we
have identified typical collaboration patterns: i) search for collaboration on the use of
specific Web APIs; ii) search for collaboration on specific Web API technologies; iii)
search for competencies in developing specific types of mashups.</p>
      <p>The paper is organized in the following way. A simple example to illustrate the
considered scenario is given in the following of the Sect. 1. In the Sect. 2, we
introduce the model for mashup development based on collaboration. The collaboration
patterns that exploit this model are defined in the Sect. 3. A different way to make
explicit and representing the skills of the enterprise developers according to different
perspectives is discussed in the Sect. 4. Conclusions and some possible extensions of
the work presented in this paper are given in the Sect. 5.
2 http://www-10.lotus.com/ldd/mashupswiki.nsf/dx/Introduction__Mashup_Center_2.0.0.2
1.1</p>
      <sec id="sec-2-1">
        <title>A motivating example</title>
        <p>Let us consider an enterprise with various branches and departments in which operate
expert users and developers that need sometime to implement situational applications.
For example, consider also a webmaster working for the marketing department of this
enterprise that has to build an application to visualize on an interactive map,
information about the customers, about sales and demographic data. The webmaster finds the
APIs (developed internally, as part of the ERP, and published on the Web) that she/he
needs implementing the single functional blocks. However, she/he can face
difficulties in: i) using a specific API, because of a not clear API semantics or because not
familiar with the I/O parameters data format; ii) integrating the selected APIs, because
of heterogeneity of documentation and used languages/technologies. In fact, in spite
the availability of commercial and research tools the task of integrating Web APIs
requires yet specialized skills.</p>
        <p>External Provider
-homepage
-company
1..* Uses
Programming Language
1..* Uses
Protocol</p>
        <p>Provider
Internal Provider</p>
        <p>P
* ilbu
syhedb</p>
        <p>Technology
-name
-URL
-Description
*</p>
        <p>Mashup
-name
1..* Composed by -description</p>
        <p>-added
--cnaatmegeoWryeb API * ---aeUvuRathLluoartion
---aaAduPtdIheUodrRI *
* ------eASSHCviuSoogatwmLnhluuemSTapnuoettipRioncUpnteasLoqtRiroutinreMmoednetls * -n1a..m*eTag
-License</p>
        <p>*</p>
        <p>Tagged by</p>
        <p>Has knoledge</p>
        <p>Tagged by</p>
        <p>1..*
Internal Developer
-ID
-givenName
-familyName
-title
-homepage
-email
-phone
1..* --ismkygpeID
-interest
-currentProjects
* ---gbpiaeosntdPerrojects
* -Knows</p>
        <p>D
yvdbpeeoe
l
1..*</p>
        <p>Developer
--hnoammeepage
Works for
* 1</p>
        <p>External Developer
-nameDeparment/Office</p>
        <p>Branch
-name
-address
-city
-country
*
1</p>
        <sec id="sec-2-1-1">
          <title>A model for collaborative mashup development</title>
          <p>In this section we propose a model for collaborative developing in enterprises
including social and usage contexts of Web APIs. Without loss of generality, we can assume
that this model maintains at least:
 Web APIs descriptions at the same level of detail of public registries like
ProgrammableWeb
 Social information about developers based on a specialization of FOAF3.
ProgrammableWeb has been chosen because it is the most complete public registry of
Web APIs and mashups. The choice of FOAF is due to the fact that it is a well known
and standard proposal of ontology for conceptualization of people and social
relationships. The model, shown in Fig. 1, includes that information that satisfies the
requirements for the collaboration scenario considered in the following section. Note
that the Person class of FOAF has been here specialized in the class Internal
Developer. An Internal Developer can have knowledge about technologies used by Web API.
The classes External Provider and External Developer allow keeping supplementary
information about providers and developer of public Web APIs and mashups.</p>
          <p>In this model we focus specifically on the classes Internal Developer, Mashup,
Web API. We associate each object of these classes with a set of descriptors. A
descriptor Desp(oi) for an object oi according to a perspective p is defined as:</p>
          <p>DesP(oi) ={tpi}
where tpi are terms extracted from the object descriptions, specifically from class
attribute values and relationships involving the class of oi. In Table 1 is shown the
applicability of perspectives (columns) to each considered class (rows).</p>
          <p>X
(1)
Organizational</p>
          <p>Web API</p>
          <p>Mashup</p>
          <p>Technologies</p>
          <p>Developer</p>
          <p>SocialConnectivity</p>
          <p>Perspectives
x
x
x
x
x
x
Developer
Web API
Mashup
x
x
x
A developer is described by an organizational perspective (office/department, current
projects, past mashup projects), the Web APIs she/he has used/developed, the
developed mashups, the technologies on which she/he has expertise and her/his social
connections (developers that she/he knows, developers belonging to the same office, that
have worked on the same project or on the same mashup). A Web API is described by
the mashups in which it has been used, the technologies (programming languages,
protocols, messaging formats), the developers that used or provided it. Finally, a
mashup is specified by the Web APIs that it includes and the developer/s that developed
it.
3</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>Collaboration patterns</title>
          <p>Descriptors associated with developers, mashups and Web APIs enables the
definition of collaboration patterns. A collaboration pattern is identified by a type of
re</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3 http://www.foaf-project.org/</title>
      <p>quest. We define in a general way a request R for collaboration submitted by a
developer DR as follows.</p>
      <p>R=&lt; TR, DR, MR, WR&gt;
(2)
where TR is the type of request, MR={WRi} is a set of Web APIs WRi, possibly empty,
selected for implementing a mashup. For simplicity we can refer to this set as the
mashup MR. WR is a Web API optionally specified.</p>
      <p>With reference to the motivating example above described, we distinguish three
different collaboration scenarios in which DR can be involved.
1. Search for collaboration on the specific Web API WR: DR is looking for
collaboration from developers that have experience with a specific Web API WR she/he has
chosen and needs to use in the mashup.
2. Search for collaboration on the technology used by WR: DR is looking for
developers that have experience with specific technologies of the Web API WR. For
example, this case is invoked, as second option, if the result of application of the
previous case Search for collaboration on a specific Web API is empty. As a
consequence, the developer shifts the request to collaboration on the WR technologies.</p>
      <sec id="sec-3-1">
        <title>3. Search for collaboration on the mashup MR: DR is looking for collaboration</title>
        <p>with developers that have experience in mashups built with the same set of Web APIs
of MR or at least with a subset of it.
3.1</p>
      </sec>
      <sec id="sec-3-2">
        <title>Definition of collaboration patterns</title>
        <p>The illustrated scenarios are implemented by collaboration patterns that provide the
functionalities to satisfy the request expressed in each scenario. Formally, a
collaboration pattern is defined as a 4-uple:</p>
        <p>CPᴫ =&lt; Rᴫ, mᴫ, δᴫ ,  ᴫ, &gt;
(3)
where ᴫ is the goal of the collaboration pattern. The output of the application of a
collaboration pattern is to suggest a ranked list of developers satisfying the request Rᴫ.
The metrics mᴫ are used to evaluate the degree of matching between a developer and
the request R, on the basis of the specified goal. The threshold δᴫ is used to filter out
developers with low relevance with respect to Rᴫ. A developer Dj is proposed to the
mashup designer if mᴫ(Rᴫ,Dj) &gt; δᴫ. Finally,  ᴫ is a ranking function to present the
developers relevant for Rᴫ. In particular, Di  ᴫ Dj, that is Di precedes Dj in the
ranking, if mᴫ(Rᴫ,Dj) ≥ mᴫ(Rᴫ,Dj). Collaboration pattern metrics mᴫ are based on a notion
of similarity between descriptors. The similarity between pairs of descriptors is
defined according to the classical Dice‟s formula for similarity over sets.
Table 2 reports how the elements of generic collaboration pattern are defined to fulfill
the three considered scenarios. Specifically, each scenario is associated with a goal
and specifies a kind of request, a metrics and the perspectives considered in the
evaluation of the collaboration.</p>
        <p>In the following, for each pattern we provide the motivations for the metrics
defined in the table.</p>
        <p>Scenario TR</p>
        <p>Request Rᴫ</p>
        <p>Metrics mᴫ
1. Search for
collaboration on
a specific Web
API WR</p>
        <p>R=
&lt;wApi, DR, , WR &gt;
P1=‘Web API’,
P2=‘Organizational’,
P3=‘SocialConnectivity’
- Pattern 1. If the developer Dj has experience with WR then her/his evaluation is not
zero and is based on a weighted sum of two terms: i) similarity of Dj and DR with
respect the Organizational perspective, ii) similarity of Dj and DR with respect to the
SocialConnectivity perspective. So, developers that have more social/organizational
connections with DR receive a higher degree because it is supposed to be easier to
contact and involve them.
- Pattern 2. if the developer Dj has experience with the technologies of WR then
her/his evaluation is not zero and is based on a weighted sum of three terms: i)
similarity between technologies on which Dj has expertise and the technologies used by
WR, ii) similarity of Dj and DR with respect the Organizational perspective, iii)
similarity of Dj and DR with respect to the SocialConnectivity perspective.
- Pattern 3. In this case, DesP1(Dj) includes the Web APIs used in the mashups
developed by Dj. That is, if the developer Dj has used (at least one of) the Web APIs in MR
then her/his evaluation is not zero and is based on a weighted sum of three terms: i)
her/his similarity with MR with respect the Web API perspective, that is high
similarity if Dj has developed mashups using the APIs in MR, ii) similarity of Dj and DR with
respect the Organizational perspective, iii) similarity of Dj and DR with respect to the
SocialConnectivity perspective. Note that DesP1(Dj) and MR are both sets of Web
APIs so it is meaningful to evaluate their similarity.</p>
        <p>For the metrics mᴫ of each of these patterns, the parameters ,, are initially set to
the same value. During a training phase with the involvement of developers, the
values are iteratively adjusted to obtain desired rankings.</p>
        <sec id="sec-3-2-1">
          <title>Multi-perspective organization and clustering of developers</title>
          <p>Developer descriptions can also be organized according to the different perspectives
introduced in Sect. 2. In fact, the information provided by the model in Fig. 1 and the
similarity between developers descriptors can be used jointly to build representations
of the enterprise developers according to the different perspectives. These
organizations can be browsed by a developer to know about the available skills (technologies,
Web APIs, mashups) of the other developers inside the enterprise.</p>
          <p>In particular, by mean of a hierarchical agglomerative clustering procedure, the
developers can be partitioned in groups, where each group includes the developers
owning similar features according to a considered perspective. The resulting
representation is a mapping group-to-skills.</p>
          <p>In order to illustrate the main steps required, let us consider specifically the
perspective „Technologies‟. The hierarchical clustering procedure is applied to the set of
the developers. In the procedure, the similarity metrics for each pair of developer
descriptors DesP(Dij) and DesP(Dik), the value of Sim(DesP(Dij), DesP(Dik)) normalized
in the range [0,1]. The output of the procedure is a similarity tree, as the one
illustrated in Fig. 2a, where the leaves represent the descriptors and the arcs connect pairs
of clusters recognized as the most similar at a specific step. Setting a given minimum
similarity threshold defines the clusters in the similarity tree. For example, the
threshold is set to 0.6 in the Fig. 2b. The skills according to the perspective „Technology‟
for each group of developer cluster are shown as the intersection of the DesP(Dik)
={tpik} for each Dik in the cluster. Note, that the {tpik} are values available in the
object descriptions according to the collaboration model.</p>
          <p>In this paper, we have introduced a collaboration model for mashup development in
the context of Enterprise 2.0. Specifically, the model permits to define collaboration
patterns to support automatically the mashup developer in the task of discovering
potential collaboration with other developers. Future work includes the development
of a software prototype to be integrated in an Enterprise 2.0 platform and extension of
the model by considering additional information, like tags, Web APIs categories and
feedback on the collaboration. Moreover, the model has to be enriched with
mechanisms for ranking and evaluating the skills and the experience of developers.
5
6</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Conclusions References</title>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          4.
          <string-name>
            <given-names>J.</given-names>
            <surname>Soriano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lizcano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Cañas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Reyes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Hierro</surname>
          </string-name>
          , “
          <article-title>Fostering Innovation in a Mashuporiented Enterprise 2.0 Collaboration Environment</article-title>
          ,
          <source>” System and Information Sciences Notes, no. 1</source>
          , pp.
          <fpage>62</fpage>
          -
          <lpage>68</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          5.
          <string-name>
            <given-names>V.</given-names>
            <surname>Hoyer</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Fischer</surname>
          </string-name>
          , “
          <article-title>Market overview of enterprise mashup tools”</article-title>
          .
          <source>In Proc. of the 6th International Conference on Service Oriented Computing (ICSOC'08)</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>708</fpage>
          -
          <lpage>721</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          6.
          <string-name>
            <surname>Gomadam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ranabahu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nagarajan</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheth</surname>
            ,
            <given-names>A. P.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Verma</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          (
          <year>2008</year>
          )
          <article-title>A Faceted Classification Based Approach to Search and Rank Web APIs</article-title>
          ,
          <source>Proc. of 6th IEEE Int. Conference on Web Services (ICWS'08).</source>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          7.
          <string-name>
            <given-names>K.</given-names>
            <surname>Goarany</surname>
          </string-name>
          , G. Kulczycki, and
          <string-name>
            <surname>M. B. Blake</surname>
          </string-name>
          , “Mining Social Tags to Predict Mashup Patterns,
          <source>” Proceedings of the 2nd International Workshop on Search and Mining User-generated Contents (SMUC</source>
          <year>2010</year>
          ),
          <year>October 30</year>
          ,
          <year>2010</year>
          , Toronto. Canada.
          <article-title>Copyright 2010 ACM</article-title>
          ., pp.
          <fpage>71</fpage>
          -
          <lpage>77</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Bianchini</surname>
          </string-name>
          , V. De Antonellis, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Melchiori</surname>
          </string-name>
          , “
          <article-title>Semantic Collaborative Tagging for Web APIs Sharing</article-title>
          and Reuse,”
          <source>in Proceedings of the 12th Int. Conference on Web Engineering (ICWE'12)</source>
          ,
          <year>2012</year>
          , vol. LNCS, no.
          <issue>7387</issue>
          , pp.
          <fpage>76</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          9.
          <string-name>
            <given-names>O.</given-names>
            <surname>Greenshpan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Milo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Polyzotis</surname>
          </string-name>
          , “
          <article-title>Autocompletion for Mashups,”</article-title>
          <source>in Proc. of the 35th Int. Conference on Very Large DataBases (VLDB'09)</source>
          ,
          <year>2009</year>
          , pp.
          <fpage>538</fpage>
          -
          <lpage>549</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          10.
          <string-name>
            <given-names>B.</given-names>
            <surname>Tapia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Torres</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Astudillo</surname>
          </string-name>
          .
          <article-title>"Simplifying mashup component selection with a combined similarity- and social-based technique"</article-title>
          .
          <source>In Proceedings of the 5th International Workshop on Web APIs and Service Mashups (Mashups '11)</source>
          , Agnes Koschmider, Erik Wilde, and Christian Zirpins (Eds.). ACM, New York, NY, USA,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>